{"version":3,"file":"main.js","mappings":"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EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;IAC5B,EAAE,GAAG,EAAE,EAAE,EAAE,QA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","sources":["./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/onboarding/candidate/begin/begin.component.ts","./src/app/components/onboarding/candidate/begin/begin.component.html","./src/app/components/onboarding/candidate/candidate-cache.service.ts","./src/app/components/onboarding/candidate/candidate-decision-details/accept-dialog/accept-dialog.component.ts","./src/app/components/onboarding/candidate/candidate-decision-details/accept-dialog/accept-dialog.component.html","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-contact-details/candidate-contact-details.component.ts","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-contact-details/candidate-contact-details.component.html","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-decision-details.component.ts","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-decision-details.component.html","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-decision-details.module.ts","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-personal-details/candidate-personal-details.component.ts","./src/app/components/onboarding/candidate/candidate-decision-details/candidate-personal-details/candidate-personal-details.component.html","./src/app/components/onboarding/candidate/candidate-decision-details/sample-data.ts","./src/app/components/onboarding/candidate/candidate-login/candidate-offer-access-warning/candidate-offer-access-warning.component.ts","./src/app/components/onboarding/candidate/candidate-login/candidate-offer-access-warning/candidate-offer-access-warning.component.html","./src/app/components/onboarding/candidate/candidate-login/candidate-offer-expired/candidate-offer-expired.component.ts","./src/app/components/onboarding/candidate/candidate-login/candidate-offer-expired/candidate-offer-expired.component.html","./src/app/components/onboarding/candidate/candidate-login/candidate-welcome-verify-warning/candidate-welcome-verify-warning.component.ts","./src/app/components/onboarding/candidate/candidate-login/candidate-welcome-verify-warning/candidate-welcome-verify-warning.component.html","./src/app/components/onboarding/candidate/candidate-login/login/login.module.ts","./src/app/components/onboarding/candidate/candidate.module.ts","./src/app/components/onboarding/candidate/coach-info/coach-info.component.ts","./src/app/components/onboarding/candidate/coach-info/coach-info.component.html","./src/app/components/onboarding/candidate/details-and-accept/details-and-accept.component.ts","./src/app/components/onboarding/candidate/details-and-accept/details-and-accept.component.html","./src/app/components/onboarding/candidate/details-and-accept/step-five/step-five.component.ts","./src/app/components/onboarding/candidate/details-and-accept/step-five/step-five.component.html","./src/app/components/onboarding/candidate/details-and-accept/step-four/step-four.component.ts","./src/app/components/onboarding/candidate/details-and-accept/step-four/step-four.component.html","./src/app/components/onboarding/candidate/details-and-accept/step-one/step-one.component.ts","./src/app/components/onboarding/candidate/details-and-accept/step-one/step-one.component.html","./src/app/components/onboarding/candidate/details-and-accept/step-three/step-three.component.ts","./src/app/components/onboarding/candidate/details-and-accept/step-three/step-three.component.html","./src/app/components/onboarding/candidate/details-and-accept/step-two/step-two.component.ts","./src/app/components/onboarding/candidate/details-and-accept/step-two/step-two.component.html","./src/app/components/onboarding/candidate/explore-offer/explore-offer.component.ts","./src/app/components/onboarding/candidate/explore-offer/explore-offer.component.html","./src/app/components/onboarding/candidate/explore-offer/explore-offer.module.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/add-existing-savings/add-existing-savings.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/add-existing-savings/add-existing-savings.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/offer-summary.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/offer-summary.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-additional-benefits/pabe-additional-benefits.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-additional-benefits/pabe-additional-benefits.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-earnings/pabe-earnings.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-earnings/pabe-earnings.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-insurance/pabe-insurance.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-insurance/pabe-insurance.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-medical-aid/pabe-medical-aid.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-medical-aid/pabe-medical-aid.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-retirement/pabe-retirement.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-retirement/pabe-retirement.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-summary/pabe-summary.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-summary/pabe-summary.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-tax-and-deductions/pabe-tax-and-deductions.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/pabe-tax-and-deductions/pabe-tax-and-deductions.component.html","./src/app/components/onboarding/candidate/explore-offer/offer-summary/wellbeing-coach-introduction/wellbeing-coach-introduction.component.ts","./src/app/components/onboarding/candidate/explore-offer/offer-summary/wellbeing-coach-introduction/wellbeing-coach-introduction.component.html","./src/app/components/onboarding/candidate/explore-offer/pabe-intro/pabe-intro.component.ts","./src/app/components/onboarding/candidate/explore-offer/pabe-intro/pabe-intro.component.html","./src/app/components/onboarding/candidate/explore-offer/retirement-estimations-box/retirement-estimations-box.component.ts","./src/app/components/onboarding/candidate/explore-offer/retirement-estimations-box/retirement-estimations-box.component.html","./src/app/components/onboarding/candidate/finalise/decision-box/decision-box.component.ts","./src/app/components/onboarding/candidate/finalise/decision-box/decision-box.component.html","./src/app/components/onboarding/candidate/finalise/finalise.component.ts","./src/app/components/onboarding/candidate/finalise/finalise.component.html","./src/app/components/onboarding/candidate/finalise/not-happy-dialog/not-happy-dialog.component.ts","./src/app/components/onboarding/candidate/finalise/not-happy-dialog/not-happy-dialog.component.html","./src/app/components/onboarding/candidate/finalise/queries-sent-dialog/queries-sent-dialog.component.ts","./src/app/components/onboarding/candidate/finalise/queries-sent-dialog/queries-sent-dialog.component.html","./src/app/components/onboarding/candidate/info-management.service.ts","./src/app/components/onboarding/candidate/landing/landing.component.ts","./src/app/components/onboarding/candidate/landing/landing.component.html","./src/app/components/onboarding/candidate/profile/candidate-profile-details/candidate-profile-details.component.ts","./src/app/components/onboarding/candidate/profile/candidate-profile-details/candidate-profile-details.component.html","./src/app/components/onboarding/candidate/profile/candidate-profile-linking/candidate-profile-linking.component.ts","./src/app/components/onboarding/candidate/profile/candidate-profile-linking/candidate-profile-linking.component.html","./src/app/components/onboarding/candidate/profile/candidate-profile-verification/candidate-profile-verification.component.ts","./src/app/components/onboarding/candidate/profile/candidate-profile-verification/candidate-profile-verification.component.html","./src/app/components/onboarding/candidate/profile/models/candidate-profile.model.ts","./src/app/components/onboarding/candidate/profile/profile.component.ts","./src/app/components/onboarding/candidate/profile/profile.component.html","./src/app/components/onboarding/candidate/review-offer/intro/intro.component.ts","./src/app/components/onboarding/candidate/review-offer/intro/intro.component.html","./src/app/components/onboarding/candidate/review-offer/offer-summary/offer-summary.component.ts","./src/app/components/onboarding/candidate/review-offer/offer-summary/offer-summary.component.html","./src/app/components/onboarding/candidate/review-offer/review-offer.component.ts","./src/app/components/onboarding/candidate/review-offer/review-offer.component.html","./src/app/components/onboarding/candidate/review-offer/review-offer.module.ts","./src/app/components/onboarding/candidate/review-offer/welcome-dialog/welcome-dialog.component.ts","./src/app/components/onboarding/candidate/review-offer/welcome-dialog/welcome-dialog.component.html","./src/app/components/onboarding/candidate/shared/candidate-footer/candidate-footer.component.ts","./src/app/components/onboarding/candidate/shared/candidate-footer/candidate-footer.component.html","./src/app/components/onboarding/candidate/shared/candidate-header/candidate-header.component.ts","./src/app/components/onboarding/candidate/shared/candidate-header/candidate-header.component.html","./src/app/components/onboarding/candidate/shared/candidate-shared.module.ts","./src/app/components/onboarding/candidate/shared/contribution-warning/contribution-warning.component.ts","./src/app/components/onboarding/candidate/shared/contribution-warning/contribution-warning.component.html","./src/app/components/onboarding/candidate/shared/feedback-window/feedback-window.component.ts","./src/app/components/onboarding/candidate/shared/feedback-window/feedback-window.component.html","./src/app/components/onboarding/candidate/shared/offer-subheader/offer-subheader.component.ts","./src/app/components/onboarding/candidate/shared/offer-subheader/offer-subheader.component.html","./src/app/components/onboarding/candidate/shared/retirement-info-box/retirement-info-box.component.ts","./src/app/components/onboarding/candidate/shared/retirement-info-box/retirement-info-box.component.html","./src/app/components/onboarding/hr-operations/company/company-basics/components/company-basics-card/company-basics-card.component.ts","./src/app/components/onboarding/hr-operations/company/company-basics/components/company-basics-card/company-basics-card.component.html","./src/app/components/onboarding/hr-operations/company/company-basics/components/index.ts","./src/app/components/onboarding/hr-operations/company/company-basics/containers/company-basics/company-basics.component.ts","./src/app/components/onboarding/hr-operations/company/company-basics/containers/company-basics/company-basics.component.html","./src/app/components/onboarding/hr-operations/company/company-basics/containers/index.ts","./src/app/components/onboarding/hr-operations/company/company.component.ts","./src/app/components/onboarding/hr-operations/company/company.component.html","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-gapcover-provider/company-gapcover-provider.component.ts","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-gapcover-provider/company-gapcover-provider.component.html","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-medicalaid-provider/company-medicalaid-provider.component.ts","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-medicalaid-provider/company-medicalaid-provider.component.html","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-risk-cover/company-risk-cover.component.ts","./src/app/components/onboarding/hr-operations/company/corporate-benefits/company-risk-cover/company-risk-cover.component.html","./src/app/components/onboarding/hr-operations/company/corporate-benefits/corporate-benefits.component.ts","./src/app/components/onboarding/hr-operations/company/corporate-benefits/corporate-benefits.component.html","./src/app/components/onboarding/hr-operations/company/corporate-benefits/models/company-gap-cover-provider.model.ts","./src/app/components/onboarding/hr-operations/company/corporate-benefits/models/company-medical-aid-provider.model.ts","./src/app/components/onboarding/hr-operations/company/shared/enum/active-tab.enum.ts","./src/app/components/onboarding/hr-operations/company/shared/enum/index.ts","./src/app/components/onboarding/hr-operations/company/shared/index.ts","./src/app/components/onboarding/hr-operations/company/shared/sub-header/sub-header.component.ts","./src/app/components/onboarding/hr-operations/company/shared/sub-header/sub-header.component.html","./src/app/components/onboarding/hr-operations/hr-operations.module.ts","./src/app/components/onboarding/hr-operations/new-joiners/download-new-joiners-documents/download-new-joiners-documents.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/download-new-joiners-documents/download-new-joiners-documents.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/af-checkbox/af-checkbox.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/af-checkbox/af-checkbox.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/af-dropdown/af-dropdown.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/af-dropdown/af-dropdown.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/custom-date-pipe.pipe.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/initials.pipe.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/new-joiners-list.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/new-joiners-list.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/order-by.pipe.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/search.pipe.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/user-info/user-info.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-list/user-info/user-info.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-subheader.ts/new-joiners-subheader.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners-subheader.ts/new-joiners-subheader.component.html","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners.component.ts","./src/app/components/onboarding/hr-operations/new-joiners/new-joiners.component.html","./src/app/components/onboarding/hr-operations/shared/hr-operations-footer/hr-operations-footer.component.ts","./src/app/components/onboarding/hr-operations/shared/hr-operations-footer/hr-operations-footer.component.html","./src/app/components/onboarding/new-employees/benefits/retirement-contributions-information/retirement-service.ts","./src/app/components/onboarding/new-employees/documents/models/documents.model.ts","./src/app/components/onboarding/new-employees/new-employees-cache.service.ts","./src/app/components/onboarding/new-employees/profile/my-details/my-details-form.service.ts","./src/app/components/onboarding/new-employees/profile/my-details/my-details.component.ts","./src/app/components/onboarding/new-employees/profile/my-details/my-details.component.html","./src/app/components/onboarding/new-employees/profile/my-details/profile-change-password/profile-change-password.component.ts","./src/app/components/onboarding/new-employees/profile/my-details/profile-change-password/profile-change-password.component.html","./src/app/components/onboarding/new-employees/profile/my-details/profile-contact-details/profile-contact-details.component.ts","./src/app/components/onboarding/new-employees/profile/my-details/profile-contact-details/profile-contact-details.component.html","./src/app/components/onboarding/new-employees/profile/my-details/profile-personal-details/profile-personal-details.component.ts","./src/app/components/onboarding/new-employees/profile/my-details/profile-personal-details/profile-personal-details.component.html","./src/app/components/onboarding/new-employees/profile/profile.component.ts","./src/app/components/onboarding/new-employees/profile/profile.component.html","./src/app/components/onboarding/new-employees/profile/profile.module.ts","./src/app/components/onboarding/new-employees/retirement-contributions-information/dependants/dependants.component.ts","./src/app/components/onboarding/new-employees/retirement-contributions-information/dependants/dependants.component.html","./src/app/components/onboarding/new-employees/retirement-contributions-information/new-employees-cache.service.ts","./src/app/components/onboarding/new-employees/retirement-contributions-information/retirement-service.ts","./src/app/components/onboarding/new-employees/services/documents.service.ts","./src/app/components/onboarding/new-employees/shared/advice-sent-popup/advice-sent-popup.component.ts","./src/app/components/onboarding/new-employees/shared/advice-sent-popup/advice-sent-popup.component.html","./src/app/components/onboarding/new-employees/shared/benefit-document-card/benefit-document-card.component.ts","./src/app/components/onboarding/new-employees/shared/benefit-document-card/benefit-document-card.component.html","./src/app/components/onboarding/new-employees/shared/benefits-subheader/benefits-subheader.component.ts","./src/app/components/onboarding/new-employees/shared/benefits-subheader/benefits-subheader.component.html","./src/app/components/onboarding/new-employees/shared/contact-window/contact-window.component.ts","./src/app/components/onboarding/new-employees/shared/contact-window/contact-window.component.html","./src/app/components/onboarding/new-employees/shared/document-card/document-card.component.ts","./src/app/components/onboarding/new-employees/shared/document-card/document-card.component.html","./src/app/components/onboarding/new-employees/shared/generic-popup/generic-popup.component.ts","./src/app/components/onboarding/new-employees/shared/help-window/help-window.component.ts","./src/app/components/onboarding/new-employees/shared/help-window/help-window.component.html","./src/app/components/onboarding/new-employees/shared/new-employees-footer/new-employees-footer.component.ts","./src/app/components/onboarding/new-employees/shared/new-employees-header/new-employees-header.component.ts","./src/app/components/onboarding/new-employees/shared/new-employees-header/new-employees-header.component.html","./src/app/components/onboarding/new-employees/shared/new-employees-shared.module.ts","./src/app/components/onboarding/new-employees/shared/new-employees-subheader/new-employees-subheader.component.ts","./src/app/components/onboarding/new-employees/shared/new-employees-subheader/new-employees-subheader.component.html","./src/app/components/onboarding/new-employees/shared/next-step/next-step.component.ts","./src/app/components/onboarding/new-employees/shared/next-step/next-step.component.html","./src/app/components/onboarding/onboarding-routing.module.ts","./src/app/components/onboarding/onboarding.module.ts","./src/app/components/onboarding/users/all-templates/view-templates/template-card/models/offer-template-card.model.ts","./src/app/components/onboarding/users/all-templates/view-templates/view-templates.component.ts","./src/app/components/onboarding/users/all-templates/view-templates/view-templates.component.html","./src/app/components/onboarding/users/candidates-and-offers/archive/archive.component.ts","./src/app/components/onboarding/users/candidates-and-offers/archive/archive.component.html","./src/app/components/onboarding/users/corporate/bulk-corp-create/bulk-corp-create.component.ts","./src/app/components/onboarding/users/corporate/bulk-corp-create/bulk-corp-create.component.html","./src/app/components/onboarding/users/corporate/corporate-dashboard-routing.module.ts","./src/app/components/onboarding/users/corporate/corporate-dashboard/corporate-dashboard.component.ts","./src/app/components/onboarding/users/corporate/corporate-dashboard/corporate-dashboard.component.html","./src/app/components/onboarding/users/corporate/corporate-header/corporate-header.component.ts","./src/app/components/onboarding/users/corporate/corporate-header/corporate-header.component.html","./src/app/components/onboarding/users/corporate/corporate.component.ts","./src/app/components/onboarding/users/corporate/corporate.component.html","./src/app/components/onboarding/users/corporate/corporate.module.ts","./src/app/components/onboarding/users/corporate/create-corporate/basics-tab/basics-tab.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/basics-tab/basics-tab.component.html","./src/app/components/onboarding/users/corporate/create-corporate/basics-tab/helpers/basics-form-helper.ts","./src/app/components/onboarding/users/corporate/create-corporate/create-corporate.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/create-corporate.component.html","./src/app/components/onboarding/users/corporate/create-corporate/helper.service.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/add-another-benefit/add-another-benefit.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/add-another-benefit/add-another-benefit.component.html","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/helpers/retirement-model-helper.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/models/retirement-benefit.model.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/retirements-tab.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/retirements-tab.component.html","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/retirements.mocks.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/single-benefit/single-benefit.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/retirements-tab/single-benefit/single-benefit.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/add-package/add-package.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/add-package/add-package.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/disability-income-protection/disability-income-protection.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/disability-income-protection/disability-income-protection.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/disability-lump-sum/disability-lump-sum.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/disability-lump-sum/disability-lump-sum.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/dread-disease-cover/dread-disease-cover.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/dread-disease-cover/dread-disease-cover.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/funeral/funeral.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/funeral/funeral.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/helpers/risk-model-helper.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/life-cover/life-cover.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/life-cover/life-cover.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/risk-tab.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/risk-tab.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-disability-lump-sum/spousal-disability-lump-sum.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-disability-lump-sum/spousal-disability-lump-sum.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-dread-disease-cover/spousal-dread-disease-cover.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-dread-disease-cover/spousal-dread-disease-cover.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-life-cover/spousal-life-cover.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/spousal-life-cover/spousal-life-cover.component.html","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/temporary-total-disability/temporary-total-disability.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/risk-tab/temporary-total-disability/temporary-total-disability.component.html","./src/app/components/onboarding/users/corporate/create-corporate/users-tab/helpers/user-form-helper.ts","./src/app/components/onboarding/users/corporate/create-corporate/users-tab/users-tab.component.ts","./src/app/components/onboarding/users/corporate/create-corporate/users-tab/users-tab.component.html","./src/app/components/onboarding/users/corporate/models/Corporate-BulkUploadResults.model.ts","./src/app/components/onboarding/users/corporate/models/corporate-basics.model.ts","./src/app/components/onboarding/users/corporate/models/locations.model.ts","./src/app/components/onboarding/users/corporate/view-corporate/view-corporate-group.component.ts","./src/app/components/onboarding/users/corporate/view-corporate/view-subgroups-tab/view-subgroups-tab.component.ts","./src/app/components/onboarding/users/corporate/view-corporate/view-subgroups-tab/view-subgroups-tab.component.html","./src/app/components/onboarding/users/profile/profile.component.ts","./src/app/components/onboarding/users/profile/profile.component.html","./src/app/components/onboarding/users/shared/admin-header/admin-header.component.ts","./src/app/components/onboarding/users/shared/admin-header/admin-header.component.html","./src/app/components/onboarding/users/shared/admin-subheader/admin-subheader.component.ts","./src/app/components/onboarding/users/shared/admin-subheader/admin-subheader.component.html","./src/app/components/onboarding/users/shared/extend-offer-window/extend-offer-window.component.ts","./src/app/components/onboarding/users/shared/extend-offer-window/extend-offer-window.component.html","./src/app/components/onboarding/users/shared/hr-header/hr-header.component.ts","./src/app/components/onboarding/users/shared/hr-header/hr-header.component.html","./src/app/components/onboarding/users/shared/hr-subheader/hr-subheader.component.ts","./src/app/components/onboarding/users/shared/hr-subheader/hr-subheader.component.html","./src/app/components/onboarding/users/shared/info-popup/info-popup.component.ts","./src/app/components/onboarding/users/shared/info-popup/info-popup.component.html","./src/app/components/onboarding/users/shared/rescind-offer-window/rescind-offer-window.component.ts","./src/app/components/onboarding/users/shared/rescind-offer-window/rescind-offer-window.component.html","./src/app/components/onboarding/users/shared/users-shared.module.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/create-user/create-user.component.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/create-user/create-user.component.html","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/create-user/create-user.module.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/edit-user/edit-user.component.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/edit-user/edit-user.module.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/roles-dashboard/roles-dashboard.component.ts","./src/app/components/onboarding/users/users-and-roles/roles-dashboard/roles-dashboard/roles-dashboard.component.html","./src/app/components/onboarding/users/users-cache.service.ts","./src/app/components/resignations/connect-adviser/components/connect-adviser-wrapper/connect-adviser-wrapper.component.ts","./src/app/components/resignations/connect-adviser/components/connect-adviser-wrapper/connect-adviser-wrapper.component.html","./src/app/components/resignations/connect-adviser/components/index.ts","./src/app/components/resignations/connect-adviser/components/need-advice/need-advice.component.ts","./src/app/components/resignations/connect-adviser/components/need-advice/need-advice.component.html","./src/app/components/resignations/connect-adviser/components/no-need-advice/no-need-advice.component.ts","./src/app/components/resignations/connect-adviser/components/no-need-advice/no-need-advice.component.html","./src/app/components/resignations/connect-adviser/components/ready-to-continue/ready-to-continue.component.ts","./src/app/components/resignations/connect-adviser/components/ready-to-continue/ready-to-continue.component.html","./src/app/components/resignations/connect-adviser/components/unsure-savings/unsure-savings.component.ts","./src/app/components/resignations/connect-adviser/components/unsure-savings/unsure-savings.component.html","./src/app/components/resignations/connect-adviser/connect-adviser-routing.module.ts","./src/app/components/resignations/connect-adviser/connect-adviser.module.ts","./src/app/components/resignations/connect-adviser/containers/connect-adviser/connect-adviser.component.ts","./src/app/components/resignations/connect-adviser/containers/connect-adviser/connect-adviser.component.html","./src/app/components/resignations/connect-adviser/containers/index.ts","./src/app/components/resignations/connect-adviser/index.ts","./src/app/components/resignations/dashboard/checkbox/checkbox.component.ts","./src/app/components/resignations/dashboard/checkbox/checkbox.component.html","./src/app/components/resignations/dashboard/dashboard-routing.module.ts","./src/app/components/resignations/dashboard/dashboard.module.ts","./src/app/components/resignations/dashboard/dropdown/dropdown.component.ts","./src/app/components/resignations/dashboard/dropdown/dropdown.component.html","./src/app/components/resignations/dashboard/leavers-dashboard/leavers-dashboard.component.ts","./src/app/components/resignations/dashboard/leavers-dashboard/leavers-dashboard.component.html","./src/app/components/resignations/dashboard/selected-user-pill/selected-user-pill.component.ts","./src/app/components/resignations/dashboard/selected-user-pill/selected-user-pill.component.html","./src/app/components/resignations/dashboard/user-info/user-info.component.ts","./src/app/components/resignations/dashboard/user-info/user-info.component.html","./src/app/components/resignations/dashboard/wizard/last-step/send-email.last-step/send-email.last-step.component.ts","./src/app/components/resignations/dashboard/wizard/last-step/send-email.last-step/send-email.last-step.component.html","./src/app/components/resignations/dashboard/wizard/step-one/contact-details.step-one/contact-details.step-one.component.ts","./src/app/components/resignations/dashboard/wizard/step-one/contact-details.step-one/contact-details.step-one.component.html","./src/app/components/resignations/dashboard/wizard/step-postal/postal.step-postal/postal.step-postal.component.ts","./src/app/components/resignations/dashboard/wizard/step-postal/postal.step-postal/postal.step-postal.component.html","./src/app/components/resignations/dashboard/wizard/step-two/any-debt.step-two/any-debt.step-two.component.ts","./src/app/components/resignations/dashboard/wizard/step-two/any-debt.step-two/any-debt.step-two.component.html","./src/app/components/resignations/dashboard/wizard/wizard.component.ts","./src/app/components/resignations/dashboard/wizard/wizard.component.html","./src/app/components/resignations/models/employees.model.ts","./src/app/components/resignations/models/savings-calculations.model.ts","./src/app/components/resignations/savings/confirm-details/confirm-details.component.ts","./src/app/components/resignations/savings/confirm-details/confirm-details.component.html","./src/app/components/resignations/savings/move-withdraw/MemberRetirementProjection.ts","./src/app/components/resignations/savings/move-withdraw/ProjectionPayload.ts","./src/app/components/resignations/savings/move-withdraw/move-withdraw.component.ts","./src/app/components/resignations/savings/move-withdraw/move-withdraw.component.html","./src/app/components/resignations/savings/profile-landing-page/contact-details/contact-details.component.ts","./src/app/components/resignations/savings/profile-landing-page/contact-details/contact-details.component.html","./src/app/components/resignations/savings/profile-landing-page/postal-address/postal-address.component.ts","./src/app/components/resignations/savings/profile-landing-page/postal-address/postal-address.component.html","./src/app/components/resignations/savings/profile-landing-page/profile-landing-page.component.ts","./src/app/components/resignations/savings/profile-landing-page/profile-landing-page.component.html","./src/app/components/resignations/savings/savings-details/banking-details/banking-details.component.ts","./src/app/components/resignations/savings/savings-details/banking-details/banking-details.component.html","./src/app/components/resignations/savings/savings-details/broker-details/broker-details.component.ts","./src/app/components/resignations/savings/savings-details/broker-details/broker-details.component.html","./src/app/components/resignations/savings/savings-details/savings-details.component.ts","./src/app/components/resignations/savings/savings-details/savings-details.component.html","./src/app/components/resignations/savings/savings-details/shared/enum/active-tab.enum.ts","./src/app/components/resignations/savings/savings-details/shared/enum/index.ts","./src/app/components/resignations/savings/savings-details/shared/index.ts","./src/app/components/resignations/savings/savings-details/shared/tabs/tabs.component.ts","./src/app/components/resignations/savings/savings-details/shared/tabs/tabs.component.html","./src/app/components/resignations/savings/savings-details/summary/summary.component.ts","./src/app/components/resignations/savings/savings-details/summary/summary.component.html","./src/app/components/resignations/savings/savings-details/tax-details/tax-details.component.ts","./src/app/components/resignations/savings/savings-details/tax-details/tax-details.component.html","./src/app/components/resignations/savings/savings-routing.module.ts","./src/app/components/resignations/savings/savings-summary/savings-summary/savings-summary.component.ts","./src/app/components/resignations/savings/savings-summary/savings-summary/savings-summary.component.html","./src/app/components/resignations/savings/savings.module.ts","./src/app/components/resignations/savings/withdrawal-amount-projection-service.service.ts","./src/app/components/resignations/store/base.store.ts","./src/app/components/resignations/store/employees/selected-employees.store.ts","./src/app/components/resignations/store/retirement-savings/model/claim.ts","./src/app/components/resignations/store/retirement-savings/model/retirement-savings.model.ts","./src/app/components/resignations/store/retirement-savings/retirementsavings.ts","./src/app/components/resignations/store/retirement-savings/service/claimService.service.ts","./src/app/components/resignations/store/retirement-savings/service/enum/eWithdrawalOption.enum.ts","./src/app/components/resignations/store/retirement-savings/service/enum/eWithdrawalType.enum.ts","./src/app/components/resignations/store/retirement-savings/service/enum/index.ts","./src/app/components/resignations/store/retirement-savings/service/retirement-savings.store.ts","./src/app/components/shared-ui/app-footer/app-footer.component.ts","./src/app/components/shared-ui/app-footer/app-footer.component.html","./src/app/components/shared-ui/app-header/app-header.component.ts","./src/app/components/shared-ui/app-header/app-header.component.html","./src/app/components/shared-ui/app-header/app-header.module.ts","./src/app/components/shared-ui/app-header/app-logout-dialog/app-logout-dialog.component.ts","./src/app/components/shared-ui/app-header/app-logout-dialog/app-logout-dialog.component.html","./src/app/components/shared-ui/app-inputswitch/app-inputswitch.component.ts","./src/app/components/shared-ui/app-inputswitch/app-inputswitch.component.html","./src/app/components/shared-ui/claim-confirm-popup/claim-confirm-popup.component.ts","./src/app/components/shared-ui/claim-confirm-popup/claim-confirm-popup.component.html","./src/app/components/shared-ui/connect-advice/connect-advice.component.ts","./src/app/components/shared-ui/connect-advice/connect-advice.component.html","./src/app/components/shared-ui/continue-warning/continue-warning.component.ts","./src/app/components/shared-ui/continue-warning/continue-warning.component.html","./src/app/components/shared-ui/disclaimer-popup/disclaimer-popup.component.ts","./src/app/components/shared-ui/disclaimer-popup/disclaimer-popup.component.html","./src/app/components/shared-ui/help-popup/help-popup.component.ts","./src/app/components/shared-ui/help-popup/help-popup.component.html","./src/app/components/shared-ui/help-tips/help-tips.component.ts","./src/app/components/shared-ui/help-tips/help-tips.component.html","./src/app/components/shared-ui/identification-details/identification-details.component.ts","./src/app/components/shared-ui/identification-details/identification-details.component.html","./src/app/components/shared-ui/member-address/member-address.component.ts","./src/app/components/shared-ui/member-address/member-address.component.html","./src/app/components/shared-ui/member-tax-details/member-tax-details.component.ts","./src/app/components/shared-ui/member-tax-details/member-tax-details.component.html","./src/app/components/shared-ui/personal-details/personal-details.component.ts","./src/app/components/shared-ui/personal-details/personal-details.component.html","./src/app/components/shared-ui/popi/popi.component.ts","./src/app/components/shared-ui/savings-calculations/savings-calculations.component.ts","./src/app/components/shared-ui/savings-calculations/savings-calculations.component.html","./src/app/components/shared-ui/savings-calculations/savings-calculations.module.ts","./src/app/components/shared-ui/savings-calculations/savings-member-values/savings-member-values.component.ts","./src/app/components/shared-ui/savings-calculations/savings-member-values/savings-member-values.component.html","./src/app/components/shared-ui/scrolling-banner/scrolling-banner.component.ts","./src/app/components/shared-ui/scrolling-banner/scrolling-banner.component.html","./src/app/components/shared-ui/shared-ui.module.ts","./src/app/components/shared-ui/wizard-step/wizard-step.component.ts","./src/app/components/shared-ui/wizard-step/wizard-step.component.html","./src/app/constants/assuptions.ts","./src/app/constants/banks.ts","./src/app/constants/benefitCosts.ts","./src/app/constants/constants.ts","./src/app/constants/countries.ts","./src/app/constants/gapCovers.ts","./src/app/constants/insurances.ts","./src/app/constants/medicalAidPlans.ts","./src/app/constants/mortality-table.ts","./src/app/constants/salaryScales.ts","./src/app/constants/taxRebates.ts","./src/app/constants/warningAndErrorMessages.ts","./src/app/interceptors/token-interceptor.service.ts","./src/app/services/admin.service.ts","./src/app/services/auth-guard.service.ts","./src/app/services/auth.service.ts","./src/app/services/authentication.service.ts","./src/app/services/candidate.service.ts","./src/app/services/content.service.ts","./src/app/services/corporate-benefits.service.ts","./src/app/services/corporate.service.ts","./src/app/services/document.service.ts","./src/app/services/error.service.ts","./src/app/services/explore-offer.service.ts","./src/app/services/fileupload.service.ts","./src/app/services/info-popup-service.service.ts","./src/app/services/loader.service.ts","./src/app/services/local-storage.service.ts","./src/app/services/model-mappers/candidate-mapper.service.ts","./src/app/services/model-mappers/corporate-mapper.service.ts","./src/app/services/model-mappers/offer-mapper.service.ts","./src/app/services/model-mappers/user-profile-mapper.service.ts","./src/app/services/nominee.service.ts","./src/app/services/notification.service.ts","./src/app/services/offer.service.ts","./src/app/services/payslip-calculations.service.ts","./src/app/services/profile.service.ts","./src/app/services/routing.service.ts","./src/app/services/service_models/corporate_models/get-corporate-by-id.model.ts","./src/app/services/storeService.ts","./src/app/services/user.service.ts","./src/app/services/utilities.service.ts","./src/app/services/validation.service.ts","./src/app/services/wizard-helper.service.ts","./src/app/shared/common-functions.ts","./src/app/shared/custom-shared.module.ts","./src/app/shared/error-popup/error-popup.component.ts","./src/app/shared/error-popup/error-popup.component.html","./src/app/shared/header/are-you-sure-dialog/are-you-sure-dialog.component.ts","./src/app/shared/header/are-you-sure-dialog/are-you-sure-dialog.component.html","./src/app/shared/header/header.component.ts","./src/app/shared/header/header.component.html","./src/app/shared/models/candidate.model.ts","./src/app/shared/models/corporateuser.model.ts","./src/app/shared/models/customTrackBy.ts","./src/app/shared/models/interfaces/scrollBlocker.ts","./src/app/shared/models/offer.ts","./src/app/shared/models/payslip-options.model.ts","./src/app/shared/models/retirement-state.ts","./src/app/shared/models/user.model.ts","./src/app/shared/success-message/success-message.component.ts","./src/app/shared/success-message/success-message.component.html","./src/environments/.env.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '', loadChildren: () => import('./components/auth/auth.module')\r\n .then(m => m.AuthModule)\r\n },\r\n {\r\n path: 'landing', loadChildren: () => import('./components/landing/landing.module')\r\n .then(m => m.LandingModule)\r\n },\r\n {\r\n path: 'member', loadChildren: () => import('./components/resignations/savings/savings.module')\r\n .then(m => m.SavingsModule)\r\n },\r\n\r\n {\r\n path: 'corporate', loadChildren: () => import('./components/onboarding/users/corporate/corporate.module')\r\n .then(m => m.CorporateModule)\r\n }, \r\n {\r\n path: 'onboarding', loadChildren: () => import('./components/onboarding/onboarding.module')\r\n .then(m => m.OnboardingModule)\r\n }, \r\n \r\n ];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthenticationService } from './services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'AF-Digital-Experience-UI';\r\n constructor() {}\r\n\r\n public ngOnInit(): void {}\r\n}\r\n","\r\n

Please wait while we confirm your information

\r\n
\r\n\r\n\r\n\r\n\r\n","import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { ApplicationRef, CUSTOM_ELEMENTS_SCHEMA, DoBootstrap, NgModule, LOCALE_ID } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { AuthService } from './services/auth.service';\r\nimport { AuthenticationService } from './services/authentication.service';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AppHeaderModule } from './components/shared-ui/app-header/app-header.module';\r\nimport { CustomSharedModule } from './shared/custom-shared.module';\r\nimport { DashboardModule } from './components/resignations/dashboard/dashboard.module';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CommonModule, DatePipe, DecimalPipe, registerLocaleData } from '@angular/common';\r\nimport { ErrorPopupComponent } from './shared/error-popup/error-popup.component';\r\nimport { SavingsModule } from './components/resignations/savings/savings.module';\r\nimport { ConnectAdviserModule } from './components/resignations/connect-adviser';\r\nimport { InformService } from './components/shared-ui/connect-advice/connect-advice.component';\r\n\r\nimport { CorporateModule } from './components/onboarding/users/corporate/corporate.module';\r\nimport { SharedUiModule } from './components/shared-ui/shared-ui.module';\r\nimport localeFr from '@angular/common/locales/fr';\r\nimport { OnboardingModule } from './components/onboarding/onboarding.module';\r\nimport { SearchPipe } from './components/onboarding/hr-operations/new-joiners/new-joiners-list/search.pipe';\r\nimport { CandidateCacheService } from './components/onboarding/candidate/candidate-cache.service';\r\nimport { CandidateService } from './services/candidate.service';\r\nimport { TokenInterceptor } from './core/interceptors/token.interceptor';\r\nimport { TokenInterceptorService } from './interceptors/token-interceptor.service';\r\nimport { InfoPopupComponent } from './components/onboarding/users/shared/info-popup/info-popup.component';\r\n// import { BulkUserCreateComponent } from './bulk-user-create/bulk-user-create.component';\r\n// import { } from './';\r\n\r\n\r\nregisterLocaleData(localeFr);\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n ErrorPopupComponent,\r\n InfoPopupComponent,\r\n // BulkUserCreateComponent\r\n //SearchPipe\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n AppHeaderModule,\r\n CustomSharedModule,\r\n DashboardModule,\r\n //LeaversDashboardModule,\r\n NgxSpinnerModule,\r\n FormsModule,\r\n CalendarModule,\r\n SavingsModule,\r\n ConnectAdviserModule,\r\n CommonModule,\r\n CorporateModule,\r\n SharedUiModule,\r\n OnboardingModule,\r\n HttpClientModule\r\n ],\r\n exports:[NgxSpinnerModule],\r\n providers: [\r\n AuthenticationService,\r\n AuthService,\r\n DatePipe,\r\n { provide: DecimalPipe, useValue: 'fr-FR'},\r\n CandidateService,\r\n {provide :HTTP_INTERCEPTORS, useClass:TokenInterceptorService, multi:true}\r\n //SearchPipe\r\n ],\r\n bootstrap: [AppComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class AppModule{ \r\n constructor(private authService: AuthService) {\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\nimport { ExploreOfferService } from \"../../../../services/explore-offer.service\";\r\nimport { ContentService } from \"../../../../services/content.service\";\r\nimport { GetCandidateByIdModel } from \"../../../../services/service_models/candidate-models/get-candidate-by-id.model\";\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\nimport { LoaderService } from \"../../../../services/loader.service\";\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-begin',\r\n templateUrl: './begin.component.html',\r\n styleUrls: ['./begin.component.scss']\r\n})\r\nexport class BeginComponent implements OnInit, OnDestroy {\r\n private _subscriptions = new Array();\r\n candidate: GetCandidateByIdModel;\r\n\r\n constructor(private _routingService: RoutingService,\r\n private _exploreService: ExploreOfferService,\r\n private _contentService: ContentService,\r\n private _candidateCache: CandidateCacheService,\r\n private _loader: LoaderService) { }\r\n\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this.candidate = this._candidateCache.currentCandidate;\r\n\r\n if (this._exploreService.offer.statusId == 5) {\r\n this._routingService.userLogin();\r\n } else if (this._exploreService.offer.statusId == 7) {\r\n this._routingService.candidateOfferExpired();\r\n } else {\r\n this._routingService.candidateIntro();\r\n }\r\n\r\n\r\n\r\n if (!localStorage.getItem('contentSet')) {\r\n this._contentService.cacheDropdownOptions();\r\n }\r\n\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { GetCandidateByIdModel } from '../../../services/service_models/candidate-models/get-candidate-by-id.model';\r\nimport { GetOfferByIdModel } from '../../../services/service_models/offer_models/get-offer-by-id.model';\r\nimport { GetCorporateById } from '../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { CandidateService } from '../../../services/candidate.service';\r\nimport { OfferService } from '../../../services/offer.service';\r\nimport { CorporateService } from '../../../services/corporate.service';\r\nimport { ErrorService } from '../../../services/error.service';\r\nimport { LoaderService } from '../../../services/loader.service';\r\nimport { BehaviorSubject, Subscription, interval } from 'rxjs';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport {User} from \"oidc-client\";\r\n\r\n@Injectable()\r\nexport class CandidateCacheService implements OnDestroy {\r\n protected _subscriptions = new Array();\r\n public currentCandidate: GetCandidateByIdModel;\r\n public currentOffer: GetOfferByIdModel;\r\n public currentCorporate: GetCorporateById;\r\n user:User = null;\r\n\r\n protected role = 'candidate';\r\n protected maxCalls = 3;\r\n protected completedCalls = 0;\r\n public dataCached = new BehaviorSubject(false);\r\n\r\n constructor(protected _auth: AuthenticationService,\r\n protected _candidateService: CandidateService,\r\n protected _offerService: OfferService,\r\n protected _corporateService: CorporateService,\r\n protected _loader: LoaderService,\r\n protected _errorService: ErrorService) {\r\n this.user = this._auth.getUser()\r\n if(this.user){\r\n this.setCache();\r\n }else{\r\n this.clearCache();\r\n }\r\n }\r\n\r\n\r\n setCache() {\r\n this.cacheCandidateData();\r\n this.cacheOfferData();\r\n this.cacheCorporateData();\r\n }\r\n\r\n cacheCandidateData() {\r\n const candidateId = this.user.profile['CandidateId'];\r\n if (candidateId) {\r\n this._loader.start();\r\n this._subscriptions.push(this._candidateService.getById(candidateId).subscribe((resp) => {\r\n this.currentCandidate = resp;\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n this.dataCached.next(true);\r\n }\r\n }, (error) => {\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n }\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to cache candidate data.');\r\n }));\r\n }\r\n }\r\n\r\n cacheOfferData() {\r\n const offerId = this.user.profile['OfferId'];\r\n if (offerId) {\r\n this._loader.start();\r\n this._subscriptions.push(this._offerService.getById(offerId).subscribe((resp) => {\r\n this.currentOffer = resp;\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n this.dataCached.next(true);\r\n }\r\n }, (error) => {\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n }\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to cache offer data.');\r\n }));\r\n }\r\n }\r\n\r\n cacheCorporateData() {\r\n const corpId = this.user.profile['CorporateId'];\r\n if (corpId) {\r\n this._loader.start();\r\n this._subscriptions.push(this._corporateService.getGroupDetailsById(corpId).subscribe((resp) => {\r\n this.currentCorporate = resp;\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n this.dataCached.next(true);\r\n }\r\n }, (error) => {\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n }\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to cache corporate data.');\r\n }));\r\n }\r\n }\r\n\r\n clearCache() {\r\n this.currentCandidate = null;\r\n this.currentOffer = null;\r\n this.currentCorporate = null;\r\n this.completedCalls = 0;\r\n this.dataCached.next(false);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { RoutingService } from \"../../../../../services/routing.service\";\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-accept-dialog',\r\n templateUrl: './accept-dialog.component.html',\r\n styleUrls: ['./accept-dialog.component.scss']\r\n})\r\nexport class AcceptDialogComponent {\r\n\r\n @Input() candidateId: string;\r\n\r\n constructor(private _authService: AuthService, private _routingService: RoutingService) { }\r\n\r\n onLogout() {\r\n this._authService.logout(false);\r\n }\r\n\r\n onGoToProfile() {\r\n this._routingService.candidateCreateProfile();\r\n }\r\n}\r\n","
\r\n \r\n\r\n

\r\n Congratulations!
\r\n Welcome to the team\r\n

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

\r\n Your offer acceptance is complete, you can go personalise your profile now\r\n and prepare for your first day or come back later.\r\n

\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, Output, EventEmitter, DoCheck } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-candidate-contact-details',\r\n templateUrl: './candidate-contact-details.component.html',\r\n styleUrls: ['./candidate-contact-details.component.scss']\r\n})\r\nexport class CandidateContactDetailsComponent implements OnInit, DoCheck {\r\n\r\n contactDetailsForm: FormGroup;\r\n @Input() contactDetails;\r\n @Output() changeContactDetails = new EventEmitter();\r\n\r\n constructor(private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n\r\n this.onCreateContactDetailsForm();\r\n }\r\n\r\n onCreateContactDetailsForm() {\r\n this.contactDetailsForm = this.formBuilder.group({\r\n email: new FormControl('', [Validators.required, Validators.email]),\r\n contactNumber: new FormControl('', [Validators.required])\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.contactDetailsForm.valid && this.contactDetailsForm.dirty) {\r\n this.contactDetailsForm.get('contactNumber').value.replace(/\\s/g, \"\");\r\n this.contactDetailsForm.get('email').value.replace(/\\s/g, \"\");\r\n this.contactDetails = this.contactDetailsForm.value;\r\n this.changeContactDetails.emit(this.contactDetails);\r\n this.contactDetailsForm.markAsPristine();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n Contact details\r\n

\r\n

\r\n Please confirm that we have your correct contact details.\r\n

\r\n\r\n
\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, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\r\nimport { DecisionDetails } from './models/decision-details.model';\r\nimport { OfferService } from \"../../../../services/offer.service\";\r\nimport { LoaderService } from \"../../../../services/loader.service\";\r\nimport { ErrorService } from \"../../../../services/error.service\";\r\nimport { CandidateMapper } from \"../../../../services/model-mappers/candidate-mapper.service\";\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\nimport { RoutingService } from \"../../../../services/routing.service\";\r\nimport { Subscription } from 'rxjs';\r\nimport { ContactDetails } from './models/contact-details.model';\r\nimport { PersonalDetails } from './models/personal-details.model';\r\nimport { CandidateService } from \"../../../../services/candidate.service\";\r\n\r\n@Component({\r\n selector: 'app-candidate-decision-details',\r\n templateUrl: './candidate-decision-details.component.html',\r\n styleUrls: ['./candidate-decision-details.component.scss']\r\n})\r\nexport class CandidateDecisionDetailsComponent implements OnInit, OnDestroy {\r\n @Input() contactDetails;\r\n @Output() changeContactDetails = new EventEmitter();\r\n @Input() personalDetails;\r\n @Output() changPersonalDetails = new EventEmitter();\r\n\r\n private _subscriptions = new Array();\r\n showAcceptDialog: boolean;\r\n isDetailsChanged: boolean;\r\n candidateId: string;\r\n model: DecisionDetails = {\r\n contactDetails: {\r\n email: null,\r\n contactNumber: null\r\n },\r\n personalDetails: {\r\n titleId: null,\r\n firstName: null,\r\n lastname: null,\r\n nationalityId: null,\r\n identityTypeId: null,\r\n identityValue: null,\r\n genderId: null,\r\n }\r\n };\r\n\r\n constructor(private _routingService: RoutingService,\r\n private _offerService: OfferService,\r\n private _loader: LoaderService,\r\n private _errorService: ErrorService,\r\n private _candidateCache: CandidateCacheService,\r\n private _candidateService: CandidateService,\r\n private _candidateMapper: CandidateMapper) { }\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this.model = this._candidateMapper.mapCandidateProfile(this._candidateCache.currentCandidate);\r\n this.candidateId = this._candidateCache.currentCandidate.id;\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n showAccept() {\r\n this.showAcceptDialog = true;\r\n }\r\n\r\n onChangeContactDetails(contactDetail: ContactDetails) {\r\n this.model.contactDetails = contactDetail;\r\n this.isDetailsChanged = true;\r\n }\r\n\r\n onChangePersonalDetails(personalDetails: PersonalDetails) {\r\n this.model.personalDetails = personalDetails;\r\n this.isDetailsChanged = true;\r\n }\r\n\r\n onCompleteAcceptance() {\r\n this._loader.start();\r\n\r\n if (this.isDetailsChanged) {\r\n this._subscriptions.push(this._candidateService.updateDetail(this.model).subscribe((resp) => {\r\n this._subscriptions.push(this._offerService.acceptOffer().subscribe((resp) => {\r\n this._loader.stop();\r\n this.showAccept();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while accepting the offer.');\r\n }));\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while updating details');\r\n }));\r\n } else {\r\n this._subscriptions.push(this._offerService.acceptOffer().subscribe((resp) => {\r\n this._loader.stop();\r\n this.showAccept();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while accepting the offer.');\r\n }));\r\n }\r\n }\r\n\r\n onBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

We’re so happy you’ve accepted!

\r\n

\r\n To process the acceptance of your offer, please confirm your basic\r\n details and complete the process.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CandidateDecisionDetailsComponent } from './candidate-decision-details.component';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { CandidateContactDetailsComponent } from './candidate-contact-details/candidate-contact-details.component';\r\nimport { CandidatePersonalDetailsComponent } from './candidate-personal-details/candidate-personal-details.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CandidateSharedModule } from '../shared/candidate-shared.module';\r\nimport { AcceptDialogComponent } from './accept-dialog/accept-dialog.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n CandidateSharedModule,\r\n ],\r\n declarations: [\r\n CandidateDecisionDetailsComponent,\r\n CandidateContactDetailsComponent,\r\n CandidatePersonalDetailsComponent,\r\n AcceptDialogComponent\r\n ]\r\n})\r\nexport class CandidateDecisionDetailsModule { }\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, DoCheck } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { SelectItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-candidate-personal-details',\r\n templateUrl: './candidate-personal-details.component.html',\r\n styleUrls: ['./candidate-personal-details.component.scss']\r\n})\r\nexport class CandidatePersonalDetailsComponent implements OnInit, DoCheck {\r\n\r\n personalDetailsForm: FormGroup;\r\n titles: SelectItem[];\r\n nationalities: SelectItem[];\r\n idDocumentTypes: SelectItem[];\r\n genders: SelectItem[];\r\n @Input() personalDetails;\r\n @Output() changePersonalDetails = new EventEmitter();\r\n\r\n constructor(private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n this.nationalities = JSON.parse(localStorage.getItem('nationality'));\r\n this.titles = JSON.parse(localStorage.getItem('titles'));\r\n this.idDocumentTypes = JSON.parse(localStorage.getItem('identityTypes'));\r\n this.genders = JSON.parse(localStorage.getItem('genders'));\r\n\r\n this.onCreatePersonalDetailsForm();\r\n }\r\n\r\n onCreatePersonalDetailsForm() {\r\n this.personalDetailsForm = this.formBuilder.group({\r\n titleId: new FormControl('', [Validators.required]),\r\n firstName: new FormControl('', [Validators.required]),\r\n lastname: new FormControl('', [Validators.required]),\r\n nationalityId: new FormControl('', [Validators.required]),\r\n identityTypeId: new FormControl('', [Validators.required]),\r\n identityValue: new FormControl('', [Validators.required]),\r\n genderId: new FormControl('', [Validators.required])\r\n });\r\n }\r\n\r\n ngDoCheck() {\r\n if (this.personalDetailsForm.valid && this.personalDetailsForm.dirty) {\r\n this.personalDetails = this.personalDetailsForm.value;\r\n this.changePersonalDetails.emit(this.personalDetails);\r\n this.personalDetailsForm.markAsPristine();\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n Personal details\r\n

\r\n

\r\n Please confirm that we have your correct personal details.\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","export const titles = [\r\n { label: 'Mr', value: 1 },\r\n { label: 'Ms', value: 2 },\r\n { label: 'Mrs', value: 3 }\r\n];\r\n\r\nexport const nationalities = [\r\n { label: 'South African', value: 1 },\r\n { label: 'test', value: 2 }\r\n];\r\n\r\n\r\nexport const idDocumentTypes = [\r\n { label: 'RSA ID', value: 1 },\r\n { label: 'test', value: 2 }\r\n];\r\n\r\nexport const genders = [\r\n { label: 'male', value: 1 },\r\n { label: 'female', value: 2 },\r\n { label: 'other', value: 3 }\r\n];\r\n\r\nexport const contactTypes = [\r\n { label: 'Email', value: 1 },\r\n { label: 'Cellphone', value: 2 },\r\n { label: 'WorkNo', value: 3 }\r\n];\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { InfoPopupService } from '../../../../../services/info-popup-service.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-offer-access-warning',\r\n templateUrl: './candidate-offer-access-warning.component.html',\r\n styleUrls: ['./candidate-offer-access-warning.component.scss']\r\n})\r\nexport class CandidateOfferAccessWarningComponent implements OnInit {\r\n\r\n imagePath: string = 'src/assets/icons/note_success_xlarge_white.png';\r\n popupMessage: string = 'Please check your email. Your new code should be there shortly.';\r\n\r\n constructor(private _infoPopup: InfoPopupService) {}\r\n\r\n ngOnInit() {\r\n this._infoPopup.openInfoPopup(this.popupMessage);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \"access\r\n
\r\n

New access code requested

\r\n
\r\n
\r\n\r\n\r\n","import { Component } from '@angular/core';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-offer-expired',\r\n templateUrl: './candidate-offer-expired.component.html',\r\n styleUrls: ['./candidate-offer-expired.component.scss']\r\n})\r\nexport class CandidateOfferExpiredComponent {\r\n\r\n constructor(private _routingService: RoutingService) {\r\n }\r\n\r\n onLogin() {\r\n this._routingService.candidateLogin();\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n

\r\n Offer expired\r\n

\r\n

\r\n Already accepted and looking for your profile?\r\n Log in here.\r\n

\r\n

\r\n If you're unsure about what’s happened contact your HR represensative.\r\n

\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { InfoPopupService } from '../../../../../services/info-popup-service.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-welcome-verify-warning',\r\n templateUrl: './candidate-welcome-verify-warning.component.html',\r\n styleUrls: ['./candidate-welcome-verify-warning.component.scss']\r\n})\r\n\r\nexport class CandidateWelcomeVerifyWarningComponent implements OnInit {\r\n\r\n imagePath: string = 'src/assets/icons/note_success_xlarge_white.png';\r\n popupMessage: string = 'Please make sure you’ve entered the ID correctly or reach out to your HR representative for more help.'\r\n\r\n constructor(private _infoPopup: InfoPopupService) {}\r\n\r\n ngOnInit() {\r\n this._infoPopup.openInfoPopup(this.popupMessage);\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \"access\r\n
\r\n

No pending offers for this ID

\r\n \r\n
\r\n
\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomSharedModule } from '../../../../../shared/custom-shared.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CustomSharedModule,\r\n ReactiveFormsModule\r\n ],\r\n declarations: [\r\n ]\r\n})\r\nexport class CandidatePreLoginModule { }\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CustomSharedModule } from '../../../shared/custom-shared.module';\r\nimport { CandidateSharedModule } from './shared/candidate-shared.module';\r\nimport { ReviewOfferModule } from './review-offer/review-offer.module';\r\nimport { ExploreOfferModule } from './explore-offer/explore-offer.module';\r\nimport { FinaliseComponent } from './finalise/finalise.component';\r\nimport { CandidateDecisionDetailsModule } from './candidate-decision-details/candidate-decision-details.module';\r\nimport { CandidateCacheService } from './candidate-cache.service';\r\nimport { InfoManagementService } from './info-management.service';\r\n//import { AuthCandidateService } from '../../../core/authCandidate.service';\r\nimport { ReviewOfferComponent } from './review-offer/review-offer.component';\r\nimport { CandidateDecisionDetailsComponent } from './candidate-decision-details/candidate-decision-details.component';\r\nimport { ExploreOfferComponent } from './explore-offer/explore-offer.component';\r\nimport { ContentService } from '../../../services/content.service';\r\nimport { BeginComponent } from './begin/begin.component';\r\nimport { LandingComponent } from './landing/landing.component';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CandidateProfileDetailsComponent } from './profile/candidate-profile-details/candidate-profile-details.component';\r\nimport { CandidateProfileLinkingComponent } from './profile/candidate-profile-linking/candidate-profile-linking.component';\r\nimport { CandidateProfileVerificationComponent } from './profile/candidate-profile-verification/candidate-profile-verification.component';\r\nimport { ProfileCandidateComponent } from './profile/profile.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CardModule } from 'primeng/card';\r\nimport { NotHappyDialogComponent } from './finalise/not-happy-dialog/not-happy-dialog.component';\r\nimport { DecisionBoxComponent } from './finalise/decision-box/decision-box.component';\r\nimport { QueriesSentDialogComponent } from './finalise/queries-sent-dialog/queries-sent-dialog.component';\r\nimport { PabeSummaryComponent } from './explore-offer/offer-summary/pabe-summary/pabe-summary.component';\r\nimport { OfferSummaryComponent } from './review-offer/offer-summary/offer-summary.component';\r\nimport { CandidatePreLoginModule } from './candidate-login/login/login.module';\r\nimport { CandidateOfferAccessWarningComponent } from './candidate-login/candidate-offer-access-warning/candidate-offer-access-warning.component';\r\nimport { CandidatePreLoginComponent } from './candidate-login/login/login.component';\r\n//import { CandidateWelcomeLoginComponent } from './candidate-login/candidate-welcome-login/candidate-welcome-login.component';\r\nimport { CandidateWelcomeVerifyWarningComponent } from './candidate-login/candidate-welcome-verify-warning/candidate-welcome-verify-warning.component';\r\nimport { CandidateOfferExpiredComponent } from './candidate-login/candidate-offer-expired/candidate-offer-expired.component';\r\nimport { CandidateLoginFooterComponent } from './candidate-login/candidate-login-footer/candidate-login-footer.component';\r\nimport { DetailsAndAcceptComponent } from './details-and-accept/details-and-accept.component';\r\nimport { StepOneComponent } from './details-and-accept/step-one/step-one.component';\r\nimport { StepTwoComponent } from './details-and-accept/step-two/step-two.component';\r\nimport { StepThreeComponent } from './details-and-accept/step-three/step-three.component';\r\nimport { StepFourComponent } from './details-and-accept/step-four/step-four.component';\r\nimport { StepFiveComponent } from './details-and-accept/step-five/step-five.component';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\n\r\n@NgModule({\r\n declarations: [\r\n BeginComponent,\r\n LandingComponent,\r\n ProfileCandidateComponent,\r\n CandidateProfileVerificationComponent,\r\n CandidateProfileDetailsComponent,\r\n CandidateProfileLinkingComponent,\r\n CandidateOfferAccessWarningComponent,\r\n //CandidatePreLoginComponent,\r\n //CandidateWelcomeLoginComponent,\r\n CandidateWelcomeVerifyWarningComponent,\r\n CandidateOfferExpiredComponent,\r\n //CandidateLoginFooterComponent,\r\n NotHappyDialogComponent,\r\n DecisionBoxComponent,\r\n QueriesSentDialogComponent,\r\n FinaliseComponent,\r\n //PabeSummaryComponent,\r\n OfferSummaryComponent,\r\n DetailsAndAcceptComponent,\r\n StepOneComponent,\r\n StepTwoComponent,\r\n StepThreeComponent,\r\n StepFourComponent,\r\n StepFiveComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n BrowserModule,\r\n CustomSharedModule,\r\n CandidateSharedModule,\r\n ReviewOfferModule,\r\n ExploreOfferModule,\r\n //FinaliseModule,\r\n CandidatePreLoginModule,\r\n CandidateDecisionDetailsModule,\r\n RouterModule,\r\n InputTextModule,\r\n InputSwitchModule,\r\n DropdownModule,\r\n //CardModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n CandidateOfferAccessWarningComponent,\r\n //CandidateWelcomeLoginComponent,\r\n //CandidatePreLoginComponent,\r\n CandidateWelcomeVerifyWarningComponent,\r\n CandidateOfferExpiredComponent,\r\n //CandidateLoginFooterComponent,\r\n CandidateSharedModule,\r\n ReviewOfferModule,\r\n ExploreOfferModule,\r\n //FinaliseModule,\r\n CandidateDecisionDetailsModule,\r\n ],\r\n providers: [\r\n CandidateCacheService,\r\n InfoManagementService,\r\n //AuthCandidateService\r\n ],\r\n // entryComponents:[\r\n // CandidatePreLoginComponent,\r\n // CandidateWelcomeLoginComponent\r\n // ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class CandidateModule {\r\n constructor(private _cache: CandidateCacheService, private _contentService: ContentService) {\r\n this._cache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this._setCorporateStyles();\r\n }\r\n });\r\n }\r\n\r\n private _setCorporateStyles() {\r\n if (this._cache.currentCorporate &&\r\n this._cache.currentCorporate.headerLogo &&\r\n this._cache.currentCorporate.headerLogo.url) {\r\n\r\n this._contentService.currentHeaderLogoUrl = this._cache.currentCorporate.headerLogo.url;\r\n\r\n if (this._cache.currentCorporate.primaryColour) {\r\n this.global(this._cache.currentCorporate.primaryColour);\r\n }\r\n } else {\r\n this._setDefaultLogo();\r\n }\r\n }\r\n\r\n private _setDefaultLogo() {\r\n this._contentService.currentHeaderLogoUrl = '/content/dam/memberonboarding/Logo-AFBR.png';\r\n }\r\n\r\n private global(stylesheet: string) {\r\n const root = document.querySelector('app-root') as HTMLElement;\r\n root.style.setProperty('--primaryOrange', stylesheet);\r\n }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { ScrollBlocker } from '../../../../shared/models/interfaces/scrollBlocker';\r\n\r\n\r\n@Component({\r\n selector: 'app-coach-info',\r\n templateUrl: './coach-info.component.html',\r\n styleUrls: [\r\n '../explore-offer/pabe-intro/pabe-intro.component.scss',\r\n './coach-info.component.scss'\r\n ]\r\n})\r\nexport class CoachInfoComponent extends ScrollBlocker implements OnInit {\r\n\r\n @Input() step: number;\r\n @Input() candidateName: string;\r\n @Output() next = new EventEmitter();\r\n\r\n ngOnInit() {\r\n if (this.step == 0) {\r\n this._blockScroll();\r\n }\r\n }\r\n\r\n onNext() {\r\n this._unblockScroll();\r\n this.next.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

Keep an eye out for the coach

\r\n

\r\n The coach will be present throughout this exploration, giving \r\n you pointers and support as on the right.\r\n

\r\n

\r\n Sometimes the coach might have something vital to say and will \r\n have to be dismissed before you can continue.\r\n

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

Hello {{candidateName}}

\r\n

\r\n When you’ve finished exploring the earnings \r\n section, I‘ll reveal your monthly summary.\r\n

\r\n

\r\n Look out for how your decisions might affect \r\n your estimated take-home pay.\r\n

\r\n

-The coach

\r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { ContentService } from '../../../../services/content.service';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\nimport { OfferService } from '../../../../services/offer.service';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { StoreService } from '../../../../services/storeService';\r\n\r\n@Component({\r\n selector: 'app-details-and-accept',\r\n templateUrl: './details-and-accept.component.html',\r\n styleUrls: ['./details-and-accept.component.scss']\r\n})\r\nexport class DetailsAndAcceptComponent implements OnInit {\r\n\r\n step = 0;\r\n\r\n fullDetails; // : FullUserDetails;\r\n\r\n details1; // : any;\r\n details2; // : any;\r\n details3; // : any;\r\n details4; // : any;\r\n details5; // : any;\r\n\r\n constructor(private _contentService: ContentService,\r\n private _routingService: RoutingService,\r\n private _errorService: ErrorService,\r\n private _offerService: OfferService,\r\n private _storeService: StoreService) { }\r\n\r\n ngOnInit() {\r\n this.initDetails();\r\n }\r\n\r\n\r\n initDetails() {\r\n // const offerId = sessionStorage.getItem('offerId');\r\n // this._offerService.getById(offerId).subscribe((offer) => {\r\n // this.initStep1(offer);\r\n // this.initStep2(offer);\r\n // this.initStep3(offer);\r\n // this.step = 1;\r\n // }, (error) => {\r\n // this._errorService.openErrorPopup('An error occured!');\r\n // });\r\n }\r\n\r\n\r\n onPreviousStep() {\r\n if (this.step > 1) {\r\n this.step--;\r\n }\r\n }\r\n\r\n onNextStep(formData: any) {\r\n if (this.step < 5) {\r\n this.parseFormData(formData);\r\n this.step++;\r\n }\r\n }\r\n\r\n onDone(formData: any) {\r\n this.parseFormData(formData);\r\n this.combineFormData();\r\n // TODO send fullDetails to the service\r\n this._routingService.candidateOfferAccepted();\r\n }\r\n\r\n private parseFormData(formData: any) {\r\n if (this.step === 1) {\r\n this.details1 = formData;\r\n } else if (this.step === 2) {\r\n this.details2 = formData;\r\n } else if (this.step === 3) {\r\n this.details3 = formData;\r\n } else if (this.step === 4) {\r\n this.details4 = formData;\r\n } else {\r\n this.details5 = formData;\r\n }\r\n }\r\n\r\n private combineFormData() {\r\n\r\n this.fullDetails = {\r\n title: this.details1.title,\r\n name: this.details1.name,\r\n surname: this.details1.surname,\r\n nationality: this.details1.nationality,\r\n identityNumber: this.details1.identityNumber,\r\n passportNumber: this.details1.passportNumber,\r\n\r\n gender: this.details2.ethnicity,\r\n ethnicity: this.details2.ethnicity,\r\n taxReferenceNumber: this.details2.taxReferenceNumber,\r\n driversLicense: this.details2.driversLicense,\r\n disability: this.details2.disability,\r\n disabilityDescription: this.details2.disabilityDescription,\r\n\r\n emails: this.details3.emails,\r\n phoneNumbers: this.details3.phoneNumbers,\r\n\r\n streetNumber: this.details4.streetNumber,\r\n streetName: this.details4.streetName,\r\n complexNumber: this.details4.complexNumber,\r\n complexName: this.details4.complexName,\r\n country: this.details4.country,\r\n city: this.details4.city,\r\n postalCode: this.details4.postalCode,\r\n\r\n hasOwnBankAccount: this.details5.hasOwnBankAccount,\r\n bankName: this.details5.bankName,\r\n branchCode: this.details5.branchCode,\r\n accountHolderName: this.details5.accountHolderName,\r\n accountType: this.details5.accountType,\r\n accountNumber: this.details5.accountNumber\r\n };\r\n }\r\n\r\n private initStep1(offer: any) {\r\n this.details1 = {\r\n title: null,\r\n name: offer.candidateFirstName,\r\n surname: offer.candidateLastName,\r\n nationality: offer.candidatePassportCountry != null ? offer.candidatePassportCountry : 'South Africa',\r\n identityNumber: offer.candidateIdNumber,\r\n passportNumber: offer.candidatePassportNumber\r\n };\r\n }\r\n\r\n private initStep2(offer: any) {\r\n const gender = JSON.parse(localStorage.getItem('genders')).filter(g => g.value == offer.candidateGenderId)[0].label;\r\n const race = JSON.parse(localStorage.getItem('races')).filter(g => g.value == offer.candidateRaceId)[0].label;\r\n\r\n this.details2 = {\r\n gender: gender,\r\n ethnicity: race,\r\n taxReferenceNumber: null,\r\n driversLicense: false,\r\n disability: offer.candidateDisability == null ? false : true,\r\n disabilityDescription: offer.candidateDisability\r\n };\r\n }\r\n\r\n private initStep3(offer) {\r\n const emails: string[] = [];\r\n const phoneNumbers: { type: string, value: string }[] = [];\r\n\r\n offer.candidateContactChannels.forEach(channel => {\r\n if (channel.type == 'email') {\r\n emails.push(channel.value);\r\n } else {\r\n phoneNumbers.push({\r\n type: channel.type,\r\n value: channel.value\r\n });\r\n }\r\n });\r\n\r\n this.details3 = {\r\n emails: emails,\r\n phoneNumbers: phoneNumbers,\r\n };\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n

We’re so happy you’ve accepted!

\r\n

Please confirm and complete your details below so that we’ll be ready for you on your first day.

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\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, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-step-five',\r\n templateUrl: './step-five.component.html',\r\n styleUrls: [\r\n '../step-one/step-one.component.scss',\r\n '../step-two/step-two.component.scss',\r\n '../step-three/step-three.component.scss',\r\n './step-five.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StepFiveComponent implements OnInit {\r\n\r\n userDetails: any;\r\n @Output() previousStep = new EventEmitter();\r\n @Output() done = new EventEmitter();\r\n\r\n title = 'My banking details';\r\n bankingDetailsForm: FormGroup;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.bankingDetailsForm = new FormGroup({\r\n hasOwnBankAccount: new FormControl(false),\r\n bankName: new FormControl(null),\r\n branchCode: new FormControl(null),\r\n accountHolderName: new FormControl(null),\r\n accountType: new FormControl(null),\r\n accountNumber: new FormControl(null)\r\n });\r\n\r\n }\r\n\r\n onPreviousStep() {\r\n this.previousStep.emit();\r\n }\r\n\r\n onDone() {\r\n this.done.emit(this.bankingDetailsForm.value);\r\n }\r\n\r\n}\r\n","

{{ 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 \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\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, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-step-four',\r\n templateUrl: './step-four.component.html',\r\n styleUrls: [\r\n '../step-one/step-one.component.scss',\r\n '../step-two/step-two.component.scss',\r\n '../step-three/step-three.component.scss',\r\n './step-four.component.scss'\r\n ]\r\n})\r\nexport class StepFourComponent implements OnInit {\r\n\r\n userDetails: any;\r\n @Output() previousStep = new EventEmitter();\r\n @Output() nextStep = new EventEmitter();\r\n\r\n title = 'My contact details';\r\n contactDetailsForm: FormGroup;\r\n\r\n\r\n constructor() {\r\n this.contactDetailsForm = new FormGroup({\r\n streetNumber: new FormControl(null),\r\n streetName: new FormControl(null),\r\n complexNumber: new FormControl(null),\r\n complexName: new FormControl(null),\r\n country: new FormControl(null),\r\n city: new FormControl(null),\r\n postalCode: new FormControl(null)\r\n });\r\n }\r\n\r\n ngOnInit() { }\r\n\r\n onPreviousStep() {\r\n this.previousStep.emit();\r\n }\r\n\r\n onNextStep() {\r\n this.nextStep.emit(this.contactDetailsForm.value);\r\n }\r\n\r\n}\r\n","

{{ 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 \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\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, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { SelectItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-step-one',\r\n templateUrl: './step-one.component.html',\r\n styleUrls: ['./step-one.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StepOneComponent implements OnInit {\r\n\r\n @Input() userDetails: any;\r\n @Output() nextStep = new EventEmitter();\r\n\r\n title = 'My personal details';\r\n personalDetailsForm: FormGroup;\r\n titlesArr: SelectItem[];\r\n\r\n constructor() {\r\n this.personalDetailsForm = new FormGroup({\r\n title: new FormControl(null, Validators.required),\r\n name: new FormControl(null, Validators.required),\r\n surname: new FormControl(null, Validators.required),\r\n nationality: new FormControl(null, Validators.required),\r\n identityNumber: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.titlesArr = [\r\n { label: 'Mr', value: 'Mr' },\r\n { label: 'Ms', value: 'Ms' },\r\n { label: 'Mrs', value: 'Mrs' }\r\n ];\r\n\r\n this.personalDetailsForm = new FormGroup({\r\n title: new FormControl(this.userDetails.title, Validators.required),\r\n name: new FormControl(this.userDetails.name, Validators.required),\r\n surname: new FormControl(this.userDetails.surname, Validators.required),\r\n nationality: new FormControl(this.userDetails.nationality, Validators.required),\r\n identityNumber: new FormControl(this.userDetails.identityNumber, Validators.required)\r\n });\r\n }\r\n\r\n onNextStep() {\r\n this.nextStep.emit(this.personalDetailsForm.value);\r\n }\r\n\r\n}\r\n","

{{ 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 \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\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, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { FormControl, Validators, FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-step-three',\r\n templateUrl: './step-three.component.html',\r\n styleUrls: [\r\n '../step-one/step-one.component.scss',\r\n '../step-two/step-two.component.scss',\r\n './step-three.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StepThreeComponent implements OnInit {\r\n\r\n @Input() userDetails: any;\r\n @Output() previousStep = new EventEmitter();\r\n @Output() nextStep = new EventEmitter();\r\n\r\n title = 'My contact details';\r\n contactDetailsForm: FormGroup;\r\n\r\n constructor() {\r\n this.contactDetailsForm = new FormGroup({\r\n email: new FormControl(null, [Validators.required, Validators.email]),\r\n numberType: new FormControl(null, Validators.required),\r\n contactNumber: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.contactDetailsForm = new FormGroup({\r\n email: new FormControl(null, [Validators.required, Validators.email]),\r\n numberType: new FormControl(null, Validators.required),\r\n contactNumber: new FormControl(null, Validators.required)\r\n });\r\n }\r\n\r\n onPreviousStep() {\r\n this.previousStep.emit();\r\n }\r\n\r\n onNextStep() {\r\n this.nextStep.emit(this.contactDetailsForm.value);\r\n }\r\n\r\n}\r\n\r\n","

{{ 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\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \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, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, Validators, FormControl } from '@angular/forms';\r\n\r\nimport { SelectItem } from 'primeng/api';\r\nimport { StoreService } from '../../../../../services/storeService';\r\n\r\n@Component({\r\n selector: 'app-step-two',\r\n templateUrl: './step-two.component.html',\r\n styleUrls: ['../step-one/step-one.component.scss', './step-two.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class StepTwoComponent implements OnInit {\r\n @Input() userDetails: any;\r\n @Output() previousStep = new EventEmitter();\r\n @Output() nextStep = new EventEmitter();\r\n\r\n title = 'My personal details';\r\n personalDetailsForm: FormGroup;\r\n genderArr: SelectItem[];\r\n ethnicityArr: SelectItem[];\r\n\r\n constructor(private _storeService: StoreService) {\r\n this.personalDetailsForm = new FormGroup({\r\n gender: new FormControl(null, Validators.required),\r\n ethnicity: new FormControl(null, Validators.required),\r\n taxReferenceNumber: new FormControl(null, Validators.required),\r\n driversLicense: new FormControl(false),\r\n disability: new FormControl(false),\r\n disabilityDescription: new FormControl(null)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.genderArr = JSON.parse(localStorage.getItem('genders'));\r\n this.ethnicityArr = JSON.parse(localStorage.getItem('races'));\r\n\r\n this.personalDetailsForm = new FormGroup({\r\n gender: new FormControl(this.userDetails.gender, Validators.required),\r\n ethnicity: new FormControl(this.userDetails.ethnicity, Validators.required),\r\n taxReferenceNumber: new FormControl(this.userDetails.taxReferenceNumber, Validators.required),\r\n driversLicense: new FormControl(this.userDetails.driversLicense),\r\n disability: new FormControl(this.userDetails.disability),\r\n disabilityDescription: new FormControl(this.userDetails.disabilityDescription)\r\n });\r\n }\r\n\r\n onPreviousStep() {\r\n this.previousStep.emit();\r\n }\r\n\r\n onNextStep() {\r\n this.nextStep.emit(this.personalDetailsForm.value);\r\n }\r\n\r\n}\r\n","

{{ 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
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \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, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../services/explore-offer.service';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { StoreService } from '../../../../services/storeService';\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { OfferService } from '../../../../services/offer.service';\r\nimport { InfoManagementService } from '../info-management.service';\r\n\r\n@Component({\r\n selector: \"app-explore-offer\",\r\n templateUrl: \"./explore-offer.component.html\",\r\n styleUrls: [\"./explore-offer.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExploreOfferComponent implements OnInit, OnDestroy {\r\n protected _subscriptions = new Array();\r\n displayContributionWarning: boolean;\r\n showIntro = false;\r\n showCoachIntro = false;\r\n step: number = 0;\r\n pageState: string = \"candidate\";\r\n candidateName: string;\r\n isPabeData: boolean = true;\r\n\r\n constructor(\r\n public exploreService: ExploreOfferService,\r\n protected _storeService: StoreService,\r\n protected _loader: LoaderService,\r\n protected _errorService: ErrorService,\r\n protected _candidateCache: CandidateCacheService,\r\n protected _offerService: OfferService,\r\n public infoManager: InfoManagementService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.showIntro = !this.infoManager.exploreOfferIntroClosed;\r\n\r\n // this._loader.start();\r\n // this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n // if (hasCache) {\r\n // const offerId = this._candidateCache.currentOffer.id;\r\n // if (offerId) {\r\n // this._subscriptions.push(this._offerService.getPabeSelection(offerId, this.isPabeData).subscribe((resp) => {\r\n // if (resp && resp.step) {\r\n // this.step = resp.step + 1;\r\n // this._loader.stop();\r\n // if (this.step >= 0 && this.step < 2 && !this.showIntro) {\r\n // this.showIntro = true;\r\n // }\r\n // }\r\n // }, () => {\r\n // this._loader.stop();\r\n // this._errorService.openErrorPopup('Failed to get PABE selection.');\r\n // }));\r\n // }\r\n // }\r\n // }));\r\n }\r\n\r\n onNextStep() {\r\n this.step++;\r\n }\r\n\r\n hideIntro() {\r\n this.showIntro = false;\r\n this.infoManager.exploreOfferIntroClosed = true;\r\n this.step++;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n=0\" [showInfo]=\"false\">\r\n\r\n\r\n\r\n\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { CardModule } from 'primeng/card';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { ExploreOfferComponent } from './explore-offer.component';\r\nimport { CustomSharedModule } from '../../../../shared/custom-shared.module';\r\nimport { CandidateSharedModule } from '../shared/candidate-shared.module';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CoachInfoComponent } from '../coach-info/coach-info.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { PabeIntroComponent } from './pabe-intro/pabe-intro.component';\r\nimport { AddExistingSavingsComponent } from './offer-summary/add-existing-savings/add-existing-savings.component';\r\nimport { ExploreOfferSummaryComponent } from './offer-summary/offer-summary.component';\r\nimport { PabeAdditionalBenefitsComponent } from './offer-summary/pabe-additional-benefits/pabe-additional-benefits.component';\r\nimport { PabeEarningsComponent } from './offer-summary/pabe-earnings/pabe-earnings.component';\r\nimport { PabeInsuranceComponent } from './offer-summary/pabe-insurance/pabe-insurance.component';\r\nimport { PabeMedicalAidComponent } from './offer-summary/pabe-medical-aid/pabe-medical-aid.component';\r\nimport { PabeRetirementComponent } from './offer-summary/pabe-retirement/pabe-retirement.component';\r\nimport { PabeSummaryComponent } from './offer-summary/pabe-summary/pabe-summary.component';\r\nimport { PabeTaxAndDeductionsComponent } from './offer-summary/pabe-tax-and-deductions/pabe-tax-and-deductions.component';\r\nimport { WellbeingCoachIntroductionComponent } from './offer-summary/wellbeing-coach-introduction/wellbeing-coach-introduction.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CoachInfoComponent,\r\n ExploreOfferComponent,\r\n PabeIntroComponent,\r\n ExploreOfferSummaryComponent,\r\n PabeEarningsComponent,\r\n WellbeingCoachIntroductionComponent,\r\n PabeRetirementComponent,\r\n PabeMedicalAidComponent,\r\n PabeInsuranceComponent,\r\n PabeAdditionalBenefitsComponent,\r\n PabeTaxAndDeductionsComponent,\r\n PabeSummaryComponent,\r\n AddExistingSavingsComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n BrowserModule,\r\n CustomSharedModule,\r\n CandidateSharedModule,\r\n AccordionModule,\r\n CarouselModule,\r\n InputTextModule,\r\n DropdownModule,\r\n InputSwitchModule,\r\n CardModule,\r\n TooltipModule,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class ExploreOfferModule { }\r\n","import { Component, ViewEncapsulation, Input, OnInit } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\n\r\n@Component({\r\n selector: 'app-add-existing-savings',\r\n templateUrl: './add-existing-savings.component.html',\r\n styleUrls: [\r\n './add-existing-savings.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AddExistingSavingsComponent {\r\n\r\n @Input() pageState: string;\r\n hideCoach: boolean;\r\n\r\n constructor(public exploreService: ExploreOfferService, private _calcService: PayslipCalculationsService) { }\r\n\r\n switchHasSavings() {\r\n if (this.exploreService.hasExistingSavings) {\r\n this.initSavings();\r\n } else {\r\n this.exploreService.selection.existingSavings = null;\r\n }\r\n }\r\n\r\n private initSavings() {\r\n this.exploreService.selection.existingSavings = [{\r\n value: null,\r\n sourceId: null,\r\n fund: null\r\n }];\r\n }\r\n\r\n\r\n onSavingsChanged() {\r\n this.exploreService.retirementState = this._calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n }\r\n\r\n getTotalSavings(): number {\r\n try {\r\n let total = 0;\r\n this.exploreService.selection.existingSavings.forEach(src => {\r\n total += src.value;\r\n });\r\n return total;\r\n } catch {\r\n return 0;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n\r\n

\r\n Well done! It’s great that you want to add your existing savings to your retirement\r\n projection. This is a crucial step towards optimising your retirement.\r\n

\r\n\r\n

-The coach

\r\n\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n I\r\n
\r\n \r\n \r\n
\r\n have existing retirement savings.\r\n
\r\n\r\n
\r\n
How much do you estimate to have in total existing savings?
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Total savings
\r\n
R{{ getTotalSavings() | number:'':'fr-FR' }}
\r\n
\r\n","import { Component, Input, ViewEncapsulation, Output, EventEmitter, DoCheck, OnDestroy } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../services/explore-offer.service';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { CandidateService } from '../../../../../services/candidate.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { PayslipCalculationsService } from '../../../../../services/payslip-calculations.service';\r\nimport { ScrollBlocker } from '../../../../../shared/models/interfaces/scrollBlocker';\r\nimport { OfferService } from '../../../../../services/offer.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: \"app-explore-offer-summary\",\r\n templateUrl: \"./offer-summary.component.html\",\r\n styleUrls: [\"./offer-summary.component.scss\"],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExploreOfferSummaryComponent extends ScrollBlocker\r\n implements DoCheck, OnDestroy {\r\n private _subscriptions = new Array();\r\n headerTitle = \"Explore your pay and benefits\";\r\n displayRetirementInfoBox: boolean;\r\n blur: boolean;\r\n candidatePortalPageState: string = \"candidate\";\r\n\r\n @Input() isConfirmAndSendOfferButtonClicked: boolean;\r\n @Input() isBackButtonClicked: boolean;\r\n @Input() displayContributionWarning: boolean;\r\n @Input() step: number;\r\n @Input() pageState: string;\r\n\r\n @Output() changeDisplayContributionWarning = new EventEmitter();\r\n @Output() confirmAndSendOfferEmitter = new EventEmitter();\r\n @Output() backToConfirmEmitter = new EventEmitter();\r\n @Output() nextStep = new EventEmitter();\r\n\r\n constructor(\r\n public exploreService: ExploreOfferService,\r\n private _calcService: PayslipCalculationsService,\r\n private _routingService: RoutingService,\r\n private _storage: StoreService,\r\n private _errorService: ErrorService,\r\n private _offerService: OfferService\r\n ) {\r\n super();\r\n }\r\n\r\n ngDoCheck() {\r\n this.changeDisplayContributionWarning.emit(this.displayContributionWarning);\r\n }\r\n\r\n onNextStep() {\r\n this._saveSelecton();\r\n this.step++;\r\n this.nextStep.emit();\r\n this._unblockScroll();\r\n }\r\n\r\n continue() {\r\n if (this.pageState === this.candidatePortalPageState) {\r\n this._saveSelecton();\r\n this._routingService.candidateFinalise();\r\n } else {\r\n this.isConfirmAndSendOfferButtonClicked = true;\r\n this.confirmAndSendOfferEmitter.emit(\r\n this.isConfirmAndSendOfferButtonClicked\r\n );\r\n }\r\n }\r\n\r\n private _saveSelecton() {\r\n const role = this._storage.getStoredData().profile['role'];\r\n if (role.toLowerCase() == \"candidate\") {\r\n const offerId = this.exploreService.offer.id;\r\n const selection = this.exploreService.selection;\r\n const isPabeData = true;\r\n\r\n this._subscriptions.push(\r\n this._offerService\r\n .savePabeSelection(offerId, selection, this.step, isPabeData)\r\n .subscribe(\r\n resp => {},\r\n error => {\r\n this._errorService.openErrorPopup(\"Failed to save selection.\");\r\n }\r\n )\r\n );\r\n }\r\n }\r\n\r\n onLowestRetirementContributionSelected() {\r\n this.displayContributionWarning = true;\r\n }\r\n\r\n hasBenefits(): boolean {\r\n if (this.exploreService.offer) {\r\n return (\r\n this._calcService.getCompanyAdditionalBenefits(\r\n this.exploreService.offer\r\n ) > 0\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n disableCoachIntro() {\r\n if (this.step == 1) {\r\n this.onNextStep();\r\n }\r\n }\r\n\r\n goBack() {\r\n this.backToConfirmEmitter.emit(true);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n My earnings\r\n \r\n \r\n \r\n
\r\n\r\n
1 || pageState === 'hr-user'\" class=\"section-header\" style=\"position: relative\">\r\n My well-being\r\n\r\n \r\n \r\n\r\n \r\n 2 || pageState === 'hr-user'\"\r\n [pageState]=\"pageState\"\r\n [isOpen]=\"step == 3\"\r\n (next)=\"onNextStep()\">\r\n \r\n \r\n\r\n 3 || pageState === 'hr-user'\"\r\n [pageState]=\"pageState\"\r\n [isOpen]=\"step == 4\"\r\n [medicalAid]=\"exploreService.selection.medicalAid\">\r\n \r\n \r\n\r\n 4 || pageState === 'hr-user'\"\r\n [pageState]=\"pageState\"\r\n [isOpen]=\"step == 5\"\r\n [insurance]=\"0\">\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
5 || pageState === 'hr-user'\" class=\"section-header\">\r\n Company additional benefits\r\n \r\n \r\n \r\n
\r\n\r\n
6 || pageState === 'hr-user'\" class=\"section-header\">\r\n My deductions\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n 1 || pageState === 'hr-user'\"\r\n (openRetirement)=\"step = 3\"\r\n [step]=\"step\">\r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\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, Input } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-pabe-additional-benefits',\r\n templateUrl: './pabe-additional-benefits.component.html',\r\n styleUrls: ['./pabe-additional-benefits.component.scss']\r\n})\r\nexport class PabeAdditionalBenefitsComponent {\r\n\r\n @Input() pageState: string;\r\n @Input() isOpen: boolean;\r\n @Input() payslipOptions: any;\r\n @Input() pensionableSalary: any;\r\n hideCoach: boolean;\r\n\r\n constructor(public exploreService: ExploreOfferService, private _calcService: PayslipCalculationsService, private _utilities: UtilitiesService) {}\r\n\r\n onSpouseChanged() {\r\n // TODO\r\n }\r\n\r\n calculateTotalBenefits(): number {\r\n if (this.exploreService.offer) {\r\n return this._utilities.roundToFifty(this._calcService.getCompanyAdditionalBenefits(this.exploreService.offer));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n

VIEW

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

\r\n
\r\n
\r\n \r\n Additional benefits\r\n \r\n
\r\n
\r\n R{{ calculateTotalBenefits() | number:'':'fr-FR' }}\r\n
\r\n
\r\n\r\n\r\n
\r\n

\r\n In addition to your well-being benefits, {{ exploreService.corpSettings.name }} also provides you with the\r\n benefits stated in this section.\r\n

\r\n

-The coach

\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
I will have the following additional benefits provided by {{ exploreService.corpSettings.name }}:
\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.financialPerks.details.buyShares.amount }}\r\n \r\n \r\n {{ exploreService.offer.offerData.perks.financialPerks.details.buyShares.percentage }}%\r\n \r\n towards a buy shares benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.financialPerks.details.savings.amount }}\r\n \r\n \r\n {{ exploreService.offer.offerData.perks.financialPerks.details.savings.percentage }}%\r\n \r\n towards a savings/investments benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.financialPerks.details.homeLoan.amount }}\r\n \r\n \r\n {{ exploreService.offer.offerData.perks.financialPerks.details.homeLoan.percentage }}%\r\n \r\n towards a home loan (pension backed) benefit\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.membershipPerks.details.gym.amount }}\r\n \r\n towards a gym benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.membershipPerks.details.clubs.amount }}\r\n \r\n towards a clubs benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.membershipPerks.details.social.amount }}\r\n \r\n towards a social benefit\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.communicationPerks.details.cellphone.amount }}\r\n \r\n towards a cellphone benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.communicationPerks.details.data.amount }}\r\n \r\n towards a data benefit\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.travelPerks.details.companyAllowance.amount }}\r\n \r\n towards a company allowance benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.travelPerks.details.companyCar.amount }}\r\n \r\n towards a company car benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.travelPerks.details.parking.amount }}\r\n \r\n towards a parking benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.travelPerks.details.travelAllowance.amount }}\r\n \r\n towards a travel allowance benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.travelPerks.details.vehicleAllowance.amount }}\r\n \r\n towards a vehicle allowance benefit\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.entertainmentPerks.details.entertainment.amount }}\r\n \r\n for entertainment\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.entertainmentPerks.details.meal.amount }}\r\n \r\n for meal vouchers\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.otherPerks.details.childcare.amount }}\r\n \r\n towards a childcare benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.otherPerks.details.dangerPay.amount }}\r\n \r\n towards a danger pay benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.otherPerks.details.charity.amount }}\r\n \r\n towards a charity benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.otherPerks.details.housing.amount }}\r\n \r\n towards a housing benefit\r\n
\r\n\r\n
\r\n \r\n R{{ exploreService.offer.offerData.perks.otherPerks.details.study.amount }}\r\n \r\n towards a study benefit\r\n
\r\n\r\n
\r\n
\r\n {{ perk.name }}\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Total additional benefits
\r\n
R{{ calculateTotalBenefits() | number:'':'fr-FR' }}
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n@Component({\r\n selector: 'app-pabe-earnings',\r\n templateUrl: './pabe-earnings.component.html',\r\n styleUrls: ['./pabe-earnings.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PabeEarningsComponent implements OnInit {\r\n @Input() isOpen: boolean;\r\n pensionableSalaryArray: Array<{ label: string, value: number }>;\r\n\r\n constructor(public exploreService: ExploreOfferService, private _calcService: PayslipCalculationsService, private _utilities: UtilitiesService) { }\r\n\r\n ngOnInit() {\r\n this.pensionableSalaryArray = this.exploreService.offer.offerData.earnings[0]\r\n .pensionPercentageOptions.map(x => ({ label: `${x}%`, value: x }));\r\n }\r\n\r\n onPensionableSalaryChange(event) {\r\n this.exploreService.selection.pensionableSalaryPercentage = event.value;\r\n this.exploreService.selection.insurance = this._calcService\r\n .recalculateInsurancesAmounts(this.exploreService.offer, this.exploreService.selection);\r\n }\r\n\r\n getTotalEarnings(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getEarnings(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getMonthlyCostToCompany(): number {\r\n if (this.exploreService.offer) {\r\n return this._utilities.roundToFifty(this.exploreService.offer.costToCompany / 12);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n hasAnyFinancialPerks(): boolean {\r\n if (this.exploreService.offer.offerData.earnings[0].hasSignOnBonus ||\r\n this.exploreService.offer.offerData.earnings[0].hasThirteenthCheque ||\r\n this.exploreService.offer.offerData.earnings[0].hasShares ||\r\n this.exploreService.offer.offerData.earnings[0].hasCommission ||\r\n this.exploreService.offer.offerData.earnings[0].hasProfitShare) {\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n

EDIT

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

\r\n
\r\n
\r\n \r\n Earnings\r\n \r\n
\r\n
\r\n R{{ getTotalEarnings() | number:'':'fr-FR' }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n

\r\n I will be paid a monthly amount of\r\n \r\n R{{ getMonthlyCostToCompany() | number:'':'fr-FR' }}\r\n \r\n .\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n of this will be my pensionable salary.\r\n
\r\n\r\n

I may also qualify for the following:\r\n \r\n \r\n \r\n

\r\n\r\n
\r\n
\r\n Sign-on bonus R{{ exploreService.offer.offerData.earnings[0].signOnBonus }}\r\n
\r\n\r\n
\r\n
13th cheque
\r\n
\r\n\r\n
\r\n
Performance bonus
\r\n
\r\n {{ exploreService.offer.offerData.earnings[0].performanceBonusNotes }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Shares\r\n \r\n R{{ exploreService.offer.offerData.earnings[0].shares.amount }}\r\n \r\n \r\n {{ exploreService.offer.offerData.earnings[0].shares.percentage }} %\r\n \r\n
\r\n
\r\n {{ exploreService.offer.offerData.earnings[0].shares.notes }}\r\n
\r\n
\r\n\r\n
\r\n
Comission
\r\n
\r\n {{exploreService.offer.offerData.earnings[0].commissionNotes}}\r\n
\r\n
\r\n\r\n
\r\n
Profit share
\r\n
\r\n {{ exploreService.offer.offerData.earnings[0].profitShareNotes }}\r\n
\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, Input, OnInit, ViewEncapsulation, AfterViewChecked } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-pabe-insurance',\r\n templateUrl: './pabe-insurance.component.html',\r\n styleUrls: ['./pabe-insurance.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PabeInsuranceComponent implements OnInit, AfterViewChecked {\r\n\r\n @Input() pageState: string;\r\n @Input() isOpen: boolean;\r\n @Input() insurance: any;\r\n\r\n hideCoach: boolean;\r\n tooltipText: string;\r\n tooltipPosition: string = 'right';\r\n\r\n lifeCoverMultipleOptions: { label: string, value: number}[];\r\n dreadDiseaseMultipleOptions: { label: string, value: number}[];\r\n disabilityLumpSumMultipleOptions: { label: string, value: number}[];\r\n disabilityIncomeProtectionMultipleOptions: { label: string, value: number}[];\r\n temporaryTotalDisabilityMultipleOptions: { label: string, value: number}[];\r\n funeralMultipleOptions: { label: string, value: number}[];\r\n spousalLifeCoverMultipleOptions: { label: string, value: number}[];\r\n spousalDreadDiseaseMultipleOptions: { label: string, value: number}[];\r\n spousalDisabilityLumpSumMultipleOptions: { label: string, value: number}[];\r\n\r\n constructor(public exploreService: ExploreOfferService, private _calcService: PayslipCalculationsService, private _utilities: UtilitiesService) {}\r\n\r\n ngOnInit() {\r\n this.initMultipleOptions();\r\n this.recalculateInsurance();\r\n const options = this.exploreService.offer.offerData.wellbeing.riskPackage.options;\r\n const lifeCover = options.spousalLifeCover.isEnabled ? 'Life cover' : null;\r\n const dreadDisease = options.spousalDreadDiseaseCover.isEnabled ? 'Dread disease cover' : null;\r\n const disabilityLumpSum = options.spousalDisabilityLumpSum.isEnabled ? 'Disability lump sum cover' : null;\r\n this.tooltipText = `Insurance cover for your spouce will include: ${lifeCover ? lifeCover : ''}${dreadDisease ? ', ' + dreadDisease : ''}${disabilityLumpSum ? ' and ' + disabilityLumpSum : ''}.`;\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.recalculateInsurance();\r\n }\r\n\r\n\r\n initMultipleOptions() {\r\n const riskOptions = this.exploreService.offer.offerData.wellbeing.riskPackage.options;\r\n\r\n if (riskOptions.lifeCover && riskOptions.lifeCover.multiple) {\r\n this.lifeCoverMultipleOptions = riskOptions.lifeCover.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.dreadDiseaseCover && riskOptions.dreadDiseaseCover.multiple) {\r\n this.dreadDiseaseMultipleOptions = riskOptions.dreadDiseaseCover.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.disabilityLumpSum && riskOptions.disabilityLumpSum.multiple) {\r\n this.disabilityLumpSumMultipleOptions = riskOptions.disabilityLumpSum.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.disabilityIncomeProtection && riskOptions.disabilityIncomeProtection.multiple) {\r\n this.disabilityIncomeProtectionMultipleOptions = riskOptions.disabilityIncomeProtection.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.temporaryTotalDisability && riskOptions.temporaryTotalDisability.multiple) {\r\n this.temporaryTotalDisabilityMultipleOptions = riskOptions.temporaryTotalDisability.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.funeral && riskOptions.funeral.multiple) {\r\n this.funeralMultipleOptions = riskOptions.funeral.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.spousalLifeCover && riskOptions.spousalLifeCover.multiple) {\r\n this.spousalLifeCoverMultipleOptions = riskOptions.spousalLifeCover.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n if (riskOptions.spousalDreadDiseaseCover && riskOptions.spousalDreadDiseaseCover.multiple) {\r\n this.spousalDreadDiseaseMultipleOptions = riskOptions.spousalDreadDiseaseCover.multiple\r\n .map(x => ({ label: `${x}X` , value: x}));\r\n }\r\n if (riskOptions.spousalDisabilityLumpSum.multiple && riskOptions.spousalDisabilityLumpSum.multiple) {\r\n this.spousalDisabilityLumpSumMultipleOptions = riskOptions.spousalDisabilityLumpSum.multiple\r\n .map(x => ({ label: `${x}X` , value: x}))\r\n .sort((x, y) => x.value - y.value );\r\n }\r\n }\r\n\r\n getTotal(): number {\r\n if (this.exploreService.selection) {\r\n try {\r\n const cost = this._calcService.getTotalInsuranceCost(this.exploreService.selection);\r\n return this._utilities.roundToFifty(cost.employerCost + cost.memberCost);\r\n } catch {\r\n return 0;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getMemberCost(): number {\r\n if (this.exploreService.selection) {\r\n try {\r\n const cost = this._calcService.getTotalInsuranceCost(this.exploreService.selection);\r\n return this._utilities.roundToFifty(cost.memberCost);\r\n } catch {\r\n return 0;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getEmployerCost(): number {\r\n if (this.exploreService.selection) {\r\n try {\r\n const cost = this._calcService.getTotalInsuranceCost(this.exploreService.selection);\r\n return this._utilities.roundToFifty(cost.employerCost);\r\n } catch {\r\n return 0;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getDropdownForMultiple(multiple: number[]) {\r\n const dropdownArray = multiple.map(x => ({ label: `${x}X` , value: x}));\r\n return dropdownArray;\r\n }\r\n\r\n getDropdownModel(insuranceName: string) {\r\n try {\r\n const memberInsurance = this.exploreService.selection.insurance.memberInsurances.filter(x => x.name == insuranceName)[0];\r\n\r\n if (!memberInsurance) {\r\n return this.exploreService.selection.insurance.spouseInsurances.filter(x => x.name == insuranceName)[0];\r\n }\r\n\r\n return memberInsurance;\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n swicthIsUsingSpouseInsurance(event: any) {\r\n const isUsingInsuranceForSpouse = event.value;\r\n\r\n if (isUsingInsuranceForSpouse) {\r\n this.exploreService.initSpouseInsurance();\r\n } else {\r\n this.exploreService.selection.insurance.spouseInsurances = null;\r\n }\r\n }\r\n\r\n isSpouseCoverEnabled(): boolean {\r\n if (this.exploreService.offer.offerData.wellbeing.riskPackage.options\r\n .spousalLifeCover.isEnabled) {\r\n\r\n return true;\r\n\r\n } else if (this.exploreService.offer.offerData.wellbeing.riskPackage.options\r\n .spousalDisabilityLumpSum.isEnabled) {\r\n\r\n return true;\r\n\r\n } else if (this.exploreService.offer.offerData.wellbeing.riskPackage.options\r\n .spousalDreadDiseaseCover.isEnabled) {\r\n\r\n return true;\r\n\r\n } else {\r\n\r\n return false;\r\n\r\n }\r\n }\r\n\r\n onMultipleChange(event: any, insuranceName: string): void {\r\n try {\r\n const multiple = event.value;\r\n const memberInsurance = this.exploreService.selection.insurance.memberInsurances.filter(x => x.name == insuranceName)[0];\r\n\r\n if (memberInsurance) {\r\n this.exploreService.selection.insurance.memberInsurances.filter(x => x.name == insuranceName)[0].multipliedBy = multiple;\r\n } else {\r\n this.exploreService.selection.insurance.spouseInsurances.filter(x => x.name == insuranceName)[0].multipliedBy = multiple;\r\n }\r\n\r\n this.recalculateInsurance();\r\n\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n recalculateInsurance() {\r\n this.exploreService.selection.insurance = this._calcService\r\n .recalculateInsurancesAmounts(this.exploreService.offer, this.exploreService.selection);\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n

EDIT

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

\r\n
\r\n
\r\n \r\n Insurance\r\n \r\n
\r\n
\r\n R{{ getTotal() | number:'':'fr-FR'}}\r\n
\r\n
\r\n\r\n\r\n
\r\n

\r\n You’re almost done with reviewing your well-being benefits!\r\n

\r\n

\r\n Insurance benefits are important, as they provide protection to you and your\r\n loved ones' after a life-changing event. Take some time to familiarise yourself\r\n with the insurance benefits at {{ exploreService.corpSettings.name }}.\r\n

\r\n

-The coach

\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
{{ exploreService.corpSettings.name }} will provide me with:
\r\n\r\n
\r\n
0 && getDropdownModel('life cover')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Life cover\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('dread disease cover')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Dread disease cover\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('disability lump sum')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Disability cover\r\n
\r\n\r\n
\r\n Funeral cover\r\n
0 && getDropdownModel('funeral')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('disability income protection')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Income protection\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('temporary total disability')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Temporary total disability\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n I\r\n
\r\n \r\n \r\n
\r\n need insurance cover for my spouse.\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('spousal life cover')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Spousal life cover\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('spousal dread disease cover')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Spousal dread disease cover\r\n
\r\n\r\n
\r\n
0 && getDropdownModel('spousal disability lump sum')\" style=\"display: inline-block\">\r\n \r\n \r\n
\r\n Spousal disability cover\r\n
\r\n\r\n
\r\n\r\n
\r\n I will be contributing\r\n R{{ getMemberCost() }}\r\n towards the insurance and\r\n
\r\n\r\n
\r\n {{ exploreService.corpSettings.name }} will be contributing\r\n R{{ getEmployerCost() }}\r\n to my insurance.\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Total insurance contribution
\r\n
R{{ getTotal() | number:'':'fr-FR' }}
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewEncapsulation, AfterViewChecked } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\nimport { Option } from '../../../../../../services/service_models/offer_models/get-offer-by-id.model';\r\n\r\n@Component({\r\n selector: 'app-pabe-medical-aid',\r\n templateUrl: './pabe-medical-aid.component.html',\r\n styleUrls: ['./pabe-medical-aid.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PabeMedicalAidComponent implements OnInit, AfterViewChecked {\r\n\r\n @Input() pageState: string;\r\n @Input() isOpen: boolean;\r\n @Input() medicalAid: any;\r\n hideCoach: boolean;\r\n showMedicalOff: boolean;\r\n hasDependants: boolean;\r\n\r\n medicalPlanOptions: Array<{ label: string, value: Option }>;\r\n gapCoverOptions: Array<{ label: string, value: Option }>;\r\n selectedMedicalPlan: Option;\r\n selectedGapCoverOption: Option;\r\n\r\n constructor(public exploreService: ExploreOfferService, public calcService: PayslipCalculationsService, private _utilities: UtilitiesService) { }\r\n\r\n ngOnInit() {\r\n this._initDropdownOptions();\r\n this._initSelection();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n }\r\n\r\n\r\n private _initDropdownOptions() {\r\n // const provName = this.exploreService.offer.offerData.wellbeing.medicalAid.planOptions[0].providerName;\r\n if (this.exploreService.offer && this.exploreService.offer.offerData &&\r\n this.exploreService.offer.offerData.wellbeing && this.exploreService.offer.offerData.wellbeing.medicalAid) {\r\n\r\n if (this.exploreService.offer.offerData.wellbeing.medicalAid.planOptions) {\r\n this.medicalPlanOptions = this.exploreService.offer.offerData.wellbeing.medicalAid.planOptions\r\n .filter(plan => plan.isSelected)\r\n .map(x => ({ label: x.providerName.toUpperCase() + \" - \" + x.name.toUpperCase(), value: x }));\r\n }\r\n// console.log(this.exploreService.offer.offerData.wellbeing.medicalAid.planOptions);\r\n if (this.exploreService.offer.offerData.wellbeing.medicalAid.gapCover &&\r\n this.exploreService.offer.offerData.wellbeing.medicalAid.gapCover.options) {\r\n this.gapCoverOptions = this.exploreService.offer.offerData.wellbeing.medicalAid.gapCover.options\r\n .filter(plan => plan.isSelected)\r\n .map(x => ({ label: x.providerName.toUpperCase() + \" - \" + x.name.toUpperCase(), value: x }));\r\n }\r\n }\r\n }\r\n\r\n private _initSelection() {\r\n if (this.exploreService.selection && this.exploreService.selection.medicalAid) {\r\n\r\n if (this.exploreService.selection.medicalAid.numberOfAdultDependants > 0 ||\r\n this.exploreService.selection.medicalAid.numberOfChildDependants > 0) {\r\n this.hasDependants = true;\r\n }\r\n\r\n if (this.exploreService.selection.medicalAid.medicalPlan) {\r\n this.selectedMedicalPlan = {\r\n isSelected: true,\r\n providerName: this.exploreService.selection.medicalAid.medicalPlan.providerName,\r\n name: this.exploreService.selection.medicalAid.medicalPlan.name,\r\n amount: this.exploreService.selection.medicalAid.medicalPlan.amount\r\n };\r\n } else {\r\n this.selectedMedicalPlan = this.medicalPlanOptions[0].value;\r\n }\r\n\r\n if (this.exploreService.selection.medicalAid.gapCoverOption) {\r\n this.selectedGapCoverOption = {\r\n isSelected: true,\r\n providerName: this.exploreService.selection.medicalAid.medicalPlan.providerName,\r\n name: this.exploreService.selection.medicalAid.gapCoverOption.name,\r\n amount: this.exploreService.selection.medicalAid.gapCoverOption.amount\r\n };\r\n } else {\r\n if (this.gapCoverOptions && this.gapCoverOptions[0]) {\r\n this.selectedGapCoverOption = this.gapCoverOptions[0].value;\r\n } else {\r\n this.selectedGapCoverOption = null;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n switchMedicalPlan(event: { value: Option }) {\r\n this.exploreService.selection.medicalAid.medicalPlan = {\r\n providerName: event.value.providerName,\r\n name: event.value.name,\r\n amount: event.value.amount\r\n };\r\n }\r\n\r\n switchGapCoverOption(event: { value: Option }) {\r\n this.exploreService.selection.medicalAid.gapCoverOption = {\r\n providerName: event.value.providerName,\r\n name: event.value.name,\r\n amount: event.value.amount\r\n };\r\n }\r\n\r\n\r\n calculateTotalMedicalAids(): number {\r\n if (this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getMedicalAid(this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getCompanyContribution(): { amount: number, percentage: number} {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n const result = this.calcService.getMedicalAidCompanyContribution(this.exploreService.offer, this.exploreService.selection);\r\n return {\r\n amount: this._utilities.roundToFifty(result.amount),\r\n percentage: result.percentage\r\n };\r\n } else {\r\n return { amount: 0, percentage: 0};\r\n }\r\n }\r\n\r\n getMemberContribution(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getMedicalAidMemberContribution(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n switchIsUsingMedicalAid(event) {\r\n if (event.value == false) {\r\n this.exploreService.selection.medicalAid.medicalPlan = null;\r\n } else {\r\n const initial = this.exploreService.getInitialMedicalAidPlan();\r\n\r\n this.selectedMedicalPlan = initial;\r\n this.exploreService.selection.medicalAid.medicalPlan = {\r\n providerName: initial.providerName,\r\n name: initial.name,\r\n amount: initial.amount\r\n };\r\n }\r\n }\r\n\r\n switchIsUsingGapCover(event) {\r\n if (event.value == false) {\r\n this.exploreService.selection.medicalAid.gapCoverOption = null;\r\n } else {\r\n const initial = this.exploreService.getInitialGapCoverOption();\r\n\r\n this.selectedGapCoverOption = initial;\r\n this.exploreService.selection.medicalAid.gapCoverOption = {\r\n providerName: initial.providerName,\r\n name: initial.name,\r\n amount: initial.amount\r\n };\r\n }\r\n }\r\n\r\n switchDependants(event) {\r\n if (event.value == false) {\r\n this.exploreService.selection.medicalAid.numberOfAdultDependants = 0;\r\n this.exploreService.selection.medicalAid.numberOfChildDependants = 0;\r\n }\r\n }\r\n\r\n getGapCoverAmount(): number {\r\n if (this.exploreService.selection &&\r\n this.exploreService.selection.medicalAid &&\r\n this.exploreService.selection.medicalAid.gapCoverOption &&\r\n this.exploreService.selection.medicalAid.gapCoverOption.amount) {\r\n return this._utilities.roundToFifty(this.exploreService.selection.medicalAid.gapCoverOption.amount);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n

EDIT

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

\r\n
\r\n
\r\n \r\n Medical aid\r\n \r\n
\r\n
\r\n R{{ calculateTotalMedicalAids() | number:'':'fr-FR'}}\r\n
\r\n
\r\n\r\n\r\n
\r\n

\r\n Now let’s look at your medical aid benefit. It’s important to choose a plan that\r\n not only suits your pocket, but also your and your loved ones’ health needs.\r\n

\r\n

\r\n Below you’ll find typical medical aid plans but take note that your final choice\r\n will only happen once you have accepted the offer.\r\n

\r\n

-The coach

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

\r\n You’ve indicated that you won’t be part of the medical aid provided by {{ exploreService.corpSettings.name }}.\r\n Please note that you’re required to be a member of a medical aid fund and that\r\n {{ exploreService.corpSettings.name }} will request proof of your membership.\r\n

\r\n

-The coach

\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n I\r\n
\r\n \r\n \r\n
\r\n be taking medical aid provided by the employer\r\n
\r\n\r\n
\r\n
\r\n and would like to be on a\r\n
\r\n \r\n \r\n
\r\n plan.\r\n
\r\n\r\n
\r\n This medical aid will be for\r\n
\r\n \r\n \r\n
\r\n .\r\n
\r\n\r\n
\r\n
\r\n
\r\n Adult dependants\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Child dependants\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
0\">\r\n I will be contributing\r\n R{{ getMemberContribution() | number:'':'fr-FR'}}\r\n towards the medical aid and\r\n
\r\n\r\n
0\">\r\n {{ exploreService.corpSettings.name }} will be contributing\r\n \r\n R{{ getCompanyContribution().amount | number:'':'fr-FR' }} ({{ getCompanyContribution().percentage }}%)\r\n \r\n of the selected medical aid.\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n I\r\n
\r\n \r\n \r\n
\r\n be taking gap cover at this time\r\n
\r\n\r\n
\r\n
\r\n and would like to be on a\r\n
\r\n \r\n \r\n
\r\n plan.\r\n
\r\n
\r\n I will be contributing\r\n R{{ getGapCoverAmount() | number:'':'fr-FR'}}\r\n towards gap cover.\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
Total medical aid contribution
\r\n
R{{ calculateTotalMedicalAids() | number:'':'fr-FR' }}
\r\n
\r\n\r\n
\r\n","import { Component, Output, EventEmitter, ViewEncapsulation, Input, OnInit } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n@Component({\r\n selector: 'app-pabe-retirement',\r\n templateUrl: './pabe-retirement.component.html',\r\n styleUrls: ['./pabe-retirement.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PabeRetirementComponent implements OnInit {\r\n\r\n @Input() pageState: string;\r\n @Input() isOpen: boolean;\r\n @Output() next = new EventEmitter();\r\n\r\n isAddindAdditionalVoluntaryContributions: boolean = true;\r\n hideCoach: boolean;\r\n showLowContributionWarning: boolean;\r\n\r\n\r\n constructor(public exploreService: ExploreOfferService, public calcService: PayslipCalculationsService, private _utilities: UtilitiesService) {}\r\n\r\n\r\n ngOnInit() {\r\n this.exploreService.retirementState = this.calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n }\r\n\r\n\r\n onRetirementOptionChanged(option: number, isEmployer: boolean) {\r\n if (isEmployer) {\r\n this.exploreService.selection.retirement.employerContribution = option;\r\n } else {\r\n this.exploreService.selection.retirement.memberContribution = option;\r\n }\r\n\r\n const memberOptions = this.exploreService.offer.offerData.wellbeing.retirementPackages[0].memberContributionPercentages;\r\n const memberMin: number = Math.min(...memberOptions);\r\n const memberSelected = this.exploreService.selection.retirement.memberContribution;\r\n\r\n const employerOptions = this.exploreService.offer.offerData.wellbeing.retirementPackages[0].employerContributionPercentages;\r\n const employerMin: number = Math.min(...employerOptions);\r\n const employerSelected = this.exploreService.selection.retirement.employerContribution;\r\n\r\n if (memberOptions && employerOptions) {\r\n if (memberSelected === memberMin && employerSelected == employerMin) {\r\n this.showLowContributionWarning = true;\r\n }\r\n } else if (memberOptions && !employerOptions) {\r\n if (memberSelected === memberMin) {\r\n this.showLowContributionWarning = true;\r\n }\r\n } else if (!memberOptions && employerOptions) {\r\n if (employerSelected == employerMin) {\r\n this.showLowContributionWarning = true;\r\n }\r\n }\r\n }\r\n\r\n switchVoluntaryContribution(event) {\r\n if (event.value == false) {\r\n this.exploreService.selection.retirement.voluntaryContribution = 0;\r\n } else {\r\n this.exploreService.selection.retirement.voluntaryContribution = this.exploreService.getDefaultVoluntaryContribution();\r\n }\r\n }\r\n\r\n getMemberContribution(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getMemberRetirementContribution(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getEmployerContribution(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getEmployerRetirementContribution(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getAdditionalVoluntaryContribution(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getVoluntaryRetirementContribution(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getTotalRetirements(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService.getTotalRetirementContribution(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getRetirementIncome(): number {\r\n if (this.exploreService.offer && this.exploreService.candidate && this.exploreService.selection && this.exploreService.retirementState) {\r\n return this._utilities.roundToFifty(this.calcService.getMontlyRetirementIncome(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection, this.exploreService.retirementState));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n onContinueEditing() {\r\n this.showLowContributionWarning = false;\r\n }\r\n\r\n onNext() {\r\n this.showLowContributionWarning = false;\r\n this.next.emit();\r\n }\r\n}\r\n","\r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n
\r\n

EDIT

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

\r\n
\r\n
\r\n \r\n Retirement\r\n \r\n
\r\n
\r\n R{{ getTotalRetirements() | number:'':'fr-FR' }}\r\n
\r\n
\r\n\r\n
\r\n

\r\n Let’s explore what percentage of your salary you would like to contribute towards\r\n your retirement every month. Saving towards retirement is the biggest\r\n investment you could make towards your future.\r\n

\r\n

\r\n Pay close attention to the impact your choice will have on your retirement\r\n projection on the right.\r\n

\r\n\r\n

-The coach

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

\r\n You have made choices that may result in you not being financially secure upon\r\n retirement. Consider increasing your contribution rate, selecting additional\r\n voluntary contributions and completing information for existing retirement savings\r\n to improve your retirement projection.\r\n

\r\n

\r\n Don’t despair if you are feeling overwhelmed, connect to advice for help.\r\n

\r\n\r\n

-The coach

\r\n\r\n \r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
I will be contributing\r\n \r\n R{{ getMemberContribution() | number:'':'fr-FR' }}\r\n ({{ exploreService.selection.retirement.memberContribution }}%)\r\n towards my retirement,\r\n
\r\n
resulting in an estimated income at retirement of R{{ getRetirementIncome() | number:'':'fr-FR' }}
\r\n
based on the percentage I select below.
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
{{ exploreService.corpSettings.name }} will be contributing\r\n \r\n R{{ getEmployerContribution() | number:'':'fr-FR'}}\r\n ({{ exploreService.selection.retirement.employerContribution }}%)\r\n \r\n
\r\n
to my retirement fund, based on the percentage I select below.
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n I\r\n
\r\n \r\n \r\n
\r\n be adding additional voluntary contributions at this time.\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n I will voluntary contribute additional\r\n \r\n R{{ getAdditionalVoluntaryContribution() | number:'':'fr-FR' }}\r\n ({{ exploreService.selection.retirement.voluntaryContribution }}%)\r\n to my retirement fund.\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Total retirement contribution
\r\n
R{{ getTotalRetirements() | number:'':'fr-FR' }}
\r\n
\r\n\r\n
\r\n\r\n","import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n@Component({\r\n selector: 'app-pabe-summary',\r\n templateUrl: './pabe-summary.component.html',\r\n styleUrls: ['./pabe-summary.component.scss', '../../explore-offer.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class PabeSummaryComponent {\r\n\r\n @Input() step: number;\r\n @Output() openRetirement = new EventEmitter();\r\n isCollapsed: boolean;\r\n\r\n constructor(public exploreService: ExploreOfferService,\r\n private _calcService: PayslipCalculationsService,\r\n private _utilities: UtilitiesService) { }\r\n\r\n\r\n onOpenRetirement() {\r\n this.openRetirement.emit();\r\n }\r\n\r\n getMonthlyCostToCompany(): number {\r\n return this._utilities.roundToFifty(this.exploreService.offer.costToCompany / 12);\r\n }\r\n\r\n calculateTotalBenefits(): number {\r\n if (this.exploreService.offer) {\r\n return this._utilities.roundToFifty(this._calcService.getCompanyAdditionalBenefits(this.exploreService.offer));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n calculateMyWellbeing(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getMyWellbeing(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n calculateCompanyWellbeing(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getCompanyWellbeing(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n calculateMyEarnings(): number {\r\n if (this.exploreService.offer && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getEarnings(this.exploreService.offer, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n calculateTotalDeductions(): number {\r\n if (this.exploreService.offer && this.exploreService.candidate && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getTotalDeductions(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n calculateTakeHomePay(): number {\r\n if (this.exploreService.offer && this.exploreService.candidate && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this._calcService.getTakeHomePay(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n
\r\n

Monthly summary

\r\n \r\n
\r\n
\r\n Cost to company\r\n \r\n R{{ getMonthlyCostToCompany() | number:'':'fr-FR' }}\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n Company: my well-being\r\n \r\n R{{ calculateCompanyWellbeing() | number:'':'fr-FR' }}\r\n \r\n
\r\n
0\" class=\"section-subheader\">\r\n Company: additional benefits\r\n \r\n R{{ calculateTotalBenefits() | number:'':'fr-FR' }}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n My earnings\r\n \r\n R{{ calculateMyEarnings() | number:'':'fr-FR' }}\r\n \r\n
\r\n
\r\n My well-being\r\n \r\n R{{ calculateMyWellbeing() | number:'':'fr-FR' }}\r\n \r\n
\r\n
\r\n My deductions\r\n \r\n R{{ calculateTotalDeductions() | number:'':'fr-FR' }}\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n\r\n Estimated
take-home pay
\r\n
\r\n \r\n R{{ calculateTakeHomePay() | number:'':'fr-FR' }}\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n\r\n 2\" \r\n (openRetirement)=\"onOpenRetirement()\">\r\n\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\nimport { PayslipCalculationsService } from '../../../../../../services/payslip-calculations.service';\r\nimport { UtilitiesService } from '../../../../../../services/utilities.service';\r\n\r\n@Component({\r\n selector: 'app-pabe-tax-and-deductions',\r\n templateUrl: './pabe-tax-and-deductions.component.html',\r\n styleUrls: ['./pabe-tax-and-deductions.component.scss']\r\n})\r\nexport class PabeTaxAndDeductionsComponent {\r\n\r\n @Input() pageState: string;\r\n @Input() isOpen: boolean;\r\n hideCoach: boolean;\r\n\r\n constructor(public exploreService: ExploreOfferService, public calcService: PayslipCalculationsService, private _utilities: UtilitiesService) {}\r\n\r\n getPaye(): number {\r\n if (this.exploreService.offer && this.exploreService.selection && this.exploreService.candidate) {\r\n return this._utilities.roundToFifty(this.calcService\r\n .getPayeTax(this.exploreService.offer, this.exploreService.selection, this.exploreService.candidate));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getUif(): number {\r\n if (this.exploreService.offer) {\r\n return this._utilities.roundToFifty(this.calcService.getUif(this.exploreService.offer));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getTotalDeductions(): number {\r\n if (this.exploreService.offer && this.exploreService.candidate && this.exploreService.selection) {\r\n return this._utilities.roundToFifty(this.calcService\r\n .getTotalDeductions(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection));\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n
\r\n

VIEW

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

\r\n
\r\n
\r\n \r\n Tax and deductions\r\n \r\n
\r\n
\r\n R{{ getTotalDeductions() | number:'':'fr-FR' }}\r\n
\r\n
\r\n\r\n\r\n
\r\n

\r\n Lastly, let’s take a look at your montly deductions. South African law requires you\r\n to contribute towards income tax and the Unemployment Insurance Fund (UIF).\r\n

\r\n

-The coach

\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n\r\n
R{{ getPaye() | number:'':'fr-FR' }} will be deducted for PAYE(Pay as you earn)
\r\n
R{{ getUif() | number:'':'fr-FR' }} will be deducted for UIF
\r\n
\r\n
\r\n R{{ sundry.amount | number:'':'fr-FR' }}\r\n {{ sundry.percentage }}%\r\n will be allocated for {{ sundry.notes }}\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
Total deductions
\r\n
R{{ getTotalDeductions() | number:'':'fr-FR' }}
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, Output, EventEmitter } from '@angular/core';\r\nimport { ExploreOfferService } from '../../../../../../services/explore-offer.service';\r\n\r\n@Component({\r\n selector: 'app-wellbeing-coach-introduction',\r\n templateUrl: './wellbeing-coach-introduction.component.html',\r\n styleUrls: ['./wellbeing-coach-introduction.component.scss']\r\n})\r\nexport class WellbeingCoachIntroductionComponent {\r\n\r\n @Output() next = new EventEmitter();\r\n\r\n constructor(public exploreService: ExploreOfferService) {}\r\n\r\n}\r\n","
\r\n \r\n

\r\n Now that you know what you’ll be earning, let’s introduce you to the well-being\r\n benefits which you and {{ exploreService.corpSettings.name }} will be contributing towards.\r\n

\r\n

\r\n Well-being benefits are very important to you and your loved ones, as they\r\n provide protection and financial security. At {{ exploreService.corpSettings.name }}, your well-being\r\n benefits include retirement, medical aid and insurance.\r\n

\r\n

-The coach

\r\n \r\n
\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { ScrollBlocker } from '../../../../../shared/models/interfaces/scrollBlocker';\r\n\r\n@Component({\r\n selector: 'app-pabe-intro',\r\n templateUrl: './pabe-intro.component.html',\r\n styleUrls: ['./pabe-intro.component.scss']\r\n})\r\nexport class PabeIntroComponent extends ScrollBlocker implements OnInit {\r\n\r\n @Input() showIntro: boolean;\r\n @Output() hide = new EventEmitter();\r\n\r\n ngOnInit() {\r\n if (this.showIntro) {\r\n this._blockScroll();\r\n }\r\n }\r\n\r\n onNext() {\r\n this._unblockScroll();\r\n this.hide.emit();\r\n }\r\n}\r\n","
\r\n\r\n
\r\n

\r\n Let’s explore a breakdown of the earnings \r\n and benefits you’ll receive by joining\r\n

\r\n\r\n

\r\n The numbers in this breakdown are estimates that allow you to \r\n explore and adjust but won’t dictate your final payslip after joining. \r\n

\r\n\r\n

\r\n Use this explorer to understand your benefits and the impact on your \r\n future. After each section, continue to the next and see how your \r\n summary changes if you make adjustments.\r\n

\r\n\r\n \r\n
\r\n\r\n
","import { Component, OnInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { PayslipCalculationsService } from '../../../../../services/payslip-calculations.service';\r\nimport { ExploreOfferService } from '../../../../../services/explore-offer.service';\r\nimport { UtilitiesService } from '../../../../../services/utilities.service';\r\n\r\n@Component({\r\n selector: 'app-retirement-estimations-box',\r\n templateUrl: './retirement-estimations-box.component.html',\r\n styleUrls: ['./retirement-estimations-box.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RetirementEstimationsBoxComponent implements OnInit {\r\n\r\n @Output() blur = new EventEmitter();\r\n @Output() openRetirement = new EventEmitter();\r\n offer = this.exploreService.offer;\r\n\r\n hideInfo: boolean;\r\n\r\n constructor(private _calcService: PayslipCalculationsService,\r\n private _utilities: UtilitiesService,\r\n public exploreService: ExploreOfferService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.blur.emit(true);\r\n this.exploreService.retirementState = this._calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n this.calculateRunOutAge();\r\n }\r\n\r\n onAddSavings() {\r\n if (!this.exploreService.selection.existingSavings || this.exploreService.selection.existingSavings.length < 1) {\r\n this.exploreService.selection.existingSavings = [{\r\n value: 0,\r\n sourceId: null,\r\n fund: null\r\n }];\r\n }\r\n this.exploreService.hasExistingSavings = true;\r\n this.openRetirement.emit();\r\n }\r\n\r\n calculateMontlyRetirementIncome(): number {\r\n return this._utilities\r\n .roundToFifty(this._calcService\r\n .getMontlyRetirementIncome(this.exploreService.offer,\r\n this.exploreService.candidate,\r\n this.exploreService.selection,\r\n this.exploreService.retirementState));\r\n }\r\n\r\n calculateRunOutAge(): number {\r\n return this._calcService.getRetirementRunOutAge(this.exploreService.retirementState);\r\n }\r\n\r\n hide() {\r\n this.blur.emit(false);\r\n this.hideInfo = true;\r\n }\r\n\r\n hasSavings() {\r\n if (!this.exploreService.selection.existingSavings && !this.exploreService.hasExistingSavings) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n

Retirement projection

\r\n
\r\n\r\n
\r\n
\r\n
\r\n Estimated income
after retirement
\r\n
\r\n
\r\n
\r\n \r\n R{{ calculateMontlyRetirementIncome() | number:'':'fr-FR' }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n This is your retirement projection. You may \r\n have existing retirement savings that could \r\n improve this outcome.\r\n
\r\n Would you like to see the impact?\r\n

\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
","import { Component, ViewEncapsulation, EventEmitter, Output, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-decision-box',\r\n templateUrl: './decision-box.component.html',\r\n styleUrls: ['./decision-box.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DecisionBoxComponent implements OnInit {\r\n\r\n @Input() expiryDate: Date;\r\n @Output() accept = new EventEmitter();\r\n @Output() query = new EventEmitter();\r\n feedback: string;\r\n\r\n ngOnInit() {\r\n this.feedback = sessionStorage.getItem('feedback');\r\n }\r\n\r\n onAccept() {\r\n this.accept.emit();\r\n }\r\n\r\n onQueries() {\r\n this.query.emit();\r\n }\r\n\r\n\r\n onShare() {\r\n // TODO\r\n }\r\n\r\n onSave() {\r\n // TODO\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n

Do you accept this offer?

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

\r\n You have until 17:00 on {{ expiryDate }} to respond to this offer. On\r\n accepting, we’ll create your profile and you’ll have to confirm a few\r\n details.\r\n

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

\r\n By clicking ‘I have queries’ you can submit your questions and\r\n comments, and your HR representative will get back to you.\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, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { OfferService } from '../../../../services/offer.service';\r\nimport { PayslipOptions } from '../../../../shared/models/payslip-options.model';\r\nimport { OfferModel } from '../../../../shared/models/offer';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { OfferMapper } from '../../../../services/model-mappers/offer-mapper.service';\r\nimport { UtilitiesService } from '../../../../services/utilities.service';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-finalise',\r\n templateUrl: './finalise.component.html',\r\n styleUrls: [\r\n './finalise.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FinaliseComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n headerTitle = 'My offer';\r\n showNotesDialog: boolean;\r\n offerSummary: OfferModel;\r\n payslipOptions: PayslipOptions;\r\n showQueriesSentDialog: boolean;\r\n expiryDate: string;\r\n\r\n constructor(private _offerService: OfferService,\r\n private _errorService: ErrorService,\r\n private _candidateCache: CandidateCacheService,\r\n private _loader: LoaderService,\r\n private _routingService: RoutingService,\r\n private _utilitiesService: UtilitiesService,\r\n private _offerMapper: OfferMapper) {\r\n\r\n this.payslipOptions = new PayslipOptions();\r\n this.offerSummary = new OfferModel();\r\n }\r\n\r\n ngOnInit() {\r\n //finalise decision\r\n this._loader.start();\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n const offer = this._candidateCache.currentOffer;\r\n this.offerSummary = this._offerMapper.mapFromGetOfferByIdModelToOfferModel(offer);\r\n this.expiryDate = this._utilitiesService.convertShortDate(new Date(offer.expiryDate));\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n showQueriesSent() {\r\n this.showQueriesSentDialog = true;\r\n }\r\n\r\n onOfferAccepted() {\r\n this._routingService.candidateDecions();\r\n }\r\n\r\n onOfferQueried() {\r\n this._loader.start();\r\n this._subscriptions.push(this._offerService.queryOffer().subscribe(res => {\r\n this._loader.stop();\r\n this.showNotesDialog = false;\r\n this.showQueriesSentDialog = true;\r\n sessionStorage.removeItem('newFeedback');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to send queries.');\r\n }));\r\n }\r\n\r\n goBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \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, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-not-happy-dialog',\r\n templateUrl: './not-happy-dialog.component.html',\r\n styleUrls: ['./not-happy-dialog.component.scss']\r\n})\r\nexport class NotHappyDialogComponent implements OnInit {\r\n\r\n @Output() close = new EventEmitter();\r\n @Output() sendNotes = new EventEmitter();\r\n feedback: string;\r\n\r\n ngOnInit() {\r\n this.feedback = sessionStorage.getItem('newFeedback');\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n onSendNotes() {\r\n sessionStorage.setItem('newFeedback', this.feedback);\r\n this.sendNotes.emit();\r\n }\r\n\r\n\r\n}\r\n","
\r\n\r\n \r\n\r\n

Let’s answer your questions

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

\r\n \r\n Here are the notes you’ve captured so far.
\r\n Feel free to add more and send them through to have
\r\n your HR representative answer them.\r\n
\r\n

\r\n
\r\n \r\n \r\n
\r\n\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, Output, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-queries-sent-dialog',\r\n templateUrl: './queries-sent-dialog.component.html',\r\n styleUrls: ['./queries-sent-dialog.component.scss']\r\n})\r\nexport class QueriesSentDialogComponent implements OnInit {\r\n\r\n @Output() close = new EventEmitter();\r\n @Output() sendNotes = new EventEmitter();\r\n feedback: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.feedback = sessionStorage.getItem('feedback');\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n onSendNotes() {\r\n sessionStorage.setItem('feedback', this.feedback);\r\n this.sendNotes.emit();\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n\r\n

Request for help sent

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

\r\n Thank you for your message.
\r\n We'll get back to you soon.
\r\n

\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class InfoManagementService {\r\n feedbackIntroClosed: boolean = false;\r\n reviewOfferIntroClosed: boolean = false;\r\n exploreOfferIntroClosed: boolean = false;\r\n coachIntroClosed: boolean = false;\r\n retirementIntroClosed: boolean = false;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-landing',\r\n templateUrl: './landing.component.html',\r\n styleUrls: ['./landing.component.scss']\r\n})\r\nexport class LandingComponent implements OnInit {\r\n\r\n constructor( private _routingService: RoutingService) { }\r\n\r\n //candidate landing overlay\r\n ngOnInit() {\r\n }\r\n\r\n goToOffer() {\r\n this._routingService.candidateReviewOffer();\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Before we get started, we'd like to highlight
\r\n a few important things as you:\r\n

\r\n

1Review your offer

\r\n

2Explore your pay and benefits

\r\n

3Finalise your decision

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

\r\n Please keep in mind that the 'Explore your pay and benefits' section shows what \r\n your take home pay could look like. It will help you understand the importance \r\n of your financial decisions for your future. This is an illustration and may not \r\n accurately reflect what you’ll receive in your first month.\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { GetCandidateByIdModel } from '../../../../../services/service_models/candidate-models/get-candidate-by-id.model';\r\nimport { CandidateProfile } from '../models/candidate-profile.model';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { environment } from '../../../../../../environments/environment';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { AuthCandidateService } from '../../../../../core/authCandidate.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-profile-details',\r\n templateUrl: './candidate-profile-details.component.html',\r\n styleUrls: ['./candidate-profile-details.component.scss']\r\n})\r\nexport class CandidateProfileDetailsComponent implements OnInit {\r\n\r\n protected _subscriptions = new Array();\r\n profileDetailsForm: FormGroup;\r\n isConfirmPasswordFails: boolean = false;\r\n passwordLength: number = 8;\r\n @Input() model: GetCandidateByIdModel;\r\n @Output() create = new EventEmitter();\r\n profileDetails: CandidateProfile;\r\n\r\n\r\n constructor(private formBuilder: FormBuilder, private _routingService: RoutingService, private _storeService: StoreService){//), private authCandidate: AuthCandidateService) {\r\n this.profileDetails = new CandidateProfile();\r\n }\r\n\r\n async ngOnInit() {\r\n if (this.model) { }\r\n this.onCreateProfileDetailsForm();\r\n }\r\n\r\n onCheckPasswordFields() {\r\n const passwordField = this.profileDetailsForm.value.password;\r\n const confirmPasswordField = this.profileDetailsForm.value.confirmPassword;\r\n\r\n if (passwordField !== confirmPasswordField || confirmPasswordField.length < this.passwordLength) {\r\n this.isConfirmPasswordFails = true;\r\n } else {\r\n this.isConfirmPasswordFails = false;\r\n }\r\n }\r\n\r\n onCreateProfileDetailsForm() {\r\n this.profileDetailsForm = this.formBuilder.group({\r\n username: new FormControl(null, [Validators.required, Validators.minLength(5), , Validators.maxLength(20)]),\r\n password: new FormControl(null, [Validators.required, Validators.minLength(this.passwordLength), Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\\\D*\\\\d)[A-Za-z\\\\d!$%@#£€*?&]{8,}$')]),\r\n confirmPassword: new FormControl(null, [Validators.required, Validators.minLength(this.passwordLength), Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\\\D*\\\\d)[A-Za-z\\\\d!$%@#£€*?&]{8,}$')]),\r\n });\r\n }\r\n\r\n onCreateProfile() {\r\n this.profileDetails.username = this.profileDetailsForm.get('username').value;\r\n this.profileDetails.password = this.profileDetailsForm.get('password').value;\r\n this.profileDetails.confirmPassword = this.profileDetailsForm.get('confirmPassword').value;\r\n this.create.emit(this.profileDetails);\r\n localStorage.setItem('userName', this.profileDetails.username);\r\n }\r\n\r\n existingProfile() {\r\n this._routingService.userProfileLinking();\r\n }\r\n\r\n}\r\n\r\n","\r\n
\r\n
\r\n
\r\n

\r\n Hello {{ model.firstname }} {{ model.lastname }}\r\n

\r\n
\r\n

\r\n Please enter a username and password to create your profile\r\n

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

\r\n * Username must be between 5 and 20 characters long.\r\n

\r\n

\r\n * Password and Confirm Password do not match, please try again.\r\n

\r\n

\r\n * Password does not meet minimum requirements. Password must contain upercase, lowercase, special characters excluding / [ ] : ; | = , + * ? < > \" ' and a number. Password must not contain parts of your name.\r\n

\r\n
\r\n \r\n I already have a profile \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { ProfileService } from '../../../../../services/profile.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport {Location} from '@angular/common';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-candidate-profile-linking',\r\n templateUrl: './candidate-profile-linking.component.html',\r\n styleUrls: ['./candidate-profile-linking.component.scss']\r\n})\r\nexport class CandidateProfileLinkingComponent implements OnInit, OnDestroy {\r\n\r\n protected _subscriptions = new Array();\r\n profileDetailsForm: FormGroup;\r\n\r\n\r\n\r\n constructor(private formBuilder: FormBuilder, private _routingService: RoutingService, private _storeService: StoreService, private _profileService: ProfileService, private _notificationService: NotificationService, private errorService: ErrorService, private _location: Location, private _loader: LoaderService) {\r\n\r\n }\r\n\r\n async ngOnInit() {\r\n this.onCreateProfileDetailsForm();\r\n }\r\n\r\n\r\n\r\n onCreateProfileDetailsForm() {\r\n this.profileDetailsForm = this.formBuilder.group({\r\n username: new FormControl(null, [Validators.required]),\r\n password: new FormControl(null, [Validators.required])\r\n });\r\n }\r\n\r\n linkProfile() {\r\n this._loader.start();\r\n const username = this.profileDetailsForm.get('username').value;\r\n const password = this.profileDetailsForm.get('password').value;\r\n this._subscriptions.push(this._profileService['linkProfile'](username, password).subscribe((resp) => {\r\n if (resp == true) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Your profile has been linked');\r\n this._routingService.userLogin();\r\n } else {\r\n this._loader.stop();\r\n this.errorService.openErrorPopup('Failed to link profile.');\r\n }\r\n\r\n }, (error) => {\r\n this._loader.stop();\r\n this.errorService.openErrorPopup('Failed to link profile.');\r\n }\r\n ));\r\n }\r\n\r\n gotocreateProfilePage() {\r\n this._routingService.candidateCreateProfile();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n }\r\n\r\n","\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n Please enter a username and password to link your profile\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Go back \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl } from '@angular/forms';\r\nimport { GetCandidateByIdModel } from '../../../../../services/service_models/candidate-models/get-candidate-by-id.model';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { ProfileService } from '../../../../../services/profile.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-candidate-profile-verification',\r\n templateUrl: './candidate-profile-verification.component.html',\r\n styleUrls: ['./candidate-profile-verification.component.scss']\r\n})\r\nexport class CandidateProfileVerificationComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n username: string;\r\n @Input() model: GetCandidateByIdModel;\r\n @Output() open = new EventEmitter();\r\n offerAccessForm: FormGroup;\r\n candidateCellphone: string;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private errorService: ErrorService,\r\n private _profileService: ProfileService,\r\n private _notificationService: NotificationService) {\r\n this.offerAccessForm = this.formBuilder.group({\r\n accessCode: new FormControl(null)\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.model) {\r\n this.candidateCellphone = this.model.candidateContactChannels.filter(x => x.type === 'Cellphone')[0].value;\r\n this.username = localStorage.getItem('userName');\r\n }\r\n }\r\n\r\n onOpenOffer() {\r\n const accessCode = this.offerAccessForm.value.accessCode;\r\n this.open.emit(accessCode);\r\n }\r\n\r\n resendAFOPin() {\r\n this._subscriptions.push(this._profileService['resendAFOPin'](this.username, 'mobile')\r\n .subscribe((resp) => {\r\n this._notificationService\r\n .openNotification('Access code has been sent. An sms has been sent to the new user');\r\n }, (error) => {\r\n this.errorService.openErrorPopup('Failed to send code.');\r\n }\r\n ));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

Verification

\r\n

\r\n Your access code has been sent
\r\n to the following number *** *** {{ candidateCellphone | slice: -4 }}\r\n

\r\n
\r\n

Enter the code here to verify your details

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

\r\n If your access code isn’t working, you can resend it to your\r\n phone number.\r\n

\r\n

If your new code doesn’t work, contact your HR representative.

\r\n
\r\n
\r\n
\r\n","export class CandidateProfile {\r\n username: string;\r\n password: string;\r\n confirmPassword: string;\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { ProfileService } from '../../../../services/profile.service';\r\nimport { NotificationService } from '../../../../services/notification.service';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { GetCandidateByIdModel } from '../../../../services/service_models/candidate-models/get-candidate-by-id.model';\r\nimport { ProfileMapper } from '../../../../services/model-mappers/user-profile-mapper.service';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\nimport { CandidateUserProfile } from '../../../../services/service_models/profile-models/user-profile.model';\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\n\r\n@Component({\r\n selector: 'app-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProfileCandidateComponent implements OnInit, OnDestroy {\r\n private _subscriptions = new Array();\r\n model: GetCandidateByIdModel;\r\n showProfileDialog: boolean;\r\n showVerificationDialog: boolean;\r\n username: string;\r\n profileDetails: any;\r\n candidateUserProfile: CandidateUserProfile;\r\n\r\n constructor(private _candidateCache: CandidateCacheService,\r\n private errorService: ErrorService,\r\n private _profileService: ProfileService,\r\n private _notificationService: NotificationService,\r\n private _loader: LoaderService,\r\n private _profileMapper: ProfileMapper,\r\n private _routingService: RoutingService) { }\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this.model = this._candidateCache.currentCandidate;\r\n this.showProfileDialog = true;\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n onCreateProfile(profileDetails: any) {\r\n this._loader.start();\r\n this.profileDetails = profileDetails;\r\n const mobileNumber = this.model.candidateContactChannels.filter(x => x.type === 'Cellphone')[0].value;\r\n\r\n this._subscriptions.push(this._profileService['initRegistration'](mobileNumber, 'mobile')\r\n .subscribe((resp) => {\r\n this._notificationService\r\n .openNotification('Access code has been sent. An sms has been sent to the new user');\r\n this.showVerificationDialog = true;\r\n this.showProfileDialog = false;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this.errorService.openErrorPopup('Failed to send code.');\r\n }\r\n ));\r\n }\r\n\r\n onCompleteRegistration(accessCode: string) {\r\n this._loader.start();\r\n this.candidateUserProfile = this._profileMapper.mapUserProfileFromCreation(this.model, accessCode, this.profileDetails);\r\n\r\n this._subscriptions.push(this._profileService['completeRegistration'](this.candidateUserProfile).subscribe((resp) => {\r\n if (resp) {\r\n this._loader.stop();\r\n this._routingService.userLogin();\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n if (error.status == '409') {\r\n this.errorService.openErrorPopup('You already have an existing profile.');\r\n setTimeout(() => {\r\n this.showVerificationDialog = false;\r\n this.showProfileDialog = true;\r\n }, 5000);\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\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, Output, EventEmitter } from '@angular/core';\r\nimport { ScrollBlocker } from '../../../../../shared/models/interfaces/scrollBlocker';\r\n\r\n@Component({\r\n selector: 'app-intro',\r\n templateUrl: './intro.component.html',\r\n styleUrls: ['./intro.component.scss']\r\n})\r\nexport class IntroComponent extends ScrollBlocker implements OnInit {\r\n\r\n @Input() showIntro: boolean;\r\n @Output() hide = new EventEmitter();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.showIntro) {\r\n this._blockScroll();\r\n }\r\n }\r\n\r\n continue() {\r\n this.showIntro = false;\r\n this.hide.emit();\r\n }\r\n\r\n}\r\n","
\r\n\r\n
\r\n

Before we show you your offer,

\r\n

here’s a quick reminder of what you’ll be looking at

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

Offer basics

\r\n

\r\n Have a look at your offer letter and
\r\n summary of your new position.\r\n

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

Earnings and benefits

\r\n

\r\n View and explore your estimated take-home
\r\n pay based on your benefit adjustments.\r\n

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

Offer acceptance

\r\n

\r\n Complete your profile details to
\r\n finalise your acceptance of the offer.\r\n

\r\n
\r\n
\r\n \r\n
\r\n\r\n
","import { Component, ViewEncapsulation, Input } from '@angular/core';\r\nimport { OfferModel } from '../../../../../shared/models/offer';\r\n\r\n@Component({\r\n selector: 'app-offer-summary',\r\n templateUrl: './offer-summary.component.html',\r\n styleUrls: ['./offer-summary.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class OfferSummaryComponent {\r\n\r\n @Input() offer: OfferModel;\r\n\r\n constructor() {\r\n if (!this.offer) {\r\n this.offer = new OfferModel();\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n
\r\n

Offer summary

\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n R{{ offer.offerDetails.costToCompany | number:'':'fr-FR' }} a year\r\n
\r\n
0\" class=\"section-subheader\">\r\n \r\n R{{ offer.earnings[0].signOnBonus | number:'':'fr-FR' }}\r\n
\r\n
\r\n \r\n {{ offer.offerDetails.jobTitle }}\r\n
\r\n
\r\n \r\n {{ offer.offerDetails.startDate | date: \"dd MMMM yyyy\" }}\r\n
\r\n
\r\n \r\n {{ offer.offerDetails.division }}\r\n
\r\n
\r\n \r\n {{ offer.offerDetails.department }}\r\n
\r\n
\r\n \r\n {{ offer.offerDetails.location }}\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\nimport { ContentService } from '../../../../services/content.service';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { OfferMapper } from '../../../../services/model-mappers/offer-mapper.service';\r\nimport { OfferModel } from '../../../../shared/models/offer';\r\nimport { DocumentService } from '../../../../services/document.service';\r\nimport { CandidateCacheService } from '../candidate-cache.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { InfoManagementService } from '../info-management.service';\r\nimport { StoreService } from '../../../../services/storeService';\r\n\r\n\r\n@Component({\r\n selector: 'app-review-offer',\r\n templateUrl: './review-offer.component.html',\r\n styleUrls: ['./review-offer.component.scss']\r\n})\r\nexport class ReviewOfferComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n\r\n headerTitle = 'My offer';\r\n pdfSrc: string;\r\n sanitizedPdf: SafeResourceUrl;\r\n\r\n showAcceptDialog: boolean;\r\n showWelcomeDialog: boolean;\r\n showIntro = false;\r\n showFeedback = false;\r\n\r\n offerSummary: OfferModel;\r\n\r\n\r\n constructor(public sanitizer: DomSanitizer,\r\n public contentService: ContentService,\r\n private _candidateCache: CandidateCacheService,\r\n private _routingService: RoutingService,\r\n private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _offerMapper: OfferMapper,\r\n private _documentService: DocumentService,\r\n private _storeService: StoreService,\r\n public infoManager: InfoManagementService) {\r\n this.initModel();\r\n this.showIntro = !this.infoManager.reviewOfferIntroClosed;\r\n }\r\n\r\n protected initModel() {\r\n this.offerSummary = new OfferModel();\r\n }\r\n\r\n ngOnInit() {\r\n const storage = this._storeService.getStoredData();\r\n\r\n if (storage && storage.profile) {\r\n const role = storage.profile['role'].toLowerCase();\r\n if (role === 'user') {\r\n this._routingService.userLogin();\r\n } else {\r\n this.initReviewOffer();\r\n }\r\n }\r\n }\r\n\r\n private initReviewOffer() {\r\n // this._loader.start();\r\n\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n\r\n if (hasCache) {\r\n if (this._candidateCache.currentOffer.statusId === 5) { // accepted\r\n this._routingService.candidateCreateProfile();\r\n // this._loader.stop();\r\n } else {\r\n this._subscriptions.push(this._documentService.openDoc(this._candidateCache.currentOffer.offerLetter.url).subscribe((resp: any) => {\r\n const newBlob = new Blob([resp], { type: 'application/pdf' });\r\n this.pdfSrc = window.URL.createObjectURL(newBlob);\r\n this.sanitizedPdf = this.sanitizer.bypassSecurityTrustResourceUrl(this.pdfSrc);\r\n this.offerSummary = this._offerMapper.mapFromGetOfferByIdModelToOfferModel(this._candidateCache.currentOffer);\r\n // this._loader.stop();\r\n }, error => {\r\n // this._loader.stop();\r\n this._errorService.openErrorPopup('Unable to display PDF, please try again.');\r\n }));\r\n }\r\n }\r\n }));\r\n }\r\n\r\n goBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n openFeedbackWindow() {\r\n // TODO\r\n }\r\n\r\n goToExploreOffer() {\r\n this._routingService.candidateExploreOffer();\r\n }\r\n\r\n onError(error: any) {\r\n this._errorService.openErrorPopup('There was an issue uploading offer. please try again');\r\n }\r\n\r\n hideIntro() {\r\n this.showIntro = false;\r\n this.infoManager.reviewOfferIntroClosed = true;\r\n this.showFeedback = true;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n","// External modules\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CardModule } from 'primeng/card';\r\n\r\nimport { CustomSharedModule } from '../../../../shared/custom-shared.module';\r\nimport { ReviewOfferComponent } from './review-offer.component';\r\nimport { WelcomeDialogComponent } from './welcome-dialog/welcome-dialog.component';\r\nimport { CandidateSharedModule } from '../shared/candidate-shared.module';\r\nimport { IntroComponent } from './intro/intro.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n IntroComponent,\r\n ReviewOfferComponent,\r\n WelcomeDialogComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n CustomSharedModule,\r\n CandidateSharedModule,\r\n AccordionModule,\r\n InputSwitchModule,\r\n CarouselModule,\r\n InputTextModule,\r\n DropdownModule,\r\n CardModule\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ReviewOfferModule { }\r\n","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-welcome-dialog',\r\n templateUrl: './welcome-dialog.component.html',\r\n styleUrls: [ './welcome-dialog.component.scss' ]\r\n})\r\nexport class WelcomeDialogComponent implements OnInit {\r\n\r\n @Output() continue = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onContinue() {\r\n this.continue.emit();\r\n }\r\n}\r\n","
\r\n\r\n \r\n\r\n

Congratulations and welcome to the team!

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

\r\n HR will be in contact with you regarding your offer.
\r\n Now you can explore next steps to prepare for your first day.\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-candidate-footer',\r\n templateUrl: './candidate-footer.component.html',\r\n styleUrls: ['./candidate-footer.component.scss']\r\n})\r\nexport class CandidateFooterComponent implements OnInit {\r\n currentYear = '';\r\n\r\n ngOnInit() {\r\n this.currentYear = new Date().getFullYear().toString();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n We were recognised in
\r\n Sunday Times Top Brands\r\n

\r\n

\r\n Alexforbes is proud to
\r\n announce that it was recognised in
\r\n the Sunday Times Top Brands survey\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Copyright {{currentYear}} Alexander Forbes Group Holdings Limited\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { ContentService } from \"../../../../../services/content.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { StoreService } from \"../../../../../services/storeService\";\r\nimport { environment } from \"../../../../../../environments/environment\";\r\nimport { CandidateCacheService } from \"../../candidate-cache.service\";\r\nimport { LoaderService } from \"../../../../../services/loader.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Constants } from \"../../../../../constants/constants\";\r\n\r\n@Component({\r\n selector: \"app-white-header\",\r\n templateUrl: \"./candidate-header.component.html\",\r\n styleUrls: [\"./candidate-header.component.scss\"],\r\n})\r\nexport class CandidateWhiteHeaderComponent implements OnInit, OnDestroy {\r\n popIaDisclosurePath: string = \"\";\r\n infoIconDamPath: string = \"\";\r\n private _subscriptions = new Array();\r\n appVersion: string = environment.appVersion;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public contentService: ContentService,\r\n private _storeService: StoreService,\r\n private _loader: LoaderService,\r\n private _candidateCache: CandidateCacheService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n if (this.isLoggedIn() && !localStorage.getItem(\"contentSet\")) {\r\n this.contentService.cacheDropdownOptions();\r\n }\r\n\r\n if (!this.contentService.currentHeaderLogoUrl) {\r\n this._loader.start();\r\n this._subscriptions.push(\r\n this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this._setCorporateStyles();\r\n this._loader.stop();\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n private _setCorporateStyles() {\r\n if (\r\n this._candidateCache.currentCorporate &&\r\n this._candidateCache.currentCorporate.headerLogo &&\r\n this._candidateCache.currentCorporate.headerLogo.url\r\n ) {\r\n this.contentService.currentHeaderLogoUrl =\r\n this._candidateCache.currentCorporate.headerLogo.url;\r\n } else {\r\n this._setDefaultLogo();\r\n }\r\n }\r\n\r\n private _setDefaultLogo() {\r\n this.contentService.currentHeaderLogoUrl = \"../../../assets/Logo-AFBR.png\";\r\n }\r\n\r\n isLoggedIn() {\r\n if (\r\n this._storeService.getStoredData().profile['role'] === \"candidate\" &&\r\n this._storeService.getStoredData().id_token !== undefined\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n logout() {\r\n this.authService.logout(false);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n","// External modules\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n// Components\r\nimport { OfferSubheaderComponent } from './offer-subheader/offer-subheader.component';\r\nimport { CandidateWhiteHeaderComponent } from './candidate-header/candidate-header.component';\r\nimport { RetirementInfoBoxComponent } from './retirement-info-box/retirement-info-box.component';\r\nimport { CandidateFooterComponent } from './candidate-footer/candidate-footer.component';\r\nimport { ContributionWarningComponent } from './contribution-warning/contribution-warning.component';\r\nimport { FeedbackWindowComponent } from './feedback-window/feedback-window.component';\r\nimport { RetirementEstimationsBoxComponent } from '../explore-offer/retirement-estimations-box/retirement-estimations-box.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n InputSwitchModule,\r\n CardModule,\r\n DropdownModule,\r\n CalendarModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n InputTextModule,\r\n FileUploadModule,\r\n ConfirmDialogModule\r\n ],\r\n declarations: [\r\n FeedbackWindowComponent,\r\n RetirementInfoBoxComponent,\r\n ContributionWarningComponent,\r\n OfferSubheaderComponent,\r\n CandidateWhiteHeaderComponent,\r\n CandidateFooterComponent,\r\n RetirementEstimationsBoxComponent\r\n ],\r\n exports: [\r\n FeedbackWindowComponent,\r\n RetirementInfoBoxComponent,\r\n ContributionWarningComponent,\r\n OfferSubheaderComponent,\r\n CandidateWhiteHeaderComponent,\r\n CandidateFooterComponent,\r\n RetirementEstimationsBoxComponent\r\n ]\r\n})\r\nexport class CandidateSharedModule { }\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contribution-warning',\r\n templateUrl: './contribution-warning.component.html',\r\n styleUrls: ['./contribution-warning.component.scss']\r\n})\r\nexport class ContributionWarningComponent implements OnInit {\r\n\r\n @Output() emitter = new EventEmitter();\r\n name: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.name = JSON.parse(sessionStorage.getItem('currentCandidate')).candidateFirstName;\r\n }\r\n\r\n onClose() {\r\n this.emitter.emit();\r\n }\r\n\r\n onContinue() {\r\n this.emitter.emit();\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n\r\n

Wait, are you sure?

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

\r\n {{name}}, we see you have selected the lowest percentage to
\r\n contribute towards your retirement savings. This means
\r\n your projected income at retirement is significantly less
\r\n than your monthly salary.\r\n

\r\n

\r\n\r\n If you contribute more every month you'll see how much
\r\n more income you'll have to enjoy with your loved ones
\r\n when you retire.\r\n

\r\n

\r\n Would you like to go back to relook your contribution?\r\n

\r\n\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, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { OfferService } from '../../../../../services/offer.service';\r\nimport { Feedback } from '../../../../../services/service_models/offer_models/get-feedback.model';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { ScrollBlocker } from '../../../../../shared/models/interfaces/scrollBlocker';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-feedback-window',\r\n templateUrl: './feedback-window.component.html',\r\n styleUrls: ['./feedback-window.component.scss']\r\n})\r\nexport class FeedbackWindowComponent extends ScrollBlocker implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() showInfo: boolean;\r\n isOpen: boolean;\r\n\r\n existingFeedback: Array;\r\n newFeedback: string;\r\n\r\n constructor(private _errorService: ErrorService, private _offerService: OfferService, private _storage: StoreService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.getFeedback();\r\n\r\n if (this.showInfo) {\r\n this._blockScroll();\r\n }\r\n }\r\n\r\n getFeedback() {\r\n const offerId = this._storage.getStoredData().profile['OfferId'];\r\n\r\n this._subscriptions.push(this._offerService.getNotesAndQueries(offerId).subscribe((resp) => {\r\n this.existingFeedback = resp;\r\n sessionStorage.setItem('existingFeedback', JSON.stringify(resp));\r\n }, (error) => {\r\n this._errorService.openErrorPopup('Failed to get notes and queries for this offer.');\r\n }));\r\n\r\n this.newFeedback = sessionStorage.getItem('newFeedback');\r\n }\r\n\r\n updateNotes() {\r\n sessionStorage.setItem('newFeedback', this.newFeedback);\r\n this.isOpen = false;\r\n }\r\n\r\n hideInfo() {\r\n this.showInfo = false;\r\n this._unblockScroll();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n

Queries and comments

\r\n \r\n\r\n
\r\n
0\" class=\"existingFeedback\">\r\n \r\n

\r\n {{ item.description }}\r\n

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

\r\n Use the tab in the bottom right corner to
\r\n capture any queries you might have\r\n

\r\n

\r\n Enter any questions or comments you have during the
\r\n process here. At the end you can submit these to your
\r\n HR representative for help.\r\n

\r\n \r\n
\r\n
","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { CandidateCacheService } from '../../candidate-cache.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-offer-subheader',\r\n templateUrl: './offer-subheader.component.html',\r\n styleUrls: ['./offer-subheader.component.scss']\r\n})\r\nexport class OfferSubheaderComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() title: string;\r\n @Input() active: string;\r\n offerExpiry: number;\r\n\r\n constructor(private _loader: LoaderService, private _candidateCache: CandidateCacheService, private _routingService: RoutingService) {}\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n const offer = this._candidateCache.currentOffer;\r\n const expiryDate = new Date(offer.expiryDate);\r\n const today = new Date();\r\n const diffTime = Math.abs(expiryDate.getTime() - today.getTime());\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n this.offerExpiry = diffDays;\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n onBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ title }}

\r\n
Offer basics
\r\n
Earnings and benefits
\r\n
Offer acceptance
\r\n
\r\n
\r\n
\r\n {{offerExpiry}} days left to respond\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\r\nimport { PayslipCalculationsService } from '../../../../../services/payslip-calculations.service';\r\nimport { RetirementState } from '../../../../../shared/models/retirement-state';\r\nimport { PayslipOptions } from '../../../../../shared/models/payslip-options.model';\r\nimport { OfferModel } from '../../../../../shared/models/offer';\r\nimport { ExploreOfferService } from '../../../../../services/explore-offer.service';\r\n\r\n@Component({\r\n selector: 'app-retirement-info-box',\r\n templateUrl: './retirement-info-box.component.html',\r\n styleUrls: ['./retirement-info-box.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RetirementInfoBoxComponent implements OnInit {\r\n\r\n @Output() blur = new EventEmitter();\r\n @Input() options: PayslipOptions;\r\n @Input() offer: any;\r\n @Input() retirementState: RetirementState;\r\n\r\n hideInfo: boolean;\r\n hasOtherSavings: boolean;\r\n\r\n constructor(private _calcService: PayslipCalculationsService, public exploreService: ExploreOfferService) { }\r\n\r\n ngOnInit() {\r\n this.blur.emit(true);\r\n this.exploreService.retirementState = this._calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n this.calculateRunOutAge();\r\n }\r\n\r\n toggleSavingsSwitch() {\r\n this.hasOtherSavings = !this.hasOtherSavings;\r\n\r\n if (this.options.savings > 0 ) {\r\n this.options.savings = 0;\r\n this.exploreService.retirementState = this._calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n this.calculateMontlyRetirementIncome();\r\n this.calculateRunOutAge();\r\n }\r\n }\r\n\r\n setSavings(inputField: HTMLInputElement) {\r\n const savings = Number(inputField.value);\r\n this.options.savings = savings;\r\n this.exploreService.retirementState = this._calcService.increaseFund(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection);\r\n this.calculateMontlyRetirementIncome();\r\n this.calculateRunOutAge();\r\n }\r\n\r\n calculateMontlyRetirementIncome() {\r\n return this._calcService.getMontlyRetirementIncome(this.exploreService.offer, this.exploreService.candidate, this.exploreService.selection, this.exploreService.retirementState);\r\n }\r\n\r\n calculateRunOutAge() {\r\n return this._calcService.getRetirementRunOutAge(this.exploreService.retirementState);\r\n }\r\n\r\n hide() {\r\n this.blur.emit(false);\r\n this.hideInfo = true;\r\n }\r\n}\r\n","
\r\n
\r\n
The area on the right is an indication
of your income at retirement
\r\n

When selecting your retirement contribution we want
you to consider what your retirement might look like.

\r\n

Most South African’s can’t afford to retire because they
don't contribute enough towards their retirement.\r\n savings

\r\n

Think carefully about how much you can set aside today
so that you save enough for your retirement.

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

Retirement estimate

\r\n
\r\n\r\n
\r\n
\r\n
\r\n Monthly pension
after retirement
\r\n
\r\n
\r\n
\r\n \r\n R{{ calculateMontlyRetirementIncome() | number:'':'fr-FR' }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n Do you have any existing
retirement savings?
\r\n
\r\n
\r\n
\r\n Yes\r\n Yes\r\n No\r\n No\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \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, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { CorporateBasics } from '../../../../../../../../app/components/onboarding/users/corporate/models/corporate-basics.model';\r\nimport { BasicsFormHelper } from '../../../../../../../../app/components/onboarding/users/corporate/create-corporate/basics-tab/helpers/basics-form-helper';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ContentService } from '../../../../../../../../app/services/content.service';\r\nimport { DocumentModel } from '../../../../../../../../app/shared/models/candidate.model';\r\n\r\n@Component({\r\n selector: 'app-company-basics-card',\r\n templateUrl: './company-basics-card.component.html',\r\n styleUrls: ['./company-basics-card.component.scss']\r\n})\r\nexport class CompanyBasicsCardComponent implements OnInit {\r\n @Input() isDraft: boolean;\r\n @Input() mode: string;\r\n @Input() basics: CorporateBasics;\r\n @Input() headerLogoFileName: string;\r\n @Input() headerLogoId: string;\r\n @Output() next = new EventEmitter();\r\n @Output() saveTemp = new EventEmitter();\r\n @ViewChild(\"fileUpload\", { static: false }) fileUpload: any;\r\n\r\n industryArray: { value: number; label: string }[];\r\n companyTypeArray: { value: number; label: string }[];\r\n isPayrollDayValid: boolean = true;\r\n trackChanges: boolean = false;\r\n isSelected: boolean = false;\r\n locationEmpty: boolean = false;\r\n\r\n ngOnInit() {\r\n this.industryArray = JSON.parse(localStorage.getItem(\"industry\"));\r\n this.companyTypeArray = JSON.parse(localStorage.getItem(\"companyTypes\"));\r\n }\r\n\r\n constructor(\r\n private _basicsFormHelper: BasicsFormHelper,\r\n public sanitizer: DomSanitizer,\r\n private contentService: ContentService\r\n ) {\r\n }\r\n\r\n\r\n validateModel() {\r\n return this._basicsFormHelper.validateModel(\r\n this.basics,\r\n this.mode,\r\n this.isDraft\r\n );\r\n }\r\n\r\n validateColor() {\r\n return this._basicsFormHelper.validateColor(this.basics.primaryColour);\r\n }\r\n\r\n addLocation() {\r\n if (!this.basics.locations) {\r\n this.basics.locations = [];\r\n }\r\n this.basics.locations.push({ id: null, name: null });\r\n this.locationEmpty = false;\r\n }\r\n\r\n deleteLocation(index) {\r\n if (this.basics.locations.length == 1) {\r\n this.basics.locations = null;\r\n } else {\r\n this.basics.locations.splice(index, 1);\r\n if (this.basics.locations.length == 1) {\r\n this.locationEmpty = true;\r\n }\r\n }\r\n this.trackChanges = true;\r\n }\r\n\r\n\r\n uploadHeaderLogo(data) {\r\n if (!this.basics.headerLogoFileDoc) {\r\n this.basics.headerLogoFileDoc = new DocumentModel();\r\n }\r\n\r\n this.basics.headerLogo.filename = data.files[0].name,\r\n this.basics.headerLogo.url = URL.createObjectURL(data.files[0])\r\n\r\n this.basics.headerLogoFileDoc.file = data.files[0];\r\n this.basics.headerLogoFileDoc.fileTypeId = 2;\r\n this.headerLogoFileName = data.files[0].name;\r\n this.trackChanges = true;\r\n this.isSelected = true;\r\n }\r\n\r\n clear() {\r\n this.fileUpload.clear();\r\n this.basics.headerLogo = null;\r\n this.headerLogoFileName = \"Upload logo\";\r\n this.isSelected = false;\r\n }\r\n\r\n previewLogo() {\r\n if (this.basics.headerLogo) {\r\n const url = this.basics.headerLogo.url;\r\n this.contentService.previewLogo(url);\r\n }\r\n }\r\n\r\n onContinueBtnClick() {\r\n this.next.emit();\r\n }\r\n\r\n onCheckForUpdate(change: any) {\r\n this.trackChanges = true;\r\n }\r\n\r\n onCheckPayrollDay() {\r\n if (this.basics.payrollDay < 1 || this.basics.payrollDay > 31) {\r\n this.isPayrollDayValid = false;\r\n } else {\r\n this.isPayrollDayValid = true;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n Name\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n Industry\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n Header Logo\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Location\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n DELETE\r\n \r\n
\r\n\r\n
\r\n \r\n ADD ANOTHER LOCATION\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Payroll day\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n

\r\n Please enter a valid payroll day\r\n

\r\n\r\n
\r\n Company type\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n Primary colour\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n SAVE CHANGES\r\n \r\n
\r\n","export * from './company-basics-card/company-basics-card.component';\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActiveTab } from '../../../shared/enum';\r\nimport { CorporateService } from '../../../../../../../../app/services/corporate.service';\r\nimport { StoreService } from '../../../../../../../../app/services/storeService';\r\nimport { CorporateBasics } from '../../../../../../../../app/components/onboarding/users/corporate/models/corporate-basics.model';\r\nimport { GetCorporateById } from '../../../../../../../../app/services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { LoaderService } from '../../../../../../../../app/services/loader.service';\r\nimport { ErrorService } from '../../../../../../../../app/services/error.service';\r\nimport { DocumentModel } from '../../../../../../../../app/shared/models/candidate.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-company-basics',\r\n templateUrl: './company-basics.component.html',\r\n styleUrls: ['./company-basics.component.scss']\r\n})\r\nexport class CompanyBasicsComponent implements OnInit {\r\n basics: CorporateBasics = new CorporateBasics();\r\n active = ActiveTab;\r\n corpId: string;\r\n\r\n constructor(\r\n private readonly _corpService: CorporateService,\r\n private readonly storeService: StoreService,\r\n private readonly loader: LoaderService,\r\n private readonly errorService: ErrorService,\r\n private readonly router: Router\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.corpId = this.storeService.getStoredData().profile['CorporateId'];\r\n this.loader.start();\r\n this._corpService.getGroupDetailsById(this.corpId)\r\n .subscribe((corp: GetCorporateById) => {\r\n console.log(corp)\r\n this.basics = {\r\n id: corp.id,\r\n name: corp.name,\r\n payrollDay: corp.payrollDay,\r\n industryId: corp.industryId,\r\n companyTypeId: corp.companyTypeId,\r\n primaryColour: corp.primaryColour,\r\n headerLogoId: corp.headerLogoId,\r\n headerLogo: corp.headerLogo,\r\n locations: corp.locations,\r\n createdDate: corp.createdDate,\r\n statusId: corp.statusId,\r\n headerLogoFileDoc: new DocumentModel(),\r\n }\r\n this.loader.stop();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('An error occurred while getting Company Basics');\r\n })\r\n }\r\n\r\n onSaveChanges() {\r\n this.loader.start();\r\n const outputModel = {\r\n basics: {\r\n name: this.basics.name,\r\n industryId: this.basics.industryId,\r\n companyTypeId: this.basics.companyTypeId,\r\n payrollDay: this.basics.payrollDay,\r\n headerLogoId: this.basics.headerLogo.id,\r\n primaryColour: this.basics.primaryColour,\r\n locations: this.basics.locations\r\n }\r\n };\r\n this._corpService.updateCorpBasics(this.corpId, outputModel)\r\n .subscribe(res => {\r\n console.log(res)\r\n this.loader.stop();\r\n this.router.navigate(['digital/onboarding/hr-operations/company']);\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('An error occurred while updating Company Basics');\r\n })\r\n }\r\n\r\n}\r\n\r\n\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","export * from './company-basics/company-basics.component';\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-company',\r\n templateUrl: './company.component.html',\r\n styleUrls: ['./company.component.scss']\r\n})\r\nexport class CompanyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CompanyGapCoverProvider } from '../models/company-gap-cover-provider.model';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { StoreService } from '../../../../../../../app/services/storeService';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CorporateBenefitsService } from 'src/app/services/corporate-benefits.service';\r\nimport { GapOptions } from '../models/options.model';\r\n\r\n@Component({\r\n selector: 'app-company-gapcover-provider',\r\n templateUrl: './company-gapcover-provider.component.html',\r\n styleUrls: ['./company-gapcover-provider.component.scss']\r\n})\r\nexport class CompanyGapcoverProviderComponent implements OnInit {\r\n\r\n private _subscriptions = new Array();\r\n @Output() save = new EventEmitter();\r\n showExistingGapProviders: boolean = false;\r\n @Input() companyGapCoverProvider: CompanyGapCoverProvider;\r\n @Output() deleteGap = new EventEmitter();\r\n @Output() deleteGapOption = new EventEmitter();\r\n constructor( private corporateBenefitsService: CorporateBenefitsService, private _storeService: StoreService, private _http: HttpClient) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n}\r\n\r\n addAnotherProvider(): void {\r\n\r\n this.companyGapCoverProvider.gapCoverProviders.push({\r\n id: 0,\r\n name:\"\",\r\n isActive: true,\r\n gapCoverOptions: Array()\r\n });\r\n }\r\n\r\n addOption(i): void {\r\n this.companyGapCoverProvider.gapCoverProviders[i].gapCoverOptions.push({\r\n id: 0,\r\n name:\"\",\r\n optionPrice: null,\r\n isActive: true\r\n })\r\n }\r\n\r\n removeOption(index: number, indexOption: number) {\r\n this.deleteGapOption.emit({index, indexOption});\r\n }\r\n\r\n\r\n removeGapProvider(index: number){\r\n this.deleteGap.emit(index);\r\n var x, i;\r\n x = document.querySelectorAll(\".gapCard\");\r\n for (i = 0; i < x.length; i++) {\r\n x[index].style.display = \"none\";\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n trackByFn(index, item) {\r\n return index; // or item.id\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n \r\n
\r\n

Company gap cover provider

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

Available option

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Add gap provider option\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Add gap provider\r\n
\r\n
\r\n ","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CompanyMedicalAidProvider } from '../models/company-medical-aid-provider.model';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { StoreService } from '../../../../../../../app/services/storeService';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { CorporateBenefitsService } from '../../../../../../../app/services/corporate-benefits.service';\r\nimport { Options } from '../models/options.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-company-medicalaid-provider',\r\n templateUrl: './company-medicalaid-provider.component.html',\r\n styleUrls: ['./company-medicalaid-provider.component.scss']\r\n})\r\nexport class CompanyMedicalaidProviderComponent implements OnInit {\r\n\r\n private _subscriptions = new Array();\r\n @Output() save = new EventEmitter();\r\n showExistingMedicalProviders: boolean = false;\r\n @Input() companyMedicalAidProvider: CompanyMedicalAidProvider;\r\n @Output() delete = new EventEmitter();\r\n @Output() deleteOption = new EventEmitter();\r\n constructor( private corporateBenefitsService: CorporateBenefitsService, private _storeService: StoreService, private _http: HttpClient) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n}\r\n\r\n addAnotherProvider(): void {\r\n\r\n this.companyMedicalAidProvider[0].selectedMAP.push({\r\n mapId: 0,\r\n mapName:\"\",\r\n active: true,\r\n options: Array()\r\n });\r\n }\r\n\r\n addOption(i): void {\r\n this.companyMedicalAidProvider[0].selectedMAP[i].options.push({\r\n optionId: 0,\r\n optionName:\"\",\r\n memberAmount: null,\r\n adultDependantAmount: null,\r\n childDependantAmount: null,\r\n active: true\r\n })\r\n }\r\n\r\n \r\n\r\n removeOption(index: number, indexOption: number) {\r\n this.deleteOption.emit({ index, indexOption });\r\n }\r\n\r\n\r\n removeMedicalProvider(index: number){\r\n this.delete.emit(index);\r\n var x, i;\r\n x = document.querySelectorAll(\".medicalCard\");\r\n for (i = 0; i < x.length; i++) {\r\n x[index].style.display = \"none\";\r\n }\r\n }\r\n\r\n\r\n saveMedicalAid(){\r\n if(this.companyMedicalAidProvider[0].selectedMAP[0].options[0].childDependantAmount != 0){\r\n this.save.emit({companyMedicalAidProvider: this.companyMedicalAidProvider[0]});\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n \r\n
\r\n

Company medical aid provider

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

Available option

\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Add medical aid option\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Add medical aid provider\r\n
\r\n
\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\r\nimport { IRiskDataInput, IRiskPackages, IRiskPackageCovers } from \"../../interfaces\";\r\n\r\n@Component({\r\n selector: \"app-company-risk-cover\",\r\n templateUrl: \"./company-risk-cover.component.html\",\r\n styleUrls: [\"./company-risk-cover.component.scss\"]\r\n})\r\nexport class CompanyRiskCoverComponent implements OnInit {\r\n @Input() riskDataInput: IRiskDataInput;\r\n\r\n public packagesArr: FormArray;\r\n public packageCovers: FormArray;\r\n public riskPackagesForm: FormGroup;\r\n\r\n constructor(private readonly formBuilder: FormBuilder) { }\r\n\r\n public ngOnInit(): void {\r\n this.buildForm(this.riskDataInput.corporateId);\r\n this.packagesArr = this.riskPackagesForm.get('packages') as FormArray;\r\n }\r\n\r\n public buildForm(corporateId: string): void {\r\n this.riskPackagesForm = this.formBuilder.group({\r\n corporateId: this.riskDataInput.corporateId,\r\n packages: this.formBuilder.array(\r\n this.riskDataInput.packages.map(\r\n riskPackage => this.createPackageItem(riskPackage)\r\n )\r\n )\r\n });\r\n }\r\n\r\n public createPackageItem(riskPackage: IRiskPackages): FormGroup {\r\n return this.formBuilder.group({\r\n id: riskPackage.id,\r\n name: riskPackage.name,\r\n isEnabled: riskPackage.isEnabled,\r\n packageCovers: this.formBuilder.array(\r\n riskPackage.packageCovers.map(\r\n riskPackage => this.createPackageCoverItem(riskPackage)\r\n )\r\n )\r\n });\r\n }\r\n\r\n public createPackageCoverItem(packageCover: IRiskPackageCovers): FormGroup {\r\n return this.formBuilder.group({\r\n id: packageCover.id,\r\n name: packageCover.name,\r\n riskPackageId: packageCover.riskPackageId,\r\n isEnabled: packageCover.isEnabled,\r\n optionPrice: [packageCover.optionPrice, Validators.required]\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n

{{option.controls.name.value}}

\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 } from '@angular/core';\r\nimport { Subscription, Observable } from 'rxjs';\r\nimport { CorporateBenefitsService } from './../../../../../../../src/app/services/corporate-benefits.service';\r\nimport { CompanyMedicalAidProvider } from './models/company-medical-aid-provider.model';\r\nimport { CompanyGapCoverProvider } from './models/company-gap-cover-provider.model';\r\nimport { BenefitProvider } from './models/company-benefit-provider.model';\r\nimport { LoaderService } from './../../../../../../../src/app/services/loader.service';\r\nimport { ErrorService } from './../../../../../../../src/app/services/error.service';\r\nimport { StoreService } from '../../../../../../app/services/storeService';\r\nimport { NotificationService } from '../../../../../../app/services/notification.service';\r\nimport { ActiveTab } from '../shared/enum';\r\nimport { Router } from '@angular/router';\r\nimport { map, take } from 'rxjs/operators';\r\nimport { IRiskDataOutput, IRiskDataInput } from '../interfaces';\r\n\r\n@Component({\r\n selector: 'app-corporate-benefits',\r\n templateUrl: './corporate-benefits.component.html',\r\n styleUrls: ['./corporate-benefits.component.scss']\r\n})\r\nexport class CorporateBenefitsComponent implements OnInit {\r\n public riskDataInput$: Observable;\r\n\r\n private _subscriptions = new Array();\r\n companyMedicalAidProvider: CompanyMedicalAidProvider;\r\n companyGapCoverProvider: CompanyGapCoverProvider;\r\n companyBenefitProvider: BenefitProvider;\r\n existingMedicalProviders: [];\r\n existingGapProviders: [];\r\n showExistingMedicalProviders: boolean;\r\n showExistingGapProviders: boolean;\r\n active = ActiveTab\r\n\r\n constructor(private corporateBenefitsService: CorporateBenefitsService,\r\n private loader: LoaderService,\r\n private errorService: ErrorService,\r\n private storeService: StoreService,\r\n private notificationService: NotificationService,\r\n private router: Router\r\n ) {\r\n this.companyMedicalAidProvider = new CompanyMedicalAidProvider();\r\n this.companyGapCoverProvider = new CompanyGapCoverProvider();\r\n }\r\n\r\n ngOnInit() {\r\n this.getMedicalAid();\r\n this.getGapCover();\r\n this.getRiskData();\r\n }\r\n\r\n saveChanges() {\r\n this.companyBenefitProvider = [this.companyMedicalAidProvider, this.companyGapCoverProvider];\r\n var providerData = this.companyBenefitProvider[0][0]\r\n providerData['gapCoverProviders'] = this.companyBenefitProvider[1]['gapCoverProviders'];\r\n this.loader.start();\r\n this.companyMedicalAidProvider.corporateId = this.storeService.getStoredData().profile['CorporateId'];\r\n this._subscriptions.push(\r\n this.corporateBenefitsService.createProvider(providerData).subscribe(\r\n (resp) => {\r\n this.notificationService.openNotification('Provider has been added/updated.');\r\n this.loader.stop();\r\n var currentPage = location.href;\r\n setInterval(() => {\r\n if (currentPage != location.href) {\r\n window.location.reload(); // ??\r\n }\r\n }, 500);\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('An error occurred while creating the Provider.');\r\n }\r\n )\r\n );\r\n\r\n\r\n }\r\n\r\n getMedicalAid() {\r\n this._subscriptions.push(\r\n this.corporateBenefitsService.getMedicalAidProvider().subscribe((data) => {\r\n if (data != null) {\r\n this.showExistingMedicalProviders = true;\r\n this.companyMedicalAidProvider = data;\r\n this.companyMedicalAidProvider.active = true;\r\n } else {\r\n this.showExistingMedicalProviders = false;\r\n }\r\n })\r\n )\r\n }\r\n\r\n getGapCover() {\r\n this._subscriptions.push(\r\n this.corporateBenefitsService.getGapCoverProvider().subscribe((data) => {\r\n if (data != null) {\r\n this.showExistingGapProviders = true;\r\n this.companyGapCoverProvider = data;\r\n } else {\r\n this.showExistingGapProviders = false;\r\n }\r\n })\r\n )\r\n }\r\n\r\n medicalProviderChanged(data: any) {\r\n this.companyMedicalAidProvider[0] = data.companyMedicalAidProvider;\r\n this.companyMedicalAidProvider.active = true;\r\n }\r\n\r\n gapProviderChanged(data: any) {\r\n this.companyGapCoverProvider = data.companyGapCoverProvider;\r\n }\r\n\r\n medicalProviderDeleted(index: number) {\r\n this.companyMedicalAidProvider[0].selectedMAP[index].active = false;\r\n }\r\n\r\n gapProviderDeleted(index: number) {\r\n this.companyGapCoverProvider.gapCoverProviders[index].isActive = false;\r\n }\r\n\r\n optionDeleted(event) {\r\n this.companyMedicalAidProvider[0].selectedMAP[event.index].options[event.indexOption].active = false;\r\n }\r\n\r\n optionGapDeleted(event) {\r\n this.companyGapCoverProvider.gapCoverProviders[event.index].gapCoverOptions[event.indexOption].isActive = false;\r\n }\r\n\r\n getRiskData() {\r\n this.riskDataInput$ = this.corporateBenefitsService.getPackageOptions()\r\n .pipe(\r\n map((data: IRiskDataInput[]) => data[0])\r\n );\r\n }\r\n\r\n updateRiskPackages(riskPackageData: IRiskDataOutput) {\r\n this.loader.start();\r\n this.corporateBenefitsService\r\n .postPackageOptions(riskPackageData)\r\n .pipe(take(1))\r\n .subscribe(\r\n _ => this.loader.stop(),\r\n error => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('An error occurred while updating Risk Packages!');\r\n }\r\n )\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n onBack() {\r\n this.router.navigate(['/digital/onboarding/hr-operations/company-basics.html'])\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \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 { GapCoverProviders } from \"./selected-map\";\r\n\r\nexport class CompanyGapCoverProvider {\r\n gapCoverProviders: Array;\r\n}\r\n","import { SelectedMap } from \"./selected-map\";\r\n\r\nexport class CompanyMedicalAidProvider {\r\n\r\n corporateId: string;\r\n active: boolean = true;\r\n selectedMAP: Array;\r\n\r\n}\r\n","export enum ActiveTab {\r\n JOINER_REQUIREMENTS = 'joiner-requirements',\r\n CORPORATE_BASICS = 'corporate-basics',\r\n CORPORATE_BENEFITS = 'joiner-benefits'\r\n}\r\n","export * from './active-tab.enum';\r\n","export * from './sub-header/sub-header.component';\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ActiveTab } from '../enum';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-sub-header',\r\n templateUrl: './sub-header.component.html',\r\n styleUrls: ['./sub-header.component.scss']\r\n})\r\nexport class SubHeaderComponent implements OnInit {\r\n @Input() activeTab: ActiveTab;\r\n @Output() back = new EventEmitter();\r\n active = ActiveTab\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onClick() {\r\n this.back.emit();\r\n }\r\n\r\n gotoCorporateBasics() {\r\n this.router.navigateByUrl(\"/digital/onboarding/hr-operations/company-basics.html\");\r\n }\r\n\r\n gotoCorporateBenefits() {\r\n this.router.navigateByUrl(\"/digital/onboarding/hr-operations/company.html\");\r\n }\r\n\r\n}\r\n","
\r\n \"\"\r\n

Company details

\r\n
\r\n
\r\n
Joiner requirements
\r\n
Corporate basics
\r\n
Corporate benefits
\r\n
\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NewJoinersComponent } from \"./new-joiners/new-joiners.component\";\r\nimport { NewEmployeesSharedModule } from \"../new-employees/shared/new-employees-shared.module\";\r\nimport { NewJoinersSubheaderComponent } from \"./new-joiners/new-joiners-subheader.ts/new-joiners-subheader.component\";\r\nimport { NewJoinersListComponent } from \"./new-joiners/new-joiners-list/new-joiners-list.component\";\r\nimport { HrOperationsFooterComponent } from \"./shared/hr-operations-footer/hr-operations-footer.component\";\r\nimport { UserInfoComponent } from './new-joiners/new-joiners-list/user-info/user-info.component';\r\nimport { AfCheckboxComponent } from './new-joiners/new-joiners-list/af-checkbox/af-checkbox.component';\r\nimport { AfDropdownComponent } from './new-joiners/new-joiners-list/af-dropdown/af-dropdown.component';\r\nimport { InitialsPipe } from './new-joiners/new-joiners-list/initials.pipe';\r\nimport { AppHeaderModule } from './../../shared-ui/app-header/app-header.module';\r\nimport { CustomDatePipePipe } from \"./new-joiners/new-joiners-list/custom-date-pipe.pipe\";\r\nimport { DownloadNewJoinersDocumentsComponent } from './new-joiners/download-new-joiners-documents/download-new-joiners-documents.component';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { OrderByPipe } from './new-joiners/new-joiners-list/order-by.pipe';\r\nimport { CompanyComponent } from \"./company/company.component\";\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { CardModule } from 'primeng/card';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { CustomSharedModule } from '../.././../../app/shared/custom-shared.module';\r\nimport { CorporateService } from '../../../../app/services/corporate.service';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { CorporateBenefitsComponent } from \"./company/corporate-benefits/corporate-benefits.component\";\r\nimport { CompanyMedicalaidProviderComponent } from \"./company/corporate-benefits/company-medicalaid-provider/company-medicalaid-provider.component\";\r\nimport { CompanyGapcoverProviderComponent } from \"./company/corporate-benefits/company-gapcover-provider/company-gapcover-provider.component\";\r\nimport { CompanyRiskCoverComponent } from \"./company/corporate-benefits/company-risk-cover/company-risk-cover.component\";\r\nimport { SubHeaderComponent } from \"./company/shared\";\r\nimport { CompanyBasicsComponent } from \"./company/company-basics/containers\";\r\nimport { CompanyBasicsCardComponent } from \"./company/company-basics/components\";\r\n\r\n@NgModule({\r\n declarations: [\r\n NewJoinersComponent,\r\n NewJoinersSubheaderComponent,\r\n HrOperationsFooterComponent,\r\n UserInfoComponent,\r\n AfCheckboxComponent,\r\n AfDropdownComponent,\r\n InitialsPipe,\r\n CustomDatePipePipe,\r\n DownloadNewJoinersDocumentsComponent,\r\n CompanyComponent,\r\n CorporateBenefitsComponent,\r\n CompanyMedicalaidProviderComponent,\r\n CompanyGapcoverProviderComponent,\r\n CompanyRiskCoverComponent,\r\n SubHeaderComponent,\r\n CompanyBasicsComponent,\r\n CompanyBasicsCardComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n NewEmployeesSharedModule,\r\n AppHeaderModule,\r\n FormsModule,\r\n CustomSharedModule,\r\n BrowserModule,\r\n CardModule,\r\n BrowserAnimationsModule,\r\n DropdownModule,\r\n InputSwitchModule,\r\n CalendarModule,\r\n CheckboxModule,\r\n ConfirmDialogModule,\r\n ReactiveFormsModule,\r\n ColorPickerModule,\r\n FileUploadModule,\r\n PanelModule\r\n ],\r\n entryComponents: [\r\n NewJoinersComponent, \r\n CorporateBenefitsComponent,\r\n CompanyMedicalaidProviderComponent,\r\n CompanyGapcoverProviderComponent,\r\n CompanyRiskCoverComponent,\r\n CompanyBasicsComponent\r\n ], \r\n providers: [\r\n CorporateService\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class HrOperationsModule {}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { LoaderService } from './../../../../../../../src/app/services/loader.service';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from './../../../../../../../src/environments/environment';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { UtilitiesService } from \"../../../../../services/utilities.service\";\r\n\r\n@Component({\r\n selector: 'app-download-new-joiners-documents',\r\n templateUrl: './download-new-joiners-documents.component.html',\r\n styleUrls: ['./download-new-joiners-documents.component.scss']\r\n})\r\n\r\nexport class DownloadNewJoinersDocumentsComponent implements OnInit {\r\n csvDownloaded: any;\r\n private _headers: HttpHeaders;\r\n documentDownloadForm: FormGroup;\r\n isDocumentsSent: Boolean = false;\r\n showThankYou: Boolean;\r\n currentDate = new Date();\r\n\r\n @Output() close = new EventEmitter();\r\n @Input() emp;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private utilitiesService: UtilitiesService,\r\n private loader: LoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.onCreateDocumentDownloadForm();\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n onShowThankYou() {\r\n if (!this.showThankYou) {\r\n this.showThankYou = true;\r\n }\r\n else{\r\n this.onClose();\r\n }\r\n }\r\n\r\n onExportCsv(){\r\n this.loader.start();\r\n\r\n this.downloadDocument();\r\n\r\n this.loader.stop();\r\n }\r\n\r\n onCreateDocumentDownloadForm() {\r\n this.documentDownloadForm = new FormGroup({\r\n isDocumentsSent: new FormControl(false)\r\n });\r\n }\r\n\r\n toggle(debtCheckId: any) {\r\n\r\n const chkValue = this.documentDownloadForm.get('isDocumentsSent').value;\r\n const x = document.getElementById('doneButton');\r\n if(chkValue ){\r\n\r\n x.classList.remove('disabled');\r\n }\r\n else{\r\n x.classList.add('disabled');\r\n }\r\n }\r\n\r\n downloadDocument() {\r\n\r\n const data = {\r\n id : this.emp.id,\r\n }\r\n\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const exportCsvUrl = `${environment.serverUrl}${environment.endPoints.newJoinersUrl}`;\r\n const url = `${exportCsvUrl}/${data.id}/export`;\r\n const options = { headers: this._headers };\r\n\r\n this.httpClient.get(url,{\r\n responseType: 'blob',headers:this._headers}\r\n ).subscribe(response => this.downLoadFile(response, \"application/excel\"));\r\n\r\n }\r\n\r\n downLoadFile(data: any, type: string) {\r\n const dateToUse = this.utilitiesService.convertDateShortDash(this.currentDate);\r\n let a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.setAttribute(\"id\",\"theLink\");\r\n var x = document.getElementById(\"theLink\");\r\n x.style.display === \"none\";\r\n const fileName = this.emp.firstname + this.emp.lastname + '_' + dateToUse +'.csv';\r\n const blob = new Blob([data], { type: 'application/octet-stream' });\r\n let url = window.URL.createObjectURL(blob);\r\n a.href = url;\r\n a.download = fileName;\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Download new joiner details

\r\n

Download {{emp.firstname}}'s document pack and email through to your payroll department.

\r\n
\r\n
\r\n
{{emp.firstname | uppercase}}
\r\n

{{emp.firstname}} {{emp.lastname}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Payroll document pack \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n I have sent the documents through to payroll\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n

Thank You

\r\n

{{emp.firstname}} has now been submitted to payroll

\r\n
\r\n
\r\n
{{emp.firstname | uppercase}}
\r\n

{{emp.firstname}} {{emp.lastname}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n of\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n Steps\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n Done\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';\r\n\r\n@Component({\r\n selector: 'app-af-checkbox',\r\n templateUrl: './af-checkbox.component.html',\r\n styleUrls: ['./af-checkbox.component.scss']\r\n})\r\nexport class AfCheckboxComponent implements OnInit {\r\n\r\n isChecked: Boolean = false;\r\n constructor() {\r\n }\r\n @Input() ref: any;\r\n\r\n ngOnInit() {\r\n }\r\n\r\n toogle() {\r\n\r\n const el = document.getElementById(this.ref.id);\r\n if (!this.isChecked) {\r\n // el.dispatchEvent(\r\n // new CustomEvent('af-check-click', {\r\n // bubbles: true,\r\n // detail: {\r\n // name: \"af-check\",\r\n // state: \"checked\",\r\n // ref: this.ref\r\n // }\r\n // })\r\n // );\r\n el.classList.add('bg-orange-600');\r\n el.classList.remove('border-2');\r\n el.classList.remove('border-gray-500');\r\n } else {\r\n // el.dispatchEvent(\r\n // new CustomEvent('af-check-click', {\r\n // bubbles: true,\r\n // detail: {\r\n // name: \"af-check\",\r\n // state: \"unchecked\",\r\n // ref: this.ref\r\n // }\r\n // })\r\n // );\r\n el.classList.add('border-gray-500');\r\n el.classList.add('border-2');\r\n el.classList.remove('bg-orange-600');\r\n }\r\n this.isChecked = !this.isChecked;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-af-dropdown',\r\n templateUrl: './af-dropdown.component.html',\r\n styleUrls: ['./af-dropdown.component.scss']\r\n})\r\nexport class AfDropdownComponent implements OnInit {\r\n\r\n\r\n @Input()\r\n options: any;\r\n scale = '1';\r\n selected = 'Select action';\r\n collapsed = true;\r\n @Output() selectedOpt = new EventEmitter();\r\n constructor() { }\r\n ngOnInit() {\r\n }\r\n\r\n toggle() {\r\n event.stopPropagation();\r\n this.scale = this.collapsed ? '-1' : '1';\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n updateSelection(option) {\r\n this.selected = option;\r\n this.selectedOpt.emit(option);\r\n }\r\n}\r\n","
\r\n
\r\n {{selected}}\r\n \r\n \r\n \r\n
\r\n
\r\n {{ opt }}\r\n
\r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'customDatePipe'\r\n})\r\nexport class CustomDatePipePipe extends DatePipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n return super.transform(value, \"d MMMM\");\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"initials\"\r\n})\r\nexport class InitialsPipe implements PipeTransform {\r\n transform(value: string, args: any[]): string | boolean {\r\n if (value === null) {\r\n return false;\r\n }\r\n const firstWords = [];\r\n for (let i = 0; i < value.length; i++) {\r\n const words = value[i].split(\" \");\r\n firstWords.push(words[0]);\r\n }\r\n return firstWords[0];\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Input } from \"@angular/core\";\r\nimport { CandidateService } from \"../../../../../services/candidate.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ErrorService } from \"../../../../../services/error.service\";\r\nimport { OfferService } from \"../../../../../services/offer.service\";\r\nimport { formatDate } from \"@angular/common\";\r\nimport { ExploreOfferService } from \"../../../../../services/explore-offer.service\";\r\nimport { NewEmployeesCacheService } from \"../../../new-employees/retirement-contributions-information/new-employees-cache.service\";\r\nimport { StoreService } from \"../../../../../services/storeService\";\r\n\r\n\r\n@Component({\r\n selector: \"app-new-joiners-list\",\r\n templateUrl: \"./new-joiners-list.component.html\",\r\n styleUrls: [\"./new-joiners-list.component.scss\"],\r\n})\r\nexport class NewJoinersListComponent implements OnInit, OnDestroy {\r\n\r\n constructor(\r\n public _candidateService: CandidateService,\r\n private _errorService: ErrorService,\r\n public exploreService: ExploreOfferService,\r\n private _cache: NewEmployeesCacheService,\r\n private _offerService: OfferService,\r\n private _storeService: StoreService\r\n\r\n ) {}\r\n\r\n private _subscriptions = new Array();\r\n dateToUse: number;\r\n offersAcceptedData: any;\r\n emps = [];\r\n page = 1;\r\n orderBy = \"Surname\";\r\n searchCriteria = \"*\";\r\n sortAsc = false;\r\n searchText: any;\r\n\r\n isChecked: Boolean = false;\r\n public selectedEmployees: any[];\r\n isDesc: boolean = false;\r\n column: string = 'firstname';\r\n direction: number;\r\n corporate: string;\r\n corp: any;\r\n pageInfo: any;\r\n lastRecord: number;\r\n firstRecord: any;\r\n PageNumber: number = 1;\r\n PageSize: number = 10;\r\n OverallCount: number = 10;\r\n PagesInSet: number = 10;\r\n selectedOption: any;\r\n options: string[] = [\r\n 'Download new joiner details'\r\n ];\r\n\r\n ngOnInit() {\r\n this._offerService.getNewJoiners().subscribe((resp) => {\r\n this.offersAcceptedData = resp;\r\n this.emps = this.offersAcceptedData;\r\n this.pageInfo = this.emps.length;\r\n this.OverallCount = this.emps.length;\r\n this.lastRecord =\r\n this.OverallCount < 10 ? this.emps.length : this.PageSize;\r\n\r\n this.firstRecord = this.PageSize - 9;\r\n });\r\n }\r\n onSelectedOpt(data: any) {\r\n this.selectedOption = data;\r\n }\r\n\r\n\r\n sort(property){\r\n this.isDesc = !this.isDesc; //change the direction\r\n this.column = property;\r\n this.direction = this.isDesc ? 1 : -1;\r\n };\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n submit\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Name
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Surname
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Time to complete
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Priority
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n (selectedOptions)=\"onSelectedOpt($event)\"\r\n (fundName) = \"fundName\">\r\n \r\n\r\n \r\n
0\">\r\n
\r\n
{{firstRecord}} - {{pageInfo}} of {{pageInfo}}
\r\n \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 { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"orderBy\",\r\n})\r\nexport class OrderByPipe implements PipeTransform {\r\n transform(records: Array, args?: any): any {\r\n return records.sort(function (a, b) {\r\n if (a[args.property] < b[args.property]) {\r\n return -1 * args.direction;\r\n } else if (a[args.property] > b[args.property]) {\r\n return 1 * args.direction;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'search'\r\n})\r\nexport class SearchPipe implements PipeTransform {\r\n\r\n transform(newjoiners: any, searchText: any): any {\r\n if (searchText == null) return newjoiners;\r\n\r\n return newjoiners.filter(function (newjoiner) {\r\n return newjoiner.firstname.toLowerCase().indexOf(searchText) > -1 || newjoiner.lastname.toLowerCase().indexOf(searchText) > -1 || newjoiner.identityValue.indexOf(searchText) > -1 ;\r\n });\r\n }\r\n\r\n}\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { UtilitiesService } from \"../../../../../../services/utilities.service\";\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\n@Component({\r\n selector: 'app-user-info',\r\n templateUrl: './user-info.component.html',\r\n styleUrls: ['./user-info.component.scss']\r\n})\r\nexport class UserInfoComponent implements OnInit {\r\n options: string[] = [\r\n 'Download new joiner details'\r\n ];\r\n offersAcceptedData: any[];\r\n offer: any;\r\n collapsed = true;\r\n selectedOption: any;\r\n showJoinersDocuments: boolean;\r\n fundName: string;\r\n showWiz: Boolean;\r\n validationErrors: string[];\r\n testList: any[] = [];\r\n\r\n @Input() emp;\r\n @Output() selectedOptions = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n scale = '1';\r\n\r\n constructor(\r\n private utilitiesService: UtilitiesService,\r\n private loader: LoaderService\r\n ) {\r\n\r\n }\r\n ngOnInit() {\r\n this.loader.start();\r\n this.emp.startDate = this.utilitiesService.convertShortDate(this.emp.startDate);\r\n this.fundName = localStorage.getItem('fundName');\r\n this.loader.stop();\r\n }\r\n onSelectedOpt(data: any){\r\n this.selectedOption = data;\r\n }\r\n\r\n submit(event: any, emp: any){\r\n if (this.selectedOption){\r\n this.showJoinersDocuments = true;\r\n this.showWiz = this.showJoinersDocuments;\r\n }\r\n\r\n else{\r\n this.showJoinersDocuments = false;\r\n }\r\n }\r\n\r\n onClose() {\r\n this.showJoinersDocuments = false;\r\n }\r\n\r\n toggle(id) {\r\n\r\n var x = document.getElementById(\"section-\" + id);\r\n\r\n if (x.style.display === \"none\") {\r\n x.style.display = \"grid\";\r\n this.scale = '-1';\r\n } else {\r\n x.style.display = \"none\";\r\n this.scale = '1';\r\n }\r\n }\r\n}\r\n\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{emp.firstname | uppercase }}
\r\n
{{emp.firstname}}
\r\n
\r\n
\r\n
{{emp.lastname}}
\r\n
\r\n {{emp.timeToComplete}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n {{emp.status}}\r\n

\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Details
\r\n
\r\n
\r\n Start date : {{emp.startDate}}\r\n
\r\n
\r\n ID / Passport: {{emp.identityValue}}\r\n
\r\n
\r\n Fund name: {{fundName}}\r\n
\r\n
\r\n Status\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{emp.status}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n submit
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, OnInit, OnDestroy, Output, EventEmitter } from \"@angular/core\";\r\nimport { CandidateService } from \"../../../../../services/candidate.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { ErrorService } from \"../../../../../services/error.service\";\r\nimport {formatDate} from '@angular/common';\r\nimport { ExploreOfferService } from \"../../../../../services/explore-offer.service\";\r\nimport { StoreService } from \"../../../../../services/storeService\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { environment } from '../../../../../../environments/environment';\r\nimport { UtilitiesService } from \"../../../../../services/utilities.service\";\r\nimport { RoutingService } from \"../../../../../services/routing.service\";\r\n\r\n@Component({\r\n selector: \"app-new-joiners-subheader\",\r\n templateUrl: \"./new-joiners-subheader.component.html\",\r\n styleUrls: [\"./new-joiners-subheader.component.scss\"]\r\n})\r\nexport class NewJoinersSubheaderComponent implements OnInit, OnDestroy {\r\n\r\n @Output() getFundName = new EventEmitter();\r\n fundName: string;\r\n\r\n constructor(\r\n public _candidateService: CandidateService,\r\n public exploreService: ExploreOfferService,\r\n private storeService: StoreService,\r\n private httpClient: HttpClient,\r\n private errorService: ErrorService,\r\n private _routingService: RoutingService,\r\n private utilitiesService: UtilitiesService\r\n ) {}\r\n\r\n private _subscriptions = new Array();\r\n myDate = new Date();\r\n dateToUse: any;\r\n offersAcceptedData: any;\r\n corporate: string;\r\n corp: any;\r\n payrollDate: any;\r\n day: any;\r\n payrollDay: any;\r\n month: any;\r\n year: any;\r\n\r\n ngOnInit() {\r\n this.getUserCorp();\r\n\r\n }\r\n\r\n getUserCorp()\r\n {\r\n const token = this.storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${environment.serverUrl}${environment.endPoints.corporateUrl}/${this.storeService.getStoredData().profile['CorporateId']}`;\r\n this.httpClient.get(url, options).subscribe(resp => {\r\n this.corp = resp;\r\n this.day = this.myDate.getDate();\r\n this.month = this.myDate.getMonth() + 1;\r\n this.year = this.myDate.getFullYear();\r\n this.fundName = JSON.parse(resp[\"retirementData\"])[\"benefits\"][\"0\"].availableBenefitOptions.schemeName;\r\n if (this.corp.payrollDay < this.day ) {\r\n this.payrollDate = this.utilitiesService.convertShortDate(`${this.year}/${this.month + 1}/${this.corp.payrollDay}`);\r\n this.dateToUse = new Date(this.payrollDate).toDateString();\r\n }\r\n else {\r\n this.payrollDate = this.utilitiesService.convertShortDate(`${this.year}/${this.month}/${this.corp.payrollDay}`);\r\n this.dateToUse = new Date(this.payrollDate).toDateString();\r\n }\r\n this.getFundName.emit(this.fundName);\r\n }, err => {\r\n this.errorService.openErrorPopup(`Could not get results`)\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n onBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-new-joiners',\r\n templateUrl: './new-joiners.component.html',\r\n styleUrls: ['./new-joiners.component.scss']\r\n})\r\nexport class NewJoinersComponent implements OnInit {\r\n fundName: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n getFundName(data: string){\r\n this.fundName = data;\r\n localStorage.setItem('fundName', data);\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 } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-hr-operations-footer\",\r\n templateUrl: \"./hr-operations-footer.component.html\",\r\n styleUrls: [\"./hr-operations-footer.component.scss\"]\r\n})\r\nexport class HrOperationsFooterComponent implements OnInit {\r\n currentYear: string;\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.currentYear = new Date().getFullYear().toString();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n Privacy policy | Cookie Policy | Terms & conditions | Legal\r\n
\r\n
\r\n Copyright 2019 Alexander Forbes Group Holdings Limited\r\n
\r\n
\r\n","import { Subject } from \"rxjs\";\r\n\r\nexport class RetirementService {\r\n data = new Subject();\r\n}\r\n\r\nexport class Emitter {\r\n data = new Subject();\r\n}\r\n\r\nexport class ChildEmitter {\r\n data = new Subject();\r\n}\r\n","export class FileDocument {\r\n type: number;\r\n url: string;\r\n thumbnail: string;\r\n filename: string;\r\n id: string;\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { CandidateService } from '../../../services/candidate.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { OfferService } from '../../../services/offer.service';\r\nimport { CorporateService } from '../../../services/corporate.service';\r\nimport { StoreService } from '../../../services/storeService';\r\nimport { ErrorService } from '../../../services/error.service';\r\nimport { CandidateCacheService } from '../candidate/candidate-cache.service';\r\nimport { LoaderService } from '../../../services/loader.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\n@Injectable()\r\nexport class NewEmployeesCacheService extends CandidateCacheService {\r\n\r\n protected role = 'user';\r\n\r\n constructor(protected _auth: AuthenticationService,\r\n protected _candidateService: CandidateService,\r\n protected _offerService: OfferService,\r\n protected _corporateService: CorporateService,\r\n protected _loader: LoaderService,\r\n protected _errorService: ErrorService) {\r\n super(_auth, _candidateService, _offerService, _corporateService, _loader, _errorService);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators, FormArray } from '@angular/forms';\r\n\r\n@Injectable()\r\nexport class MyDetailsFormService {\r\n detailsForm: FormGroup;\r\n\r\n constructor(private formBuilder: FormBuilder) { }\r\n\r\n createContactDetailsForm() {\r\n this.detailsForm = this.formBuilder.group({\r\n Id: new FormControl(null, [Validators.required]),\r\n CorporateId: new FormControl(null, [Validators.required]),\r\n Firstname: new FormControl(null, [Validators.required]),\r\n Lastname: new FormControl(null, [Validators.required]),\r\n Email: new FormControl(null, [Validators.required, Validators.email]),\r\n CellPhone: new FormControl(null, [Validators.required]),\r\n DateOfBirth: new FormControl(null, [Validators.required]),\r\n CurrentRole: new FormControl(null),\r\n CurrentCostToCompany: new FormControl(null),\r\n NationalityId: new FormControl(null, [Validators.required]),\r\n TitleId: new FormControl(null, [Validators.required]),\r\n RaceId: new FormControl(null),\r\n GenderId: new FormControl(null, [Validators.required]),\r\n StatusId: new FormControl(null, [Validators.required]),\r\n IdentityTypeId: new FormControl(null, [Validators.required]),\r\n IdentityValue: new FormControl(null, [Validators.required]),\r\n Disability: new FormControl(null),\r\n MaritalStatusId: new FormControl(null),\r\n IDDocumentId: new FormControl(null, [Validators.required]),\r\n CVDocumentId: new FormControl(null, [Validators.required])\r\n });\r\n }\r\n\r\n fillContancDetailsForm(userDetails: any) {\r\n\r\n const idDocumentId = userDetails.idDocument ? userDetails.idDocument.id : null;\r\n const cvDocumentId = userDetails.cvDocument ? userDetails.cvDocument.id : null;\r\n const email = userDetails.candidateContactChannels.length > 0\r\n ? userDetails.candidateContactChannels.filter(x => x.type == 'Email')[0].value\r\n : null;\r\n const cellPhone = userDetails.candidateContactChannels.length > 1\r\n ? userDetails.candidateContactChannels.filter(x => x.type == 'Cellphone')[0].value\r\n : null;\r\n\r\n this.detailsForm.get('Id').setValue(userDetails.id);\r\n this.detailsForm.get('CorporateId').setValue(userDetails.corporateId);\r\n this.detailsForm.get('Firstname').setValue(userDetails.firstname);\r\n this.detailsForm.get('Lastname').setValue(userDetails.lastname);\r\n this.detailsForm.get('Email').setValue(email);\r\n this.detailsForm.get('CellPhone').setValue(cellPhone);\r\n this.detailsForm.get('DateOfBirth').setValue(userDetails.dateOfBirth);\r\n this.detailsForm.get('CurrentRole').setValue(userDetails.currentRole);\r\n this.detailsForm.get('CurrentCostToCompany').setValue(userDetails.currentCostToCompany);\r\n this.detailsForm.get('NationalityId').setValue(userDetails.nationalityId);\r\n this.detailsForm.get('TitleId').setValue(userDetails.titleId);\r\n this.detailsForm.get('RaceId').setValue(userDetails.raceId);\r\n this.detailsForm.get('GenderId').setValue(userDetails.genderId);\r\n this.detailsForm.get('StatusId').setValue(userDetails.statusId);\r\n this.detailsForm.get('IdentityTypeId').setValue(userDetails.identityTypeId);\r\n this.detailsForm.get('IdentityValue').setValue(userDetails.identityValue);\r\n this.detailsForm.get('Disability').setValue(userDetails.disability);\r\n this.detailsForm.get('MaritalStatusId').setValue(userDetails.maritalStatusId);\r\n this.detailsForm.get('IDDocumentId').setValue(idDocumentId);\r\n this.detailsForm.get('CVDocumentId').setValue(cvDocumentId);\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, Input, OnDestroy } from '@angular/core';\r\nimport { ProfileService } from '../../../../../services/profile.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { GetUserByIdModel } from '../../../../../services/service_models/profile-models/profile.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MyDetailsFormService } from './my-details-form.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-my-details',\r\n templateUrl: './my-details.component.html',\r\n styleUrls: [\r\n '../../../../../shared/styles/confirmation-dialog.scss',\r\n './my-details.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class MyDetailsComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() fullName: string;\r\n @Input() jobTitle: string;\r\n @Input() department: string;\r\n @Input() division: string;\r\n @Input() changePassword: string;\r\n @Input() otpChanged: string;\r\n passwordVal: string;\r\n otpVal: string;\r\n formData: FormGroup;\r\n\r\n user: GetUserByIdModel;\r\n username: any;\r\n\r\n constructor(private _profileService: ProfileService,\r\n private _confirmationService: ConfirmationService,\r\n private _loader: LoaderService,\r\n private _errorService: ErrorService,\r\n private _routingService: RoutingService,\r\n private _notificationService: NotificationService,\r\n private _storeService: StoreService,\r\n public formHelper: MyDetailsFormService) { }\r\n\r\n\r\n ngOnInit() {\r\n this.formHelper.createContactDetailsForm();\r\n this.username = this._storeService.getStoredData().profile.preferred_username[0];\r\n this._loader.start();\r\n this._subscriptions.push(this._profileService.getUserDetails().subscribe((resp) => {\r\n this.user = resp;\r\n this.user.CVDocumentId = resp.idDocument ? resp.idDocument.id : null;\r\n this.user.IDDocumentId = resp.cvDocument ? resp.cvDocument.id : null;\r\n this._loader.stop();\r\n this.formHelper.fillContancDetailsForm(resp);\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get user data.');\r\n }));\r\n }\r\n\r\n onSaveChanges() {\r\n this._confirmationService.confirm({\r\n header: 'Save changes',\r\n message: 'Are you sure you want to save your changes?',\r\n acceptLabel: 'SAVE',\r\n rejectLabel: 'DON\\'T SAVE',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n const data = this.formHelper.detailsForm.value;\r\n this._subscriptions.push(this._profileService.updateUserDetails(data).subscribe((resp) => {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Profile updated successfully');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update user details!');\r\n }));\r\n }\r\n });\r\n }\r\n\r\n onChangePassword($event) {\r\n this._loader.start();\r\n this._subscriptions.push(this._profileService.resendAFOPin(this.username, 'mobile')\r\n .subscribe((resp) => {\r\n this._notificationService\r\n .openNotification('Access code has been sent. An sms has been sent to the new user');\r\n this.passwordVal = $event;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to send code.');\r\n }));\r\n }\r\n\r\n onOTPChanged($event) {\r\n this.otpVal = $event;\r\n this._confirmationService.confirm({\r\n header: 'Change password',\r\n message: 'Are you sure you want to update your password?',\r\n acceptLabel: 'YES, UPDATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n this._subscriptions.push(this._profileService.completePasswordChange(this.username, this.otpVal, this.passwordVal)\r\n .subscribe((resp) => {\r\n this._loader.stop();\r\n this._notificationService\r\n .openNotification('Password has been changed.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update password.');\r\n }));\r\n }\r\n });\r\n }\r\n\r\n goBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\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, Output, EventEmitter, Input } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-profile-change-password',\r\n templateUrl: './profile-change-password.component.html',\r\n styleUrls: ['./profile-change-password.component.scss']\r\n})\r\nexport class ProfileChangePasswordComponent implements OnInit {\r\n\r\n @Output() changePassword = new EventEmitter();\r\n @Output() otpChanged = new EventEmitter();\r\n passwordForm: FormGroup;\r\n public showOTP: boolean = false;\r\n password: any\r\n confirmPassword: any;\r\n otpFieldValue: any;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private _errorService: ErrorService) { }\r\n\r\n ngOnInit() {\r\n this.createPasswordForm();\r\n }\r\n\r\n createPasswordForm() {\r\n this.passwordForm = this.formBuilder.group({\r\n password: new FormControl(null, [Validators.required, Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\\\D*\\\\d)[A-Za-z\\\\d!$%@#£€*?&]{8,}$')]),\r\n confirmPassword: new FormControl(null, [Validators.required, Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\\\D*\\\\d)[A-Za-z\\\\d!$%@#£€*?&]{8,}$')])\r\n });\r\n }\r\n\r\npasswordsConfirmed(){\r\n this.password = this.passwordForm.controls['password'].value;\r\n this.confirmPassword = this.passwordForm.controls['confirmPassword'].value;\r\n\r\n if (this.passwordForm.valid && this.password === this.confirmPassword) {\r\n this.changePassword.emit(this.password);\r\n this.showOTP = !this.showOTP;\r\n } else {\r\n this._errorService.openErrorPopup('Please enter valid matching passwords.');\r\n }\r\n}\r\n\r\n onUpdatePassword() {\r\n this.otpChanged.emit(this.otpFieldValue);\r\n this.showOTP = !this.showOTP;\r\n this.createPasswordForm();\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n

\r\n Change password\r\n

\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n * Password/confirm password does not meet minimum requirements\r\n
\r\n
\r\n
\r\n \r\n \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, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { SelectItem } from 'primeng/api';\r\nimport * as sampleData from '../../../../candidate/candidate-decision-details/sample-data';\r\nimport { MyDetailsFormService } from '../my-details-form.service';\r\n\r\n@Component({\r\n selector: 'app-profile-contact-details',\r\n templateUrl: './profile-contact-details.component.html',\r\n styleUrls: ['./profile-contact-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProfileContactDetailsComponent implements OnInit {\r\n contactDetailsForm: FormGroup;\r\n numberTypes: SelectItem[];\r\n\r\n constructor(public formHelper: MyDetailsFormService) { }\r\n\r\n ngOnInit() {\r\n this.numberTypes = sampleData.contactTypes;\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n Contact details\r\n

\r\n\r\n
\r\n
\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, ViewEncapsulation } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { MyDetailsFormService } from '../my-details-form.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-profile-personal-details',\r\n templateUrl: './profile-personal-details.component.html',\r\n styleUrls: ['./profile-personal-details.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProfilePersonalDetailsComponent implements OnInit {\r\n titles: SelectItem[];\r\n nationalities: SelectItem[];\r\n idDocumentTypes: SelectItem[];\r\n genders: SelectItem[];\r\n\r\n constructor(public formHelper: MyDetailsFormService) { }\r\n\r\n ngOnInit() {\r\n this.titles = JSON.parse(localStorage.getItem('titles'));\r\n this.nationalities = JSON.parse(localStorage.getItem('nationality'));\r\n this.idDocumentTypes = JSON.parse(localStorage.getItem('identityTypes'));\r\n this.genders = JSON.parse(localStorage.getItem('genders'));\r\n }\r\n}\r\n","
\r\n
\r\n

\r\n Personal details\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\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, OnDestroy } from '@angular/core';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { NewEmployeesCacheService } from '../new-employees-cache.service';\r\n\r\n@Component({\r\n selector: 'app-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.scss']\r\n})\r\nexport class NewEmployeesProfileComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n\r\n active = 'details';\r\n fullName: string;\r\n jobTitle: string;\r\n department: string;\r\n division: string;\r\n\r\n constructor(private _loader: LoaderService, private _cache: NewEmployeesCacheService) { }\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n this._subscriptions.push(this._cache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n const candidate = this._cache.currentCandidate;\r\n const offer = this._cache.currentOffer;\r\n this.fullName = `${candidate.firstname} ${candidate.lastname}`;\r\n this.jobTitle = offer.jobTitle;\r\n this.department = offer.department;\r\n this.division = offer.division;\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NewEmployeesProfileComponent } from './profile.component';\r\nimport { NewEmployeesSharedModule } from '../shared/new-employees-shared.module';\r\nimport { MyDetailsComponent } from './my-details/my-details.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ProfileContactDetailsComponent } from './my-details/profile-contact-details/profile-contact-details.component';\r\nimport { ProfilePersonalDetailsComponent } from './my-details/profile-personal-details/profile-personal-details.component';\r\nimport { ProfileChangePasswordComponent } from './my-details/profile-change-password/profile-change-password.component';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { CustomSharedModule } from '../../../../shared/custom-shared.module';\r\nimport { MyDetailsFormService } from './my-details/my-details-form.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n NewEmployeesSharedModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n DropdownModule,\r\n ConfirmDialogModule,\r\n CustomSharedModule\r\n ],\r\n declarations: [\r\n NewEmployeesProfileComponent,\r\n MyDetailsComponent,\r\n ProfileContactDetailsComponent,\r\n ProfilePersonalDetailsComponent,\r\n ProfileChangePasswordComponent\r\n ],\r\n providers: [\r\n MyDetailsFormService\r\n ],entryComponents: [NewEmployeesProfileComponent]\r\n})\r\nexport class ProfileModule { }\r\n","import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContentService } from 'src/app/services/content.service';\r\nimport { ErrorService } from 'src/app/services/error.service';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\nimport { NomineeService } from 'src/app/services/nominee.service';\r\nimport { ValidationService } from 'src/app/services/validation.service';\r\nimport { ChildEmitter, Emitter } from '../retirement-service';\r\n@Component({\r\n selector: 'app-dependants',\r\n templateUrl: './dependants.component.html',\r\n styleUrls: ['./dependants.component.scss']\r\n})\r\nexport class DependantsComponent implements OnInit, OnDestroy {\r\n private _subscriptions = new Array();\r\n\r\n private readonly increment: number = 1;\r\n private readonly thirdStep: number = 3;\r\n private readonly seventhStep: number = 7;\r\n\r\n collection: Nominee[] = [];\r\n validationErrors: string[];\r\n titles: { value: number, label: string };\r\n genders: { value: number, label: string };\r\n relationships: { value: number, label: string };\r\n IDTypes: { value: number, label: string };\r\n step: number;\r\n\r\n constructor(private contentService: ContentService,\r\n private nomineeService: NomineeService,\r\n private readonly emitter: Emitter,\r\n private readonly childEmmiter: ChildEmitter,\r\n private readonly validateService: ValidationService,\r\n private readonly errorService: ErrorService,\r\n private readonly loaderService: LoaderService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.contentService.cacheDropdownOptions();\r\n this.genders = JSON.parse(localStorage.getItem('genders'));\r\n this.titles = JSON.parse(localStorage.getItem('titles'));\r\n this.relationships = JSON.parse(localStorage.getItem('relationshipTypes'));\r\n this.IDTypes = JSON.parse(localStorage.getItem('identityTypes'));\r\n this._subscriptions.push(\r\n this.nomineeService.getNominees().subscribe((data) => {\r\n if (!data.length) {\r\n this.collection.push(new Nominee());\r\n } else {\r\n data.map((x: { dob: string | number | Date; }) => x.dob = new Date(x.dob));\r\n this.collection = data;\r\n }\r\n })\r\n );\r\n this._subscriptions.push(\r\n this.emitter.data.subscribe(stepNumber => {\r\n\r\n this.validateModel(this.collection);\r\n const southAfricanIDs = [];\r\n this.collection.map(x => {\r\n if (+x.identityTypeId === this.seventhStep) {\r\n southAfricanIDs.push(x.identityValue);\r\n }\r\n });\r\n if (stepNumber === this.thirdStep && !this.validationErrors.length) {\r\n if (southAfricanIDs.length) {\r\n\r\n this.validateService.validateSouthAfricanIDs(southAfricanIDs).subscribe(data => {\r\n const hasInvalid = data.some(x => x.valid === false);\r\n if (hasInvalid) {\r\n this.errorService.openErrorPopup('Incorrect South African ID');\r\n } else {\r\n this._subscriptions.push(\r\n this.nomineeService.createNominees(this.collection).subscribe(resp => {\r\n stepNumber += this.increment;\r\n this.childEmmiter.data.next(stepNumber);\r\n })\r\n );\r\n }\r\n });\r\n\r\n } else {\r\n this._subscriptions.push(\r\n this.nomineeService.createNominees(this.collection).subscribe(resp => {\r\n stepNumber += this.increment;\r\n this.childEmmiter.data.next(stepNumber);\r\n })\r\n );\r\n }\r\n } else {\r\n this.errorService.openErrorPopup(this.validationErrors.join('\\n\\r'));\r\n }\r\n })\r\n );\r\n }\r\n\r\n addAnother() {\r\n this.collection.push(new Nominee());\r\n }\r\n\r\n removeCard(index: number) {\r\n this.collection.splice(index, 1);\r\n }\r\n\r\n validateSAID(IDvalue: string, IDType: number) {\r\n if (+IDType === 7) {\r\n this.loaderService.start();\r\n this._subscriptions.push(\r\n this.validateService.validateSouthAfricanID(IDvalue).subscribe(data => {\r\n if (!data.valid) {\r\n this.loaderService.stop();\r\n this.errorService.openErrorPopup('Incorrect South African ID');\r\n }\r\n this.loaderService.stop();\r\n })\r\n );\r\n }\r\n }\r\n\r\n\r\n checkTotalPercentages(percentages: number[]): boolean {\r\n const totalPercentages = percentages.reduce((accumulator, percentage) => {\r\n return accumulator += percentage;\r\n }, 0);\r\n\r\n return totalPercentages === 100;\r\n }\r\n\r\n checkStringType(modelValues: string[]): boolean {\r\n return modelValues.some(x => x === undefined ? true : x.length <= 0);\r\n }\r\n\r\n checkNumberType(modelValues: number[], initValue: number): boolean {\r\n return modelValues.some(x => x <= initValue);\r\n }\r\n\r\n validateModel(nominees: Nominee[]): void {\r\n this.validationErrors = [];\r\n\r\n if (nominees.length === 0) { return; }\r\n\r\n if (!this.checkTotalPercentages(nominees.map(n => n.savingsPercentage))) {\r\n this.validationErrors.push('Please make sure that sum of savings percentages is 100%!');\r\n }\r\n\r\n if (\r\n this.checkStringType(this.collection.map(n => n.firstname)) ||\r\n this.checkStringType(this.collection.map(n => n.lastname)) ||\r\n this.checkStringType(this.collection.map(n => n.identityValue)) ||\r\n this.checkNumberType(this.collection.map(n => n.dob ? n.dob.getDate() : 0), 0) ||\r\n this.checkNumberType(this.collection.map(n => n.titleId), 0) ||\r\n this.checkNumberType(this.collection.map(n => n.genderId), 0) ||\r\n this.checkNumberType(this.collection.map(n => n.identityTypeId), 0)\r\n ) {\r\n this.validationErrors.push('Please make sure you filled all required fields!');\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class Nominee {\r\n id: string | undefined;\r\n titleId: number = 0;\r\n genderId: number = 0;\r\n identityTypeId: number = 0;\r\n relationshipId: number = 0;\r\n nominieeTypeId: number = 1;\r\n identityValue: string;\r\n dob: Date;\r\n savingsPercentage: number;\r\n firstname: string;\r\n lastname: string;\r\n}\r\n\r\n","
\r\n\r\n \r\n\r\n
\r\n This is my\r\n \r\n \r\n and they will receive % of my savings\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\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 { Injectable } from '@angular/core';\r\nimport { CandidateService } from 'src/app/services/candidate.service';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { OfferService } from 'src/app/services/offer.service';\r\nimport { CorporateService } from 'src/app/services/corporate.service';\r\nimport { StoreService } from 'src/app/services/storeService';\r\nimport { ErrorService } from 'src/app/services/error.service';\r\nimport { CandidateCacheService } from '../../candidate/candidate-cache.service';\r\nimport { LoaderService } from 'src/app/services/loader.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\n@Injectable()\r\nexport class NewEmployeesCacheService extends CandidateCacheService {\r\n\r\n protected role = 'user';\r\n\r\n constructor(protected _auth: AuthenticationService,\r\n protected _candidateService: CandidateService,\r\n protected _offerService: OfferService,\r\n protected _corporateService: CorporateService,\r\n protected _loader: LoaderService,\r\n protected _errorService: ErrorService) {\r\n super(_auth, _candidateService, _offerService, _corporateService, _loader, _errorService);\r\n }\r\n\r\n}\r\n","import { Subject } from \"rxjs\";\r\n\r\nexport class RetirementService {\r\n data = new Subject();\r\n}\r\n\r\nexport class Emitter {\r\n data = new Subject();\r\n}\r\n\r\nexport class ChildEmitter {\r\n data = new Subject();\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { StoreService } from '../../../../services/storeService';\r\nimport { environment } from '../../../../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DocumentsService {\r\n\r\n usersUrl: string;\r\n corporateUrl: string;\r\n documentsUrl: string;\r\n private _headers: HttpHeaders;\r\n\r\n public constructor(private _http: HttpClient, private _errorService: ErrorService, private _storeService: StoreService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this._configureEndpoints();\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = environment.serverUrl;\r\n const endPoint = environment.endPoints;\r\n this.usersUrl = `${baseUrl}${endPoint.usersUrl}`;\r\n this.corporateUrl = `${baseUrl}${endPoint.corporateUrl}`;\r\n this.documentsUrl = `${baseUrl}${endPoint.uploadFilesUrl}`;\r\n }\r\n\r\n getUserDocuments(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.usersUrl}/documents`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n\r\n getBenefitDocuments() {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corporateId = this._storeService.getStoredData().profile['CorporateId'];\r\n return this._http.get(this.corporateUrl + `/${corporateId}` + '/spdocuments', options);\r\n }\r\n\r\n\r\n getUserPersonalDocuments(): Observable {\r\n // TODO implement backend call\r\n const docs = [\r\n { type: 1, url: 'http://125.19.212.57/nriregister/NRKRegister2BKP/Passport%20last%20page.jpg', id: '12345' },\r\n { type: 2, url: 'https://www.immihelp.com/nri/indianpassport/images/sample-indian-passport-2.jpg', id: '56789' },\r\n ];\r\n\r\n return new Observable((observer) => {\r\n observer.next(docs);\r\n observer.complete();\r\n });\r\n }\r\n\r\n removeFile(id: string) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.usersUrl}/documents/${id}/delete`;\r\n return this._http.delete(url, options);\r\n }\r\n\r\n getCompanyDocuments(): Observable<{ category: string, title: string, name: string }[]> {\r\n // TODO implement backend call\r\n const docs = [\r\n { category: 'Company', title: 'Letter of employment', name: '01' },\r\n { category: 'Company', title: 'Contract', name: '02' },\r\n { category: 'Company', title: 'Retirement document', name: '03' },\r\n { category: 'Company', title: 'Transfer document', name: '04' },\r\n { category: 'Company', title: 'Insurance document', name: '05' },\r\n { category: 'Company', title: 'Medical aid document', name: '06' }\r\n ];\r\n\r\n return new Observable((observer) => {\r\n observer.next(docs);\r\n observer.complete();\r\n });\r\n }\r\n\r\n openFile(docUrl: string, filename: string) {\r\n\r\n const newBlob = new Blob([docUrl], { type: 'application/pdf' });\r\n\r\n if (window.navigator && window.navigator['msSaveOrOpenBlob']) {\r\n window.navigator['msSaveOrOpenBlob(newBlob)'];\r\n return;\r\n }\r\n // For other browsers:\r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.download = filename;\r\n // this is necessary as link.click() does not work on the latest Firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n\r\n\r\n }\r\n\r\n downloadBenefitFile(fileName: string) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const httpOptions = {\r\n responseType: 'blob' as 'json',\r\n headers: new HttpHeaders({\r\n 'Authorization': `Bearer ${token}`,\r\n })\r\n };\r\n return this._http.get(this.documentsUrl + '/spdownload/' + fileName, httpOptions);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\nimport { GenericPopupComponent } from '../generic-popup/generic-popup.component';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-advice-sent-popup',\r\n templateUrl: './advice-sent-popup.component.html',\r\n styleUrls: [\r\n '../../shared/generic-popup/generic-popup.component.scss',\r\n './advice-sent-popup.component.scss'\r\n ]\r\n})\r\nexport class AdviceSentPopupComponent extends GenericPopupComponent {\r\n\r\n @Output() close = new EventEmitter();\r\n\r\n constructor(private _routingService: RoutingService) {\r\n super();\r\n }\r\n\r\n continue() {\r\n this.close.emit();\r\n }\r\n\r\n}\r\n","
\r\n \r\n\r\n

\r\n Advice request sent\r\n

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

\r\n Thank you for your request.\r\n
\r\n You will be contacted by one of our team members shortly.\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, ViewEncapsulation, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-benefit-document-card',\r\n templateUrl: './benefit-document-card.component.html',\r\n styleUrls: [\r\n '../../../users/all-templates/templates-dashboard/dashboard-template/dashboard-template-card.component.scss',\r\n './benefit-document-card.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BenefitDocumentCardComponent {\r\n\r\n @Input() document: any;\r\n @Input() description: any;\r\n @Output() download = new EventEmitter();\r\n defaultImgUrl = '/content/dam/memberonboarding/default-doc.PNG';\r\n\r\n onDownloadUpload() {\r\n this.download.emit(this.document.label);\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
{{ document.name }}
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { NewEmployeesCacheService } from '../../retirement-contributions-information/new-employees-cache.service';\r\nimport { ChildEmitter } from '../../benefits/retirement-contributions-information/retirement-service';\r\n\r\n\r\n@Component({\r\n selector: 'app-benefits-subheader',\r\n templateUrl: './benefits-subheader.component.html',\r\n styleUrls: ['./benefits-subheader.component.scss']\r\n})\r\nexport class BenefitsSubheaderComponent implements OnInit, OnDestroy {\r\n\r\n\r\n private _subscriptions = new Array();\r\n @Input() title: string;\r\n @Input() active: string;\r\n step: number;\r\n\r\n\r\n constructor(private _routingService: RoutingService, private readonly childEmmiter: ChildEmitter) {\r\n setInterval(() => { this.step = parseInt(localStorage.getItem('step')); }, 1000);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n }\r\n\r\n\r\n onBack() {\r\n // this._routingService.goBack();\r\n if (this.step > 1) {\r\n let backStep = this.step - 1;\r\n this.childEmmiter.data.next(backStep)\r\n } else {\r\n this._routingService.transitionAssistBenefits();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Optimise my Retirement

\r\n
Contributions and savings
\r\n
Retirement strategy
\r\n
Those important to you
\r\n
Review and finalise
\r\n
\r\n
\r\n
\r\n 20 days left\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { Component, OnDestroy, Input } from '@angular/core';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'app-contact-window',\r\n templateUrl: './contact-window.component.html',\r\n styleUrls: ['./contact-window.component.scss']\r\n})\r\nexport class ContactWindowComponent implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() showInfo: boolean;\r\n isContactOpen: boolean;\r\n\r\n constructor(private _notificationService: NotificationService,\r\n private _loader: LoaderService,\r\n private _errorService: ErrorService) { }\r\n\r\n close() {\r\n this.isContactOpen = false;\r\n }\r\n\r\n sendQuery(query) {\r\n this._loader.start();\r\n this._subscriptions.push(this._notificationService.requestAsistance('QueryAdvice', query).subscribe((resp) => {\r\n this._loader.stop();\r\n this.isContactOpen = false;\r\n this._notificationService.openNotification('Your query has been sent successfully.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured!');\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","

\r\n \r\n

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

Connect to Advice

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

\r\n Please contact us on 0860 100 444\r\n

\r\n

\r\n (Monday to Friday, 8:00AM – 17:00PM)\r\n

\r\n

\r\n or\r\n

\r\n

\r\n Enter a query if you’d like to know more on your retirement options or advice on other financial choices, one of our Alexforbes technical experts will get back to you.\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, ViewEncapsulation, Input, ViewChild, ElementRef, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { DocumentsService } from '../../services/documents.service';\r\nimport { FileUploadService } from '../../../../../services/fileupload.service';\r\nimport { CategoryDocumentModel } from '../../../../../shared/models/candidate.model';\r\nimport { FileDocument } from '../../documents/models/documents.model';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: \"app-document-card\",\r\n templateUrl: \"./document-card.component.html\",\r\n styleUrls: [\r\n \"../../../users/all-templates/templates-dashboard/dashboard-template/dashboard-template-card.component.scss\",\r\n \"./document-card.component.scss\"\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DocumentCardComponent implements OnInit, OnDestroy {\r\n private _subscriptions = new Array();\r\n @Input() document: FileDocument;\r\n @Input() type: any;\r\n @Input() description: any;\r\n @Input() active: any;\r\n @Output() uploadedDocument = new EventEmitter();\r\n fileToUpload: CategoryDocumentModel;\r\n @ViewChild(\"upload\", { static: false }) upload: ElementRef;\r\n hover: boolean;\r\n\r\n constructor(\r\n private _documentService: DocumentsService,\r\n private _fileuploadService: FileUploadService,\r\n private _loader: LoaderService,\r\n private _storeService: StoreService,\r\n private _http: HttpClient,\r\n private _errorService: ErrorService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.fileToUpload = new CategoryDocumentModel();\r\n }\r\n\r\n openFile(url: string, filename: string) {\r\n this._loader.start();\r\n this._subscriptions.push(\r\n this.openDoc(url).subscribe(\r\n (res: any) => {\r\n const downloadURL = window.URL.createObjectURL(res);\r\n const link = document.createElement(\"a\");\r\n link.href = downloadURL;\r\n link.download = filename;\r\n link.click();\r\n this._loader.stop();\r\n },\r\n error => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup(error.message);\r\n }\r\n )\r\n );\r\n }\r\n\r\n openDoc(url) {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Accept\", \"application/pdf\");\r\n const options = { headers: headers, responseType: \"blob\" as \"json\" };\r\n const _url = url;\r\n return this._http.get(_url, options);\r\n }\r\n\r\n removeFile(id: string): void {\r\n this._subscriptions.push(\r\n this._documentService.removeFile(id).subscribe((resp: any) => {\r\n this.document = new FileDocument();\r\n this.uploadedDocument.emit(true);\r\n })\r\n );\r\n }\r\n\r\n triggerFileInput() {\r\n document.getElementById(\"fileUpload\" + this.type.label).click();\r\n }\r\n\r\n handleFileInput(files: FileList, categoryId: number) {\r\n this._loader.start();\r\n this.fileToUpload.file = files.item(0);\r\n this.fileToUpload.categoryTypeId = categoryId;\r\n\r\n this._subscriptions.push(\r\n this._fileuploadService.postCategoryFile(this.fileToUpload).subscribe(\r\n resp => {\r\n if (resp) {\r\n this.document = new FileDocument();\r\n this.document.id = resp.id;\r\n this.document.type = categoryId;\r\n this.document.filename = files.item(0).name;\r\n this.document.thumbnail =\r\n \"/content/dam/memberonboarding/icons/file-black.png\";\r\n this._loader.stop();\r\n this.uploadedDocument.emit(true);\r\n }\r\n },\r\n error => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup(\r\n \"An error occured while uploading the document.\"\r\n );\r\n }\r\n )\r\n );\r\n }\r\n\r\n triggerFileUpload() {\r\n const el: HTMLElement = this.upload.nativeElement as HTMLElement;\r\n el.click();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n

{{ description.description }}

\r\n
\r\n\r\n
\r\n
\r\n
{{ type.label }}
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { ScrollBlocker } from '../../../../../shared/models/interfaces/scrollBlocker';\r\n\r\n@Component({\r\n selector: 'app-generic-popup',\r\n template: '',\r\n styleUrls: ['./generic-popup.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class GenericPopupComponent extends ScrollBlocker implements OnInit, OnDestroy {\r\n\r\n ngOnInit() {\r\n this._blockScroll();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._unblockScroll();\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-help-window',\r\n templateUrl: './help-window.component.html',\r\n styleUrls: ['./help-window.component.scss']\r\n})\r\nexport class HelpWindowComponent implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() showInfo: boolean;\r\n isHelpOpen: boolean;\r\n\r\n constructor(private _notificationService: NotificationService,\r\n private _loader: LoaderService,\r\n private _errorService: ErrorService) { }\r\n\r\n\r\n close() {\r\n this.isHelpOpen = false;\r\n }\r\n\r\n sendQuery(query) {\r\n this._loader.start();\r\n this._subscriptions.push(this._notificationService.requestAsistance('AFOnlineHelp', query).subscribe((resp) => {\r\n this._loader.stop();\r\n this.isHelpOpen = false;\r\n this._notificationService.openNotification('Your query has been sent successfully.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured!');\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","

\r\n \r\n

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

Connect to Technical Support

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

\r\n Please contact us on 0860 100 333\r\n

\r\n

\r\n (Monday to Friday, 8:00AM – 16:30PM)\r\n

\r\n

\r\n or\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport { CandidateFooterComponent } from '../../../candidate/shared/candidate-footer/candidate-footer.component';\r\n\r\n@Component({\r\n selector: 'app-new-employees-footer',\r\n templateUrl: '../../../candidate/shared/candidate-footer/candidate-footer.component.html',\r\n styleUrls: ['../../../candidate/shared/candidate-footer/candidate-footer.component.scss']\r\n})\r\nexport class NewEmployeesFooterComponent extends CandidateFooterComponent {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { AdminHeaderComponent } from \"../../../../../components/onboarding/users/shared/admin-header/admin-header.component\";\r\nimport { RoutingService } from \"../../../../../services/routing.service\";\r\nimport { ContentService } from \"../../../../../services/content.service\";\r\nimport { StoreService } from \"../../../../../services/storeService\";\r\nimport { UserService } from \"../../../../../services/user.service\";\r\nimport { NotificationService } from \"../../../../../services/notification.service\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\nimport { LoaderService } from \"../../../../../services/loader.service\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"app-new-employees-header\",\r\n templateUrl: \"./new-employees-header.component.html\",\r\n styleUrls: [\r\n \"../../../users/shared/admin-header/admin-header.component.scss\",\r\n \"./new-employees-header.component.scss\"\r\n ]\r\n})\r\nexport class NewEmployeesHeaderComponent extends AdminHeaderComponent\r\n implements OnInit {\r\n show: number = 0;\r\n constructor(\r\n public authService: AuthService,\r\n protected routingService: RoutingService,\r\n public contentService: ContentService,\r\n storeService: StoreService,\r\n userService: UserService,\r\n notificationService: NotificationService,\r\n loader: LoaderService,\r\n sanitizer: DomSanitizer\r\n ) {\r\n super(\r\n authService,\r\n routingService,\r\n contentService,\r\n storeService,\r\n userService,\r\n notificationService,\r\n loader,\r\n sanitizer\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n const url = window.location.href;\r\n if (url.includes('/home/new-employees/profile/benefits') === true) {\r\n this.show = 0;\r\n } else {\r\n this.show = 1;\r\n }\r\n this.setUserDetails();\r\n }\r\n\r\n goToAllTasks() {\r\n this._routingService.transitionAssistAllTasks();\r\n }\r\n\r\n goToDocuments() {\r\n this._routingService.transitionAssistDocuments();\r\n }\r\n\r\n goToBenefits() {\r\n this._routingService.transitionAssistBenefits();\r\n }\r\n\r\n goToEditProfile() {\r\n this._routingService.transitionAssistEditProfile();\r\n }\r\n\r\n protected setUserDetails() {\r\n const user = this._storeService.getStoredData().profile;\r\n this.userFullName = user.name;\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CustomSharedModule } from '../../../../../../src/app/shared/custom-shared.module';\r\nimport { NewEmployeesHeaderComponent } from './new-employees-header/new-employees-header.component';\r\nimport { NewEmployeesSubheaderComponent } from './new-employees-subheader/new-employees-subheader.component';\r\nimport { NewEmployeesFooterComponent } from './new-employees-footer/new-employees-footer.component';\r\nimport { GenericPopupComponent } from './generic-popup/generic-popup.component';\r\nimport { NextStepComponent } from './next-step/next-step.component';\r\nimport { DocumentCardComponent } from './document-card/document-card.component';\r\nimport { CardModule } from 'primeng/card';\r\nimport { BenefitDocumentCardComponent } from './benefit-document-card/benefit-document-card.component';\r\nimport { AdviceSentPopupComponent } from './advice-sent-popup/advice-sent-popup.component';\r\nimport { HelpWindowComponent } from './help-window/help-window.component';\r\nimport { ContactWindowComponent } from './contact-window/contact-window.component';\r\nimport { BenefitsSubheaderComponent } from './benefits-subheader/benefits-subheader.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n BrowserModule,\r\n RouterModule,\r\n CustomSharedModule,\r\n CardModule\r\n ],\r\n declarations: [\r\n NewEmployeesHeaderComponent,\r\n NewEmployeesSubheaderComponent,\r\n NewEmployeesFooterComponent,\r\n GenericPopupComponent,\r\n NextStepComponent,\r\n DocumentCardComponent,\r\n BenefitDocumentCardComponent,\r\n AdviceSentPopupComponent,\r\n HelpWindowComponent,\r\n ContactWindowComponent,\r\n BenefitsSubheaderComponent\r\n ],\r\n exports: [\r\n NewEmployeesHeaderComponent,\r\n NewEmployeesSubheaderComponent,\r\n NewEmployeesFooterComponent,\r\n GenericPopupComponent,\r\n NextStepComponent,\r\n DocumentCardComponent,\r\n BenefitDocumentCardComponent,\r\n AdviceSentPopupComponent,\r\n HelpWindowComponent,\r\n ContactWindowComponent,\r\n BenefitsSubheaderComponent\r\n ]\r\n})\r\nexport class NewEmployeesSharedModule { }\r\n","import { Component, Input } from '@angular/core';\r\nimport { AdminSubheaderComponent } from '../../../../../components/onboarding/users/shared/admin-subheader/admin-subheader.component';\r\n\r\n@Component({\r\n selector: 'app-new-employees-subheader',\r\n templateUrl: './new-employees-subheader.component.html',\r\n styleUrls: [\r\n '../../../users/shared/admin-subheader/admin-subheader.component.scss',\r\n '../../../candidate/shared/offer-subheader/offer-subheader.component.scss',\r\n './new-employees-subheader.component.scss'\r\n ]\r\n})\r\nexport class NewEmployeesSubheaderComponent extends AdminSubheaderComponent {\r\n\r\n @Input() allTasks: boolean;\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {{ title }}\r\n

\r\n

{{ text }}

\r\n

{{ text2 }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { NextStepModel } from '../../../../../services/service_models/transition-assist-models/next-steps.model';\r\n\r\n@Component({\r\n selector: 'app-next-step',\r\n templateUrl: './next-step.component.html',\r\n styleUrls: ['./next-step.component.scss']\r\n})\r\nexport class NextStepComponent implements OnInit {\r\n\r\n @Output() goToStep = new EventEmitter();\r\n @Input() model: NextStepModel;\r\n iconSrc: string;\r\n\r\n ngOnInit() {\r\n this.iconSrc ='/content/dam/memberonboarding/icons/' + this.model.icon;\r\n }\r\n\r\n clickStep() {\r\n this.goToStep.emit();\r\n }\r\n\r\n}\r\n\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ model.title }}

\r\n

{{ model.notes }}

\r\n

{{ model.isRequired ? 'Required' : 'Recommended' }}

\r\n
\r\n
\r\n {{ model.daysLeft }} DAYS LEFT \r\n \r\n
\r\n \r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { ProfileCandidateComponent } from './candidate/profile/profile.component';\r\nimport { CompanyComponent } from './hr-operations/company/company.component';\r\nimport { ProfileModule } from './new-employees/profile/profile.module';\r\nimport { ViewTemplatesComponent } from './users/all-templates/view-templates/view-templates.component';\r\nimport { ArchiveComponent } from './users/candidates-and-offers/archive/archive.component';\r\nimport { ProfileComponent } from './users/profile/profile.component';\r\nimport { CreateUserComponent } from './users/users-and-roles/roles-dashboard/create-user/create-user.component';\r\nimport { EditUserComponent } from './users/users-and-roles/roles-dashboard/edit-user/edit-user.component';\r\nimport { RolesDashboardComponent } from './users/users-and-roles/roles-dashboard/roles-dashboard/roles-dashboard.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'digital/onboarding/candidate',\r\n canActivate: [AuthGuard],\r\n component: ProfileCandidateComponent\r\n },\r\n {\r\n path: 'digital/onboarding/new-employees',\r\n canActivate: [AuthGuard],\r\n component: ProfileModule\r\n },\r\n {\r\n path: 'digital/onboarding/users/roles-dashboard',\r\n canActivate: [AuthGuard],\r\n component: RolesDashboardComponent\r\n },\r\n {\r\n path: 'digital/onboarding/corporate/template-dashboard',\r\n canActivate: [AuthGuard],\r\n component: ViewTemplatesComponent\r\n },\r\n {\r\n path: 'digital/onboarding/corporate/archive',\r\n canActivate: [AuthGuard],\r\n component: ArchiveComponent\r\n },\r\n {\r\n path: 'digital/onboarding/corporate/my-profile',\r\n canActivate: [AuthGuard],\r\n component: ProfileComponent\r\n },\r\n {\r\n path: 'digital/onboarding/hr-operations/company',\r\n canActivate: [AuthGuard],\r\n component: CompanyComponent\r\n },\r\n {\r\n path: 'digital/onboarding/candidate/edit-user',\r\n canActivate: [AuthGuard],\r\n component: EditUserComponent\r\n },\r\n {\r\n path: 'digital/onboarding/candidate/create-user',\r\n canActivate: [AuthGuard],\r\n component: CreateUserComponent\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class OnboardingRoutingModule { }","import { CommonModule, CurrencyPipe, DatePipe, DecimalPipe } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { CustomSharedModule } from 'src/app/shared/custom-shared.module';\r\nimport { SavingsRoutingModule } from '../resignations/savings/savings-routing.module';\r\nimport { AppHeaderModule } from '../shared-ui/app-header/app-header.module';\r\nimport { SavingsCalculationsModule } from '../shared-ui/savings-calculations/savings-calculations.module';\r\nimport { CandidateModule } from './candidate/candidate.module';\r\nimport { ProfileCandidateComponent } from './candidate/profile/profile.component';\r\nimport { HrOperationsModule } from './hr-operations/hr-operations.module';\r\nimport { NewJoinersListComponent } from './hr-operations/new-joiners/new-joiners-list/new-joiners-list.component';\r\nimport { OrderByPipe } from './hr-operations/new-joiners/new-joiners-list/order-by.pipe';\r\nimport { SearchPipe } from './hr-operations/new-joiners/new-joiners-list/search.pipe';\r\nimport { NewJoinersComponent } from './hr-operations/new-joiners/new-joiners.component';\r\nimport { ProfileModule } from './new-employees/profile/profile.module';\r\nimport { OnboardingRoutingModule } from './onboarding-routing.module';\r\nimport { ViewTemplatesComponent } from './users/all-templates/view-templates/view-templates.component';\r\nimport { ArchiveComponent } from './users/candidates-and-offers/archive/archive.component';\r\nimport { ProfileComponent } from './users/profile/profile.component';\r\nimport { UsersSharedModule } from './users/shared/users-shared.module';\r\nimport { CreateUserModule } from './users/users-and-roles/roles-dashboard/create-user/create-user.module';\r\nimport { EditUserModule } from './users/users-and-roles/roles-dashboard/edit-user/edit-user.module';\r\nimport { RolesDashboardComponent } from './users/users-and-roles/roles-dashboard/roles-dashboard/roles-dashboard.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ViewTemplatesComponent,\r\n RolesDashboardComponent,\r\n ArchiveComponent,\r\n ProfileComponent,\r\n NewJoinersListComponent,\r\n OrderByPipe,\r\n SearchPipe\r\n ], \r\n imports: [\r\n InputTextModule,\r\n UsersSharedModule,\r\n ConfirmDialogModule,\r\n CardModule,\r\n CommonModule, \r\n //ConnectAdviserModule,\r\n AppHeaderModule,\r\n FormsModule, \r\n ReactiveFormsModule, \r\n BrowserModule,\r\n SliderModule, \r\n SavingsCalculationsModule, \r\n CheckboxModule, \r\n SavingsRoutingModule, \r\n CalendarModule,\r\n CustomSharedModule,\r\n CandidateModule,\r\n DropdownModule,\r\n HrOperationsModule,\r\n EditUserModule,\r\n CreateUserModule\r\n ],\r\n providers: [\r\n CurrencyPipe, \r\n //AuthenticationService,\r\n //DatePipe,\r\n DecimalPipe,\r\n //SearchPipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n exports: [OnboardingRoutingModule]\r\n })\r\n\r\n export class OnboardingModule {}\r\n ","export class OfferTemplateCard {\r\n\r\n constructor(\r\n public id: string,\r\n public name: string,\r\n public dateCreated: Date\r\n ) {}\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { OfferTemplateCard } from './template-card/models/offer-template-card.model';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { AdminService } from '../../../../../services/admin.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-view-templates',\r\n templateUrl: './view-templates.component.html',\r\n styleUrls: [\r\n '../../../../../shared/styles/confirmation-dialog.scss',\r\n './view-templates.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewTemplatesComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n templates: OfferTemplateCard[];\r\n subheaderText: string;\r\n\r\n constructor(public adminService: AdminService,\r\n public notificationService: NotificationService,\r\n private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _routingService: RoutingService,\r\n private _confirmationService: ConfirmationService,\r\n private _adminService: AdminService) {\r\n this.templates = [];\r\n }\r\n\r\n ngOnInit() {\r\n this.getDashboardItems();\r\n }\r\n\r\n private getDashboardItems() {\r\n this._loader.start();\r\n this._subscriptions.push(this._adminService.getOfferTemplates().subscribe(data => {\r\n this.templates = new Array();\r\n\r\n Object.values(data).forEach(c => {\r\n this.templates.push(new OfferTemplateCard (c.id, c.name, c.createdDate));\r\n });\r\n this._loader.stop();\r\n },\r\n error => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured!');\r\n }\r\n ));\r\n }\r\n\r\n\r\n createTemplate() {\r\n this._routingService.createOfferTemplate();\r\n }\r\n\r\n\r\n delete(index: number) {\r\n this._confirmationService.confirm({\r\n header: 'Delete',\r\n message: 'Are you sure you want to delete this template? ',\r\n acceptLabel: 'YES, DELETE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n const templateId = this.templates[index].id;\r\n\r\n this.adminService.deleteOfferTemplate(templateId).subscribe((resp) => {\r\n this.notificationService.openNotification('Template deleted successfully.');\r\n this.getDashboardItems();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to delete this template.');\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n viewTemplate(index: string) {\r\n this._routingService.viewSingleTemplate(this.templates[index].id);\r\n }\r\n\r\n\r\n editTemplate(index: string) {\r\n this._routingService.editSingleTemplate(this.templates[index].id);\r\n }\r\n\r\n\r\n goBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

Available actions

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
0\" class=\"section templates\">\r\n
\r\n

Offer Templates

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

\r\n Nothing here yet.\r\n

\r\n
\r\n
\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, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { sortBy } from 'sort-by-typescript';\r\nimport { ArchiveCandidateModel } from './models/archive-candidate.model';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { CandidateService } from '../../../../../services/candidate.service';\r\nimport { ArchiveOfferModel } from './models/archive-offer.model';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { ArchiveAdminModel } from './models/archive-admin.model';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { ArchiveCorporateUsersModel } from './models/archive-corporateusers.model';\r\nimport { UserService } from '../../../../../services/user.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-archive',\r\n templateUrl: './archive.component.html',\r\n styleUrls: ['../dashboard/dashboard.component.scss',\r\n '../../../../../shared/styles/confirmation-dialog.scss',\r\n './archive.component.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ArchiveComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n hasItems: boolean;\r\n searchQuery: any;\r\n sort: string;\r\n sortOptions = [\r\n { label: 'By date (descending)', value: '-createdDate' },\r\n { label: 'By date (ascending)', value: 'createdDate' },\r\n { label: 'By name', value: 'candidateFullName' },\r\n { label: 'By jobTitle', value: 'jobTitle' }\r\n ];\r\n\r\n rescinded: Array = new Array();\r\n candidates: Array = new Array();\r\n admins: Array = new Array();\r\n corporateUsers: Array = new Array();\r\n selectedItems: any[];\r\n selectionEnabled: boolean;\r\n viewAdmins: boolean;\r\n userToReInstate: any[];\r\n\r\n constructor(private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _candidateService: CandidateService,\r\n private _confirmationService: ConfirmationService,\r\n private _notificationService: NotificationService,\r\n private _storeService: StoreService,\r\n private _userService: UserService) {\r\n this.selectedItems = [];\r\n this.userToReInstate = [];\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.getDashboardItems();\r\n }\r\n\r\n private getDashboardItems() {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._candidateService.getAllArchivedItems().subscribe(data => {\r\n this._loader.stop();\r\n this.candidates = data.candidates;\r\n this.rescinded = data.offers;\r\n this.admins = data.admins;\r\n this.corporateUsers = data.corporateUsers;\r\n this.checkIsEmpty();\r\n }, error => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured!');\r\n }));\r\n }\r\n\r\n private checkIsEmpty() {\r\n const role = this._storeService.getStoredData().profile['role'].toLowerCase();\r\n this.hasItems = false;\r\n if (this.candidates.length > 0) {\r\n this.hasItems = true;\r\n }\r\n if (this.rescinded.length > 0) {\r\n this.hasItems = true;\r\n }\r\n if (this.admins.length > 0) {\r\n this.hasItems = true;\r\n }\r\n if (this.corporateUsers.length > 0) {\r\n this.hasItems = true;\r\n }\r\n if (role == 'system admin') {\r\n this.viewAdmins = true;\r\n }\r\n }\r\n\r\n getArchivedUsers() {\r\n if (!this.selectedItems.some(x => !x.id)) {\r\n this.userToReInstate = this.selectedItems.map(x => (x.id));\r\n }\r\n }\r\n\r\n reinstateSelection() {\r\n this.getArchivedUsers();\r\n\r\n this._confirmationService.confirm({\r\n header: 'Reinstate items',\r\n message: 'Are you sure you want to reinstate the items?',\r\n acceptLabel: 'YES, REINSTATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n\r\n if (this.viewAdmins && this.userToReInstate.length) {\r\n this._subscriptions.push(this._userService.reinstateUsers(this.userToReInstate).subscribe((resp) => {\r\n this.getDashboardItems();\r\n this.selectionEnabled = false;\r\n this.selectedItems = [];\r\n this._loader.stop();\r\n this._notificationService.openNotification('Items reinstated.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to reinstate the items');\r\n }, () => {\r\n this.getDashboardItems();\r\n }));\r\n } else if (this.selectedItems.length) {\r\n this._subscriptions.push(this._candidateService.reinstateItemsToArchive(this.selectedItems).subscribe((resp) => {\r\n if (this.userToReInstate && this.userToReInstate.length > 0) {\r\n this._subscriptions.push(this._userService.reinstateUsers(this.userToReInstate).subscribe((response) => {\r\n this.getDashboardItems();\r\n this.selectionEnabled = false;\r\n this.selectedItems = [];\r\n this._loader.stop();\r\n this._notificationService.openNotification('Items reinstated.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to reinstate the items');\r\n }));\r\n } else {\r\n this.getDashboardItems();\r\n this.selectionEnabled = false;\r\n this.selectedItems = [];\r\n this._loader.stop();\r\n this._notificationService.openNotification('Items reinstated.');\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to reinstate the items');\r\n }, () => {\r\n this.getDashboardItems();\r\n }));\r\n }\r\n }\r\n });\r\n }\r\n\r\n addItemToSelection(item: any) {\r\n this.selectedItems.push(item);\r\n }\r\n\r\n removeItemFromSelection(item: any) {\r\n const index = this.selectedItems.findIndex(x => x.id === item.id);\r\n this.selectedItems.splice(index, 1);\r\n }\r\n\r\n onSortChange() {\r\n this.rescinded.sort(sortBy(this.sort));\r\n this.candidates.sort(sortBy(this.sort));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Archive

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n REINSTATE\r\n \r\n\r\n 0\"\r\n (click)=\"reinstateSelection()\"\r\n type=\"button\"\r\n class=\"main btn btn-primary reinstate-btn-archive\"\r\n >\r\n REINSTATE SELECTION\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
0\" class=\"col-md-3 col-sm-4\">\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n 0\"\r\n class=\"col-md-3 col-sm-4\"\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"col-md-3 col-sm-4\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n class=\"col-md-3 col-sm-4\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n

Nothing here yet.
Archive is currently empty.

\r\n
\r\n \r\n \r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CreateCorporateComponent } from '../create-corporate/create-corporate.component'; \r\nimport { CorporateBasics } from '../models/corporate-basics.model';\r\nimport { ImportedFiles } from '../models/Corporate-BulkUploadResults.model';\r\nimport { CorporateRetirement } from \"../../../users/corporate/create-corporate/retirements-tab/models/retirement.interface\";\r\nimport { CorporateRetirementBenefit } from \"../create-corporate/retirements-tab/models/retirement-benefit.model\";\r\nimport { CorporateRiskPackage } from '../create-corporate/risk-tab/models/risk.interface';\r\nimport { RetirementModelHelper } from '../create-corporate/retirements-tab/helpers/retirement-model-helper';\r\nimport { RiskModelHelper } from '../create-corporate/risk-tab/helpers/risk-model-helper';\r\nimport { Corporate } from '../models/corporate.model';\r\nimport { BasicsFormHelper } from '../create-corporate/basics-tab/helpers/basics-form-helper';\r\nimport { CorporateService } from '../../../../../services/corporate.service';\r\nimport { FileUploadService } from '../../../../../services/fileupload.service';\r\nimport { FileViewModel } from '../../../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\n\r\n\r\nimport * as XLSX from \"xlsx\";\r\nimport { DocumentModel } from 'src/app/shared/models/candidate.model';\r\nimport { JsonpInterceptor } from '@angular/common/http';\r\nimport { publishFacade } from '@angular/compiler';\r\nimport { RoutingService } from '../../../../../../app/services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-bulk-corp-create',\r\n templateUrl: './bulk-corp-create.component.html',\r\n styleUrls: ['./bulk-corp-create.component.scss']\r\n})\r\n\r\n\r\nexport class BulkCorpCreateComponent implements OnInit {\r\n\r\n public TotalToImport: number =0;\r\n public CurrentlyImporting : number=0;\r\n public initialCreateCorporate : CreateCorporateComponent;\r\n public CorpBasic : CorporateBasics;\r\n public FileID:string;\r\n public isHeaderSelected :boolean =false;;\r\n model: Corporate | undefined;\r\n public importedFile :Array;\r\n // @Output() back = new EventEmitter();\r\n\r\n constructor(\r\n protected _corpService: CorporateService,\r\n protected _fileUploadService: FileUploadService,\r\n protected routingService: RoutingService) { \r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.initModel();\r\n this.model.basics =this.initBasicsModel(\"\");\r\n this.importedFile = new Array();\r\n }\r\n\r\n onBack() {\r\n this.routingService.goBack();\r\n }\r\n uploadFile(data)\r\n {\r\n\r\n if (!this.model.basics.headerLogoFileDoc) {\r\n this.model.basics.headerLogoFileDoc = new DocumentModel();\r\n }\r\n\r\n this.model.basics.headerLogo = {\r\n id: null,\r\n filename: data.files[0].name,\r\n url: URL.createObjectURL(data.files[0])\r\n };\r\n this.model.basics.headerLogoFileDoc.file = data.files[0];\r\n this.model.basics.headerLogoFileDoc.fileTypeId = 2;\r\n this.isHeaderSelected = true;\r\n this._fileUploadService.postFile(this.model.basics.headerLogoFileDoc)!.subscribe((id) => {\r\n this.FileID =id;\r\n });\r\n }\r\n\r\n BulkUpload(target) {\r\n // const target: DataTransfer = (evt.target);\r\n if (target.files.length > 1) {\r\n alert('Multiple files are not allowed');\r\n return;\r\n }\r\n else {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n //this is an array of objects\r\n let data = (XLSX.utils.sheet_to_json(ws, { header: 1 }));\r\n \r\n this.TotalToImport =data.length-1;\r\n this.CurrentlyImporting = 0;\r\n //skip the first row\r\n for (let index = 1; index < data.length; index++) {\r\n this.CurrentlyImporting++;\r\n\r\n var TempImport = new ImportedFiles();\r\n TempImport.CorpName =data[index][0];\r\n TempImport.SchemeName = data[index][2];\r\n TempImport.SchemeNumber =data[index][1];\r\n TempImport.Success = true;\r\n \r\n var returnedError = this.BulkCorpCreate(TempImport.CorpName, TempImport.SchemeName ,TempImport.SchemeNumber);\r\n\r\n if(returnedError!=\"Success\")\r\n {\r\n TempImport.Success = false;\r\n TempImport.Error = returnedError;\r\n }\r\n TempImport.Success = true;\r\n this.importedFile.push(TempImport);\r\n }\r\n \r\n }\r\n }\r\n }\r\n\r\n\r\n BulkCorpCreate(CorpName:string, SchemeNo:string,SchemeName : string ) : string\r\n {\r\n const RetireHelper = new RetirementModelHelper();\r\n const RiskModelHelpers = new RiskModelHelper();\r\n\r\n this.initModel();\r\n this.model.basics =this.initBasicsModel(CorpName);\r\n this.model.retirement = this.initRetirementModel();\r\n this.model.retirement.benefits.push(this.initRetireBaseModel(SchemeName,SchemeNo));\r\n\r\n this.model.risk = {\r\n packages: new Array()\r\n };\r\n this.model.risk.packages.push(RiskModelHelpers.initPackage(\"Risk Package 1\"));\r\n\r\n var createMessage = this._create();\r\n\r\n return createMessage;\r\n \r\n }\r\n initBasicsModel(CorpName : string ): CorporateBasics {\r\n \r\n return {\r\n id: null,\r\n name: CorpName,\r\n industryId: 1,\r\n primaryColour: \"#f7f5f5\",\r\n payrollDay: 25,\r\n companyTypeId: 1,\r\n headerLogoId: this.FileID ,//\"6cefdb84-4282-494a-9cd4-50e599e87546\",//crypto.randomUUID(),\r\n headerLogo: new FileViewModel(),\r\n locations: [{ id: 1, name: \"Johannesburg\" }],\r\n createdDate: null ,\r\n statusId: 1,//TODO needs to change\r\n headerLogoFileDoc: new DocumentModel,\r\n };\r\n }\r\n initRetirementModel(): CorporateRetirement {\r\n return {\r\n fundSalaryOptions: [1],\r\n benefits: Array()\r\n };\r\n }\r\n private initRetireBaseModel(pschemeName: string, pschemeNo : string): CorporateRetirementBenefit {\r\n \r\n let date: Date = new Date(); \r\n date.setMonth(1);\r\n date.setDate(1);\r\n\r\n return {\r\n availableBenefitOptions: {\r\n schemeNo: pschemeNo,\r\n schemeName: pschemeName,\r\n retirementAge: 65,\r\n anniversaryDate: date,\r\n hasPensionBackedHomeLoan: false\r\n },\r\n\r\n qualifyingMembers: {\r\n isFullTime: false,\r\n isPermanent: false,\r\n isPartTime: false,\r\n hasContract: false,\r\n isUnderRetirementAge: false,\r\n isOverRetirementAge: false,\r\n hasDisabilityClaims: false\r\n },\r\n\r\n contribution: {\r\n hasMemberContribution: true,\r\n memberContributions: [1],\r\n\r\n hasVoluntaryContribution: false,\r\n voluntaryContributions: null,\r\n anniversaryDate: null,\r\n\r\n hasEmployerContribution: false,\r\n employerContributions: null\r\n },\r\n\r\n investmentStrategy: {\r\n hasSinglePortfolio: true\r\n }\r\n };\r\n } \r\n protected initModel() {\r\n this.model = {\r\n basics: null,\r\n retirement: null,\r\n risk: null,\r\n users: null\r\n };\r\n }\r\n\r\n private _validateModel(model: Corporate | undefined): boolean {\r\n const basicHelper = new BasicsFormHelper();\r\n const retirementHelper = new RetirementModelHelper();\r\n const riskHelper = new RiskModelHelper();\r\n\r\n const basicsValid = basicHelper.validateModel(model?.basics, 'create', model?.isDraft);\r\n const retirementValid = retirementHelper.validateModel(model?.retirement);\r\n const riskValid = riskHelper.validateModel(model?.risk);\r\n\r\n if (basicsValid && retirementValid && riskValid) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n private _create(): string {\r\n if (!this._validateModel(this.model)) {\r\n return \"Error on Validation\";\r\n }\r\n\r\n var x = JSON.stringify(this.model);\r\n\r\n this._corpService.createCorporate(false, this.model).subscribe((corp) => {\r\n if (corp) {\r\n return \"Success\";\r\n }\r\n }, (error) => {\r\n return error;\r\n });\r\n \r\n }\r\n\r\n\r\n}\r\n"," \r\n\r\n
\r\n
\r\n \r\n

Bulk Corporates

\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n\r\n
\r\n Header Logo\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n Bulk Batch File\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{ CurrentlyImporting }}/{{ TotalToImport}}\r\n
\r\n
\r\n \r\n
\r\n

{{roww.CorpName }}

\r\n

{{roww.SchemeName }}

\r\n

{{roww.SchemeNumber }}

\r\n

Success: {{roww.Success }}

\r\n

{{roww.Error }}

\r\n
\r\n
\r\n
\r\n
\r\n\r\n","\r\nimport { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { CorporateDashboardComponent } from './corporate-dashboard/corporate-dashboard.component';\r\nimport { CreateCorporateComponent } from './create-corporate/create-corporate.component';\r\nimport { ViewCorporateGroupComponent } from './view-corporate/view-corporate-group.component';\r\nimport { BulkCorpCreateComponent } from './bulk-corp-create/bulk-corp-create.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n canActivate: [AuthGuard],\r\n component: CorporateDashboardComponent\r\n },\r\n {\r\n path: 'create',\r\n canActivate: [AuthGuard],\r\n component: CreateCorporateComponent\r\n },\r\n {\r\n path: 'BulkCreate',\r\n canActivate: [AuthGuard],\r\n component: BulkCorpCreateComponent\r\n },\r\n {\r\n path: 'view',\r\n canActivate: [AuthGuard],\r\n component: ViewCorporateGroupComponent\r\n }\r\n]; \r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class CorporateRoutingModule { }\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { sortBy } from 'sort-by-typescript';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { CorporateService } from '../../../../../services/corporate.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContentService } from '../../../../../services/content.service';\r\nimport { StoreService } from '../../../../../../../src/app/services/storeService';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { UsersCacheService } from '../../users-cache.service';\r\nimport { CorporateModel } from 'src/app/shared/models/corporates.model';\r\n\r\n\r\nimport * as XLSX from \"xlsx\";\r\n\r\n\r\n@Component({\r\n selector: 'app-corporate-dashboard',\r\n templateUrl: './corporate-dashboard.component.html',\r\n styleUrls: ['./corporate-dashboard.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CorporateDashboardComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n corporates: CorporateModel[];\r\n filteredCorporates: CorporateModel[];\r\n hoverIndex = -1;\r\n searchValue: string;\r\n\r\n\r\n constructor(private _routingService: RoutingService,\r\n private _corporateService: CorporateService,\r\n private _loader: LoaderService,\r\n private contentService: ContentService,\r\n private _errorService: ErrorService,\r\n private authService: AuthService,\r\n private storage: StoreService,\r\n private usersCacheService: UsersCacheService) {\r\n }\r\n\r\n ngOnInit() {\r\n //decide what dashboard to show\r\n const _storage = this.storage.getStoredData();\r\n if (_storage && _storage.profile && _storage.profile['role'].toLowerCase() !== ('candidate' || 'user')) {\r\n this.usersCacheService.setCache(_storage);\r\n } else {\r\n this._subscriptions.push(this.authService.isLoggedIn.subscribe((isLoggedIn) => {\r\n if (isLoggedIn) {\r\n this.usersCacheService.setCache(_storage);\r\n } else {\r\n this.usersCacheService.setCache(_storage);\r\n }\r\n }));\r\n }\r\n\r\n\r\n this._loader.start();\r\n this.authService.mgr.getUser()\r\n .then((user) => {\r\n if (user && !localStorage.getItem('contentSet')) {\r\n this.contentService.cacheDropdownOptions();\r\n }\r\n })\r\n .catch(e => {});\r\n\r\n this._subscriptions.push(this._corporateService.getAllCorporates().subscribe(resp => {\r\n if (resp) {\r\n this.corporates = resp.sort(sortBy('name'));\r\n this.filteredCorporates = this.corporates;\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get the corporate data.');\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get the corporate data.');\r\n }));\r\n }\r\n\r\n\r\n\r\n onSearchChange() {\r\n //filter corpoorates\r\n this.searchValue.toLocaleLowerCase().split(' ').forEach(value => {\r\n this.filteredCorporates =\r\n this.corporates.filter(corp => corp.name.toLocaleLowerCase()\r\n .includes(value));\r\n });\r\n }\r\n\r\n onHover(i: number) {\r\n if (i == null) {\r\n return this._errorService.errorMessage = 'Index value is not set.';\r\n }\r\n this.hoverIndex = i;\r\n return;\r\n }\r\n\r\n onCreatecorporateClick() {\r\n this._routingService.corporateCreate();\r\n }\r\n\r\n onBulkCorpClick() {\r\n this._routingService.BulkCorpImport();\r\n }\r\n\r\n onBulkUsersClick() {\r\n this._routingService.BulkUsersImport();\r\n }\r\n\r\n // onViewGroup(groupId: any) {\r\n // if (groupId == null) {\r\n // throw new Error('Argument exeption, the passed value can not be undefined or null');\r\n // }\r\n // this._routingService.corporateViewGroup(groupId.toString());\r\n // }\r\n\r\n onViewGroup(groupId: any) {\r\n this._routingService.corporateViewGroup(groupId.toString());\r\n }\r\n\r\n\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n\r\n"," \r\n
\r\n
\r\n
\r\n

Corporates

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n CREATE CORPORATE\r\n \r\n\r\n \r\n IMPORT CORPORATE\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Nothing here yet.
Create a new corporate.

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

{{ corporate.name }}

\r\n

{{ corporate.groupsCount }} Subgroups

\r\n

Created on

\r\n

{{ corporate.createdDate | date : 'd MMMM yyyy' }}

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

Draft: {{ corporate.name }}

\r\n
\r\n
\r\n
\r\n \r\n VIEW\r\n \r\n \r\n COMPLETE\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n ","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { UserService } from '../../../../../services/user.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContentService } from '../../../../../services/content.service';\r\nimport appsettings from \"src/assets/appsettings.json\"\r\nimport {User} from \"oidc-client\";\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-corporate-header',\r\n templateUrl: './corporate-header.component.html',\r\n styleUrls: ['./corporate-header.component.scss']\r\n})\r\nexport class CorporateHeaderComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n // @Input()\r\n active: string;\r\n name: string;\r\n isDialogOpen: boolean;\r\n userRole: string;\r\n appVersion: string = appsettings.appVersion;\r\n user: User | null = null;\r\n\r\n constructor(public auth: AuthenticationService,\r\n private _routingService: RoutingService,\r\n private _userService: UserService,\r\n public contentService: ContentService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.active = 'corporates';\r\n this.auth.getClaims().then(member => {\r\n this.user = member\r\n this.contentService.cacheDropdownOptions();\r\n this._subscriptions.push(this._userService.getCurrentUserProfileData()\r\n .subscribe((user) => {\r\n this.name = user.firstname + ' ' + user.lastname;\r\n this.userRole = user.profile['role'];\r\n sessionStorage.setItem('userProfileBillGroups', JSON.stringify(user.billgroups));\r\n }));\r\n }).catch(reason => {\r\n\r\n })\r\n\r\n\r\n }\r\n onSignOut() {\r\n this.isDialogOpen = false;\r\n this.auth.logout(false);\r\n }\r\n\r\n goToDashboard() {\r\n this._routingService.dashboard();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { RoutingService } from 'src/app/services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-corporate',\r\n templateUrl: './corporate.component.html',\r\n styleUrls: ['./corporate.component.scss']\r\n})\r\nexport class CorporateComponent {\r\n constructor(\r\n \r\n private _routingService: RoutingService,){}\r\n\r\n}\r\n"," \r\n\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { MultiSelectModule } from 'primeng/multiselect'\r\nimport { CustomSharedModule } from '../../../../shared/custom-shared.module';\r\nimport { CorporateComponent } from './corporate.component';\r\n import { RetirementsTabComponent } from './create-corporate/retirements-tab/retirements-tab.component';\r\nimport { CreateCorporateComponent } from './create-corporate/create-corporate.component';\r\nimport { BasicsTabComponent } from './create-corporate/basics-tab/basics-tab.component';\r\nimport { UsersTabComponent } from './create-corporate/users-tab/users-tab.component';\r\nimport { ViewCorporateGroupComponent } from './view-corporate/view-corporate-group.component';\r\nimport { ViewSubgroupsTabComponent } from './view-corporate/view-subgroups-tab/view-subgroups-tab.component';\r\nimport { SingleBenefitComponent } from './create-corporate/retirements-tab/single-benefit/single-benefit.component';\r\nimport { AddAnotherBenefitComponent } from './create-corporate/retirements-tab/add-another-benefit/add-another-benefit.component';\r\nimport { RiskTabComponent } from './create-corporate/risk-tab/risk-tab.component';\r\nimport { LifeCoverComponent } from './create-corporate/risk-tab/life-cover/life-cover.component';\r\nimport { SpousalLifeCoverComponent } from './create-corporate/risk-tab/spousal-life-cover/spousal-life-cover.component';\r\nimport { FuneralComponent } from './create-corporate/risk-tab/funeral/funeral.component';\r\nimport { DisabilityLumpSumComponent } from './create-corporate/risk-tab/disability-lump-sum/disability-lump-sum.component';\r\nimport { DreadDiseaseCoverComponent } from './create-corporate/risk-tab/dread-disease-cover/dread-disease-cover.component';\r\nimport { SpousalDisabilityLumpSumComponent } from './create-corporate/risk-tab/spousal-disability-lump-sum/spousal-disability-lump-sum.component';\r\nimport { SpousalDreadDiseaseCoverComponent } from './create-corporate/risk-tab/spousal-dread-disease-cover/spousal-dread-disease-cover.component';\r\nimport { DisabilityIncomeProtectionComponent } from './create-corporate/risk-tab/disability-income-protection/disability-income-protection.component';\r\nimport { TemporaryTotalDisabilityComponent } from './create-corporate/risk-tab/temporary-total-disability/temporary-total-disability.component';\r\nimport { AddPackageComponent } from './create-corporate/risk-tab/add-package/add-package.component';\r\nimport { UsersSharedModule } from '../shared/users-shared.module';\r\nimport { CorporateHelperService } from './create-corporate/helper.service';\r\nimport { AppHeaderModule } from \"./../../../../components/shared-ui/app-header/app-header.module\";\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { CorporateDashboardComponent } from './corporate-dashboard/corporate-dashboard.component';\r\nimport { UsersCacheService } from '../users-cache.service';\r\nimport { CorporateHeaderComponent } from './corporate-header/corporate-header.component';\r\nimport { CorporateRoutingModule } from './corporate-dashboard-routing.module';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { SharedUiModule } from 'src/app/components/shared-ui/shared-ui.module';\r\nimport { BulkCorpCreateComponent } from './bulk-corp-create/bulk-corp-create.component';\r\n\r\n@NgModule({\r\n providers: [\r\n CorporateHelperService,\r\n AuthService,\r\n UsersCacheService,\r\n ConfirmationService\r\n ],\r\n imports: [\r\n CommonModule,\r\n AppHeaderModule,\r\n CustomSharedModule,\r\n UsersSharedModule,\r\n RouterModule,\r\n CardModule,\r\n DropdownModule,\r\n FormsModule,\r\n InputSwitchModule,\r\n CalendarModule,\r\n CheckboxModule,\r\n ConfirmDialogModule,\r\n ReactiveFormsModule,\r\n ColorPickerModule,\r\n FileUploadModule,\r\n AppHeaderModule,\r\n MultiSelectModule,\r\n CorporateRoutingModule,\r\n SharedUiModule\r\n\r\n ],\r\n declarations: [\r\n CorporateComponent,\r\n CorporateHeaderComponent,\r\n CorporateDashboardComponent,\r\n CreateCorporateComponent,\r\n ViewCorporateGroupComponent,\r\n RetirementsTabComponent,\r\n BasicsTabComponent,\r\n UsersTabComponent,\r\n ViewSubgroupsTabComponent,\r\n SingleBenefitComponent,\r\n AddAnotherBenefitComponent,\r\n RiskTabComponent,\r\n LifeCoverComponent,\r\n SpousalLifeCoverComponent,\r\n SpousalDisabilityLumpSumComponent,\r\n DisabilityLumpSumComponent,\r\n DreadDiseaseCoverComponent,\r\n SpousalDreadDiseaseCoverComponent,\r\n DisabilityIncomeProtectionComponent,\r\n TemporaryTotalDisabilityComponent,\r\n FuneralComponent,\r\n AddPackageComponent,\r\n BulkCorpCreateComponent\r\n ],\r\n entryComponents: [\r\n CorporateDashboardComponent, \r\n CreateCorporateComponent, \r\n ViewCorporateGroupComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class CorporateModule { }\r\n\r\n","import { Component, ViewEncapsulation, Output, EventEmitter, OnDestroy, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { BasicsFormHelper } from './helpers/basics-form-helper';\r\nimport { CustomTrackBy } from '../../../../../../shared/models/customTrackBy';\r\nimport { CorporateBasics } from '../../models/corporate-basics.model';\r\nimport { DocumentModel } from '../../../../../../shared/models/candidate.model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ContentService } from '../../../../../../services/content.service';\r\n\r\n@Component({\r\n selector: \"app-basics-tab\",\r\n templateUrl: \"./basics-tab.component.html\",\r\n styleUrls: [\r\n \"./basics-tab.component.scss\",\r\n \"../../../all-templates/create-offer-template/deductions-tab/deductions-tab.component.scss\",\r\n \"../../../all-templates/create-offer-template/earnings-tab/earnings-tab.component.scss\",\r\n \"../../../../candidate/details-and-accept/step-one/step-one.component.scss\"\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class BasicsTabComponent extends CustomTrackBy\r\n implements OnInit, OnDestroy {\r\n @Output() next = new EventEmitter();\r\n @Output() saveTemp = new EventEmitter();\r\n @Input() isDraft: boolean;\r\n @Input() mode: string;\r\n @Input() basics: CorporateBasics;\r\n @Input() headerLogoFileName: string;\r\n @Input() headerLogoId: string;\r\n @ViewChild(\"fileUpload\", { static: false }) fileUpload: any;\r\n\r\n industryArray: { value: number; label: string }[];\r\n companyTypeArray: { value: number; label: string }[];\r\n isPayrollDayValid: boolean = true;\r\n trackChanges: boolean = false;\r\n isSelected: boolean = false;\r\n locationEmpty: boolean = false;\r\n\r\n constructor(\r\n private _basicsFormHelper: BasicsFormHelper,\r\n public sanitizer: DomSanitizer,\r\n private contentService: ContentService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.basics) {\r\n this.basics = this._basicsFormHelper.initBasicsModel();\r\n } else {\r\n this.headerLogoId = this.headerLogoId\r\n ? this.headerLogoId\r\n : this.basics.headerLogoId;\r\n this.headerLogoFileName = this.basics.headerLogo\r\n ? this.basics.headerLogo.filename\r\n : null;\r\n }\r\n\r\n this.industryArray = JSON.parse(localStorage.getItem(\"industry\"));\r\n this.companyTypeArray = JSON.parse(localStorage.getItem(\"companyTypes\"));\r\n\r\n if(this.basics.locations.length == 1){\r\n this.locationEmpty = true;\r\n }\r\n }\r\n\r\n validateModel() {\r\n return this._basicsFormHelper.validateModel(\r\n this.basics,\r\n this.mode,\r\n this.isDraft\r\n );\r\n }\r\n\r\n validateColor() {\r\n return this._basicsFormHelper.validateColor(this.basics.primaryColour);\r\n }\r\n\r\n addLocation() {\r\n if (!this.basics.locations) {\r\n this.basics.locations = [];\r\n }\r\n this.basics.locations.push({ id: null, name: null });\r\n this.locationEmpty = false;\r\n }\r\n\r\n deleteLocation(index) {\r\n if (this.basics.locations.length == 1) {\r\n this.basics.locations = null;\r\n } else {\r\n this.basics.locations.splice(index, 1);\r\n if(this.basics.locations.length == 1){\r\n this.locationEmpty = true;\r\n }\r\n }\r\n this.trackChanges = true;\r\n }\r\n\r\n\r\n uploadHeaderLogo(data) {\r\n if (!this.basics.headerLogoFileDoc) {\r\n this.basics.headerLogoFileDoc = new DocumentModel();\r\n }\r\n\r\n this.basics.headerLogo = {\r\n id: null,\r\n filename: data.files[0].name,\r\n url: URL.createObjectURL(data.files[0])\r\n };\r\n\r\n this.basics.headerLogoFileDoc.file = data.files[0];\r\n this.basics.headerLogoFileDoc.fileTypeId = 2;\r\n this.headerLogoFileName = data.files[0].name;\r\n this.trackChanges = true;\r\n this.isSelected = true;\r\n }\r\n\r\n clear() {\r\n this.fileUpload.clear();\r\n this.basics.headerLogo = null;\r\n this.headerLogoFileName = \"Upload logo\";\r\n this.isSelected = false;\r\n }\r\n\r\n previewLogo() {\r\n if (this.basics.headerLogo) {\r\n const url = this.basics.headerLogo.url;\r\n this.contentService.previewLogo(url);\r\n }\r\n }\r\n\r\n onContinueBtnClick() {\r\n this.next.emit(this.basics);\r\n }\r\n\r\n onCheckForUpdate(change: any) {\r\n this.trackChanges = true;\r\n }\r\n\r\n onCheckPayrollDay() {\r\n if (this.basics.payrollDay < 1 || this.basics.payrollDay > 31) {\r\n this.isPayrollDayValid = false;\r\n } else {\r\n this.isPayrollDayValid = true;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveTemp.emit({ tabName: \"basics\", tabModel: this.basics });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n Name\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Industry\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n Header Logo\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Primary colour\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Payroll day\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n

\r\n Please enter a valid payroll day\r\n

\r\n\r\n
\r\n Company type\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n Location\r\n
\r\n\r\n \r\n
= 0\">\r\n \r\n DELETE\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n ADD ANOTHER LOCATION\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n CONTINUE\r\n \r\n\r\n \r\n UPDATE\r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { CorporateBasics } from '../../../models/corporate-basics.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BasicsFormHelper {\r\n\r\n initBasicsModel(): CorporateBasics {\r\n\r\n return {\r\n id: null,\r\n name: null,\r\n industryId: null,\r\n primaryColour: null,\r\n payrollDay: null,\r\n companyTypeId: null,\r\n headerLogoId: null,\r\n headerLogo: null,\r\n locations: [{ id: null, name: null }],\r\n createdDate: null,\r\n statusId: null,\r\n headerLogoFileDoc: null,\r\n };\r\n }\r\n\r\n validateModel(model: CorporateBasics | null | undefined, mode: string, isDraft: boolean | undefined): boolean {\r\n try {\r\n if (!isDraft && (mode == ('view' || 'edit'))) {\r\n if (model && model.industryId && model.primaryColour && model.payrollDay && model.companyTypeId &&\r\n (model.headerLogo || model.headerLogoId || model.headerLogoFileDoc) &&\r\n model.locations && model.locations.length > 0) {\r\n if (this.validateLocations(model.locations) && this.validateColor(model.primaryColour)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n } else {\r\n if (model && model.industryId && model.primaryColour && model.payrollDay && model.companyTypeId &&\r\n (model.headerLogoFileDoc || model.headerLogoId)\r\n && model.locations && model.locations.length > 0) {\r\n\r\n if (this.validateLocations(model.locations) && this.validateColor(model.primaryColour)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n } catch (ex) {\r\n return false;\r\n }\r\n }\r\n\r\n private validateLocations(locations: any[]): boolean {\r\n let isValid = true;\r\n if (locations.length < 1) {\r\n isValid = false;\r\n }\r\n for (const location of locations) {\r\n if (!location || !location.name || location.name.length < 1) {\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n return isValid;\r\n }\r\n\r\n validateColor(color: string): boolean {\r\n const regexp = new RegExp('^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$');\r\n return regexp.test(color);\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { CorporateService } from '../../../../../services/corporate.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { Corporate } from '../models/corporate.model';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LocationsModel } from '../models/locations.model';\r\nimport { BasicsFormHelper } from './basics-tab/helpers/basics-form-helper';\r\nimport { UtilitiesService } from '../../../../../services/utilities.service';\r\nimport { CorporateMapper } from '../../../../../services/model-mappers/corporate-mapper.service';\r\nimport { FileUploadService } from '../../../../../services/fileupload.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { RetirementModelHelper } from './retirements-tab/helpers/retirement-model-helper';\r\nimport { RiskModelHelper } from './risk-tab/helpers/risk-model-helper';\r\nimport { CorporateHelperService } from './helper.service';\r\nimport { ContentService } from '../../../../../services/content.service';\r\nimport { CorporateBasics } from '../models/corporate-basics.model';\r\nimport { CorporateRetirement } from \"../../../users/corporate/create-corporate/retirements-tab/models/retirement.interface\";\r\nimport { CorporateRetirementBenefit } from \"../create-corporate/retirements-tab/models/retirement-benefit.model\";\r\nimport { CorporateRiskPackage } from './risk-tab/models/risk.interface';\r\nimport { DataRowOutlet } from '@angular/cdk/table';\r\n\r\n\r\n@Component({\r\n selector: 'app-create-corporate',\r\n templateUrl: './create-corporate.component.html',\r\n styleUrls: [\r\n './create-corporate.component.scss',\r\n '../../candidates-and-offers/candidate-profile/candidate-profile.component.scss',\r\n '../../../../../shared/styles/confirmation-dialog.scss'\r\n ], \r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CreateCorporateComponent implements OnInit, OnDestroy {\r\n\r\n protected _subscriptions = new Array();\r\n protected _routeParams: any;\r\n private parentSettings: Corporate | undefined;\r\n\r\n model: Corporate | undefined;\r\n mode = 'create';\r\n locations: LocationsModel;\r\n corporateStatus: number = 1;\r\n headerLogoFileName: string | null = 'Upload logo';\r\n headerLogoId: string = '';\r\n canCreateSubgroup: boolean;\r\n headerContent = {\r\n title: '',\r\n text: '',\r\n };\r\n\r\n\r\n constructor(protected _routingService: RoutingService,\r\n protected _route: ActivatedRoute,\r\n protected _errorService: ErrorService,\r\n protected _corpService: CorporateService,\r\n protected _confirmationService: ConfirmationService,\r\n protected _notificationService: NotificationService,\r\n protected _http: HttpClient,\r\n protected _basicsFormHelper: BasicsFormHelper,\r\n protected _utilitiesService: UtilitiesService,\r\n protected _mapper: CorporateMapper,\r\n protected _fileUploadService: FileUploadService,\r\n protected _loader: LoaderService,\r\n public helper: CorporateHelperService,\r\n public _contentServie: ContentService) {\r\n this.initModel();\r\n this.locations = new LocationsModel();\r\n }\r\n\r\n ngOnInit() {\r\n //corporate creation, essential for the resignations project as well\r\n if (this.mode == 'create' || this.helper.activeTab != 'users') {\r\n this.helper.activeTab = 'basics';\r\n }\r\n\r\n this._subscriptions.push(this._route.queryParams.subscribe(params => {\r\n this._routeParams = { ...params['keys'], ...params };\r\n\r\n const parentId = this._routeParams.parentId;\r\n\r\n if (parentId) {\r\n this._subscriptions.push(this._corpService.getGroupDetailsById(parentId).subscribe((corp) => {\r\n this.model = this._mapper.mapFromGetByIdModel(corp);\r\n this.headerLogoFileName = null;\r\n this.model!.parentId = parentId;\r\n this.parentSettings = this._mapper.mapFromGetByIdModel(corp);\r\n this.headerContent.title = 'Create subgroup';\r\n this.headerContent.text = 'Complete the following information to create the subgroup profile';\r\n }, (error) => {\r\n this._errorService.openErrorPopup('Failed to get parent settings.');\r\n }));\r\n } else {\r\n this.initModel();\r\n this.headerContent.title = 'Create corporate';\r\n this.headerContent.text = 'Complete the following information to create the corporate profile';\r\n }\r\n }));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n protected initModel() {\r\n this.model = {\r\n basics: null,\r\n retirement: null,\r\n risk: null,\r\n users: null\r\n };\r\n }\r\n\r\n switchTab(tabName: string) {\r\n this.helper.activeTab = tabName;\r\n }\r\n\r\n // This gets called when switching the tabs from the subheader\r\n saveTemp(args: { tabName: string, tabModel: any }) {\r\n if(this.model)\r\n {\r\n switch (args.tabName) {\r\n case 'basics': {\r\n this.model.basics = args.tabModel;\r\n break;\r\n }\r\n case 'retirement': {\r\n this.model.retirement = args.tabModel;\r\n break;\r\n }\r\n case 'risk': {\r\n this.model.risk = args.tabModel;\r\n break;\r\n }\r\n case 'users': {\r\n this.model.users = args.tabModel;\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n // This gets called when clicking CONTINUE button on some tab\r\n next(tabModel: any) {\r\n if(this.model)\r\n {\r\n const isDraft = this.model.isDraft;\r\n switch (this.helper.activeTab) {\r\n case 'basics': {\r\n this.model.basics = tabModel;\r\n if (this.mode == 'view' && !isDraft) {\r\n this.onUpdate();\r\n }\r\n this.helper.activeTab = 'retirement';\r\n break;\r\n }\r\n case 'retirement': {\r\n this.model.retirement = tabModel;\r\n if (this.mode == 'view' && !isDraft) {\r\n this.onUpdate();\r\n }\r\n this.helper.activeTab = 'risk';\r\n break;\r\n }\r\n case 'risk': {\r\n this.model.risk = tabModel;\r\n if (this.mode == 'create') {\r\n this.onCreate();\r\n } else {\r\n if (isDraft) {\r\n this.model.isDraft = false;\r\n }\r\n this.onUpdate();\r\n }\r\n break;\r\n }\r\n case 'users': {\r\n this.model.users = tabModel;\r\n if (this.mode == 'view' && !isDraft) {\r\n this.onUpdate();\r\n }\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n saveAsDraft() {\r\n this.next(this.model);\r\n this._confirmationService.confirm({\r\n header: 'Save as draft?',\r\n message: 'Your changes will be lost if you don\\'t save them.',\r\n acceptLabel: 'SAVE DRAFT',\r\n rejectLabel: 'DON\\'T SAVE',\r\n icon: null,\r\n accept: () => {\r\n this.confirmSaveAsDraft();\r\n },\r\n reject: () => {\r\n this._routingService.corporateDashboard();\r\n }\r\n });\r\n }\r\n\r\n private _update() {\r\n\r\n if (!this.model?.isDraft) {\r\n if (!this._validateModel(this.model)) {\r\n this._errorService.openErrorPopup('Invalid model. Please fill all required fields.');\r\n return;\r\n }\r\n\r\n if (this?.model?.basics?.headerLogo) {\r\n this.model.basics.headerLogoId = this.model.basics.headerLogo.id;\r\n }\r\n }\r\n\r\n\r\n if (this.model && this.model.basics && this.model?.basics?.headerLogoFileDoc && this.model.basics.headerLogoFileDoc.file) {\r\n this._loader.start();\r\n this._subscriptions.push(this._fileUploadService.postFile(this.model.basics.headerLogoFileDoc)!.subscribe((id) => {\r\n if (id) {\r\n if(this.model && this.model.basics)\r\n {\r\n this.model.basics.headerLogoId = id;\r\n this._subscriptions.push(this._corpService.updateCorporate(this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n var schemNoParam = '';\r\n if ( this.model &&\r\n this.model.retirement &&\r\n this.model.retirement.benefits && \r\n this.model.retirement.benefits.length > 0) {\r\n this.model.retirement.benefits.forEach(benefit => {\r\n benefit.availableBenefitOptions ? schemNoParam = schemNoParam + benefit.availableBenefitOptions.schemeNo + ',' : ''\r\n });\r\n schemNoParam.charAt(schemNoParam.length - 1) === \",\"\r\n ? (schemNoParam = schemNoParam.slice(0, schemNoParam.length - 1))\r\n : \"\";\r\n }\r\n if (schemNoParam && schemNoParam !== '') {\r\n this._contentServie.getBillGroups(schemNoParam).subscribe( resp => {\r\n if (resp && resp['result'] && resp['result'].length >= 0) {\r\n var filteredBillGroups = resp['result'].map(({ productType, schemeNumber, internalTestData, policy, planType, ...item }: any) => ({\r\n ...item\r\n }));\r\n localStorage.setItem('billGroups', JSON.stringify(filteredBillGroups));\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n }\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n })\r\n } \r\n this._notificationService.openNotification('Corporate successfully updated.');\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update corporate.');\r\n }));\r\n }\r\n \r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n }));\r\n } else {\r\n this._loader.start();\r\n this._subscriptions.push(this._corpService.updateCorporate(this.model).subscribe((corp) => {\r\n if (corp) {\r\n var schemNoParam = '';\r\n if ( this.model &&\r\n this.model.retirement &&\r\n this.model.retirement.benefits && \r\n this.model.retirement.benefits.length > 0) {\r\n this.model.retirement.benefits.forEach(benefit => {\r\n benefit.availableBenefitOptions ? schemNoParam = schemNoParam + benefit.availableBenefitOptions.schemeNo + ',' : ''\r\n });\r\n schemNoParam.charAt(schemNoParam.length - 1) === \",\"\r\n ? (schemNoParam = schemNoParam.slice(0, schemNoParam.length - 1))\r\n : \"\";\r\n }\r\n if (schemNoParam && schemNoParam !== '') {\r\n this._contentServie.getBillGroups(schemNoParam).subscribe( resp => {\r\n if (resp && resp['result'] && resp['result'].length >= 0) {\r\n var filteredBillGroups = resp['result'].map(({ productType, schemeNumber, internalTestData, policy, planType, ...item }: any) => ({\r\n ...item\r\n }));\r\n localStorage.setItem('billGroups', JSON.stringify(filteredBillGroups));\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n }\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n })\r\n }\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully updated.');\r\n }\r\n }, (error: any) => {\r\n this._loader.stop();\r\n let errMSG;\r\n // tslint:disable-next-line: forin\r\n for (const key in error.error.errors) {\r\n errMSG = error.error.errors[key];\r\n }\r\n this._errorService.openErrorPopup('Failed to update corporate: ' + errMSG);\r\n }));\r\n }\r\n }\r\n\r\n private _updateChildCorporate() {\r\n this._update();\r\n }\r\n\r\n onUpdate() {\r\n this._confirmationService.confirm({\r\n header: 'Update corporate',\r\n message: 'You will be able to make adjustments in future',\r\n acceptLabel: 'YES, UPDATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n if (this.model?.parentId) {\r\n this._updateChildCorporate();\r\n } else {\r\n this._update();\r\n }\r\n }\r\n });\r\n }\r\n\r\n onCreate() {\r\n this._confirmationService.confirm({\r\n header: 'Create corporate',\r\n message: 'You will be able to make adjustments in future',\r\n acceptLabel: 'YES, CREATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this.confirmCreate();\r\n }\r\n });\r\n }\r\n\r\n\r\n onCancelCreateCorporate() {\r\n this._routingService.corporateDashboard();\r\n }\r\n\r\n private _create() {\r\n if (!this._validateModel(this.model)) {\r\n this._errorService.openErrorPopup('Invalid model. Please fill all required fields.');\r\n return;\r\n }\r\n\r\n if (this.model && this.model.basics && this.model.basics.headerLogoFileDoc && this.model.basics.headerLogoFileDoc.file) {\r\n\r\n this._loader.start();\r\n\r\n this._fileUploadService.postFile(this.model.basics.headerLogoFileDoc)!.subscribe((id) => {\r\n if (id) {\r\n if(this.model && this.model.basics)\r\n this.model.basics.headerLogoId = id;\r\n this._corpService.createCorporate(false, this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully created.');\r\n this.switchTab('users');\r\n this._routingService.corporateViewGroup(corp);\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to create corporate.');\r\n });\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n });\r\n } else {\r\n this._corpService.createCorporate(false, this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully created.');\r\n this.switchTab('users');\r\n this._routingService.corporateViewGroup(corp);\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to create corporate.');\r\n });\r\n }\r\n }\r\n\r\n private _createChildCorporate() {\r\n this._create();\r\n }\r\n\r\n\r\n confirmCreate() {\r\n if (this.model?.parentId) {\r\n this._createChildCorporate();\r\n } else {\r\n this._create();\r\n }\r\n }\r\n\r\n confirmSaveAsDraft() {\r\n if (!this.isValidDraft()) {\r\n return;\r\n }\r\n\r\n if (this.mode == 'create') {\r\n this._createNewDraft();\r\n } else {\r\n this._updateExistingDraft();\r\n }\r\n }\r\n\r\n private _createNewDraft() {\r\n if (this.model && this.model.basics && this.model.basics.headerLogoFileDoc && this.model.basics.headerLogoFileDoc.file) {\r\n this._loader.start();\r\n this._fileUploadService.postFile(this.model.basics.headerLogoFileDoc)!.subscribe((id) => {\r\n if (id) {\r\n if(this.model && this.model.basics)\r\n this.model.basics.headerLogoId = id;\r\n this._corpService.createCorporate(true, this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully created as draft.');\r\n this._routingService.corporateDashboard();\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to create corporate.');\r\n });\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n });\r\n } else {\r\n this._loader.start();\r\n this._corpService.createCorporate(true, this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully created as draft.');\r\n this._routingService.corporateDashboard();\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to create corporate.');\r\n });\r\n }\r\n }\r\n\r\n private _updateExistingDraft() {\r\n if (this.model && this.model.basics && this.model.basics.headerLogoFileDoc && this.model.basics.headerLogoFileDoc.file) {\r\n this._loader.start();\r\n this._fileUploadService.postFile(this.model.basics.headerLogoFileDoc)!.subscribe((id) => {\r\n if (id) {\r\n if(this.model && this.model.basics)\r\n this.model.basics.headerLogoId = id;\r\n this._corpService.updateCorporate(this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully updated as draft.');\r\n this._routingService.corporateDashboard();\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update draft corporate.');\r\n });\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('There was an error uploading image');\r\n });\r\n } else {\r\n this._corpService.updateCorporate(this.model).subscribe((corp) => {\r\n if (corp) {\r\n this._loader.stop();\r\n this._notificationService.openNotification('Corporate successfully updated as draft.');\r\n this._routingService.corporateDashboard();\r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update draft corporate.');\r\n });\r\n }\r\n }\r\n\r\n isValidDraft() {\r\n if (!this.model?.basics?.name) {\r\n this._errorService.openErrorPopup('Please provide a name for this draft corporate.');\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private _validateModel(model: Corporate | undefined): boolean {\r\n const basicHelper = new BasicsFormHelper();\r\n const retirementHelper = new RetirementModelHelper();\r\n const riskHelper = new RiskModelHelper();\r\n\r\n const basicsValid = basicHelper.validateModel(model?.basics, this.mode, model?.isDraft);\r\n const retirementValid = retirementHelper.validateModel(model?.retirement);\r\n const riskValid = riskHelper.validateModel(model?.risk);\r\n\r\n if (basicsValid && retirementValid && riskValid) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n BASICS\r\n \r\n \r\n RETIREMENT\r\n \r\n \r\n RISK\r\n \r\n \r\n USERS\r\n \r\n \r\n SUBGROUPS\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\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 { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CorporateHelperService {\r\n public activeTab = 'basics';\r\n}\r\n","import { Component, Input, Output, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from '../../../../../../../services/error.service';\r\nimport { FundOptions, FundTypes, FundOfferings } from '../retirements.mocks';\r\nimport { CorporateService } from '../../../../../../../services/corporate.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-add-another-benefit',\r\n templateUrl: './add-another-benefit.component.html',\r\n styleUrls: ['./add-another-benefit.component.scss']\r\n})\r\nexport class AddAnotherBenefitComponent implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() isAnother: boolean;\r\n @Input() corporateName: string;\r\n @Output() addAnotherBenefit = new EventEmitter<{ selectedCase: string, name: string }>();\r\n fundOptions = FundOptions;\r\n fundTypes = FundTypes;\r\n fundOfferings = FundOfferings;\r\n searchBenefit: boolean;\r\n\r\n constructor(private _errorService: ErrorService, private _corpService: CorporateService) { }\r\n\r\n selectedOption: any;\r\n searchName: string;\r\n\r\n createOptions = {\r\n fundOption: null,\r\n fundOffering: null,\r\n fundType: null\r\n };\r\n\r\n case: string;\r\n isFundDropdownsVisible = false;\r\n\r\n searchByName(event) {\r\n if (event.key == 'Enter' && this.searchName) {\r\n return this.addAnother();\r\n }\r\n }\r\n\r\n addAnother() {\r\n if (this.searchBenefit && this.searchName) {\r\n this._subscriptions.push(this._corpService.searchForCorporateRetirementBenefit(this.searchName)\r\n .subscribe((resp: { selectedOption: any, case: string, name: string }) => {\r\n this.selectedOption = resp.selectedOption;\r\n this.addAnotherBenefit.emit({ selectedCase: resp.case, name: resp.name });\r\n this.clearInputs();\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured.');\r\n }\r\n ));\r\n\r\n } else if (!this.searchBenefit) {\r\n this._subscriptions.push(this._corpService.createCorporateRetirementBenefit(this.createOptions)\r\n .subscribe((resp) => {\r\n this.selectedOption = resp;\r\n let name: string;\r\n\r\n const fundOptionLabel = this.fundOptions.filter(x => x.value == this.createOptions.fundOption)[0].label;\r\n const fundTypeLabel = this.fundTypes.filter(x => x.value == this.createOptions.fundType)[0].label;\r\n\r\n if (this.createOptions.fundOffering) {\r\n const fundOfferingLabel = this.fundOfferings.filter(x => x.value == this.createOptions.fundOffering)[0].label;\r\n name = `${this.corporateName} ${fundOptionLabel} ${fundTypeLabel} ${fundOfferingLabel} Fund`;\r\n } else {\r\n name = `${this.corporateName} ${fundOptionLabel} ${fundTypeLabel} Fund`;\r\n }\r\n this.addAnotherBenefit.emit({ selectedCase: this.case, name: name });\r\n this.clearInputs();\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured.');\r\n }\r\n ));\r\n }\r\n this.isFundDropdownsVisible = false;\r\n }\r\n\r\n isAddingEnabled() {\r\n if (this.searchBenefit) {\r\n return this.searchName ? true : false;\r\n\r\n } else {\r\n if (this.createOptions.fundOffering &&\r\n this.createOptions.fundType &&\r\n this.createOptions.fundOption) {\r\n return true;\r\n\r\n } else if (this.createOptions.fundOption === 2 && // 2 = 'Stand Alone'\r\n this.createOptions.fundType) {\r\n return true;\r\n\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n changeFundOption(data: any) {\r\n this.isFundDropdownsVisible = true;\r\n\r\n // 2 = 'Stand Alone'\r\n if (data.value === 2) {\r\n this.isFundDropdownsVisible = false;\r\n this.createOptions.fundType = null;\r\n }\r\n }\r\n\r\n changeFundType(data: any) {\r\n // TODO\r\n }\r\n\r\n changeFundOffering(data: any) {\r\n switch (data.value) {\r\n case 1: {\r\n this.case = 'base';\r\n break;\r\n } case 2: {\r\n this.case = 'core';\r\n break;\r\n } case 3: {\r\n this.case = 'comprehensive';\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private clearInputs() {\r\n this.searchName = null;\r\n this.createOptions = {\r\n fundOption: null,\r\n fundOffering: null,\r\n fundType: null\r\n };\r\n this.selectedOption = null;\r\n this.case = null;\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n

Add {{ isAnother ? 'another' : null }} retirement benefit

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

{{ selectedOption }}

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\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 { Injectable } from \"@angular/core\";\r\nimport { CorporateRetirementBenefit } from \"../models/retirement-benefit.model\";\r\nimport { CorporateRetirement } from \"../models/retirement.interface\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class RetirementModelHelper {\r\n initRetirementModel(): CorporateRetirement {\r\n return {\r\n fundSalaryOptions: [],\r\n benefits: Array()\r\n };\r\n }\r\n\r\n initCorporateRetirementBenefitModel(\r\n selectedCase: string,\r\n name: string\r\n ): CorporateRetirementBenefit {\r\n if (selectedCase == \"base\") {\r\n return this.initBaseModel(name);\r\n } else if (selectedCase == \"core\") {\r\n return this.initCoreModel(name);\r\n } else if (selectedCase == \"comprehensive\") {\r\n return this.initComprehensiveModel(name);\r\n } else {\r\n return this.initComprehensiveModel(name);\r\n }\r\n }\r\n\r\n private initBaseModel(name: string): CorporateRetirementBenefit {\r\n return {\r\n availableBenefitOptions: {\r\n schemeNo: null,\r\n schemeName: name,\r\n retirementAge: null,\r\n anniversaryDate: null,\r\n hasPensionBackedHomeLoan: false\r\n },\r\n\r\n qualifyingMembers: {\r\n isFullTime: false,\r\n isPermanent: false,\r\n isPartTime: false,\r\n hasContract: false,\r\n isUnderRetirementAge: false,\r\n isOverRetirementAge: false,\r\n hasDisabilityClaims: false\r\n },\r\n\r\n contribution: {\r\n hasMemberContribution: false,\r\n memberContributions: null,\r\n\r\n hasVoluntaryContribution: false,\r\n voluntaryContributions: null,\r\n anniversaryDate: null,\r\n\r\n hasEmployerContribution: false,\r\n employerContributions: null\r\n },\r\n\r\n investmentStrategy: {\r\n hasSinglePortfolio: true\r\n }\r\n };\r\n }\r\n\r\n private initCoreModel(name: string): CorporateRetirementBenefit {\r\n return {\r\n availableBenefitOptions: {\r\n schemeNo: null,\r\n schemeName: name,\r\n retirementAge: null,\r\n anniversaryDate: null,\r\n hasPensionBackedHomeLoan: false\r\n },\r\n\r\n qualifyingMembers: {\r\n isFullTime: false,\r\n isPermanent: false,\r\n isPartTime: false,\r\n hasContract: false,\r\n isUnderRetirementAge: false,\r\n isOverRetirementAge: false,\r\n hasDisabilityClaims: false\r\n },\r\n\r\n contribution: {\r\n hasMemberContribution: false,\r\n memberContributions: null,\r\n\r\n hasVoluntaryContribution: false,\r\n voluntaryContributions: null,\r\n anniversaryDate: null,\r\n\r\n hasEmployerContribution: false,\r\n employerContributions: null\r\n },\r\n\r\n investmentStrategy: {\r\n isLifestage: true,\r\n lifestage: {\r\n isBalanced: true,\r\n isPassive: true,\r\n isSpecialist: true\r\n }\r\n }\r\n };\r\n }\r\n\r\n private initComprehensiveModel(name: string): CorporateRetirementBenefit {\r\n return {\r\n availableBenefitOptions: {\r\n schemeNo: null,\r\n schemeName: name,\r\n retirementAge: null,\r\n anniversaryDate: null,\r\n hasPensionBackedHomeLoan: false\r\n },\r\n\r\n qualifyingMembers: {\r\n isFullTime: false,\r\n isPermanent: false,\r\n isPartTime: false,\r\n hasContract: false,\r\n isUnderRetirementAge: false,\r\n isOverRetirementAge: false,\r\n hasDisabilityClaims: false\r\n },\r\n\r\n contribution: {\r\n hasMemberContribution: false,\r\n memberContributions: null,\r\n\r\n hasVoluntaryContribution: false,\r\n voluntaryContributions: null,\r\n anniversaryDate: null,\r\n\r\n hasEmployerContribution: false,\r\n employerContributions: null\r\n },\r\n\r\n investmentStrategy: {\r\n isLifestage: false,\r\n lifestage: null,\r\n hasClarity: false,\r\n hasSinglePortfolio: false,\r\n portfolioOptionId: null,\r\n isComprehensive: false,\r\n defaultOptionId: null,\r\n defaultLabelName: null\r\n }\r\n };\r\n }\r\n\r\n validateLifestage(benefit: CorporateRetirementBenefit): boolean {\r\n if (\r\n benefit.investmentStrategy &&\r\n benefit.investmentStrategy.lifestage &&\r\n !benefit.investmentStrategy.lifestage.isBalanced &&\r\n !benefit.investmentStrategy.lifestage.isPassive &&\r\n !benefit.investmentStrategy.lifestage.isSpecialist\r\n ) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n validateModel(model: CorporateRetirement | null | undefined): boolean {\r\n try {\r\n let errorCount = 0;\r\n\r\n if (\r\n model &&\r\n model.benefits &&\r\n model.benefits.length > 0 &&\r\n model.fundSalaryOptions &&\r\n model.fundSalaryOptions.length > 0\r\n ) {\r\n model.fundSalaryOptions.forEach(fs => {\r\n if (!fs || fs < 0) {\r\n errorCount++;\r\n }\r\n });\r\n\r\n model.benefits.forEach(benefit => {\r\n if (!this.validateBenefit(benefit)) {\r\n errorCount++;\r\n }\r\n });\r\n } else {\r\n return false;\r\n }\r\n if (errorCount > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n private validateBenefit(benefit: CorporateRetirementBenefit): boolean {\r\n let haveEitherContribution: boolean;\r\n\r\n if (\r\n benefit.contribution.memberContributions &&\r\n benefit.contribution.memberContributions.length > 0\r\n ) {\r\n haveEitherContribution = this.checkContributions(\r\n benefit.contribution.memberContributions\r\n );\r\n }\r\n if (\r\n benefit.contribution.employerContributions &&\r\n benefit.contribution.employerContributions.length > 0\r\n ) {\r\n haveEitherContribution = this.checkContributions(\r\n benefit.contribution.employerContributions\r\n );\r\n }\r\n\r\n if (\r\n benefit.availableBenefitOptions &&\r\n benefit.availableBenefitOptions.schemeNo &&\r\n benefit.availableBenefitOptions.schemeName &&\r\n benefit.availableBenefitOptions.retirementAge &&\r\n benefit.availableBenefitOptions.retirementAge > 0 &&\r\n benefit.availableBenefitOptions.anniversaryDate &&\r\n haveEitherContribution\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private checkContributions(contributions: Array): boolean {\r\n if (contributions.includes(undefined) || contributions.some(v => v < 0)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","export class CorporateRetirementBenefit {\r\n availableBenefitOptions: {\r\n schemeNo: string;\r\n schemeName: string;\r\n retirementAge: number;\r\n anniversaryDate: Date;\r\n hasPensionBackedHomeLoan: boolean;\r\n };\r\n qualifyingMembers?: {\r\n isFullTime: boolean;\r\n isPermanent: boolean;\r\n isPartTime: boolean;\r\n hasContract: boolean;\r\n isUnderRetirementAge: boolean;\r\n isOverRetirementAge: boolean;\r\n hasDisabilityClaims: boolean;\r\n };\r\n\r\n contribution: {\r\n hasMemberContribution: boolean;\r\n memberContributions: Array;\r\n\r\n hasVoluntaryContribution: boolean;\r\n voluntaryContributions: Array;\r\n anniversaryDate?: Date;\r\n\r\n hasEmployerContribution: boolean;\r\n employerContributions: Array;\r\n };\r\n\r\n investmentStrategy?: {\r\n isLifestage?: boolean;\r\n lifestage?: {\r\n isBalanced: boolean;\r\n isPassive: boolean;\r\n isSpecialist: boolean;\r\n };\r\n\r\n hasClarity?: boolean;\r\n\r\n hasSinglePortfolio?: boolean;\r\n portfolioOptionId?: number;\r\n\r\n isComprehensive?: boolean;\r\n defaultOptionId?: number;\r\n defaultLabelName?: string;\r\n };\r\n}\r\n","import { Component, OnInit, ViewEncapsulation, EventEmitter, Output, OnDestroy, Input } from '@angular/core';\r\nimport { CorporateRetirement } from './models/retirement.interface';\r\nimport { RetirementModelHelper } from './helpers/retirement-model-helper';\r\nimport { CustomTrackBy } from '../../../../../../shared/models/customTrackBy';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-retirements-tab',\r\n templateUrl: './retirements-tab.component.html',\r\n styleUrls: [\r\n './retirements-tab.component.scss',\r\n '../../../all-templates/create-offer-template/deductions-tab/deductions-tab.component.scss',\r\n '../../../all-templates/create-offer-template/earnings-tab/earnings-tab.component.scss',\r\n '../../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RetirementsTabComponent extends CustomTrackBy implements OnInit, OnDestroy {\r\n\r\n @Input() isDraft: boolean;\r\n @Input() mode: string;\r\n @Input() retirement: CorporateRetirement;\r\n @Input() corporateName: string;\r\n @Output() next = new EventEmitter();\r\n @Output() saveTemp = new EventEmitter();\r\n trackChanges: boolean = false;\r\n\r\n constructor(private _modelHelper: RetirementModelHelper) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.retirement) {\r\n this.retirement = this._modelHelper.initRetirementModel();\r\n }\r\n }\r\n\r\n addSalaryOption() {\r\n this.retirement.fundSalaryOptions.push(null);\r\n this.trackChanges = true;\r\n }\r\n\r\n removeSalaryOption() {\r\n this.retirement.fundSalaryOptions.length--;\r\n this.trackChanges = true;\r\n }\r\n\r\n addBenefit(data: { selectedCase: string, name: string }) {\r\n const selectedCase = data.selectedCase;\r\n const name = data.name;\r\n this.retirement.benefits.push(this._modelHelper.initCorporateRetirementBenefitModel(selectedCase, name));\r\n this.trackChanges = true;\r\n }\r\n\r\n deleteBenefit(index: number) {\r\n this.retirement.benefits.splice(index, 1);\r\n this.trackChanges = true;\r\n }\r\n\r\n removeMemberContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.memberContributions.length--;\r\n this.trackChanges = true;\r\n }\r\n\r\n addMemberContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.memberContributions.push(null);\r\n this.trackChanges = true;\r\n }\r\n\r\n removeVoluntaryContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.voluntaryContributions.length--;\r\n this.trackChanges = true;\r\n }\r\n\r\n addVoluntaryContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.voluntaryContributions.push(null);\r\n this.trackChanges = true;\r\n }\r\n\r\n removeEmployerContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.employerContributions.length--;\r\n this.trackChanges = true;\r\n }\r\n\r\n addEmployerContributionOption(i: number) {\r\n this.retirement.benefits[i].contribution.employerContributions.push(null);\r\n this.trackChanges = true;\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges = changes;\r\n }\r\n\r\n onChangeNumber() {\r\n this.trackChanges = true;\r\n }\r\n\r\n\r\n continue() {\r\n this.next.emit(this.retirement);\r\n }\r\n\r\n validateModel(): boolean {\r\n return this._modelHelper.validateModel(this.retirement);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveTemp.emit({ tabName: 'retirement', tabModel: this.retirement });\r\n }\r\n\r\n hasEmptyRetirementOption(): boolean {\r\n if (this.retirement.fundSalaryOptions && (this.retirement.fundSalaryOptions.length < 1 ||\r\n this.retirement.fundSalaryOptions.filter(x => x == null).length > 0 ||\r\n this.retirement.fundSalaryOptions.filter(x => x == 0).length > 0 ||\r\n this.retirement.fundSalaryOptions.filter(x => x == undefined).length > 0)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n hasIvalidPercengateOption(options: number[]): boolean {\r\n if (options && (options.length < 1 ||\r\n options.filter(x => x < 0).length > 0 ||\r\n options.filter(x => x > 100).length > 0)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n hasAnyInvalidPercentage(): boolean {\r\n if (this.hasIvalidPercengateOption(this.retirement.fundSalaryOptions)) {\r\n return false;\r\n }\r\n\r\n this.retirement.benefits.forEach(benefit => {\r\n if (benefit.contribution) {\r\n\r\n if (benefit.contribution.hasMemberContribution && benefit.contribution.memberContributions.length > 0) {\r\n if (this.hasIvalidPercengateOption(benefit.contribution.employerContributions)) {\r\n return false;\r\n }\r\n }\r\n\r\n if (benefit.contribution.hasVoluntaryContribution && benefit.contribution.voluntaryContributions.length > 0) {\r\n if (this.hasIvalidPercengateOption(benefit.contribution.employerContributions)) {\r\n return false;\r\n }\r\n }\r\n\r\n if (benefit.contribution.hasEmployerContribution && benefit.contribution.employerContributions.length > 0) {\r\n if (this.hasIvalidPercengateOption(benefit.contribution.employerContributions)) {\r\n return false;\r\n }\r\n }\r\n\r\n }\r\n });\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n Retirement fund salary\r\n
\r\n\r\n
\r\n
\r\n

Please add the available fund salary options

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n -\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n +\r\n \r\n\r\n Add percentage\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n * Please add valid percentage options.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
1\">\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n \r\n CONTINUE\r\n \r\n\r\n \r\n UPDATE\r\n \r\n
\r\n","export const FundOptions = [\r\n { label: 'Alexforbes Retirement Fund', value: 1 },\r\n { label: 'Stand Alone', value: 2 }\r\n];\r\n\r\nexport const FundTypes = [\r\n { label: 'Pension', value: 1 },\r\n { label: 'Provident', value: 2 }\r\n];\r\n\r\nexport const FundOfferings = [\r\n { label: 'Base', value: 1 },\r\n { label: 'Core', value: 2 },\r\n { label: 'Comprehensive', value: 3 },\r\n];\r\n\r\nexport const PortfolioOptions = [\r\n { label: 'Real Return Focus', value: 1 }\r\n];\r\n\r\nexport const BenefitOptions = [ 'Benefit 1', 'Benefit 2', 'Benefit 3'];\r\n\r\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\r\nimport { CorporateRetirementBenefit } from '../models/retirement-benefit.model';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\nimport { PortfolioOptions } from '../retirements.mocks';\r\nimport { RetirementModelHelper } from '../helpers/retirement-model-helper';\r\n\r\n@Component({\r\n selector: 'app-single-benefit',\r\n templateUrl: './single-benefit.component.html',\r\n styleUrls: ['./single-benefit.component.scss']\r\n})\r\nexport class SingleBenefitComponent extends CustomTrackBy implements OnInit {\r\n \r\n aForbesPensionComprehensiveFundName = 'Alexforbes Retirement Pension Comprehensive Fund';\r\n \r\n @Input() benefit: CorporateRetirementBenefit;\r\n @Input() index: number;\r\n @Input() corporateName: string;\r\n \r\n @Output() delete = new EventEmitter();\r\n @Output() addMemberContributionOpt = new EventEmitter();\r\n @Output() removeMemberContributionOpt = new EventEmitter();\r\n @Output() addVoluntaryContributionOpt = new EventEmitter();\r\n @Output() removeVoluntaryContributionOpt = new EventEmitter();\r\n @Output() addEmployerContributionOpt = new EventEmitter();\r\n @Output() removeEmployerContributionOpt = new EventEmitter();\r\n @Output() trackChanges = new EventEmitter();\r\n \r\n portfolioOptions: { value: number, label: string }[];\r\n defaultInvestmentStrategyArray: { value: number, label: string }[];\r\n \r\n \r\n constructor(public validator: RetirementModelHelper) {\r\n super();\r\n }\r\n \r\n ngOnInit() {\r\n this.portfolioOptions = PortfolioOptions;\r\n this.getInvestmentStrategies();\r\n \r\n if (this.benefit.availableBenefitOptions.schemeName === `${this.corporateName} ${this.aForbesPensionComprehensiveFundName}`) {\r\n this.preSelectInvestmentStrategy();\r\n }\r\n if (this.benefit.availableBenefitOptions.anniversaryDate) {\r\n this.benefit.availableBenefitOptions.anniversaryDate = new Date(this.benefit.availableBenefitOptions.anniversaryDate);\r\n \r\n }\r\n }\r\n \r\n \r\n getInvestmentStrategies() {\r\n this.defaultInvestmentStrategyArray = [];\r\n \r\n if (this.benefit.investmentStrategy.isLifestage) {\r\n if (this.benefit.investmentStrategy.lifestage.isBalanced) {\r\n this.addStrategy('Lifestage – Balanced', true);\r\n }\r\n if (this.benefit.investmentStrategy.lifestage.isPassive) {\r\n this.addStrategy('Lifestage – Passive', true);\r\n }\r\n if (this.benefit.investmentStrategy.lifestage.isSpecialist) {\r\n this.addStrategy('Lifestage – Specialist', true);\r\n }\r\n this.benefit.investmentStrategy.isComprehensive = false;\r\n }\r\n \r\n if (this.benefit.investmentStrategy.hasClarity) {\r\n this.addStrategy('Clarity', true);\r\n }\r\n \r\n if (this.benefit.investmentStrategy.hasSinglePortfolio) {\r\n this.addStrategy('Single portfolio – Real Return Focus', true);\r\n }\r\n \r\n //this.setDefaultInvestmentStrategy();\r\n }\r\n \r\n preSelectInvestmentStrategy() {\r\n this.benefit.investmentStrategy.isLifestage = true;\r\n this.benefit.investmentStrategy.lifestage = {\r\n isBalanced: true,\r\n isPassive: true,\r\n isSpecialist: true\r\n };\r\n this.benefit.investmentStrategy.hasClarity = true;\r\n this.benefit.investmentStrategy.isComprehensive = true;\r\n }\r\n \r\n deleteBeneft() {\r\n this.delete.emit(this.index);\r\n }\r\n \r\n addMemberContributionOption() {\r\n this.addMemberContributionOpt.emit(this.index);\r\n }\r\n \r\n removeMemberContributionOption() {\r\n this.removeMemberContributionOpt.emit(this.index);\r\n }\r\n \r\n addVoluntaryContributionOption() {\r\n this.addVoluntaryContributionOpt.emit(this.index);\r\n }\r\n \r\n removeVoluntaryContributionOption() {\r\n this.removeVoluntaryContributionOpt.emit(this.index);\r\n }\r\n \r\n addEmployerContributionOption() {\r\n this.addEmployerContributionOpt.emit(this.index);\r\n }\r\n \r\n removeEmployerContributionOption() {\r\n this.removeEmployerContributionOpt.emit(this.index);\r\n }\r\n \r\n addStrategy(strategyName: string, toAdd: boolean) {\r\n if (this.defaultInvestmentStrategyArray.filter(x => x.label == strategyName).length > 0) {\r\n this.removeStrategy(strategyName);\r\n } else {\r\n const index = this.defaultInvestmentStrategyArray.length;\r\n this.defaultInvestmentStrategyArray.push({\r\n value: index,\r\n label: strategyName\r\n });\r\n }\r\n //this.setDefaultInvestmentStrategy();\r\n }\r\n \r\n removeStrategy(strategyName: string) {\r\n if (this.defaultInvestmentStrategyArray.filter(x => x.label == strategyName).length > 0) {\r\n const index = this.defaultInvestmentStrategyArray.findIndex(x => x.label == strategyName);\r\n this.defaultInvestmentStrategyArray.splice(index, 1);\r\n }\r\n }\r\n \r\n setDefaultInvestmentStrategy() {\r\n const deafultLabel = 'Clarity';\r\n \r\n if (this.defaultInvestmentStrategyArray.filter(x => x.label == deafultLabel).length > 0) {\r\n const defaultStrategy = this.defaultInvestmentStrategyArray.filter(x => x.label == deafultLabel)[0];\r\n this.benefit.investmentStrategy.defaultOptionId = defaultStrategy.value;\r\n } else {\r\n this.benefit.investmentStrategy.defaultOptionId = null;\r\n }\r\n \r\n if (this.defaultInvestmentStrategyArray.filter(x => x.label).length > 0) {\r\n const defaultStrategy = this.defaultInvestmentStrategyArray.filter(x => x.label)[0];\r\n this.benefit.investmentStrategy.defaultLabelName = defaultStrategy.label;\r\n } else {\r\n this.benefit.investmentStrategy.defaultLabelName = null;\r\n }\r\n \r\n }\r\n \r\n swicthHasLifestage() {\r\n if (this.benefit.investmentStrategy.isLifestage) {\r\n this.benefit.investmentStrategy.lifestage = {\r\n isBalanced: false,\r\n isPassive: false,\r\n isSpecialist: false,\r\n };\r\n } else {\r\n if (this.benefit.investmentStrategy.lifestage.isBalanced) {\r\n this.removeStrategy('Lifestage – Balanced');\r\n }\r\n if (this.benefit.investmentStrategy.lifestage.isPassive) {\r\n this.removeStrategy('Lifestage – Passive');\r\n }\r\n if (this.benefit.investmentStrategy.lifestage.isSpecialist) {\r\n this.removeStrategy('Lifestage – Specialist');\r\n }\r\n this.benefit.investmentStrategy.lifestage = null;\r\n }\r\n }\r\n \r\n switchMemberContribution() {\r\n if (this.benefit.contribution.hasMemberContribution) {\r\n this.benefit.contribution.memberContributions = [];\r\n } else {\r\n this.benefit.contribution.memberContributions = null;\r\n }\r\n }\r\n \r\n switchVoluntaryContribution() {\r\n if (this.benefit.contribution.hasVoluntaryContribution) {\r\n this.benefit.contribution.voluntaryContributions = [];\r\n } else {\r\n this.benefit.contribution.voluntaryContributions = null;\r\n }\r\n }\r\n \r\n switchEmployerContribution() {\r\n if (this.benefit.contribution.hasEmployerContribution) {\r\n this.benefit.contribution.employerContributions = [];\r\n } else {\r\n this.benefit.contribution.employerContributions = null;\r\n }\r\n }\r\n \r\n isSelectedInvestmentStrategy(): boolean {\r\n if (this.benefit.investmentStrategy &&\r\n (this.benefit.investmentStrategy.lifestage ||\r\n this.benefit.investmentStrategy.hasClarity ||\r\n this.benefit.investmentStrategy.hasSinglePortfolio)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n \r\n hasIvalidPercengateOption(options: number[]): boolean {\r\n if (options && options.length > 0 &&\r\n (options.filter(x => x === null).length > 0 ||\r\n options.filter(x => x === undefined).length > 0 ||\r\n options.filter(x => x <= 0).length > 0 ||\r\n options.filter(x => x > 100).length > 0)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n \r\n onCheckForUpdate(changes: any) {\r\n const elementContainingChanges = this.defaultInvestmentStrategyArray.find(x => x.value == changes);\r\n\r\n if (elementContainingChanges) {\r\n this.benefit.investmentStrategy.defaultLabelName = elementContainingChanges.label;\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n \r\n \r\n}\r\n","
\r\n {{ benefit.availableBenefitOptions.schemeName }}\r\n \r\n
\r\n\r\n
\r\n
\r\n

Select available retirement fund benefit options

\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n Pension backend home loan\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Select qualifying members

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Full time\r\n
\r\n\r\n
\r\n \r\n Permanent\r\n
\r\n\r\n
\r\n \r\n Part time\r\n
\r\n\r\n
\r\n \r\n Contract\r\n
\r\n\r\n
\r\n \r\n Under retirement age\r\n
\r\n\r\n
\r\n \r\n Over retirement age\r\n
\r\n\r\n
\r\n \r\n New members with existing disability claims\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Select available retirement contribution

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Member contribution\r\n
\r\n \r\n
\r\n

Please add the percentage of fund salary options

\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Add percentage\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n Additional voluntary contributions\r\n
\r\n\r\n
\r\n

Please add the percentage of fund salary options

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Add percentage\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Employer contribution\r\n
\r\n\r\n \r\n\r\n
\r\n

Please add the percentage of fund salary options

\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Add percentage\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Select investment strategy

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Lifestage\r\n
\r\n \r\n
\r\n
\r\n \r\n Balanced\r\n
\r\n\r\n
\r\n \r\n Passive\r\n
\r\n\r\n
\r\n \r\n Specialist\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Clarity\r\n
\r\n\r\n
\r\n \r\n Single portfolio\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Comprehensive\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { ErrorService } from '../../../../../../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-add-package',\r\n templateUrl: './add-package.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './add-package.component.scss'\r\n ]\r\n})\r\nexport class AddPackageComponent {\r\n\r\n @Input() isAdditional: boolean;\r\n @Output() packageAdded = new EventEmitter();\r\n newPackageToAddName: string;\r\n\r\n constructor(private _errorService: ErrorService) { }\r\n\r\n addPackage() {\r\n if (this.newPackageToAddName) {\r\n this.packageAdded.emit(this.newPackageToAddName);\r\n } else {\r\n this._errorService.openErrorPopup('Please enter a package name.');\r\n }\r\n }\r\n\r\n onKeydown(event) {\r\n if (event.key == 'Enter') {\r\n this.addPackage();\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Add {{ isAdditional ? \"another\" : \"risk\" }} package\r\n
\r\n\r\n
\r\n

\r\n Add {{ isAdditional ? \"another\" : null }} available retirement fund\r\n benefit options\r\n

\r\n
\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, Input, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateDisabilityIncomeProtection } from '../models/disability-income-protection.interface';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\n\r\n@Component({\r\n selector: 'app-disability-income-protection',\r\n templateUrl: './disability-income-protection.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './disability-income-protection.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class DisabilityIncomeProtectionComponent extends CustomTrackBy {\r\n\r\n @Input() model: CorporateDisabilityIncomeProtection;\r\n @Input() packageName: string;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() waitingPeriodOptionsArray: { value: number, label: string }[];\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super();\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initDisabilityIncomeProtection();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n switchContributionType() {\r\n this.model.details.shared.isDefinedContribution = !this.model.details.shared.isDefinedContribution;\r\n\r\n if (this.model.details.shared.isDefinedContribution) {\r\n this.model.details.shared.benefitAmounts = [null];\r\n this.model.details.shared.benefitPercentages = null;\r\n } else {\r\n this.model.details.shared.benefitPercentages = [null];\r\n this.model.details.shared.benefitAmounts = null;\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n addSingle() {\r\n if (this.model.details.shared.isDefinedContribution) {\r\n this.model.details.shared.benefitAmounts.push(null);\r\n } else {\r\n this.model.details.shared.benefitPercentages.push(null);\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n deleteSingle(index: number = 0) {\r\n if (this.model.details.shared.isDefinedContribution) {\r\n this.model.details.shared.benefitAmounts.splice(index, 1);\r\n } else {\r\n this.model.details.shared.benefitPercentages.splice(index, 1);\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Disability income protection - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available disability income protection options

\r\n\r\n
\r\n \r\n Disability income protection\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n Top-up\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Retirement fund waiver\r\n
\r\n
\r\n Medical premium waiver\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Employer waiver\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"input-container\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateDisabilityLumpSum } from '../models/disability-lump-sum-interface';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\n\r\n@Component({\r\n selector: 'app-disability-lump-sum',\r\n templateUrl: './disability-lump-sum.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './disability-lump-sum.component.scss'\r\n ]\r\n})\r\nexport class DisabilityLumpSumComponent extends CustomTrackBy {\r\n\r\n @Input() model: any; // CorporateDisabilityLumpSum;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() packageName: string;\r\n @Input() lifeCover: any;\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super();\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initDisabilityLumpSum();\r\n } else {\r\n this.model.details = null;\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n onChangeToLifeCover() {\r\n if (this.model.details.equivalentToLifeCover && this.lifeCover.details && this.lifeCover.details.shared) {\r\n this.model.details.shared = this.lifeCover.details.shared;\r\n } else {\r\n this.model.details.shared = this._modelHelper.initLifeCoverShared();\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n addSingle() {\r\n // 1 is multiple; 2 is percentage\r\n if (this.model.details.shared.benefitTypeId == 1) {\r\n if (!this.model.details.shared.multiple) {\r\n this.model.details.shared.multiple = [];\r\n }\r\n this.model.details.shared.multiple.push(null);\r\n this.model.details.shared.options = null;\r\n\r\n } else if (this.model.details.shared.benefitTypeId == 2) {\r\n if (!this.model.details.shared.options) {\r\n this.model.details.shared.options = [];\r\n }\r\n this.model.details.shared.options.push({ percentage: null, initialMultipleOfFund: null });\r\n this.model.details.shared.multiple = null;\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n deleteSingle(index: number) {\r\n // 1 is multiple; 2 is percentage\r\n if (this.model.details.shared.benefitTypeId == 1) {\r\n this.model.details.shared.multiple.splice(index, 1);\r\n\r\n } else if (this.model.details.shared.benefitTypeId == 2) {\r\n this.model.details.shared.options.splice(index, 1);\r\n }\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Disability lump sum - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available disability lump sum options

\r\n\r\n
\r\n \r\n Disability lump sum\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n \r\n Equivalent to life cover\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateDreadDiseaseCover } from '../models/dread-disease-cover.interface';\r\nimport { DisabilityLumpSumComponent } from '../disability-lump-sum/disability-lump-sum.component';\r\n\r\n@Component({\r\n selector: 'app-dread-disease-cover',\r\n templateUrl: './dread-disease-cover.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './dread-disease-cover.component.scss'\r\n ]\r\n})\r\nexport class DreadDiseaseCoverComponent extends DisabilityLumpSumComponent {\r\n\r\n @Input() model: CorporateDreadDiseaseCover;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() packageName: string;\r\n @Input() lifeCover: any;\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super(_modelHelper);\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initDreadDiseaseCover();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Dread disease cover - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available dread disease cover options

\r\n\r\n
\r\n \r\n Dread disease cover\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Reinstatement option\r\n
\r\n
\r\n Equivalent to life cover\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateFuneral } from '../models/funeral.interface';\r\n\r\n@Component({\r\n selector: 'app-funeral',\r\n templateUrl: './funeral.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './funeral.component.scss'\r\n ]\r\n})\r\nexport class FuneralComponent {\r\n\r\n @Input() model: CorporateFuneral;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() familyMembersOptionsArray: { value: number, label: string }[];\r\n @Input() packageName: string;\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(private _modelHelper: RiskModelHelper) { }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initFuneral();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Funeral - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available funeral options

\r\n\r\n
\r\n \r\n Funeral\r\n
\r\n\r\n\r\n
\r\n\r\n \r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Family reparation\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { CorporateRiskPackage, CorporateRiskPackageOptions, CorporateRisk } from '../models/risk.interface';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RiskModelHelper {\r\n\r\n initPackage(packageName: string): CorporateRiskPackage {\r\n return {\r\n name: packageName,\r\n max: null,\r\n isMaxInCurrency: false,\r\n options: this.initPackageOptionsModel(),\r\n isPaidFromRetirementContributions: false\r\n };\r\n }\r\n\r\n initPackageOptionsModel(): CorporateRiskPackageOptions {\r\n return {\r\n lifeCover: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n spousalLifeCover: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n dreadDiseaseCover: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n spousalDreadDiseaseCover: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n disabilityLumpSum: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n spousalDisabilityLumpSum: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n disabilityIncomeProtection: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n temporaryTotalDisability: {\r\n isEnabled: false,\r\n details: null\r\n },\r\n funeral: {\r\n isEnabled: false,\r\n details: null\r\n }\r\n };\r\n }\r\n\r\n initLifeCover() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n coverToContinue: false,\r\n continuationOption: false,\r\n coverExistingDisabilityClaims: false,\r\n educationBenefit: false,\r\n terminalReplacementCover: false,\r\n terminalIllnessCover: false,\r\n taxReplacementCover: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initSpousalLifeCover() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n continuationOption: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initDreadDiseaseCover() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n reinstatementOption: false,\r\n equivalentToLifeCover: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initSpousalDreadDiseaseCover() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n reinstatementOption: false,\r\n equivalentToSpousalLifeCover: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initDisabilityLumpSum() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n continuationOption: false,\r\n equivalentToLifeCover: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initSpousalDisabilityLumpSum() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n continuationOption: false,\r\n equivalentToSpousalLifeCover: false,\r\n shared: {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n }\r\n };\r\n }\r\n\r\n initDisabilityIncomeProtection() {\r\n return {\r\n insurerId: null,\r\n isMember: false,\r\n continuationOption: false,\r\n topUp: false,\r\n topUpPercentage: null,\r\n retirementFundWaiver: false,\r\n medicalPremiumWaiver: false,\r\n shared: {\r\n escalationPercentage: null,\r\n employerWaiver: false,\r\n employerWaiverPercentage: null,\r\n waitingPeriodId: null,\r\n isDefinedContribution: false,\r\n benefitPercentages: [ null ],\r\n benefitAmounts: null,\r\n costOfFundSalary: null\r\n }\r\n };\r\n }\r\n\r\n initTemporaryTotalDisability() {\r\n return {\r\n insurerId: null,\r\n termToPaymentId: null,\r\n isMember: false,\r\n continuationOption: false,\r\n equivalentToDisabilityIncomeProtection: false,\r\n topUp: false,\r\n topUpPercentage: null,\r\n retirementFundWaiver: false,\r\n medicalPremiumWaiver: false,\r\n shared: {\r\n escalationPercentage: null,\r\n employerWaiver: false,\r\n employerWaiverPercentage: null,\r\n waitingPeriodId: null,\r\n isDefinedContribution: false,\r\n benefitPercentages: [ null ],\r\n benefitAmounts: null,\r\n costOfFundSalary: null\r\n }\r\n };\r\n }\r\n\r\n initFuneral() {\r\n return {\r\n isMember: false,\r\n continuationOption: false,\r\n familyMembersCoveredOptionId: null,\r\n insurerId: null,\r\n isInCurrency: false,\r\n benefitLevel: null,\r\n familyReparation: false\r\n };\r\n }\r\n\r\n initLifeCoverShared() {\r\n return {\r\n coverTerminationAge: null,\r\n benefitOptionId: null,\r\n benefitTypeId: null,\r\n multiple: [],\r\n options: null\r\n };\r\n }\r\n\r\n initDisabilityShared() {\r\n return {\r\n escalationPercentage: null,\r\n employerWaiver: false,\r\n employerWaiverPercentage: null,\r\n waitingPeriodId: null,\r\n isDefinedContribution: false,\r\n benefitPercentages: [ null ],\r\n benefitAmounts: null,\r\n costOfFundSalary: null\r\n };\r\n }\r\n\r\n validateModel(model: CorporateRisk | undefined | null) {\r\n try {\r\n let isValid = true;\r\n\r\n if (!model || !model.packages || model.packages.length < 1 ) {\r\n isValid = false;\r\n return isValid;\r\n }\r\n\r\n for (const pack of model.packages) {\r\n pack.options = this.initPackageOptionsModel();\r\n if ((this.hasAtLeastOneCoverageEnabled(pack.options)) &&\r\n (!pack.max || pack.max < 0 || pack.max > 100)) {\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n\r\n for (const pack of model.packages) {\r\n if (!this.validateRisk(pack.options.lifeCover) ||\r\n !this.validateRisk(pack.options.spousalLifeCover) ||\r\n !this.validateRisk(pack.options.dreadDiseaseCover) ||\r\n !this.validateRisk(pack.options.spousalDreadDiseaseCover) ||\r\n !this.validateRisk(pack.options.disabilityLumpSum) ||\r\n !this.validateRisk(pack.options.spousalDisabilityLumpSum) ||\r\n !this.validateRisk(pack.options.disabilityIncomeProtection) ||\r\n !this.validateRisk(pack.options.temporaryTotalDisability)) {\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n\r\n return isValid;\r\n\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n private validateRisk(risk: any) {\r\n if (risk.isEnabled && !risk.details.insurerId) {\r\n return false;\r\n } else {\r\n if (risk.isEnabled && risk.details.shared && risk.details.shared.multiple &&\r\n risk.details.shared.multiple.filter((x: number) => (x <= 0)).length > 0) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n hasAtLeastOneCoverageEnabled(options: CorporateRiskPackageOptions): boolean {\r\n if ((options.lifeCover && options.lifeCover.isEnabled) ||\r\n (options.spousalLifeCover && options.spousalLifeCover.isEnabled) ||\r\n (options.dreadDiseaseCover && options.dreadDiseaseCover.isEnabled) ||\r\n (options.spousalDreadDiseaseCover && options.spousalDreadDiseaseCover.isEnabled) ||\r\n (options.disabilityLumpSum && options.disabilityLumpSum.isEnabled) ||\r\n (options.spousalDisabilityLumpSum && options.spousalDisabilityLumpSum.isEnabled) ||\r\n (options.disabilityIncomeProtection && options.disabilityIncomeProtection.isEnabled) ||\r\n (options.temporaryTotalDisability && options.temporaryTotalDisability.isEnabled) ||\r\n (options.funeral && options.funeral.isEnabled)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { CorporateLifeCover } from '../models/life-cover.interface';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\n\r\n@Component({\r\n selector: 'app-life-cover',\r\n templateUrl: './life-cover.component.html',\r\n styleUrls: ['./life-cover.component.scss']\r\n})\r\nexport class LifeCoverComponent extends CustomTrackBy {\r\n\r\n @Input() model: CorporateLifeCover;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() packageName: string;\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Output() trackChanges = new EventEmitter();\r\n @Output() modelChange = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super();\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initLifeCover();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n addSingle() {\r\n // 1 is multiple; 2 is percentage\r\n if (this.model.details.shared.benefitTypeId == 1) {\r\n if (!this.model.details.shared.multiple) {\r\n this.model.details.shared.multiple = [];\r\n }\r\n this.model.details.shared.multiple.push(null);\r\n this.model.details.shared.options = null;\r\n\r\n } else if (this.model.details.shared.benefitTypeId == 2) {\r\n if (!this.model.details.shared.options) {\r\n this.model.details.shared.options = [];\r\n }\r\n this.model.details.shared.options.push({ percentage: null, initialMultipleOfFund: null });\r\n this.model.details.shared.multiple = null;\r\n }\r\n this.trackChanges.emit(true);\r\n this.modelChange.emit(this.model);\r\n }\r\n\r\n deleteSingle(index: number) {\r\n // 1 is multiple; 2 is percentage\r\n if (this.model.details.shared.benefitTypeId == 1) {\r\n this.model.details.shared.multiple.splice(index, 1);\r\n\r\n } else if (this.model.details.shared.benefitTypeId == 2) {\r\n this.model.details.shared.options.splice(index, 1);\r\n }\r\n this.modelChange.emit(this.model);\r\n this.trackChanges.emit(true);\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.modelChange.emit(this.model);\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Life cover - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available life cover options

\r\n\r\n
\r\n \r\n Life cover\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Cover to continue\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n Cover existing disability claims\r\n
\r\n
\r\n Education benefit\r\n
\r\n
\r\n Terminal replacement cover\r\n
\r\n
\r\n Terminal illness cover\r\n
\r\n
\r\n Tax replacement cover\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \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, OnDestroy, Output, EventEmitter, Input } from '@angular/core';\r\nimport { CorporateRisk, CorporateRiskPackage } from './models/risk.interface';\r\nimport { RiskModelHelper } from './helpers/risk-model-helper';\r\n\r\n@Component({\r\n selector: 'app-risk-tab',\r\n templateUrl: './risk-tab.component.html',\r\n styleUrls: ['./risk-tab.component.scss']\r\n})\r\nexport class RiskTabComponent implements OnInit, OnDestroy {\r\n\r\n @Input() isDraft: boolean;\r\n @Input() mode: string;\r\n //TODO: Check if 2 way binding is neccessary or just one way as it is, after we changed it.\r\n @Input() risk: CorporateRisk;\r\n @Output() next = new EventEmitter();\r\n @Output() saveTemp = new EventEmitter();\r\n\r\n insurerArray: { value: number, label: string }[];\r\n benefitOptionsArray: { value: number, label: string }[];\r\n benefitTypesArray: { value: number, label: string }[];\r\n familyMembersOptionsArray: { value: number, label: string }[];\r\n waitingPeriodOptionsArray: { value: number, label: string }[];\r\n termToPaymentArray: { value: number, label: string }[];\r\n trackChanges: boolean = false;\r\n\r\n constructor(private _modelHelper: RiskModelHelper) { }\r\n\r\n \r\n ngOnInit() {\r\n this.initDropdowns();\r\n if (!this.risk || !this.risk.packages) {\r\n this.risk = {\r\n packages: new Array()\r\n };\r\n } else {\r\n this.risk.packages[0] = this._modelHelper.initPackage(\"Add risk package\");\r\n }\r\n }\r\n\r\n private initDropdowns() {\r\n // TODO get from backend\r\n this.insurerArray = [\r\n { value: 1, label: 'Alexforbes' },\r\n { value: 2, label: 'Discovery' },\r\n { value: 3, label: 'Sanlam' }\r\n ];\r\n\r\n this.benefitOptionsArray = [\r\n { value: 1, label: 'Defined benefit' },\r\n { value: 2, label: 'Defined contribution' },\r\n { value: 3, label: 'Alexforbes Lifecycle' }\r\n ];\r\n\r\n this.benefitTypesArray = [\r\n { value: 1, label: 'Multiple' },\r\n { value: 2, label: 'Percentage' },\r\n { value: 3, label: 'Age Related' }\r\n ];\r\n\r\n this.familyMembersOptionsArray = [\r\n { value: 1, label: 'Single' }\r\n ];\r\n\r\n this.waitingPeriodOptionsArray = [\r\n { value: 1, label: '6 months' },\r\n { value: 2, label: '12 months' },\r\n { value: 3, label: '18 months' }\r\n ];\r\n\r\n this.termToPaymentArray = [\r\n { value: 1, label: 'Option 1' }\r\n ];\r\n }\r\n\r\n addPackage(newPackageToAddName: string) {\r\n this.risk.packages.push(this._modelHelper.initPackage(newPackageToAddName));\r\n this.trackChanges = true;\r\n }\r\n\r\n deletePackage(index: number) {\r\n this.risk.packages.splice(index, 1);\r\n this.trackChanges = true;\r\n }\r\n\r\n continue() {\r\n this.next.emit(this.risk);\r\n }\r\n\r\n onCheckForUpdate(changes: boolean) {\r\n this.trackChanges = changes;\r\n }\r\n\r\n onChangeNumber() {\r\n this.trackChanges = true;\r\n }\r\n\r\n validateModel(): boolean {\r\n return this._modelHelper.validateModel(this.risk);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveTemp.emit({ tabName: 'risk', tabModel: this.risk });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{risk.packages[i].name}}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n

Add available risk option

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n * Please fill in required field.\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n Risk benefits paid from Retirement Contributions\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
0\" class=\"ui-g-12 ui-md-12\">\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n UPDATE\r\n \r\n\r\n \r\n CREATE\r\n \r\n\r\n \r\n COMPLETE\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateSpousalDisabilityLumpSum } from '../models/spousal-disability-lump-sum.interface';\r\nimport { SpousalLifeCoverComponent } from '../spousal-life-cover/spousal-life-cover.component';\r\n\r\n@Component({\r\n selector: 'app-spousal-disability-lump-sum',\r\n templateUrl: './spousal-disability-lump-sum.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './spousal-disability-lump-sum.component.scss'\r\n ]\r\n})\r\nexport class SpousalDisabilityLumpSumComponent extends SpousalLifeCoverComponent {\r\n\r\n @Input() model: any; // CorporateSpousalDisabilityLumpSum;\r\n @Input() packageName: string;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Input() spousalLifeCover: any;\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super(_modelHelper);\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initSpousalDisabilityLumpSum();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n onChangeToSpousalLifeCover() {\r\n if (this.model.details.equivalentToSpousalLifeCover &&\r\n this.spousalLifeCover.details &&\r\n this.spousalLifeCover.details.shared) {\r\n this.model.details.shared = this.spousalLifeCover.details.shared;\r\n } else {\r\n this.model.details.shared = this._modelHelper.initLifeCoverShared();\r\n }\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n

Select available spousal disability lump options

\r\n\r\n
\r\n \r\n Spousal disability lump sum\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n Equivalent to spousal life cover\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateSpousalDreadDiseaseCover } from '../models/spousal-dread-disease-cover.interface';\r\nimport { SpousalDisabilityLumpSumComponent } from '../spousal-disability-lump-sum/spousal-disability-lump-sum.component';\r\n\r\n@Component({\r\n selector: 'app-spousal-dread-disease-cover',\r\n templateUrl: './spousal-dread-disease-cover.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './spousal-dread-disease-cover.component.scss'\r\n ]\r\n})\r\nexport class SpousalDreadDiseaseCoverComponent extends SpousalDisabilityLumpSumComponent {\r\n\r\n @Input() model: CorporateSpousalDreadDiseaseCover;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() packageName: string;\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Input() spousalLifeCover: any;\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super(_modelHelper);\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initSpousalDreadDiseaseCover();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Spousal dread disease cover - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available spousal dread disease cover options

\r\n\r\n
\r\n \r\n Spousal dread disease cover\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Reinstatement option\r\n
\r\n
\r\n Equivalent to spousal life cover\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateSpousalLifeCover } from '../models/spousal-life-cover.interface';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\nimport { LifeCoverComponent } from '../life-cover/life-cover.component';\r\n\r\n@Component({\r\n selector: 'app-spousal-life-cover',\r\n templateUrl: './spousal-life-cover.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './spousal-life-cover.component.scss'\r\n ]\r\n})\r\nexport class SpousalLifeCoverComponent extends LifeCoverComponent {\r\n\r\n @Input() model: CorporateSpousalLifeCover;\r\n @Input() packageName: string;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() benefitOptionsArray: { value: number, label: string }[];\r\n @Input() benefitTypesArray: { value: number, label: string }[];\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super(_modelHelper);\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initSpousalLifeCover();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n

Select available spousal life cover options

\r\n\r\n
\r\n \r\n Spousal life cover\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n \r\n
\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, Input, Output, EventEmitter } from '@angular/core';\r\nimport { RiskModelHelper } from '../helpers/risk-model-helper';\r\nimport { CorporateTemporaryTotalDisability } from '../models/temporary-total-disability.interface';\r\nimport { CustomTrackBy } from '../../../../../../../shared/models/customTrackBy';\r\nimport { DisabilityIncomeProtectionComponent } from '../disability-income-protection/disability-income-protection.component';\r\n\r\n@Component({\r\n selector: 'app-temporary-total-disability',\r\n templateUrl: './temporary-total-disability.component.html',\r\n styleUrls: [\r\n '../life-cover/life-cover.component.scss',\r\n './temporary-total-disability.component.scss'\r\n ]\r\n})\r\nexport class TemporaryTotalDisabilityComponent extends DisabilityIncomeProtectionComponent {\r\n\r\n @Input() model: CorporateTemporaryTotalDisability;\r\n @Input() packageName: string;\r\n @Input() insurerArray: { value: number, label: string }[];\r\n @Input() waitingPeriodOptionsArray: { value: number, label: string }[];\r\n @Input() termToPaymentArray: { value: number, label: string }[];\r\n @Input() disabilityIncomeProtection: any;\r\n @Output() trackChanges = new EventEmitter();\r\n\r\n constructor(protected _modelHelper: RiskModelHelper) {\r\n super(_modelHelper);\r\n }\r\n\r\n switchIsEnabled() {\r\n if (this.model.isEnabled) {\r\n this.model.details = this._modelHelper.initTemporaryTotalDisability();\r\n } else {\r\n this.model.details = null;\r\n }\r\n }\r\n\r\n onChangeToDisabilityIncomeProtection() {\r\n if (this.model.details.equivalentToDisabilityIncomeProtection &&\r\n this.disabilityIncomeProtection.details &&\r\n this.disabilityIncomeProtection.details.shared) {\r\n this.model.details.shared = this.disabilityIncomeProtection.details.shared;\r\n } else {\r\n this.model.details.shared = this._modelHelper.initDisabilityShared();\r\n }\r\n }\r\n\r\n onCheckForUpdate(changes: any) {\r\n this.trackChanges.emit(true);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Temporary total disability - {{ packageName.toLowerCase() }}\r\n
\r\n\r\n
\r\n\r\n

Select available temporary total disability options

\r\n\r\n
\r\n \r\n Temporary total disability\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n

Contribution options

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Continuation option\r\n
\r\n
\r\n \r\n Equivalent to disability income protection\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Employer waiver\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\" class=\"line\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\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 { Injectable } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UsersFormHelper {\r\n\r\n constructor(private fb: FormBuilder) {}\r\n\r\n buildUsersForm(): FormGroup {\r\n return this.fb.group({\r\n name: [null, Validators.required],\r\n surname: [null, Validators.required],\r\n email: [null, [Validators.required, Validators.email]],\r\n cellNumber: [null, Validators.required],\r\n workNo: [null, Validators.required]\r\n });\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, Output, EventEmitter, OnDestroy, Input, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { UsersFormHelper } from './helpers/user-form-helper';\r\nimport { UserService } from '../../../../../../services/user.service';\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CorporateService } from '../../../../../../services/corporate.service';\r\nimport { CorporateMapper } from '../../../../../../services/model-mappers/corporate-mapper.service';\r\nimport { RoutingService } from '../../../../../../services/routing.service';\r\nimport { CorporateUser } from '../../../../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { NotificationService } from '../../../../../../services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-users-tab',\r\n templateUrl: './users-tab.component.html',\r\n styleUrls: [\r\n './users-tab.component.scss',\r\n '../../../all-templates/create-offer-template/deductions-tab/deductions-tab.component.scss',\r\n '../../../all-templates/create-offer-template/earnings-tab/earnings-tab.component.scss',\r\n '../../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class UsersTabComponent implements OnInit, OnDestroy {\r\n\r\n protected _subscriptions = new Array();\r\n @Input() isDraft: boolean;\r\n @Input() mode: string;\r\n @Input() users: Array;\r\n @Output() next = new EventEmitter>();\r\n @Output() saveTemp = new EventEmitter();\r\n usersForm: FormGroup;\r\n hoverIndex = -1;\r\n corporateId: string;\r\n otpChannel: boolean;\r\n flag: any;\r\n contact: any;\r\n billGroupOptions: { value: number; label: string }[];\r\n isSelectedGroupSelected: boolean;\r\n selectedBillGroups = [];\r\n isAddingAdmin = false;\r\n isDisabled: string;\r\n protected _routeParams: any;\r\n\r\n constructor(private _usersFormHelper: UsersFormHelper,\r\n private _corpService: CorporateService,\r\n private _userService: UserService,\r\n protected _loader: LoaderService,\r\n protected _errorService: ErrorService,\r\n protected _routingService: RoutingService,\r\n protected _notificationService: NotificationService,\r\n protected _route: ActivatedRoute) {\r\n this.usersForm = this._usersFormHelper.buildUsersForm();\r\n }\r\n\r\n ngOnInit() {\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n this.corporateId = this._routeParams.params['id'];\r\n this._userService.corporateUser.corporateId = this.corporateId;\r\n // TODO: To be uncommented\r\n // if (this.corporateId && (!this.users || this.users.length < 1)) {\r\n this.getAllUsers(this.corporateId);\r\n // }\r\n this.billGroupOptions = JSON.parse(localStorage.getItem('billGroups'));\r\n }));\r\n\r\n this._subscriptions.push(this._route.params.subscribe(params => {\r\n this.corporateId = params['id'];\r\n if (this.corporateId && (!this.users || this.users.length < 1)) {\r\n this.getAllUsers(this.corporateId);\r\n }\r\n }));\r\n\r\n this.getOTPChannel();\r\n }\r\n\r\n public createCurrentUserModel(): void {\r\n let selectedBillGroupCodes = [];\r\n if (this.selectedBillGroups && this.selectedBillGroups.length !== this.billGroupOptions.length && this.isSelectedGroupSelected) {\r\n this.selectedBillGroups.forEach((val) => selectedBillGroupCodes.push({\"billingGroupCode\": val.billingGroupCode, \"billingGroupDescription\": val.billingGroupDescription}));\r\n }\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n this.corporateId = this._routeParams.params['id'];\r\n this._userService.corporateUser.corporateId = this.corporateId;\r\n }));\r\n this._userService.corporateUser.firstname = this.usersForm.get('name').value;\r\n this._userService.corporateUser.lastName = this.usersForm.get('surname').value;\r\n this._userService.corporateUser.email = this.usersForm.get('email').value;\r\n this._userService.corporateUser.cellPhone = this.usersForm.get('cellNumber').value;\r\n this._userService.corporateUser.workNo = this.usersForm.get('workNo').value;\r\n this._userService.corporateUser.roleId = 4;\r\n this._userService.corporateUser.billGroups = selectedBillGroupCodes;\r\n }\r\n\r\n onHover(i: number) {\r\n this.hoverIndex = i;\r\n }\r\n\r\n billGroupSelectionChange() {\r\n this.isSelectedGroupSelected = !this.isSelectedGroupSelected;\r\n if (!this.isSelectedGroupSelected) {\r\n this.selectedBillGroups = null;\r\n }\r\n }\r\n\r\n getAllUsers(corporateId: string) {\r\n this._subscriptions.push(this._corpService.getGroupDetailsById(corporateId).subscribe((resp) => {\r\n this.users = resp.users;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get group data.');\r\n }));\r\n }\r\n\r\n onChangeBillGroups(evt) {\r\n this.selectedBillGroups = evt.value;\r\n }\r\n\r\n saveAdmin() {\r\n this.createCurrentUserModel();\r\n this._loader.start();\r\n this._subscriptions.push(this._userService.createCorporateUser().subscribe((resp) => {\r\n this._loader.stop();\r\n this.usersForm.reset();\r\n this.selectedBillGroups = null;\r\n this.getAllUsers(this.corporateId);\r\n this._notificationService.openNotification('User successfully created.')\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('This user already has a profile loaded. Duplicate user profiles are not accepted.');\r\n }));\r\n }\r\n\r\n changeOTPChannel() {\r\n let channel = {};\r\n if(this.contact == 'cell') {\r\n channel = { \"sendOtpCell\": true}\r\n } else {\r\n channel = { \"sendOtpEmail\": true}\r\n }\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n this.corporateId = this._routeParams.params['id'];\r\n }))\r\n this._loader.start();\r\n this._subscriptions.push(this._corpService.sendOTP(this.corporateId, channel).subscribe((resp) => {\r\n this._loader.stop();\r\n this._notificationService.openNotification('OTP channel successfully changed.')\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to change OPT channel.');\r\n }));\r\n }\r\n\r\n getOTPChannel() {\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n this.corporateId = this._routeParams.params['id'];\r\n }))\r\n this._loader.start();\r\n this._subscriptions.push(this._corpService.getOTPChannel(this.corporateId).subscribe((resp) => {\r\n //get endpoint object\r\n //get endpoint object parameter name\r\n let keyNames = Object.keys(resp);\r\n //check for email keyword\r\n if(keyNames[0].includes('Email')) {\r\n //get value\r\n if(resp.sendOtpEmail == true) {\r\n this.contact = 'email';\r\n } else {\r\n this.contact = 'cell';\r\n }\r\n } else {\r\n if(keyNames[0].includes('Cell')) {\r\n //get value\r\n if(resp.sendOtpCell == true) {\r\n this.contact = 'cell';\r\n } else {\r\n this.contact = 'email';\r\n }\r\n }\r\n }\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get OPT channel.');\r\n }));\r\n }\r\n \r\n \r\n deleteAdmin() {\r\n this.isAddingAdmin = false;\r\n this.usersForm.reset();\r\n this.selectedBillGroups = null;\r\n this.isSelectedGroupSelected = false;\r\n }\r\n\r\n createCorporate() {\r\n this.next.emit(this.users);\r\n }\r\n\r\n editUser(userId: string) {\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n this.corporateId = this._routeParams.params['id'];\r\n this._routingService.editUser(userId, this.corporateId);\r\n }));\r\n }\r\n\r\n disableUser(user, value) {\r\n this._loader.start();\r\n this._subscriptions.push(this._userService.disableUser(user.userId, value).subscribe((resp) => {\r\n this.getAllUsers(this.corporateId);\r\n if(value == true) {\r\n this.isDisabled = \"enabled\";\r\n } else {\r\n this.isDisabled = \"disabled\";\r\n }\r\n user.isActive = value;\r\n this._loader.stop();\r\n this._notificationService.openNotification('User successfully ' + this.isDisabled + '.')\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to ' + this.isDisabled + ' user.');\r\n }));\r\n }\r\n\r\n\r\n validateModel() {\r\n if (this.users && this.users.length > 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.saveTemp.emit({ tabName: 'users', tabModel: this.users });\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n Security\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n Admin\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
0\" class=\"ui-g-12 ui-md-12 create-offer-template-tab\">\r\n
\r\n

Configure Bill Group access

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

\r\n No users created for this corporate yet.\r\n

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

{{ user.firstname + \" \" + user.lastname }}

\r\n

\r\n {{ user.workNo }}

\r\n

\r\n {{ user.email }}

\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","\r\nexport class ImportedFiles {\r\n CorpName: string;\r\n SchemeName: string;\r\n SchemeNumber:string;\r\n Success: boolean;\r\n Error : string;\r\n \r\n }","import { FileViewModel } from '../../../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { DocumentModel } from '../../../../../shared/models/candidate.model';\r\n\r\nexport class CorporateBasics {\r\n id: string | null;\r\n name: string | null;\r\n payrollDay: number | null;\r\n industryId: number | null;\r\n companyTypeId: number | null;\r\n primaryColour: string | null;\r\n headerLogoId: string | null;\r\n headerLogo: FileViewModel | null;\r\n locations: {\r\n id: number | null;\r\n name: string | null;\r\n }[];\r\n createdDate: Date | null;\r\n statusId: number | null;\r\n headerLogoFileDoc: DocumentModel | null;\r\n}\r\n","export class LocationsModel {\r\n locations: [\r\n {\r\n id: number;\r\n name: string;\r\n }\r\n ];\r\n}\r\n","import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { CorporateService } from '../../../../../services/corporate.service';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport { CreateCorporateComponent } from '../create-corporate/create-corporate.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BasicsFormHelper } from '../create-corporate/basics-tab/helpers/basics-form-helper';\r\nimport { UtilitiesService } from '../../../../../services/utilities.service';\r\nimport { CorporateMapper } from '../../../../../services/model-mappers/corporate-mapper.service';\r\nimport { FileUploadService } from '../../../../../services/fileupload.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { CorporateHelperService } from '../create-corporate/helper.service';\r\nimport { ContentService } from '../../../../../services/content.service';\r\n\r\n@Component({\r\n selector: 'app-view-corporate-group',\r\n templateUrl: '../create-corporate/create-corporate.component.html',\r\n styleUrls: [\r\n './view-corporate-group.component.scss',\r\n '../create-corporate/create-corporate.component.scss',\r\n '../../candidates-and-offers/candidate-profile/candidate-profile.component.scss',\r\n '../../../../../shared/styles/confirmation-dialog.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewCorporateGroupComponent extends CreateCorporateComponent implements OnInit, OnDestroy {\r\n\r\n mode = 'view';\r\n headerText: string;\r\n headerTitle: string;\r\n headerContent = {\r\n title: '',\r\n text: '',\r\n };\r\n headerLogoFile: string = 'Upload logo';\r\n headerLogoId: string;\r\n canCreateSubgroup: boolean = true;\r\n\r\n constructor(protected _routingService: RoutingService,\r\n protected _route: ActivatedRoute,\r\n protected _errorService: ErrorService,\r\n protected _corpService: CorporateService,\r\n protected _confirmationService: ConfirmationService,\r\n protected _notificationService: NotificationService,\r\n protected _http: HttpClient,\r\n protected _basicsFormHelper: BasicsFormHelper,\r\n protected _utilitiesService: UtilitiesService,\r\n protected _mapper: CorporateMapper,\r\n protected _fileUploadService: FileUploadService,\r\n protected _loader: LoaderService,\r\n public helper: CorporateHelperService,\r\n public _contentService: ContentService) {\r\n super(_routingService,\r\n _route, _errorService,\r\n _corpService,\r\n _confirmationService,\r\n _notificationService,\r\n _http,\r\n _basicsFormHelper,\r\n _utilitiesService,\r\n _mapper,\r\n _fileUploadService,\r\n _loader,\r\n helper,\r\n _contentService);\r\n }\r\n\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._route.params.subscribe(params => {\r\n this._routeParams = { ...params['keys'], ...params };\r\n if (this._routeParams.id) {\r\n this.getCorpData(this._routeParams.id);\r\n // debugger;\r\n // this.helper.activeTab = this._routeParams.params.activeTab;\r\n }\r\n }));\r\n this._route.queryParams\r\n .subscribe(parameters => {\r\n const identifier = parameters['id'];\r\n if (identifier) {\r\n this.getCorpData(identifier);\r\n }\r\n });\r\n\r\n if (!this.helper.activeTab) {\r\n this.helper.activeTab = 'basics';\r\n }\r\n }\r\n\r\n private getCorpData(corpId: string) {\r\n this._subscriptions.push(this._corpService.getGroupDetailsById(corpId).subscribe((resp) => {\r\n\r\n this.model = this._mapper.mapFromGetByIdModel(resp);\r\n\r\n if (this.model.basics.headerLogo) {\r\n this.headerLogoId = this.model.basics.headerLogo.id;\r\n this.headerLogoFileName = this.model.basics.headerLogo.filename;\r\n }\r\n\r\n this.corporateStatus = this.model.basics.statusId;\r\n this.headerContent.title = `${this.model.basics.name} group`;\r\n localStorage.setItem('corporateId', this.model.basics.id);\r\n\r\n if (this.model.subGroups) {\r\n this.headerContent.text = `${this.model.basics.name} Group profile created on ${this._utilitiesService.convertShortDate(this.model.basics.createdDate)}. ${this.model.basics.name} Group has ${this.model.subGroups.length} Subgroup(s).`;\r\n } else {\r\n this.headerContent.text = `${this.model.basics.name} Group profile created on ${this._utilitiesService.convertShortDate(this.model.basics.createdDate)}. ${this.model.basics.name} Group has 0 Subgroup(s).`;\r\n }\r\n if (this.model.parentId) {\r\n this.canCreateSubgroup = false;\r\n this.helper.activeTab = 'basics';\r\n }\r\n if(resp.retirementData) {\r\n var retirementDataObj = JSON.parse(resp.retirementData);\r\n var schemNoParam = '';\r\n if ( retirementDataObj &&\r\n retirementDataObj.benefits &&\r\n retirementDataObj.benefits.length > 0) {\r\n retirementDataObj.benefits.forEach(benefit => {\r\n benefit.availableBenefitOptions ? schemNoParam = schemNoParam + benefit.availableBenefitOptions.schemeNo + ',' : ''\r\n });\r\n schemNoParam.charAt(schemNoParam.length - 1) === \",\"\r\n ? (schemNoParam = schemNoParam.slice(0, schemNoParam.length - 1))\r\n : \"\";\r\n }\r\n\r\n if (schemNoParam && schemNoParam !== '') {\r\n this._loader.start();\r\n this._contentService.getBillGroups(schemNoParam).subscribe(resp => {\r\n if (resp && resp['result'] && resp['result'].length >= 0) {\r\n var filteredBillGroups = resp['result'].map(({ productType, schemeNumber, internalTestData, policy, planType, ...item }) => ({\r\n ...item\r\n }));\r\n localStorage.setItem('billGroups', JSON.stringify(filteredBillGroups));\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n }\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured while extracting the Bill Groups.');\r\n });\r\n }\r\n }\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get group data.');\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","import { Component, ViewEncapsulation, Input, OnInit, OnDestroy } from '@angular/core';\r\nimport { RoutingService } from '../../../../../../services/routing.service';\r\nimport { CorporateService } from '../../../../../../services/corporate.service';\r\nimport { CorporateModel } from '../../../../../../shared/models/corporates.model';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-subgroups-tab',\r\n templateUrl: './view-subgroups-tab.component.html',\r\n styleUrls: [\r\n '../../create-corporate/basics-tab/basics-tab.component.scss',\r\n '../../../all-templates/create-offer-template/deductions-tab/deductions-tab.component.scss',\r\n '../../../all-templates/create-offer-template/earnings-tab/earnings-tab.component.scss',\r\n '../../../all-templates/view-templates/view-templates.component.scss',\r\n '../../corporate-dashboard/corporate-dashboard.component.scss',\r\n './view-subgroups-tab.component.scss',\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ViewSubgroupsTabComponent implements OnInit, OnDestroy {\r\n\r\n protected _routeParams: any;\r\n protected _subscriptions = new Array();\r\n @Input() mode: string;\r\n @Input() corporateId: string;\r\n @Input() subgroups: any;\r\n @Input() canCreateSubgroup: boolean;\r\n hoverIndex = -1;\r\n headerContent = {\r\n title: 'Create offer template',\r\n text: '',\r\n };\r\n\r\n constructor(private _routingService: RoutingService,\r\n private _loader: LoaderService,\r\n private _corpService: CorporateService,\r\n private _errorService: ErrorService,\r\n protected _route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n this._routeParams = { ...params.keys, ...params };\r\n if (this._routeParams.params.parentId) {\r\n this._getCorporateDetails(this._routeParams.params.parentId);\r\n }\r\n }));\r\n this._route.queryParams.subscribe(parameters => {\r\n const identifier = parameters['id'];\r\n if (identifier) {\r\n this._getCorporateDetails(identifier);\r\n }\r\n });\r\n }\r\n\r\n private _getCorporateDetails(corporateId: string) {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._corpService.getSubGroupDetailsById(corporateId).subscribe((resp) => {\r\n this.subgroups = resp;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get group data.');\r\n }));\r\n }\r\n\r\n onHover(i: number) {\r\n this.hoverIndex = i;\r\n }\r\n\r\n onViewSubgroup(subgroupId: any) {\r\n this._routingService.corporateViewGroup(subgroupId);\r\n }\r\n\r\n createSubgroup() {\r\n this._routingService.createCorporate(this.corporateId);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

Available actions

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

No available actions.

\r\n
\r\n
\r\n \r\n CREATE SUBGROUP\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

Subgroups

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

\r\n Nothing here yet.
\r\n Create a new subgroup.\r\n

\r\n
\r\n\r\n
0\">\r\n \r\n
\r\n \r\n
\r\n
\r\n

{{ subgroup.name }}

\r\n

Created on

\r\n

\r\n {{ subgroup.createdDate | date: \"d MMMM yyyy\" }}\r\n

\r\n
\r\n
\r\n \r\n VIEW\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n","import { Component, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { SelectItem, ConfirmationService } from 'primeng/api';\r\nimport { NotificationService } from '../../../../services/notification.service';\r\nimport { LoaderService } from '../../../../services/loader.service';\r\nimport { ErrorService } from '../../../../services/error.service';\r\nimport { UserService } from '../../../../services/user.service';\r\nimport { ContentService } from '../../../../services/content.service';\r\nimport { StoreService } from '../../../../services/storeService';\r\nimport { Subscription } from 'rxjs';\r\nimport { RoutingService } from '../../../../services/routing.service';\r\n\r\n@Component({\r\n selector: 'app-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: [\r\n '../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n '../../candidate/details-and-accept/step-two/step-two.component.scss',\r\n '../../candidate/details-and-accept/step-three/step-three.component.scss',\r\n '../candidates-and-offers/create-offer/offer-details-tab/offer-details-tab.component.scss',\r\n '../candidates-and-offers/candidate-profile/details-tab/details-tab.component.scss',\r\n '../../../../shared/styles/confirmation-dialog.scss',\r\n './profile.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ProfileComponent implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n rolesArr: SelectItem[] = [];\r\n userFormGroup: FormGroup;\r\n userReady;\r\n roleID;\r\n\r\n constructor(public notificationService: NotificationService,\r\n private _userService: UserService,\r\n private _loader: LoaderService,\r\n private _confirmationService: ConfirmationService,\r\n private _errorService: ErrorService,\r\n private _storeService: StoreService,\r\n private _routingService: RoutingService) {\r\n this.initForm();\r\n }\r\n\r\n\r\n\r\n\r\n private initForm() {\r\n this._loader.start();\r\n this._subscriptions.push(this._userService.getCurrentUserProfileData().subscribe((user) => {\r\n this.userReady = user;\r\n this.userFormGroup = new FormGroup({\r\n firstName: new FormControl(this.userReady.firstname, [Validators.required, Validators.pattern('^[a-zA-Z\\- ]*$')]),\r\n lastName: new FormControl(this.userReady.lastname, [Validators.required, Validators.pattern('^[a-zA-Z\\- ]*$')]),\r\n email: new FormControl(this.userReady.corporateContactChannels[0] ? this.userReady.corporateContactChannels[0].value : '', [Validators.required, Validators.email]),\r\n mobile: new FormControl(this.userReady.corporateContactChannels[1] ? this.userReady.corporateContactChannels[1].value : '', [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n workNumber: new FormControl(this.userReady.corporateContactChannels[2] ? this.userReady.corporateContactChannels[2].value : '', [Validators.required, Validators.pattern('^[0-9]*$')]),\r\n role: new FormControl({ value: this._storeService.getStoredData().profile['role'], disabled: true }, Validators.required)\r\n });\r\n this._loader.stop();\r\n }, (error) => {\r\n this._errorService.openErrorPopup('Failed to get profile data.');\r\n this._loader.stop();\r\n }));\r\n }\r\n\r\n\r\n confirm() {\r\n if (this.userFormGroup.valid) {\r\n this._confirmationService.confirm({\r\n header: 'Save changes',\r\n message: 'Are you sure you want update your details?',\r\n acceptLabel: 'YES, UPDATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n if (this.userReady.roleId > 3) {\r\n this._subscriptions.push(this._userService.updateProfile(this._getProfileToUpdate()).subscribe((resp) => {\r\n this.notificationService.openNotification('Your details have been updated successfully.');\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update your details.');\r\n }));\r\n } else {\r\n this._subscriptions.push(this._userService.updateAdminProfile(this._getAdminProfileToUpdate()).subscribe((resp) => {\r\n this.notificationService\r\n .openNotification('Your details have been updated successfully.');\r\n this._loader.stop();\r\n this._routingService.goBack();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update your details.');\r\n }));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n public _getProfileToUpdate() {\r\n return {\r\n corporateId: this._storeService.getStoredData().profile['CorporateId'],\r\n id: this._storeService.getStoredData().profile.sub,\r\n firstname: this.userFormGroup.controls['firstName'].value,\r\n lastname: this.userFormGroup.controls['lastName'].value,\r\n email: this.userFormGroup.controls['email'].value,\r\n cellPhone: this.userFormGroup.controls['mobile'].value,\r\n workNo: this.userFormGroup.controls['workNumber'].value,\r\n roleId: this.userReady.roleId,\r\n isSwitchingUser: false,\r\n userCorporateId: this._storeService.getStoredData().profile['CorporateId'],\r\n };\r\n }\r\n\r\n public _getAdminProfileToUpdate() {\r\n return {\r\n id: this._storeService.getStoredData().profile.sub,\r\n firstname: this.userFormGroup.controls['firstName'].value,\r\n lastname: this.userFormGroup.controls['lastName'].value,\r\n email: this.userFormGroup.controls['email'].value,\r\n cellPhone: this.userFormGroup.controls['mobile'].value,\r\n workNo: this.userFormGroup.controls['workNumber'].value,\r\n roleId: this.userReady.roleId,\r\n };\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n\r\n \r\n \r\n\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n My details\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\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, OnDestroy } from '@angular/core';\r\nimport { ContentService } from '../../../../../services/content.service';\r\nimport { RoutingService } from '../../../../../services/routing.service';\r\nimport { StoreService } from '../../../../../services/storeService';\r\nimport { UserService } from '../../../../../services/user.service';\r\nimport { NotificationService } from '../../../../../services/notification.service';\r\nimport appsettings from \"src/assets/appsettings.json\"\r\nimport { AuthService } from \"../../../../../services/auth.service\";\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-admin-header',\r\n templateUrl: './admin-header.component.html',\r\n styleUrls: ['./admin-header.component.scss']\r\n})\r\nexport class AdminHeaderComponent implements OnInit, OnDestroy {\r\n\r\n protected _subscriptions = new Array();\r\n @Input() disabled: boolean;\r\n @Input() active: string;\r\n userFullName: string;\r\n userRole: string;\r\n isDialogOpen: boolean;\r\n\r\n appVersion: string = appsettings.appVersion;\r\n dataReady = false;\r\n\r\n constructor(public authService: AuthService,\r\n protected _routingService: RoutingService,\r\n public contentService: ContentService,\r\n protected _storeService: StoreService,\r\n protected _userService: UserService,\r\n public notificationService: NotificationService,\r\n protected _loader: LoaderService,\r\n public sanitizer: DomSanitizer) {\r\n\r\n const storage = this._storeService.getStoredData();\r\n\r\n if (storage && storage.profile) {\r\n this.contentService.cacheDropdownOptions();\r\n } else {\r\n this._subscriptions.push(this.authService.isLoggedIn.subscribe((isLoggedIn) => {\r\n if (isLoggedIn) {\r\n this.contentService.cacheDropdownOptions();\r\n }\r\n }));\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.setUserDetails();\r\n }\r\n\r\n protected setUserDetails() {\r\n const user = this._storeService.getStoredData().profile;\r\n this.userRole = user[\"role\"];\r\n\r\n if (user[\"role\"].toLowerCase() === 'user') {\r\n this.userFullName = user.name;\r\n }\r\n\r\n if (!this.contentService.currentUser) {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._userService.getCurrentUserProfileData().subscribe((currentUser) => {\r\n this.contentService.currentUser = currentUser;\r\n this.userFullName = currentUser.firstname + ' ' + currentUser.lastname;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n }));\r\n } else {\r\n this.userFullName = this.contentService.currentUser.firstname + ' ' + this.contentService.currentUser.lastname;\r\n }\r\n\r\n }\r\n\r\n resetToDefaultLogo() {\r\n this.contentService.resetLogo();\r\n }\r\n\r\n\r\n isDisabledDashboard(): boolean {\r\n if (\r\n this.userRole === 'Candidate' ||\r\n this.userRole === 'Operations administrator' ||\r\n this.userRole === 'Internal Account Manager' ||\r\n this.userRole === 'CAT Manager' ||\r\n this.userRole === 'System Admin') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledTemplates(): boolean {\r\n if (\r\n this.userRole === 'HR Recruiter' ||\r\n this.userRole === 'Candidate' ||\r\n this.userRole === 'Operations administrator' ||\r\n this.userRole === 'Internal Account Manager' ||\r\n this.userRole === 'CAT Manager' ||\r\n this.userRole === 'System Admin') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledUsers(): boolean {\r\n if (\r\n this.userRole === 'HR Recruiter' ||\r\n this.userRole === 'HR Manager' ||\r\n this.userRole === 'Candidate' ||\r\n this.userRole === 'Operations administrator' ||\r\n this.userRole === 'Internal Account Manager' ||\r\n this.userRole === 'CAT Manager') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledCorporates(): boolean {\r\n if (\r\n this.userRole === 'HR Admin' ||\r\n this.userRole === 'HR Recruiter' ||\r\n this.userRole === 'HR Manager' ||\r\n this.userRole === 'Candidate' ||\r\n this.userRole === 'Operations administrator' ||\r\n this.userRole === 'Internal Account Manager' ||\r\n this.userRole === 'System Admin') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledArchive(): boolean {\r\n if (\r\n this.userRole === 'Candidate' ||\r\n this.userRole === 'Operations administrator' ||\r\n this.userRole === 'Internal Account Manager' ||\r\n this.userRole === 'CAT Manager') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onSignOut() {\r\n this.isDialogOpen = false;\r\n this.authService.logout(false);\r\n }\r\n\r\n goToDashboard() {\r\n this._routingService.corporateDashboard();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-admin-subheader',\r\n templateUrl: './admin-subheader.component.html',\r\n styleUrls: ['./admin-subheader.component.scss']\r\n})\r\nexport class AdminSubheaderComponent {\r\n\r\n @Input() path: string[];\r\n @Input() title: string;\r\n @Input() text: string;\r\n @Input() text2: string;\r\n @Input() firstBtnLabel: string;\r\n @Input() secondBtnLabel: string;\r\n\r\n @Output() firstBtnClicked = new EventEmitter();\r\n @Output() secondBtnClicked = new EventEmitter();\r\n @Output() back = new EventEmitter();\r\n\r\n\r\n onFirstBtnClick() {\r\n this.firstBtnClicked.emit();\r\n }\r\n\r\n onSecondBtnClick() {\r\n this.secondBtnClicked.emit();\r\n }\r\n\r\n onBack() {\r\n this.back.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

{{ title }}

\r\n

{{ text }}

\r\n

{{ text2 }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
","import { Component, Input, Output, OnInit, ViewEncapsulation, EventEmitter, OnDestroy } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { OfferService } from '../../../../../services/offer.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { CandidateService } from '../../../../../services/candidate.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-extend-offer-window',\r\n templateUrl: './extend-offer-window.component.html',\r\n styleUrls: [\r\n '../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n '../../../candidate/details-and-accept/step-two/step-two.component.scss',\r\n '../../../candidate/details-and-accept/step-three/step-three.component.scss',\r\n '../../../users/candidates-and-offers/create-offer/create-offer.component.scss',\r\n '../rescind-offer-window/rescind-offer-window.component.scss',\r\n './extend-offer-window.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ExtendOfferWindowComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n\r\n @Input() offerId: string;\r\n @Input() isVisible: boolean;\r\n @Output() close = new EventEmitter();\r\n @Output() proceed = new EventEmitter();\r\n\r\n extendReasonId: string;\r\n newExpDate: Date;\r\n oldExpDate: Date;\r\n today = new Date();\r\n title: string;\r\n content: string;\r\n candidateName: string;\r\n mobile: string;\r\n email: string;\r\n extendReasonsArr: SelectItem[];\r\n\r\n emailSubject: string;\r\n emailBody: string;\r\n\r\n constructor(private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _offerService: OfferService,\r\n private _candidateService: CandidateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._offerService.getById(this.offerId).subscribe((offer) => {\r\n\r\n this._subscriptions.push(this._candidateService.getById(offer.candidateId)\r\n .subscribe((candidate) => {\r\n this.oldExpDate = new Date(offer.expiryDate);\r\n this.candidateName = candidate.firstname + ' ' + candidate.lastname;\r\n this.content = `Please make sure to contact ${this.candidateName} before extending their offer and provide a reason below.`;\r\n this.mobile = candidate.candidateContactChannels.filter(x => x.type === 'Cellphone')[0].value;\r\n this.email = candidate.candidateContactChannels.filter(x => x.type === 'Email')[0].value;\r\n this.emailSubject = 'Your offer has been extended';\r\n this.emailBody = `Dear ${this.candidateName},\\n I would like to notify you that your offer has been extended.`;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while getting candidate data.');\r\n }\r\n ));\r\n\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while getting offer data.');\r\n }));\r\n\r\n this.title = 'Extend offer';\r\n\r\n this.extendReasonsArr = JSON.parse(localStorage.getItem('extendReasons'));\r\n }\r\n\r\n cancel() {\r\n this.close.emit();\r\n }\r\n\r\n continue() {\r\n const eventData = {\r\n offerId: this.offerId,\r\n statusId: 10,\r\n newExpDate: this.newExpDate,\r\n reason: this.extendReasonId\r\n };\r\n\r\n this.proceed.emit(eventData);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

{{ title }}

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

{{ content }}

\r\n\r\n
\r\n \r\n {{ mobile }}\r\n
\r\n \r\n {{ email }} \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\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, OnDestroy } from \"@angular/core\";\r\nimport { ContentService } from \"../../../../../services/content.service\";\r\nimport { RoutingService } from \"../../../../../services/routing.service\";\r\nimport { StoreService } from \"../../../../../services/storeService\";\r\nimport { UserService } from \"../../../../../services/user.service\";\r\nimport { AuthService } from \"../../../../../services/auth.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { Constants } from \"../../../../../constants/constants\";\r\n\r\n@Component({\r\n selector: \"app-hr-header\",\r\n templateUrl: \"./hr-header.component.html\",\r\n styleUrls: [\"./hr-header.component.scss\"],\r\n})\r\nexport class HrHeaderComponent implements OnInit, OnDestroy {\r\n private _subscriptions = new Array();\r\n @Input() active: string;\r\n name: string;\r\n isDialogOpen: boolean;\r\n userRole: string;\r\n popIaDisclosurePath: string = \"\";\r\n infoIconDamPath: string = \"\";\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private _routingService: RoutingService,\r\n public contentService: ContentService,\r\n private _storeService: StoreService,\r\n private _userService: UserService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this._subscriptions.push(\r\n this._userService.getCurrentUserProfileData().subscribe((user) => {\r\n this.name = user.firstname + \" \" + user.lastname;\r\n this.userRole = this._storeService.getStoredData().profile[\"role\"];\r\n })\r\n );\r\n }\r\n\r\n isLoggedIn() {\r\n const storage = this._storeService.getStoredData();\r\n if (storage && storage.profile[\"role\"] === \"HR Admin\" && storage.id_token) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onSignOut() {\r\n this.isDialogOpen = false;\r\n this.authService.logout(false);\r\n this._routingService.hrLogin();\r\n }\r\n\r\n goToDashboard() {\r\n this._routingService.dashboard();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hr-subheader',\r\n templateUrl: './hr-subheader.component.html',\r\n styleUrls: ['./hr-subheader.component.scss']\r\n})\r\nexport class HrSubheaderComponent {\r\n\r\n @Input() heading: string;\r\n @Input() subheading1: string;\r\n @Input() subheading2: string;\r\n @Input() proceedBtnLabel: string;\r\n @Input() closeBtnLabel: string;\r\n @Input() proceedBtnDisabled: boolean;\r\n @Input() closeBtnDisabled: boolean;\r\n @Output() proceed = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n\r\n\r\n\r\n onProceed() {\r\n this.proceed.emit();\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{ heading }}

\r\n

\r\n {{ subheading1 }}\r\n
\r\n {{ subheading2 }}\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { InfoPopupService } from 'src/app/services/info-popup-service.service';\r\n\r\n@Component({\r\n selector: 'app-info-popup',\r\n templateUrl: './info-popup.component.html',\r\n styleUrls: ['./info-popup.component.scss']\r\n})\r\nexport class InfoPopupComponent {\r\n\r\n get showInfoPopup() {\r\n return this.infoPopupService.isInfoPopupVisible;\r\n }\r\n\r\n get infoPopupMessage() {\r\n return this.infoPopupService.infoPopupMessage;\r\n }\r\n\r\n constructor(public infoPopupService: InfoPopupService) { }\r\n}\r\n","
\r\n
\r\n

\r\n {{ infoPopupService.infoPopupMessage }}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, Output, OnInit, OnDestroy, ViewEncapsulation, EventEmitter } from '@angular/core';\r\nimport { SelectItem } from 'primeng/api';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { OfferService } from '../../../../../services/offer.service';\r\nimport { LoaderService } from '../../../../../services/loader.service';\r\nimport { CandidateService } from '../../../../../services/candidate.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-rescind-offer-window',\r\n templateUrl: './rescind-offer-window.component.html',\r\n styleUrls: [\r\n '../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n '../../../candidate/details-and-accept/step-two/step-two.component.scss',\r\n '../../../candidate/details-and-accept/step-three/step-three.component.scss',\r\n './rescind-offer-window.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RescindOfferWindowComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n @Input() offerId: string;\r\n @Input() isVisible: boolean;\r\n @Output() close = new EventEmitter();\r\n @Output() proceed = new EventEmitter();\r\n\r\n rescindReasonId: string;\r\n\r\n title: string;\r\n content: string;\r\n candidateName: string;\r\n mobile: string;\r\n email: string;\r\n rescindReasonsArr: SelectItem[];\r\n oldExpDate: Date;\r\n\r\n emailSubject: string;\r\n emailBody: string;\r\n\r\n constructor(private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _offerService: OfferService,\r\n private _candidateService: CandidateService) {\r\n }\r\n\r\n ngOnInit() {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._offerService.getById(this.offerId).subscribe((offer) => {\r\n\r\n this._subscriptions.push(this._candidateService.getById(offer.candidateId).subscribe((candidate) => {\r\n this.oldExpDate = new Date(offer.expiryDate);\r\n this.candidateName = candidate.firstname + ' ' + candidate.lastname;\r\n this.content = `Please make sure to contact ${this.candidateName} before rescinding their offer and provide a reason below.`;\r\n this.mobile = candidate.candidateContactChannels.filter(x => x.type === 'Cellphone')[0].value;\r\n this.email = candidate.candidateContactChannels.filter(x => x.type === 'Email')[0].value;\r\n this.emailSubject = 'Your offer has been rescinded';\r\n this.emailBody = `Dear ${this.candidateName},\\n I am sorry to notify you that your offer has been rescinded.`;\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while getting candidate data.');\r\n }));\r\n\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('An error occurred while getting offer data.');\r\n }));\r\n\r\n this.title = 'Rescind offer';\r\n\r\n this.rescindReasonsArr = JSON.parse(localStorage.getItem('rescindReasons'));\r\n }\r\n\r\n cancel() {\r\n this.close.emit();\r\n }\r\n\r\n continue() {\r\n const eventData = {\r\n offerId: this.offerId,\r\n statusId: 9,\r\n newExpDate: this.oldExpDate,\r\n reasonId: this.rescindReasonId\r\n };\r\n\r\n this.proceed.emit(eventData);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

{{ title }}

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

{{ content }}

\r\n\r\n
\r\n \r\n {{ mobile }}\r\n
\r\n \r\n {{ email }} \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n","// External\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n// Internal\r\nimport { CustomSharedModule } from '../../../../shared/custom-shared.module';\r\nimport { AdminHeaderComponent } from './admin-header/admin-header.component';\r\nimport { AdminSubheaderComponent } from './admin-subheader/admin-subheader.component';\r\nimport { HrHeaderComponent } from './hr-header/hr-header.component';\r\nimport { HrSubheaderComponent } from './hr-subheader/hr-subheader.component';\r\n//import { DashboardOfferComponent } from '../candidates-and-offers/dashboard/dashboard-offer/dashboard-offer.component';\r\nimport { RescindOfferWindowComponent } from './rescind-offer-window/rescind-offer-window.component';\r\nimport { ExtendOfferWindowComponent } from './extend-offer-window/extend-offer-window.component';\r\n//import { DashboardCandidateComponent } from '../candidates-and-offers/dashboard/dashboard-candidate/dashboard-candidate.component';\r\n\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n InputSwitchModule,\r\n CardModule,\r\n DropdownModule,\r\n CalendarModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n InputTextModule,\r\n FileUploadModule,\r\n ConfirmDialogModule,\r\n CustomSharedModule\r\n ],\r\n declarations: [\r\n HrHeaderComponent,\r\n HrSubheaderComponent,\r\n AdminHeaderComponent,\r\n AdminSubheaderComponent,\r\n RescindOfferWindowComponent,\r\n ExtendOfferWindowComponent,\r\n //DashboardOfferComponent,\r\n //DashboardCandidateComponent\r\n ],\r\n exports: [\r\n HrHeaderComponent,\r\n HrSubheaderComponent,\r\n AdminHeaderComponent,\r\n AdminSubheaderComponent,\r\n RescindOfferWindowComponent,\r\n ExtendOfferWindowComponent,\r\n //DashboardOfferComponent,\r\n //DashboardCandidateComponent\r\n ]\r\n})\r\nexport class UsersSharedModule { }\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { SelectItem, ConfirmationService } from 'primeng/api';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { AdminService } from '../../../../../../services/admin.service';\r\nimport { RoutingService } from '../../../../../../services/routing.service';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\nimport { NotificationService } from '../../../../../../services/notification.service';\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\nimport { UserService } from '../../../../../../services/user.service';\r\nimport { StoreService } from '../../../../../../services/storeService';\r\nimport { Subscription } from 'rxjs';\r\nimport { UsersCacheService } from '../../../users-cache.service';\r\nimport { GetCorporateById } from '../../../../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { CorporateService } from '../../../../../../services/corporate.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-create-user',\r\n templateUrl: './create-user.component.html',\r\n styleUrls: [\r\n '../../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n '../../../../candidate/details-and-accept/step-two/step-two.component.scss',\r\n '../../../../candidate/details-and-accept/step-three/step-three.component.scss',\r\n '../../../candidates-and-offers/create-offer/offer-details-tab/offer-details-tab.component.scss',\r\n '../../../candidates-and-offers/candidate-profile/details-tab/details-tab.component.scss',\r\n '../../../../../../shared/styles/confirmation-dialog.scss',\r\n './create-user.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class CreateUserComponent implements OnInit, OnDestroy {\r\n\r\n protected _subscriptions = new Array();\r\n mode = 'create';\r\n pathHistory = ['Roles', 'Create role'];\r\n subheaderTitle = 'Create user';\r\n subheaderText = 'Enter the details of person to be assigned this role';\r\n confirmButtonLabel = 'CREATE USER';\r\n rolesArr: SelectItem[];\r\n userFormGroup: FormGroup;\r\n isSelectedGroupSelected: boolean = false;\r\n billGroupOptions: { value: number; label: string }[];\r\n selectedBillGroups = [];\r\n\r\n currentGroup: GetCorporateById;\r\n parentGroup: GetCorporateById;\r\n subgroups: any[];\r\n isSwitchingUser: boolean = false;\r\n\r\n constructor(public notificationService: NotificationService,\r\n protected _usersCache: UsersCacheService,\r\n protected loader: LoaderService,\r\n protected confirmationService: ConfirmationService,\r\n protected adminService: AdminService,\r\n protected routingService: RoutingService,\r\n protected errorService: ErrorService,\r\n protected userService: UserService,\r\n protected _storeService: StoreService,\r\n protected corporateService: CorporateService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n //user creation\r\n this.initForm();\r\n this.rolesArr = JSON.parse(localStorage.getItem('roles'));\r\n this.getSubgroups();\r\n this.userFormGroup.get('isSelectedGroupSelected').setValue(true);\r\n }\r\n\r\n\r\n protected getSubgroups() {\r\n\r\n this._subscriptions.push(this._usersCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this.currentGroup = this._usersCache.currentCorporate;\r\n if (this.currentGroup.parentCorporate && this.currentGroup.parentCorporate.id) {\r\n this.loader.start();\r\n this._subscriptions.push(this.corporateService.getGroupDetailsById(this.currentGroup.parentCorporate.id)\r\n .subscribe((parent) => {\r\n this.parentGroup = parent;\r\n const isAssignedToParentGroup = this.parentGroup.id === this.currentGroup.id;\r\n this.userFormGroup.get('isAssignedToParentGroup').setValue(isAssignedToParentGroup);\r\n this.userFormGroup.get('groupId').setValue(this.currentGroup.id);\r\n\r\n if (this.parentGroup.subGroups) {\r\n this.subgroups = this.parentGroup.subGroups;\r\n const currentSubgroupIndex = this.subgroups.findIndex(x => x.corporateId == this.currentGroup.id);\r\n if (currentSubgroupIndex >= 0) {\r\n this.assignToSubgroup(currentSubgroupIndex);\r\n }\r\n }\r\n this.loader.stop();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to get parent corporate data.');\r\n })\r\n );\r\n } else {\r\n this.parentGroup = this._usersCache.currentCorporate;\r\n if (this.parentGroup.subGroups) {\r\n this.subgroups = this.parentGroup.subGroups;\r\n }\r\n this.userFormGroup.get('groupId').setValue(this.currentGroup.id);\r\n this.userFormGroup.get('isAssignedToParentGroup').setValue(false);\r\n }\r\n }\r\n }));\r\n }\r\n\r\n protected initForm() {\r\n this.userFormGroup = new FormGroup({\r\n firstName: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\\- ]*$')]),\r\n lastName: new FormControl(null, [Validators.required, Validators.pattern('^[a-zA-Z\\- ]*$')]),\r\n email: new FormControl(null, [Validators.required, Validators.email]),\r\n mobile: new FormControl(null, [Validators.required, Validators.pattern('^([0|\\+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$')]),\r\n workNo: new FormControl(null, [Validators.required, Validators.pattern('^([0|\\+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$')]),\r\n role: new FormControl(null, Validators.required),\r\n groupId: new FormControl(null, Validators.required),\r\n selectedBillGroups: new FormControl(null),\r\n isSelectedGroupSelected: new FormControl(),\r\n isAssignedToParentGroup: new FormControl({value: false, disabled: this.isAssignedToParentGroupDisabled()}, Validators.required),\r\n subgroups: new FormControl(null)\r\n });\r\n }\r\n\r\n onChangeBillGroups(evt) {\r\n this.selectedBillGroups = evt.value;\r\n }\r\n\r\n billGroupSelectionChange() {\r\n this.isSelectedGroupSelected = !this.isSelectedGroupSelected;\r\n if (!this.isSelectedGroupSelected) {\r\n this.selectedBillGroups = null;\r\n }\r\n }\r\n\r\n public createCurrentUserModel(): void {\r\n this.userService.currentUser.firstname = this.userFormGroup.get('firstName').value;\r\n this.userService.currentUser.lastName = this.userFormGroup.get('lastName').value;\r\n this.userService.currentUser.email = this.userFormGroup.get('email').value;\r\n this.userService.currentUser.cellPhone = this.userFormGroup.get('mobile').value;\r\n this.userService.currentUser.workNo = this.userFormGroup.get('workNo').value;\r\n this.userService.currentUser.roleId = this.userFormGroup.get('role').value;\r\n this.userService.currentUser.corporateId = this.userFormGroup.get('groupId').value;\r\n }\r\n\r\n public createCorporateUserModel(): void {\r\n this.userService.corporateUser.firstname = this.userFormGroup.get('firstName').value;\r\n this.userService.corporateUser.lastName = this.userFormGroup.get('lastName').value;\r\n this.userService.corporateUser.email = this.userFormGroup.get('email').value;\r\n this.userService.corporateUser.cellPhone = this.userFormGroup.get('mobile').value;\r\n this.userService.corporateUser.workNo = this.userFormGroup.get('workNo').value;\r\n this.userService.corporateUser.roleId = this.userFormGroup.get('role').value;\r\n this.userService.corporateUser.corporateId = this.userFormGroup.get('groupId').value;\r\n }\r\n\r\n confirm() {\r\n\r\n if (this.userFormGroup.valid) {\r\n const roleId = this.userFormGroup.get('role').value;\r\n if (roleId == 1 || roleId == 3) {\r\n this.createCurrentUserModel();\r\n } else {\r\n this.createCorporateUserModel();\r\n }\r\n\r\n this.confirmationService.confirm({\r\n header: 'Create user',\r\n message: 'Are you sure you want to create this user and send login details?',\r\n acceptLabel: 'YES, CREATE',\r\n rejectLabel: 'NO, GO BACK',\r\n icon: null,\r\n accept: () => {\r\n this.loader.start();\r\n if (roleId == 1 || roleId == 3) {\r\n this.createAdmin();\r\n } else {\r\n this.createCorporateUser();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n switchAssignedToSubgroup() {\r\n // if (this.currentGroup.id != this.parentGroup.id) {\r\n if (this.subgroups && this.subgroups.length > 0) {\r\n const currentValue = this.userFormGroup.get('isAssignedToParentGroup').value;\r\n if (!currentValue) {\r\n this.userFormGroup.get('groupId').setValue(this.parentGroup.id);\r\n this.userFormGroup.get('subgroups').setValue(null);\r\n } else {\r\n this.userFormGroup.get('groupId').setValue(null);\r\n this.userFormGroup.get('subgroups').setValue(null);\r\n }\r\n this.userFormGroup.get('isAssignedToParentGroup').setValue(!currentValue);\r\n this.userFormGroup.markAsDirty();\r\n this.isSwitchingUser = true;\r\n }\r\n }\r\n\r\n assignToSubgroup(index: number) {\r\n if (this.userFormGroup && this.subgroups) {\r\n const subgroupId = this.subgroups[index].corporateId;\r\n this.userFormGroup.get('groupId').setValue(subgroupId);\r\n this.userFormGroup.get('subgroups').setValue([this.subgroups[index]]);\r\n this.isSwitchingUser = true;\r\n }\r\n }\r\n\r\n createAdmin() {\r\n this._subscriptions.push(this.userService.createAdmin().subscribe((resp) => {\r\n this.notificationService\r\n .openNotification('User successfully created. An email has been sent to the new user');\r\n\r\n this.loader.stop();\r\n this.routingService.rolesDashboard();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to create admin user.');\r\n }));\r\n }\r\n\r\n createCorporateUser() {\r\n this._subscriptions.push(this.userService.createCorporateUser().subscribe((resp) => {\r\n this.notificationService\r\n .openNotification('User successfully created. An email has been sent to the new user');\r\n\r\n this.loader.stop();\r\n this.routingService.rolesDashboard();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to create a corporate user.');\r\n }));\r\n }\r\n\r\n private isAssignedToParentGroupDisabled(): boolean {\r\n return !this.subgroups || this.subgroups.length < 1;\r\n }\r\n\r\n validateConfirm(): boolean {\r\n if (this.userFormGroup.invalid || this.userFormGroup.pristine) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n goBack() {\r\n this.routingService.goBack();\r\n }\r\n\r\n resendMagicLink() {\r\n //entire method was found missing during prod compile error list\r\n //added a dummy method just to build application \"11/09/2020\"\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n\r\n","
\r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Details\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n

\r\n * Invalid value.\r\n

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

\r\n * Invalid value.\r\n

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

\r\n * Invalid mobile number.\r\n

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

\r\n * Invalid work number.\r\n

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

0\">Assign the user to group/subgroup

\r\n

No subgroups created for this corporate

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

Please assign the user to the relevent subgroup

\r\n
\r\n
\r\n \r\n \r\n {{ subgroup.name }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n

The user is assigned to the current group

\r\n
\r\n
\r\n \r\n \r\n {{ parentGroup.name }}\r\n
\r\n
\r\n
\r\n
\r\n
0\" class=\"create-offer-template-tab\">\r\n
\r\n

Configure Bill Group access

\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\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 { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CreateUserComponent } from './create-user.component';\r\nimport { CustomSharedModule } from '../../../../../../shared/custom-shared.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { UsersSharedModule } from '../../../shared/users-shared.module';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AppHeaderModule } from \"./../../../../../../components/shared-ui/app-header/app-header.module\";\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { SharedUiModule } from 'src/app/components/shared-ui/shared-ui.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CustomSharedModule,\r\n UsersSharedModule,\r\n ConfirmDialogModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n InputTextModule,\r\n InputSwitchModule,\r\n CheckboxModule,\r\n DropdownModule,\r\n AppHeaderModule,\r\n MultiSelectModule,\r\n SharedUiModule\r\n ],\r\n declarations: [CreateUserComponent], entryComponents: [CreateUserComponent]\r\n})\r\nexport class CreateUserModule { }\r\n","import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';\r\nimport { CreateUserComponent } from '../create-user/create-user.component';\r\nimport { AdminService } from '../../../../../../services/admin.service';\r\nimport { RoutingService } from '../../../../../../services/routing.service';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NotificationService } from '../../../../../../services/notification.service';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserService } from '../../../../../../services/user.service';\r\nimport { StoreService } from '../../../../../../services/storeService';\r\nimport { UsersCacheService } from '../../../users-cache.service';\r\nimport { CorporateService } from '../../../../../../services/corporate.service';\r\nimport { GetCorporateById } from '../../../../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { GetRolesSingleModel } from '../../../../../../services/service_models/roles-models/get-all-roles-single.model';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-edit-user',\r\n templateUrl: '../create-user/create-user.component.html',\r\n styleUrls: [\r\n '../../../../candidate/details-and-accept/step-one/step-one.component.scss',\r\n '../../../../candidate/details-and-accept/step-two/step-two.component.scss',\r\n '../../../../candidate/details-and-accept/step-three/step-three.component.scss',\r\n '../../../candidates-and-offers//create-offer/offer-details-tab/offer-details-tab.component.scss',\r\n '../../../candidates-and-offers//candidate-profile/details-tab/details-tab.component.scss',\r\n '../../../../../../shared/styles/confirmation-dialog.scss',\r\n '../create-user/create-user.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class EditUserComponent extends CreateUserComponent implements OnInit, OnDestroy {\r\n\r\n private _routeParams: any;\r\n mode = 'edit';\r\n subheaderTitle = '';\r\n subheaderText = 'Below are the user details';\r\n confirmButtonLabel = 'SAVE CHANGES';\r\n userId: string;\r\n corporateId: string;\r\n updateUserEndpoint: string;\r\n userReady;\r\n billGroupOptions: { value: number; label: string }[];\r\n isSelectedGroupSelected: boolean = false;\r\n selectedBillGroups = [];\r\n private userCurrentCorporate: GetCorporateById;\r\n\r\n\r\n\r\n constructor(public notificationService: NotificationService,\r\n protected _usersCache: UsersCacheService,\r\n protected _loader: LoaderService,\r\n protected _confirmationService: ConfirmationService,\r\n protected _adminService: AdminService,\r\n protected _routingService: RoutingService,\r\n protected _errorService: ErrorService,\r\n private _route: ActivatedRoute,\r\n protected _userService: UserService,\r\n protected _storeService: StoreService,\r\n private _authService: AuthService,\r\n protected _corporateService: CorporateService) {\r\n super(notificationService,\r\n _usersCache,\r\n _loader,\r\n _confirmationService,\r\n _adminService,\r\n _routingService,\r\n _errorService,\r\n _userService,\r\n _storeService,\r\n _corporateService);\r\n }\r\n\r\n ngOnInit() {\r\n this.loader.start();\r\n\r\n this._subscriptions.push(this._usersCache.dataCached.subscribe((hasCache) => {\r\n // if (hasCache) {\r\n this.userCurrentCorporate = this._usersCache.currentCorporate;\r\n // }\r\n }));\r\n\r\n this.billGroupOptions = JSON.parse(localStorage.getItem('billGroups'));\r\n\r\n super.initForm();\r\n this.rolesArr = JSON.parse(localStorage.getItem('roles'));\r\n\r\n this._subscriptions.push(this._route.queryParamMap.subscribe(params => {\r\n\r\n this._routeParams = { ...params.keys, ...params };\r\n this.userId = this._routeParams.params.userId;\r\n this.corporateId = this._routeParams.params.corporateId;\r\n\r\n this.getSubgroups();\r\n\r\n this._subscriptions.push(this.userService.getUserById(this.userId, this.corporateId).subscribe((user) => {\r\n this.userReady = user;\r\n this.subheaderTitle = `${user.firstname} ${user.lastname}`;\r\n\r\n if (this.userReady) {\r\n this.userFormGroup.get('firstName').setValue(this.userReady.firstname);\r\n this.userFormGroup.get('lastName').setValue(this.userReady.lastname);\r\n this.userFormGroup.get('email').setValue(this.userReady.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value);\r\n this.userFormGroup.get('mobile').setValue(this.userReady.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value);\r\n this.userFormGroup.get('workNo').setValue(this.userReady.corporateContactChannels.filter(cc => cc.type === 'WorkNo')[0].value);\r\n this.userFormGroup.get('role').setValue(this.userReady.roleId);\r\n this.userFormGroup.get('groupId').setValue(this.userReady.corporateId);\r\n \r\n var filteredBillGroups = this.userReady.billgroups.map(({ id, userId, corporateId, ...item }) => ({\r\n ...item\r\n }));\r\n \r\n this.userFormGroup.get('selectedBillGroups').setValue(filteredBillGroups);\r\n \r\n this.userReady.billgroups && this.userReady.billgroups.length > 0 ? \r\n (this.userFormGroup.get('isSelectedGroupSelected').setValue(true), this.isSelectedGroupSelected = true) :\r\n (this.userFormGroup.get('isSelectedGroupSelected').setValue(false), this.isSelectedGroupSelected = false) \r\n \r\n this.selectedBillGroups = filteredBillGroups;\r\n }\r\n\r\n this.loader.stop();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to get user data');\r\n }));\r\n }));\r\n }\r\n\r\n protected getSubgroups() {\r\n if (this._storeService.getStoredData().profile['role'].toLowerCase() !== 'cat manager') {\r\n return super.getSubgroups();\r\n }\r\n\r\n this._subscriptions.push(this._usersCache.dataCached.subscribe((hasCache) => {\r\n // if (hasCache) {\r\n\r\n this.loader.start();\r\n this._subscriptions.push(this.corporateService.getGroupDetailsById(this.corporateId).subscribe((corp) => {\r\n\r\n this.currentGroup = corp;\r\n this.userCurrentCorporate.id = this.currentGroup.id;\r\n if (this.currentGroup.parentCorporate && this.currentGroup.parentCorporate.id) {\r\n this._subscriptions.push(this.corporateService.getGroupDetailsById(this.currentGroup.parentCorporate.id)\r\n .subscribe((parent) => {\r\n this.parentGroup = parent;\r\n const isAssignedToParentGroup = this.parentGroup.id === this.currentGroup.id;\r\n this.userFormGroup.get('isAssignedToParentGroup').setValue(isAssignedToParentGroup);\r\n this.userFormGroup.get('groupId').setValue(this.currentGroup.id);\r\n\r\n if (this.parentGroup.subGroups) {\r\n this.subgroups = this.parentGroup.subGroups;\r\n const currentSubgroupIndex = this.subgroups.findIndex(x => x.corporateId == this.currentGroup.id);\r\n if (currentSubgroupIndex >= 0) {\r\n this.assignToSubgroup(currentSubgroupIndex);\r\n }\r\n }\r\n this.loader.stop();\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to get parent corporate data.');\r\n })\r\n );\r\n } else {\r\n if (this.currentGroup.subGroups) {\r\n this.subgroups = this.currentGroup.subGroups;\r\n }\r\n this.parentGroup = this.currentGroup;\r\n this.userFormGroup.get('isAssignedToParentGroup').setValue(true);\r\n this.loader.stop();\r\n }\r\n }, (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Failed to get corporate data.');\r\n }));\r\n\r\n // }\r\n }));\r\n }\r\n\r\n confirm() {\r\n if (this.userFormGroup.valid) {\r\n this._confirmationService.confirm({\r\n header: 'Save changes',\r\n message: 'Are you sure you want update your details?',\r\n acceptLabel: 'YES, UPDATE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n if (this.userReady.roleId > 3) {\r\n this._subscriptions.push(this._userService.updateProfile(this._getProfileToUpdate()).subscribe((resp) => {\r\n this.notificationService\r\n .openNotification('Your details have been updated successfully.');\r\n this._loader.stop();\r\n this.routingService.goBack();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update your details.');\r\n }));\r\n } else {\r\n this._subscriptions.push(this._userService.updateAdminProfile(this._getAdminProfileToUpdate()).subscribe((resp) => {\r\n this.notificationService\r\n .openNotification('Your details have been updated successfully.');\r\n this._loader.stop();\r\n this.routingService.goBack();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to update your details.');\r\n }));\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n resendMagicLink() {\r\n this._confirmationService.confirm({\r\n header: 'Resend magic link',\r\n message: 'Are you sure you want to resend the magic link?',\r\n acceptLabel: 'YES, RESEND',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n if (this.userReady.roleId === 1 || this.userReady.roleId == 3) {\r\n this.resendAdminMagicLink(this.userReady);\r\n } else {\r\n this.resendCorporateMagicLink(this.userReady);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private resendAdminMagicLink(user: GetRolesSingleModel) {\r\n this._loader.start();\r\n this._subscriptions.push(this._authService.resendAdminMagicLink(this.userId).subscribe((resp) => {\r\n this._loader.stop();\r\n this.notificationService.openNotification('Magic link sent successfully as email.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Resending magic link failed.');\r\n }));\r\n }\r\n\r\n private resendCorporateMagicLink(user: GetRolesSingleModel) {\r\n this._loader.start();\r\n this._subscriptions.push(this._authService.resendCorporateMagicLink(this.userId, this.userReady.corporateId).subscribe((resp) => {\r\n this._loader.stop();\r\n this.notificationService.openNotification('Magic link sent successfully as email.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Resending magic link failed.');\r\n }));\r\n }\r\n\r\n onChangeBillGroups(evt) {\r\n this.selectedBillGroups = evt.value;\r\n this.userFormGroup.controls['selectedBillGroups'].setValue(this.selectedBillGroups);\r\n }\r\n\r\n billGroupSelectionChange() {\r\n this.isSelectedGroupSelected = !this.isSelectedGroupSelected;\r\n if (!this.isSelectedGroupSelected) {\r\n this.selectedBillGroups = null;\r\n this.userFormGroup.controls['selectedBillGroups'].setValue(null);\r\n this.userFormGroup.controls['isSelectedGroupSelected'].setValue(false);\r\n } else {\r\n this.userFormGroup.controls['isSelectedGroupSelected'].setValue(true);\r\n }\r\n }\r\n\r\n public _getProfileToUpdate() {\r\n let parentCorporateId = null;\r\n if (this.currentGroup) {\r\n if (this.currentGroup.parentCorporate) {\r\n parentCorporateId = this.currentGroup.parentCorporate.id;\r\n } else {\r\n parentCorporateId = this.currentGroup.id;\r\n }\r\n } \r\n \r\n let selectedBillGroupCodes = [];\r\n if (this.selectedBillGroups && this.billGroupOptions && this.selectedBillGroups.length !== this.billGroupOptions.length && this.userFormGroup.get('isSelectedGroupSelected').value) {\r\n this.selectedBillGroups.forEach((val) => selectedBillGroupCodes.push({\"billingGroupCode\": val.billingGroupCode, \"billingGroupDescription\": val.billingGroupDescription}));\r\n }\r\n\r\n return {\r\n corporateId: this.userFormGroup.controls['groupId'].value,\r\n parentcorporateId: parentCorporateId,\r\n id: this.userReady.userId,\r\n firstname: this.userFormGroup.controls['firstName'].value,\r\n lastname: this.userFormGroup.controls['lastName'].value,\r\n email: this.userFormGroup.controls['email'].value,\r\n cellPhone: this.userFormGroup.controls['mobile'].value,\r\n workNo: this.userFormGroup.controls['workNo'].value,\r\n roleId: this.userFormGroup.controls['role'].value,\r\n isSwitchingUser: this.isSwitchingUser,\r\n userCorporateId: this.currentGroup.id ,//this.userCurrentCorporate ? this.userCurrentCorporate.id : '',\r\n billGroups: selectedBillGroupCodes,\r\n\r\n };\r\n }\r\n\r\n public _getAdminProfileToUpdate() {\r\n return {\r\n id: this.userReady.userId,\r\n firstname: this.userFormGroup.controls['firstName'].value,\r\n lastname: this.userFormGroup.controls['lastName'].value,\r\n email: this.userFormGroup.controls['email'].value,\r\n cellPhone: this.userFormGroup.controls['mobile'].value,\r\n workNo: this.userFormGroup.controls['workNo'].value,\r\n roleId: this.userFormGroup.controls['role'].value,\r\n userCorporateId: this.currentGroup.id ,\r\n // userCorporateId: this.userCurrentCorporate.id,\r\n };\r\n }\r\n\r\n}\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { EditUserComponent } from './edit-user.component';\r\nimport { CustomSharedModule } from '../../../../../../shared/custom-shared.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { UsersSharedModule } from '../../../shared/users-shared.module';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AppHeaderModule } from \"./../../../../../../components/shared-ui/app-header/app-header.module\";\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { SharedUiModule } from 'src/app/components/shared-ui/shared-ui.module';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n CustomSharedModule,\r\n UsersSharedModule,\r\n ConfirmDialogModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n InputTextModule,\r\n InputSwitchModule,\r\n CheckboxModule,\r\n DropdownModule,\r\n AppHeaderModule,\r\n MultiSelectModule,\r\n SharedUiModule\r\n ],\r\n declarations: [EditUserComponent],\r\n entryComponents:[EditUserComponent]\r\n})\r\nexport class EditUserModule { }\r\n","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { RoutingService } from '../../../../../../services/routing.service';\r\nimport { ErrorService } from '../../../../../../services/error.service';\r\nimport { LoaderService } from '../../../../../../services/loader.service';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { sortBy } from 'sort-by-typescript';\r\nimport { NotificationService } from '../../../../../../services/notification.service';\r\nimport { UserService } from '../../../../../../services/user.service';\r\nimport { StoreService } from '../../../../../../services/storeService';\r\nimport { GetRolesSingleModel } from '../../../../../../services/service_models/roles-models/get-all-roles-single.model';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { UsersCacheService } from '../../../users-cache.service';\r\n\r\n@Component({\r\n selector: 'app-roles-dashboard',\r\n templateUrl: './roles-dashboard.component.html',\r\n styleUrls: [\r\n '../../../candidates-and-offers/confirm-offer/confirm-offer.component.scss',\r\n '../../../../../../shared/styles/confirmation-dialog.scss',\r\n '../../../candidates-and-offers/dashboard/dashboard.component.scss',\r\n './roles-dashboard.component.scss'\r\n ],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class RolesDashboardComponent implements OnInit, OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n hasAnyItems: boolean;\r\n hasAdminItems: boolean;\r\n hasManagerItems: boolean;\r\n hasRecruiterItems: boolean;\r\n hasOperationsItems: boolean;\r\n hasCatManagerItems: boolean;\r\n searchQuery: any;\r\n sort: string;\r\n selectionEnabled: boolean;\r\n selectedItems: any[];\r\n sortOptions = [\r\n { label: 'By first name', value: 'firstname' },\r\n { label: 'By last name', value: 'lastname' }\r\n ];\r\n admins: Array = new Array();\r\n managers: Array = new Array();\r\n recruiters: Array = new Array();\r\n operations: Array = new Array();\r\n catManager: Array = new Array();\r\n\r\n userRole: string;\r\n visibleAdmin: boolean = false;\r\n visibleManager: boolean = false;\r\n visibleRecruiter: boolean = false;\r\n visibleOperations: boolean = false;\r\n visibleCatManager: boolean = false;\r\n\r\n\r\n constructor(public notificationService: NotificationService,\r\n private _errorService: ErrorService,\r\n private _routingService: RoutingService,\r\n private _loader: LoaderService,\r\n private _confirmationService: ConfirmationService,\r\n private _userService: UserService,\r\n private _authService: AuthService,\r\n private _storeService: StoreService,\r\n private authService: AuthService,\r\n private storage: StoreService,\r\n private usersCacheService: UsersCacheService) {\r\n this.selectedItems = [];\r\n\r\n //check for user type \r\n const _storage = this.storage.getStoredData();\r\n if (_storage && _storage.profile && _storage.profile['role'].toLowerCase() !== ('candidate' || 'user')) {\r\n this.usersCacheService.setCache(_storage);\r\n } else {\r\n this._subscriptions.push(this.authService.isLoggedIn.subscribe((isLoggedIn) => {\r\n if (isLoggedIn) {\r\n this.usersCacheService.setCache(_storage);\r\n } else {\r\n this.usersCacheService.setCache(_storage);\r\n }\r\n }));\r\n }\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n //get data from token to decide what panels to show for user\r\n this.userRole = this._storeService.getStoredData().profile['role'];\r\n this.setupVisibleRoles();\r\n this.getDashboardItems();\r\n }\r\n\r\n setupVisibleRoles() {\r\n switch (this.userRole) {\r\n case 'System Admin': {\r\n this.visibleAdmin = false;\r\n this.visibleManager = false;\r\n this.visibleRecruiter = false;\r\n this.visibleOperations = false;\r\n this.visibleCatManager = true;\r\n break;\r\n }\r\n case 'CAT Manager': {\r\n this.visibleAdmin = true;\r\n this.visibleManager = true;\r\n this.visibleRecruiter = true;\r\n this.visibleOperations = true;\r\n this.visibleCatManager = true;\r\n break;\r\n }\r\n case 'HR Admin': {\r\n this.visibleAdmin = true;\r\n this.visibleManager = true;\r\n this.visibleRecruiter = true;\r\n this.visibleOperations = true;\r\n break;\r\n }\r\n case 'HR Manager': {\r\n this.visibleManager = true;\r\n this.visibleRecruiter = true;\r\n this.visibleOperations = true;\r\n break;\r\n }\r\n case 'HR Recruiter': {\r\n this.visibleRecruiter = true;\r\n break;\r\n }\r\n case 'HR Operations': {\r\n this.visibleOperations = true;\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n\r\n private getDashboardItems() {\r\n this._loader.start();\r\n\r\n this.hasAdminItems = false;\r\n this.hasManagerItems = false;\r\n this.hasRecruiterItems = false;\r\n this.hasOperationsItems = false;\r\n this.hasCatManagerItems = false;\r\n\r\n this._subscriptions.push(this._userService.getAllUsers(this._storeService.getStoredData().profile['CorporateId'])\r\n .subscribe(resp => {\r\n\r\n this.catManager = resp.filter(x => x.roleId === 3);\r\n this.admins = resp.filter(x => x.roleId === 4);\r\n this.managers = resp.filter(x => x.roleId === 5);\r\n this.recruiters = resp.filter(x => x.roleId === 6);\r\n this.operations = resp.filter(x => x.roleId === 8);\r\n\r\n if (this.catManager.length > 0) {\r\n this.hasCatManagerItems = true;\r\n this.catManager.map(admin => {\r\n admin.email = admin.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value;\r\n });\r\n this.catManager.map(admin => {\r\n admin.mobile = admin.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value;\r\n });\r\n }\r\n if (this.admins.length > 0) {\r\n this.hasAdminItems = true;\r\n this.admins.map(admin => {\r\n admin.email = admin.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value;\r\n });\r\n this.admins.map(admin => {\r\n admin.mobile = admin.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value;\r\n });\r\n }\r\n if (this.managers.length > 0) {\r\n this.hasManagerItems = true;\r\n this.managers.map(managers => {\r\n managers.email = managers.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value;\r\n });\r\n this.managers.map(managers => {\r\n managers.mobile = managers.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value;\r\n });\r\n }\r\n if (this.recruiters.length > 0) {\r\n this.hasRecruiterItems = true;\r\n this.recruiters.map(recruiters => {\r\n recruiters.email = recruiters.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value;\r\n });\r\n this.recruiters.map(recruiters => {\r\n recruiters.mobile = recruiters.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value;\r\n });\r\n }\r\n if (this.operations.length > 0) {\r\n this.hasOperationsItems = true;\r\n this.operations.map(operationals => {\r\n operationals.email = operationals.corporateContactChannels.filter(cc => cc.type === 'Email')[0].value;\r\n });\r\n this.operations.map(operationals => {\r\n operationals.mobile = operationals.corporateContactChannels.filter(cc => cc.type === 'Cellphone')[0].value;\r\n });\r\n }\r\n\r\n this._checkForItems();\r\n this._loader.stop();\r\n\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get the user data.');\r\n }\r\n ));\r\n }\r\n\r\n goToCreateUser() {\r\n this._routingService.createUser();\r\n }\r\n\r\n editUser(user: GetRolesSingleModel) {\r\n this._routingService.editUser(user.userId, user.corporateId);\r\n }\r\n\r\n onSortChange() {\r\n this.catManager.sort(sortBy(this.sort));\r\n this.admins.sort(sortBy(this.sort));\r\n this.managers.sort(sortBy(this.sort));\r\n this.recruiters.sort(sortBy(this.sort));\r\n this.operations.sort(sortBy(this.sort));\r\n }\r\n\r\n addItemToSelection(item: any) {\r\n this.selectedItems.push(item);\r\n }\r\n\r\n removeItemFromSelection(item: any) {\r\n const index = this.selectedItems.findIndex(x => x.id === item.id);\r\n this.selectedItems.splice(index, 1);\r\n }\r\n\r\n archiveSelection() {\r\n this._confirmationService.confirm({\r\n header: 'Move to archive',\r\n message: 'You will be able to reinstate an applicant from archive',\r\n acceptLabel: 'YES, ARCHIVE',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(this._userService.addUsersToArchive(this.selectedItems).subscribe((resp) => {\r\n this.getDashboardItems();\r\n this.selectionEnabled = false;\r\n this.selectedItems = [];\r\n this._loader.stop();\r\n this.notificationService.openNotification('Users moved to archive.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to move selection to archive.');\r\n }));\r\n }\r\n });\r\n }\r\n\r\n resendMagicLink(user: GetRolesSingleModel) {\r\n this._confirmationService.confirm({\r\n header: 'Resend magic link',\r\n message: 'Are you sure you want to resend the magic link?',\r\n acceptLabel: 'YES, RESEND',\r\n rejectLabel: 'NO, CANCEL',\r\n icon: null,\r\n accept: () => {\r\n if (user.roleId === 1 || user.roleId == 3) {\r\n this.resendAdminMagicLink(user);\r\n } else {\r\n this.resendCorporateMagicLink(user);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private resendAdminMagicLink(user: GetRolesSingleModel) {\r\n this._loader.start();\r\n this._subscriptions.push(this._authService.resendAdminMagicLink(user.userId).subscribe((resp) => {\r\n this._loader.stop();\r\n this.notificationService.openNotification('Magic link sent successfully as email.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Resending magic link failed.');\r\n }));\r\n }\r\n\r\n private resendCorporateMagicLink(user: GetRolesSingleModel) {\r\n this._loader.start();\r\n this._subscriptions.push(this._authService.resendCorporateMagicLink(user.userId, user.corporateId).subscribe((resp) => {\r\n this._loader.stop();\r\n this.notificationService.openNotification('Magic link sent successfully as email.');\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Resending magic link failed.');\r\n }));\r\n }\r\n\r\n private _checkForItems(): void {\r\n if (!this.hasAdminItems &&\r\n !this.hasManagerItems &&\r\n !this.hasRecruiterItems &&\r\n !this.hasOperationsItems &&\r\n !this.hasCatManagerItems) {\r\n this.hasAnyItems = false;\r\n } else {\r\n this.hasAnyItems = true;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n

Users

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n ARCHIVE\r\n \r\n\r\n 0\"\r\n (click)=\"archiveSelection()\"\r\n type=\"button\"\r\n class=\"main btn btn-primary create-applicant-btn\"\r\n >\r\n ARCHIVE SELECTION\r\n \r\n\r\n \r\n CREATE USER\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
CAT Manager
\r\n
CAT Manager
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Admin
\r\n
Admin
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Manager
\r\n
Manager
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Recruiter
\r\n
Recruiter
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
Operations
\r\n
Operations
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

Nothing here yet.

\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { GetCorporateById } from '../../../services/service_models/corporate_models/get-corporate-by-id.model';\r\nimport { CorporateService } from '../../../services/corporate.service';\r\nimport { StoreService } from '../../../services/storeService';\r\nimport { ErrorService } from '../../../services/error.service';\r\nimport { LoaderService } from '../../../services/loader.service';\r\nimport { BehaviorSubject, Subscription, interval } from 'rxjs';\r\nimport {User} from \"oidc-client\";\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport { AdminService } from 'src/app/services/admin.service';\r\n\r\n@Injectable()\r\nexport class UsersCacheService implements OnDestroy {\r\n private _subscriptions = new Array();\r\n public currentCorporate: GetCorporateById | null;\r\n protected maxCalls = 2;\r\n protected completedCalls = 0;\r\n public dataCached = new BehaviorSubject(false);\r\n public allTemplates: any = [];\r\n user: User | null = null;\r\n\r\n constructor(private _auth: AuthenticationService,\r\n private _loader: LoaderService,\r\n private _corporateService: CorporateService,\r\n private _errorService: ErrorService,\r\n private _adminService: AdminService) {\r\n }\r\n\r\n\r\n\r\n\r\n cacheCorporateData(user:User) {\r\n if (user.profile['CorporateId']) {\r\n this._subscriptions.push(this._corporateService.getGroupDetailsById(user.profile['CorporateId']).subscribe((corp) => {\r\n this.currentCorporate = corp;\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n this.dataCached.next(true);\r\n }\r\n }, (error) => {\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n }\r\n this._errorService.openErrorPopup('Failed to cache corporate data.');\r\n }));\r\n }\r\n }\r\n\r\n cacheTemplateteData() {\r\n this._subscriptions.push(this._adminService.getOfferTemplates().subscribe((resp) => {\r\n this.allTemplates = resp;\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n this.dataCached.next(true);\r\n }\r\n }, (error) => {\r\n this.completedCalls++;\r\n if (this.maxCalls === this.completedCalls) {\r\n this._loader.stop();\r\n }\r\n this._errorService.openErrorPopup('Failed to get the offer template.');\r\n }\r\n ))\r\n }\r\n\r\n setCache(user:User) {\r\n // this._loader.start();\r\n this.cacheCorporateData(user);\r\n if (user.profile['role'] !== ('CAT Manager' || 'candidate' || 'user')) {\r\n this.cacheTemplateteData();\r\n }\r\n }\r\n\r\n clearCache() {\r\n this.currentCorporate = null;\r\n this.allTemplates = null;\r\n this.completedCalls = 0;\r\n this.dataCached.next(false);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { StoreService } from \"../../../../../../../src/app/services/storeService\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Constants } from \"../../../../../constants/constants\";\r\nimport { AuthService } from \"src/app/services/auth.service\";\r\n\r\n@Component({\r\n selector: \"app-connect-adviser-wrapper\",\r\n templateUrl: \"./connect-adviser-wrapper.component.html\",\r\n styleUrls: [\"./connect-adviser-wrapper.component.scss\"],\r\n})\r\nexport class ConnectAdviserWrapperComponent implements OnInit {\r\n @Input() public moveWithDrawFlag: number;\r\n @Input() public percentage: number;\r\n @Input() public totalSavings: number;\r\n popIaDisclosurePath: string = \"\";\r\n infoIconDamPath: string = \"\";\r\n\r\n public firstName: string | undefined;\r\n public surname: string | undefined;\r\n\r\n constructor(\r\n private readonly storeService: StoreService,\r\n private readonly authService: AuthService,\r\n private readonly router: Router\r\n ) {}\r\n\r\n public ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.firstName = this.storeService.getStoredData().profile[\"given_name\"];\r\n this.surname = this.storeService.getStoredData().profile[\"family_name\"];\r\n }\r\n\r\n public logout() {\r\n this.authService.logout(false);\r\n }\r\n\r\n public goBack() {\r\n this.router.navigate([\"/member/move-withdraw\"], {\r\n queryParams: {\r\n flag: this.moveWithDrawFlag,\r\n sv: this.totalSavings,\r\n pt: this.percentage,\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{{ firstName }} {{ surname }}
\r\n
\r\n \r\n Log out\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Find out\r\n how we protect your personal information, privacy and security.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

Move retirement savings

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

\r\n To continue and save with Alexforbes, you will need to connect\r\n with an
\r\n adviser or one of our administrative team\r\n

\r\n \r\n
\r\n
\r\n
\r\n\r\n","export * from './connect-adviser-wrapper/connect-adviser-wrapper.component';\r\nexport * from './need-advice/need-advice.component';\r\nexport * from './no-need-advice/no-need-advice.component';\r\nexport * from './ready-to-continue/ready-to-continue.component';\r\nexport * from './unsure-savings/unsure-savings.component';","import { Component, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-need-advice',\r\n templateUrl: './need-advice.component.html',\r\n styleUrls: ['./need-advice.component.scss']\r\n})\r\nexport class NeedAdviceComponent {\r\n @Output() clicked = new EventEmitter();\r\n\r\n onClick() {\r\n this.clicked.emit();\r\n }\r\n}\r\n","
\r\n

\r\n Have one of our advisers contact you to assist with choosing the best product\r\n

\r\n

\r\n Before you can continue,\r\n one of our advisers will be in touch to discuss your available options\r\n and assist with the rest of the process\r\n

\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-need-advice',\r\n templateUrl: './no-need-advice.component.html',\r\n styleUrls: ['./no-need-advice.component.scss']\r\n})\r\nexport class NoNeedAdviceComponent {\r\n @Output() clicked = new EventEmitter();\r\n\r\n onClick() {\r\n this.clicked.emit();\r\n }\r\n}\r\n","
\r\n

\r\n Have one of our admin team contact you to assist with the required documentation\r\n

\r\n

\r\n Before you can continue,\r\n one of our administrators will be in touch to inform you\r\n of the available products and complete the required documentation\r\n

\r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ready-to-continue',\r\n templateUrl: './ready-to-continue.component.html',\r\n styleUrls: ['./ready-to-continue.component.scss']\r\n})\r\nexport class ReadyToContinueComponent {\r\n @Output() clicked = new EventEmitter();\r\n\r\n onClick() {\r\n this.clicked.emit();\r\n }\r\n}\r\n","
\r\n

\r\n Already spoken to one of our team and have all the information required\r\n

\r\n

\r\n If one of our advisers or administrators has been in touch\r\n and you've completed the required documentation. You can continue\r\n with the process and complete the remaining information required.\r\n

\r\n\r\n
\r\n \r\n
\r\n
","import { Component, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-unsure-savings',\r\n templateUrl: './unsure-savings.component.html',\r\n styleUrls: ['./unsure-savings.component.scss']\r\n})\r\nexport class UnsureSavingsComponent {\r\n @Output() cancel = new EventEmitter();\r\n @Output() invest = new EventEmitter();\r\n\r\n onCancel() {\r\n this.cancel.emit();\r\n }\r\n \r\n onStayInvested() {\r\n this.invest.emit();\r\n }\r\n\r\n}\r\n","
\r\n

\r\n Don't have all the required documentation or unsure of savings\r\n

\r\n

\r\n Go back to review your available options or stay invested\r\n to keep your retirement savings growing at their current rate.\r\n

\r\n\r\n
\r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { ConnectAdviserComponent } from './containers';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'connect-adviser',\r\n canActivate: [AuthGuard],\r\n component: ConnectAdviserComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class ConnectAdviserRoutingModule { }\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ConnectAdviserComponent } from './containers';\r\nimport { ConnectAdviserRoutingModule } from './connect-adviser-routing.module';\r\nimport {\r\n ConnectAdviserWrapperComponent,\r\n UnsureSavingsComponent,\r\n ReadyToContinueComponent,\r\n NoNeedAdviceComponent,\r\n NeedAdviceComponent\r\n} from './components';\r\nimport { AppHeaderModule } from '../../shared-ui/app-header/app-header.module';\r\nimport { CustomSharedModule } from 'src/app/shared/custom-shared.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n ConnectAdviserComponent,\r\n ConnectAdviserWrapperComponent,\r\n UnsureSavingsComponent,\r\n ReadyToContinueComponent,\r\n NoNeedAdviceComponent,\r\n NeedAdviceComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ConnectAdviserRoutingModule,\r\n AppHeaderModule,\r\n CustomSharedModule\r\n ],\r\n entryComponents: [\r\n ConnectAdviserComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class ConnectAdviserModule { }\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport appsettings from \"../../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: 'app-connect-adviser',\r\n templateUrl: './connect-adviser.component.html',\r\n styleUrls: ['./connect-adviser.component.scss'],\r\n})\r\nexport class ConnectAdviserComponent implements OnInit, OnDestroy {\r\n private unsubscribe$ = new Subject();\r\n\r\n public readyToContinue: boolean;\r\n public percentage: number;\r\n public totalSavings: any;\r\n public moveWithDrawFlag: number;\r\n public showFullPartFlag: number;\r\n wouldLikeAdvice:boolean;\r\n confirmAdvice:boolean;\r\n noAdvice: boolean;\r\n private amountToMove: any;\r\n protected _subscriptions = new Array();\r\n promptParam: string;\r\n\r\n constructor(\r\n private readonly router: Router,\r\n private readonly route: ActivatedRoute,\r\n public authService: AuthenticationService,\r\n private httpClient: HttpClient\r\n ) { }\r\n\r\n public ngOnInit() {\r\n this.route.queryParams\r\n .pipe(\r\n takeUntil(this.unsubscribe$)\r\n ).subscribe(parameters => {\r\n this.moveWithDrawFlag = parameters['flag'];\r\n this.totalSavings = parameters['sv'].replace(/\\s/g, '');\r\n this.percentage = parameters['pt'];\r\n this.amountToMove = parameters['amt'];\r\n });\r\n\r\n if (this.percentage < 100) {\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.showFullPartFlag = 1;\r\n }\r\n this._subscriptions.push(this.route.queryParams.subscribe(params => {\r\n this.promptParam = params['prompt'];\r\n }));\r\n }\r\n\r\n public onNeedAdvice() {\r\n // open pop up for I would like advice\r\n this.wouldLikeAdvice = true;\r\n\r\n\r\n\r\n\r\n \r\n }\r\n\r\n public onNoNeedAdvice() {\r\n // open pop up for I don't need advice\r\n this.noAdvice = true;\r\n }\r\n\r\n public onReadyToContinue() {\r\n this.readyToContinue = true;\r\n }\r\n\r\n goToConfirm(shouldGiveAdvice:boolean){\r\n this.confirmAdvice = true;\r\n this.connectAdviceAfris(shouldGiveAdvice).subscribe(resp => {\r\n },err => {\r\n })\r\n }\r\n\r\n onLogOut(){\r\n this.authService.logout(false);\r\n }\r\n\r\n public navigateBack() {\r\n this.router.navigate([''])\r\n }\r\n\r\n public navigateToInvest() {\r\n this.router.navigate(['confirm-details'])\r\n }\r\n\r\n public goToSavingsDetails() {\r\n this.router.navigate(['savings-details'],\r\n {\r\n queryParams: { flag: this.moveWithDrawFlag, sv: this.totalSavings, pt: this.percentage, af: 'true', prompt: this.promptParam }\r\n });\r\n }\r\n\r\n public onClose() {\r\n this.readyToContinue = false;\r\n this.wouldLikeAdvice = false;\r\n this.confirmAdvice = false;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n connectAdviceAfris(shouldGiveAdvice: boolean){\r\n const headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.connectAdviceAfris}`;\r\n const options = { headers: headers };\r\n return this.httpClient.post(url, JSON.stringify({\"requireAdvice\": shouldGiveAdvice,\"withdrawPortion\": parseInt(this.amountToMove), \"fundCredit\": parseInt(this.totalSavings)}), options);\r\n }\r\n}\r\n\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export * from './connect-adviser/connect-adviser.component';\r\n","export * from './connect-adviser.module';\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'af-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n styleUrls: ['./checkbox.component.scss']\r\n})\r\nexport class CheckboxComponent implements OnInit {\r\n\r\n isChecked: Boolean = false;\r\n\r\n constructor() { }\r\n\r\n @Input() ref: any;\r\n @Input() employeeNumber: string;\r\n\r\n checkBoxForm: FormGroup;\r\n\r\n ngOnInit() {\r\n }\r\n\r\n toogle() {\r\n const el = document.getElementById(this.ref.EmployeeNumber)!;\r\n if (!this.isChecked) {\r\n el.dispatchEvent(\r\n new CustomEvent('af-check-click', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-check\",\r\n state: \"checked\",\r\n ref: this.ref\r\n }\r\n })\r\n );\r\n el.classList.add('bg-orange-600');\r\n el.classList.remove('border-2');\r\n el.classList.remove('border-gray-500');\r\n } else {\r\n el.dispatchEvent(\r\n new CustomEvent('af-check-click', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-check\",\r\n state: \"unchecked\",\r\n ref: this.ref\r\n }\r\n })\r\n );\r\n el.classList.add('border-gray-500');\r\n el.classList.add('border-2');\r\n el.classList.remove('bg-orange-600');\r\n }\r\n this.isChecked = !this.isChecked;\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { DropdownComponent } from './dropdown/dropdown.component';\r\nimport { LeaversDashboardComponent } from './leavers-dashboard/leavers-dashboard.component';\r\nimport { SelectedUserPillComponent } from './selected-user-pill/selected-user-pill.component';\r\nimport { StepThreeComponent } from './wizard/last-step/send-email.last-step/send-email.last-step.component';\r\nimport { StepOneComponent } from './wizard/step-one/contact-details.step-one/contact-details.step-one.component';\r\nimport { StepPostalComponent } from './wizard/step-postal/postal.step-postal/postal.step-postal.component';\r\nimport { StepTwoComponent } from './wizard/step-two/any-debt.step-two/any-debt.step-two.component';\r\nimport { WizardComponent } from './wizard/wizard.component';\r\n\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'digital/resignations/dashboard',\r\n canActivate: [AuthGuard],\r\n component: LeaversDashboardComponent\r\n },\r\n {\r\n path: 'digital/resignations/checkbox',\r\n canActivate: [AuthGuard],\r\n component: CheckboxComponent\r\n },\r\n {\r\n path: 'digital/resignations/dropdown',\r\n canActivate: [AuthGuard],\r\n component: DropdownComponent\r\n },\r\n {\r\n path: 'digital/resignations/user-pill',\r\n canActivate: [AuthGuard],\r\n component: SelectedUserPillComponent\r\n },\r\n {\r\n path: 'digital/resignations/wizard',\r\n canActivate: [AuthGuard],\r\n component: WizardComponent\r\n },\r\n {\r\n path: 'digital/resignations/wizard/last-step',\r\n canActivate: [AuthGuard],\r\n component: StepThreeComponent\r\n },\r\n {\r\n path: 'digital/resignations/wizard/third-step',\r\n canActivate: [AuthGuard],\r\n component: StepOneComponent\r\n },\r\n {\r\n path: 'digital/resignations/wizard/second-step',\r\n canActivate: [AuthGuard],\r\n component: StepTwoComponent\r\n },\r\n {\r\n path: 'digital/resignations/wizard/step-postal',\r\n canActivate: [AuthGuard],\r\n component: StepPostalComponent\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class DashboardRoutingModule { }\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { DashboardRoutingModule } from './dashboard-routing.module';\r\nimport { LeaversDashboardComponent } from './leavers-dashboard/leavers-dashboard.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { UtilitiesService } from '../../../services/utilities.service';\r\nimport { LoaderService } from '../../../services/loader.service';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AppHeaderModule } from '../../shared-ui/app-header/app-header.module';\r\n//import { CustomSharedModule } from '../../../shared/custom-shared.module';\r\nimport { UserInfoComponent } from './user-info/user-info.component';\r\nimport { SelectedUserPillComponent } from './selected-user-pill/selected-user-pill.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { DropdownComponent } from './dropdown/dropdown.component';\r\nimport { WizardComponent } from './wizard/wizard.component';\r\nimport { StepOneComponent } from './wizard/step-one/contact-details.step-one/contact-details.step-one.component';\r\nimport { StepPostalComponent } from './wizard/step-postal/postal.step-postal/postal.step-postal.component';\r\nimport { StepThreeComponent } from './wizard/last-step/send-email.last-step/send-email.last-step.component';\r\nimport { StepTwoComponent } from './wizard/step-two/any-debt.step-two/any-debt.step-two.component';\r\nimport { WizardHelperService } from 'src/app/services/wizard-helper.service';\r\nimport { CustomSharedModule } from 'src/app/shared/custom-shared.module';\r\nimport { ClickOutsideModule } from 'ng-click-outside';\r\n@NgModule({\r\n declarations: [\r\n LeaversDashboardComponent,\r\n SelectedUserPillComponent,\r\n CheckboxComponent,\r\n UserInfoComponent,\r\n DropdownComponent,\r\n WizardComponent,\r\n StepOneComponent,\r\n StepPostalComponent,\r\n StepThreeComponent,\r\n StepTwoComponent,\r\n ],\r\n entryComponents: [\r\n LeaversDashboardComponent,\r\n CheckboxComponent,\r\n WizardComponent,\r\n StepOneComponent,\r\n StepPostalComponent,\r\n StepThreeComponent,\r\n StepTwoComponent,\r\n ],\r\n imports: [CommonModule, DashboardRoutingModule, FormsModule, ReactiveFormsModule, CalendarModule, CheckboxModule, AppHeaderModule, DatePipe, CustomSharedModule, ClickOutsideModule],\r\n exports: [CheckboxComponent,],\r\n providers: [WizardHelperService, UtilitiesService, LoaderService],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class DashboardModule {}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'af-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.css']\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n\r\n @Input() options: any;\r\n scale = '1';\r\n selected = 'SELECT ACTION';\r\n collapsed = true;\r\n @Output() selectedOpt = new EventEmitter();\r\n\r\n constructor() {\r\n\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n toggle() {\r\n let openDropdown = document.querySelector(\".dropdown-container\") as HTMLElement;\r\n \r\n if (openDropdown) {\r\n openDropdown.style.display = \"none\";\r\n setTimeout(() => {\r\n openDropdown.style.display = \"\";\r\n this.collapsed = true;\r\n }, 2);\r\n }\r\n this.collapsed = false;\r\n this.scale = \"1\";\r\n }\r\n\r\n updateSelection(option: string) {\r\n this.selected = option;\r\n this.selectedOpt.emit(option);\r\n }\r\n\r\n close(event: any){\r\n if(!this.collapsed){\r\n this.scale = this.collapsed ? '-1' : '1';\r\n this.collapsed = !this.collapsed;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n {{selected}}\r\n \r\n \r\n \r\n
\r\n
\r\n {{ opt }}\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Employee } from \"../../models/employees.model\";\r\nimport { SelectedEmployeesStore } from \"../../store/employees/selected-employees.store\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient, HttpContext, HttpContextToken, HttpHeaders } from \"@angular/common/http\";\r\nimport { LoaderService } from \"../../../../services/loader.service\";\r\nimport { ErrorService } from \"../../../../services/error.service\";\r\nimport { RoutingService } from \"../../../../services/routing.service\";\r\nimport { UserInfoComponent } from \"./../user-info/user-info.component\";\r\nimport { ViewChild } from \"@angular/core\";\r\nimport { FormGroup, FormBuilder, FormArray, FormControl } from \"@angular/forms\";\r\nimport { User } from \"oidc-client\";\r\nimport { getErrorMessage } from \"../../../../shared/common-functions\";\r\n//import { WizardHelperService } from \"src/app/services/wizard-helper.service\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport { WizardHelperService } from \"src/app/services/wizard-helper.service\";\r\nimport appsettings from \"../../../../../assets/appsettings.json\"\r\n\r\nconst selectedOptionsMap = {\r\n startResignation: {\r\n displayText: \"Start resignation process\",\r\n code: 1,\r\n },\r\n startQualifyingRetrenchments: {\r\n displayText: \"Start qualifying retrenchment process\",\r\n code: 9,\r\n },\r\n startNonQualifyingRetrenchments: {\r\n displayText: \"Start non-qualifying retrenchment process\",\r\n code: 2,\r\n },\r\n startDismissalProcess: {\r\n displayText: \"Start dismissal process\",\r\n code: 3,\r\n },\r\n cancelRequest: {\r\n displayText: \"Cancel request\",\r\n code: 4,\r\n },\r\n};\r\n\r\n@Component({\r\n selector: \"app-leavers-dashboard\",\r\n templateUrl: \"./leavers-dashboard.component.html\",\r\n styleUrls: [\"./leavers-dashboard.component.scss\"],\r\n})\r\nexport class LeaversDashboardComponent implements OnInit {\r\n options: string[] = [\r\n selectedOptionsMap.startResignation.displayText,\r\n selectedOptionsMap.startQualifyingRetrenchments.displayText,\r\n selectedOptionsMap.startNonQualifyingRetrenchments.displayText,\r\n selectedOptionsMap.startDismissalProcess.displayText,\r\n ];\r\n\r\n emps: [];\r\n filterCounter: number = 0;\r\n page = 1;\r\n orderBy = \"Surname\";\r\n searchCriteria = \"*\";\r\n sortAsc = true;\r\n isChecked: Boolean = false;\r\n public selectedEmployees: Employee[] = [];\r\n showWiz: Boolean;\r\n fundId: any;\r\n corporate: string;\r\n corp: any;\r\n pageInfo: any;\r\n lastRecord: number;\r\n firstRecord: number;\r\n firstName: String;\r\n surname: String;\r\n totalMemberCount: number;\r\n option: number;\r\n selectedOption: any;\r\n searchString: string;\r\n status: number;\r\n showView: Boolean;\r\n form: FormGroup;\r\n @ViewChild(\"userInfoComponent\", { static: false })\r\n userInfo: UserInfoComponent;\r\n isBulkExit: boolean;\r\n exitID: any;\r\n selectedMembers: any[];\r\n selectedMember: Employee;\r\n showRetrenchmentTip: boolean;\r\n member: User | null = null;\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private auth: AuthenticationService,\r\n private selectedEmployeesStore: SelectedEmployeesStore,\r\n private wizardHelperService: WizardHelperService,\r\n private loader: LoaderService,\r\n private _routingService: RoutingService,\r\n private errorService: ErrorService,\r\n private formBuilder: FormBuilder\r\n ) {\r\n this.selectedEmployees = [];\r\n this.selectedMembers = [];\r\n this.selectedMember = new Employee();\r\n this.form = this.formBuilder.group({\r\n orders: new FormArray([]),\r\n });\r\n\r\n this.addCheckboxes();\r\n }\r\n\r\n private addCheckboxes() {\r\n this.selectedMembers.forEach((o, i) => {\r\n const control = new FormControl(i === 0); // if first item set to true, else false\r\n (this.form.controls['orders'] as FormArray).push(control);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.loader.start();\r\n // this.initTabs();\r\n this.auth\r\n .getClaims()\r\n .then((member) => {\r\n this.member = member;\r\n this.getUserCorp();\r\n })\r\n .catch((reason) => {});\r\n document.addEventListener(\"af-check-click\", (event) => {\r\n switch ((event).detail.state) {\r\n case \"checked\":\r\n this.selectedMembers.push((event).detail.ref);\r\n this.isBulkExit = true;\r\n break;\r\n case \"unchecked\":\r\n const deselectedEmpIndex = this.selectedMembers.findIndex(\r\n ({ EmployeeNumber }) =>\r\n EmployeeNumber === (event).detail.ref.EmployeeNumber\r\n );\r\n if (deselectedEmpIndex > -1) {\r\n this.selectedMembers.splice(deselectedEmpIndex, 1);\r\n }\r\n if (this.selectedMembers.length > 0) {\r\n } else {\r\n this.isBulkExit = false;\r\n }\r\n break;\r\n default:\r\n console.error(\"unknown state\");\r\n break;\r\n }\r\n });\r\n document.addEventListener(\"af-member-resignation-view\", (event) => {\r\n this.selectedEmployees.push((event).detail.member);\r\n this.showWiz = true;\r\n this.showWizardStep1();\r\n });\r\n document.addEventListener(\"af-member-resignation-submition\", (event) => {\r\n this.selectedMembers.push((event).detail.member);\r\n this.showWiz = true;\r\n this.showWizardStep1();\r\n });\r\n // catch event from submit button\r\n document.addEventListener(\"af-selectedEmp-cleanup\", (event) => {\r\n this.showWiz = false;\r\n this.selectedMembers.forEach((element) => {\r\n this.userInfo.deselectFromPill;\r\n });\r\n this.selectedEmployees = [];\r\n this.selectedMembers = [];\r\n this.isBulkExit = false;\r\n this.selectedEmployeesStore.setCollectionState(this.selectedEmployees);\r\n this.OnSearchAll();\r\n });\r\n }\r\n getUserCorp() {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n var corpId = this.member!.profile['CorporateId'];\r\n const url = `${appsettings.serverUrl}${appsettings.endPoints.corporateUrl}/${corpId}`;\r\n this.httpClient.get(url, options).subscribe(\r\n (resp: any) => {\r\n this.fundId = JSON.parse(resp[\"retirementData\"])[\"benefits\"].map(\r\n (r: any) => r.availableBenefitOptions.schemeNo\r\n );\r\n this.corp = resp;\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({\r\n PageNumber,\r\n PageSize,\r\n OverallCount,\r\n PagesInSet,\r\n MemberSearchDto,\r\n }) => {\r\n console.log(MemberSearchDto)\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.lastRecord =\r\n OverallCount < 10 ? MemberSearchDto.length : PageSize;\r\n this.totalMemberCount = OverallCount;\r\n this.firstRecord = PageSize - 19;\r\n this.emps = MemberSearchDto;\r\n this.loader.stop();\r\n },\r\n (err) => {\r\n \r\n console.log(\"error on searchgrid:\", err)\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(err);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while searching for members - \" + errorMessage\r\n );\r\n }\r\n );\r\n },\r\n (err) => {\r\n console.log(\"error on corporateid:\", err)\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(`Could not get Search Results`);\r\n }\r\n );\r\n }\r\n\r\n nextPage() {\r\n this.loader.start();\r\n this.page++;\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({ PageNumber, PageSize, OverallCount, PagesInSet, MemberSearchDto }) => {\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.emps = MemberSearchDto;\r\n this.totalMemberCount = OverallCount;\r\n this.lastRecord = this.lastRecord + PageSize;\r\n this.firstRecord = this.lastRecord - 19;\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n prevPage() {\r\n this.loader.start();\r\n this.page--;\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({ PageNumber, PageSize, OverallCount, PagesInSet, MemberSearchDto }) => {\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.emps = MemberSearchDto;\r\n this.totalMemberCount = OverallCount;\r\n this.lastRecord = this.lastRecord - PageSize;\r\n this.firstRecord = this.lastRecord - 19;\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n\r\n initTabs() {\r\n // get tab links and tab panels\r\n const tabLinks: any = document.querySelectorAll(\".tabs a\");\r\n const tabPanels: any = document.querySelectorAll(\".tabs-panel\");\r\n // Tabbing logic\r\n for (const el of tabLinks) {\r\n el.addEventListener(\"click\", (e: any) => {\r\n e.preventDefault();\r\n\r\n document\r\n .querySelector(\".tabs li.active\")!.classList.remove(\"border-black\");\r\n document\r\n .querySelector(\".tabs li.active\")!.classList.add(\"text-gray-500\");\r\n document\r\n .querySelector(\".tabs li.active\")!.classList.remove(\"border-b-2\");\r\n document\r\n .querySelector(\".tabs li.active\")!.classList.remove(\"active\");\r\n\r\n document\r\n .querySelector(\".tabs-panel.active\")!.classList.add(\"hidden\");\r\n document\r\n .querySelector(\".tabs-panel.active\")!.classList.remove(\"active\");\r\n\r\n const parentListItem = el.parentElement;\r\n parentListItem.classList.add(\"active\");\r\n parentListItem.classList.add(\"border-black\");\r\n parentListItem.classList.add(\"border-b-2\");\r\n parentListItem.classList.remove(\"text-gray-500\");\r\n const index = [...parentListItem.parentElement.children].indexOf(\r\n parentListItem\r\n );\r\n const panel = [...tabPanels].filter(\r\n (el) => el.getAttribute(\"data-index\") === index\r\n );\r\n panel[0].classList.add(\"active\");\r\n panel[0].classList.remove(\"hidden\");\r\n });\r\n }\r\n }\r\n\r\n initSearchGrid(FundId: any): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n let billGroupParam = \"\";\r\n if (sessionStorage.getItem(\"userProfileBillGroups\") && sessionStorage.getItem(\"userProfileBillGroups\") !== 'undefined') {\r\n let userProfileBillGroups = JSON.parse(\r\n sessionStorage.getItem(\"userProfileBillGroups\")!\r\n );\r\n userProfileBillGroups.forEach((billGroup: any) => {\r\n billGroupParam = billGroupParam + billGroup.billingGroupCode + \",\";\r\n });\r\n billGroupParam.charAt(billGroupParam.length - 1) === \",\"\r\n ? (billGroupParam = billGroupParam.slice(0, billGroupParam.length - 1))\r\n : \"\";\r\n }\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalMemberServicesUrl}${appsettings.endPoints.memberSearch}?Funds=${FundId}&SearchString=${this.searchCriteria}&PageNumber=${this.page}&PageSize=20&SearchOrder=${this.orderBy}&SortByAscending=${this.sortAsc}&Billgroups=${billGroupParam}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n search() {\r\n this.loader.start();\r\n if (this.searchString == null || this.searchString === \"\") {\r\n this.searchCriteria = \"*\";\r\n } else {\r\n this.searchCriteria = this.searchString;\r\n }\r\n\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({ PageNumber, PageSize, OverallCount, PagesInSet, MemberSearchDto }) => {\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.lastRecord = OverallCount < 10 ? MemberSearchDto.length : PageSize;\r\n this.firstRecord = PageSize - 19;\r\n this.totalMemberCount = OverallCount;\r\n this.emps = MemberSearchDto;\r\n this.loader.stop();\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n if (errorMessage && errorMessage !== \"\") {\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while searching for members - \" + errorMessage\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n sort(criteria: string) {\r\n this.filterCounter++;\r\n this.loader.start();\r\n this.sortAsc = !this.sortAsc;\r\n this.orderBy = criteria;\r\n if (this.filterCounter == 1 && this.orderBy !== \"Surname\") {\r\n this.sortAsc = true;\r\n }\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({ PageNumber, PageSize, OverallCount, PagesInSet, MemberSearchDto }) => {\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.totalMemberCount = OverallCount;\r\n this.lastRecord = OverallCount < 10 ? MemberSearchDto.length : PageSize;\r\n this.firstRecord = PageSize - 19;\r\n this.emps = MemberSearchDto;\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n\r\n onSelectedOpt(data: any) {\r\n this.selectedOption = data;\r\n }\r\n\r\n showWizardStep1(flag: string = \"\") {\r\n this.initSelectedEmployee();\r\n if(this.selectedOption == undefined && flag ==\"bulkExit\" )\r\n {\r\n this.showWiz = this.wizardHelperService.wizardIntroShow = false;\r\n this.errorService.openErrorPopup(\"Please select action to proceed.\")\r\n }\r\n else if (this.selectedOption) {\r\n this.isBulkExit = flag == \"bulkExit\";\r\n switch (this.selectedOption) {\r\n case selectedOptionsMap.startResignation.displayText:\r\n this.option = selectedOptionsMap.startResignation.code;\r\n break;\r\n case selectedOptionsMap.cancelRequest.displayText:\r\n this.option = selectedOptionsMap.cancelRequest.code;\r\n break;\r\n case selectedOptionsMap.startDismissalProcess.displayText:\r\n this.option = selectedOptionsMap.startDismissalProcess.code;\r\n break;\r\n case selectedOptionsMap.startQualifyingRetrenchments.displayText:\r\n this.option = selectedOptionsMap.startQualifyingRetrenchments.code;\r\n break;\r\n case selectedOptionsMap.startNonQualifyingRetrenchments.displayText:\r\n this.option = selectedOptionsMap.startNonQualifyingRetrenchments.code;\r\n break;\r\n default:\r\n console.log(\"Unknown option\");\r\n }\r\n this.showWiz = this.wizardHelperService.wizardIntroShow = true;\r\n } else {\r\n this.option = this.selectedEmployees[0].optionId;\r\n this.status = this.selectedEmployees[0].statusId;\r\n this.wizardHelperService.wizardIntroShow = true;\r\n this.isBulkExit = false;\r\n this.showWiz = this.wizardHelperService.wizardIntroShow;\r\n }\r\n }\r\n\r\n toggle(id: string) {\r\n var x:HTMLElement | null = document.getElementById(id)!;\r\n if (x.style.display === \"none\") {\r\n x.style.display = \"grid\";\r\n } else {\r\n x.style.display = \"none\";\r\n }\r\n }\r\n\r\n OnSearchAll() {\r\n this.loader.start();\r\n this.searchCriteria = \"*\";\r\n this.page = 1;\r\n this.orderBy = \"Surname\";\r\n this.sortAsc = true;\r\n this.initSearchGrid(this.fundId).subscribe(\r\n ({ PageNumber, PageSize, OverallCount, PagesInSet, MemberSearchDto }) => {\r\n this.pageInfo = { PageNumber, PageSize, OverallCount, PagesInSet };\r\n this.totalMemberCount = OverallCount;\r\n this.lastRecord = OverallCount < 10 ? MemberSearchDto.length : PageSize;\r\n this.firstRecord = PageSize - 19;\r\n this.emps = MemberSearchDto;\r\n this.searchString = \"\";\r\n this.loader.stop();\r\n },\r\n (err) => {\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n\r\n onBack() {\r\n this._routingService.goBack();\r\n }\r\n\r\n onClosePill(data: any) {\r\n this.userInfo.deselectFromPill(data);\r\n }\r\n\r\n onBulkSelectedOpt(data: any) {\r\n this.selectedOption = data;\r\n }\r\n\r\n initSelectedEmployee() {\r\n for (let i = 0; i < this.selectedEmployees.length; i++) {\r\n if (this.selectedEmployees[i].statusId) {\r\n if (this.selectedEmployees[i].statusId == 1) {\r\n this.selectedEmployees[i].employerName = this.corp.name;\r\n this.selectedEmployees[i].hrRepresentativeId = this.member!.profile.sub;//\"7b2d8739-a55e-4cc4-b3fb-59fe3f799bd1\" //\r\n this.selectedEmployees[i].userName = this.member!.profile.name!;\r\n this.selectedEmployees[i].emailAddress = this.member!.profile.email!;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.selectedMembers.length; i++) {\r\n this.selectedMember = new Employee();\r\n this.selectedMember.employeeId = this.selectedMembers[i].fkPersonID;\r\n this.selectedMember.firstName = this.selectedMembers[i].FirstName;\r\n this.selectedMember.surname = this.selectedMembers[i].Surname;\r\n this.selectedMember.initials = this.selectedMembers[i].Initials;\r\n this.selectedMember.dateOfBirth = new Date(\r\n this.selectedMembers[i].DateOfBirth\r\n );\r\n this.selectedMember.identityValue = this.selectedMembers[i].IdentityValue;\r\n this.selectedMember.identityTypeId = this.selectedMembers[i].IdentityType;\r\n this.selectedMember.fundId = this.selectedMembers[i].FundNumber;\r\n this.selectedMember.employeeNumber =\r\n this.selectedMembers[i].EmployeeNumber;\r\n this.selectedMember.personalEmail = this.selectedMembers[i].Email;\r\n this.selectedMember.telephoneNumber = this.selectedMembers[i].TelNumber;\r\n this.selectedMember.mobileNumber = this.selectedMembers[i].MobileNumber;\r\n this.selectedMember.membershipNumber =\r\n this.selectedMembers[i].SubscriptionNumber;\r\n this.selectedMember.employerName = this.corp.name;\r\n this.selectedMember.statusId = 0;\r\n this.selectedMember.workEmail = \"\";\r\n this.selectedMember.exitDate = null;\r\n this.selectedMember.employeeUserName = \"\";\r\n this.selectedMember.primaryEmail = \"\";\r\n this.selectedMember.isHrEmailAddress = false;\r\n this.selectedMember.indebtedToEmployer = false;\r\n this.selectedMember.amountOfDeduction = 0;\r\n this.selectedMember.hrRepresentativeId = this.member!.profile.sub;//\"7b2d8739-a55e-4cc4-b3fb-59fe3f799bd1\";//\r\n this.selectedMember.userName = this.member!.profile.name!;\r\n this.selectedMember.emailAddress = this.member!.profile.email!;\r\n this.getMemberDetails(\r\n this.selectedMembers[i].FundNumber,\r\n this.selectedMembers[i].SubscriptionNumber\r\n ).subscribe(\r\n (val) => {\r\n if (val.employee && val.employee.exit) {\r\n this.exitID = val.employee.exit.employeeId;\r\n }\r\n },\r\n (error) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the member details.\"\r\n );\r\n }\r\n );\r\n this.selectedEmployees.splice(i, 0, this.selectedMember);\r\n }\r\n }\r\n\r\n getMemberDetails(FundNumber: string, SubscriptionNumber: string): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.memberDetails}/${FundNumber}/${SubscriptionNumber}`;\r\n this.loader.stop();\r\n return this.httpClient.get(url, options);\r\n \r\n }\r\n\r\n retrenchmentTip() {\r\n this.showRetrenchmentTip = true;\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
0\" class=\"w-2/3 ml-24 mt-3 mb-3\">\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
0\" class=\"bodyContent ml-20\">\r\n
    \r\n
  • \r\n All \r\n
  • \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ?\r\n \r\n \r\n \r\n \r\n submit\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Name\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Surname\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Employee number\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Status
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
0\">\r\n
\r\n
\r\n {{ firstRecord }} - {{ lastRecord }} of\r\n {{ pageInfo.OverallCount }}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n

No members returned for the given information

\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n\r\n\r\n
Types of Retrenchments
\r\n
\r\n Qualifying Retrenchment occurs when the employer:\r\n
\r\n
\r\n -\r\n \r\n has stopped or intends to stop the job the member was employed to do.\r\n \r\n
\r\n
\r\n -\r\n no longer needs the member's service.\r\n
\r\n
\r\n Non-qualifying Retrenchment occurs when the member:\r\n
\r\n
\r\n -\r\n \r\n owns more than 5% of the issued share capital or member's interest in the\r\n company the member is leaving.\r\n \r\n
\r\n
\r\n -\r\n \r\n does not meet the criteria for Qualifying retrenchment.\r\n \r\n
\r\n\r\n","import { Component, OnInit, Input, Output,EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-selected-user-pill',\r\n templateUrl: './selected-user-pill.component.html',\r\n styleUrls: ['./selected-user-pill.component.css']\r\n})\r\nexport class SelectedUserPillComponent implements OnInit {\r\n\r\n\r\n @Input() selectedEmp: any;\r\n @Input() FirstName: String;\r\n @Input() LastName: String;\r\n @Input() Initial: string;\r\n @Output() close = new EventEmitter();\r\n @Input() employeeNumber: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n \r\n\r\n }\r\n\r\n onClose(){\r\n this.close.emit(this.selectedEmp);\r\n }\r\n}\r\n","
\r\n
{{(selectedEmp.Initials && selectedEmp.Initials.length > 1) ? selectedEmp.Initials.substring(0,1) : selectedEmp.Initials}}
\r\n
\r\n
{{selectedEmp.FirstName}} 
\r\n
{{selectedEmp.Surname}}
\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, Output, EventEmitter } from '@angular/core';\r\nimport { Employee } from '../../models/employees.model';\r\nimport { LoaderService } from './../../../../services/loader.service';\r\nimport { ErrorService } from './../../../../services/error.service';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { FormGroup, FormControl } from '@angular/forms';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport appsettings from \"../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: 'app-user-info',\r\n templateUrl: './user-info.component.html',\r\n styleUrls: ['./user-info.component.scss']\r\n})\r\nexport class UserInfoComponent implements OnInit {\r\n options: string[] = [\r\n 'Start resignation process',\r\n 'Start qualifying retrenchment process',\r\n 'Start non-qualifying retrenchment process',\r\n 'Start dismissal process'\r\n ];\r\n\r\n @Input() emp: any;\r\n selectedEmployee: Employee;\r\n employeeIdentityValue: string;\r\n collapsed = true;\r\n selectedOption: any = undefined;\r\n @Output() selectedOptions = new EventEmitter();\r\n memberDetails: any;\r\n memberStatus: any;\r\n showView: Boolean;\r\n showCancelRequest: Boolean;\r\n bulkSelection: Boolean;\r\n resp: any;\r\n statusDescription: string;\r\n isdropdownEnabled: boolean = true;\r\n isChecked: Boolean = false;\r\n checkBoxForm: FormGroup;\r\n chkName: string;\r\n showRetrenchmentTip: boolean;\r\n openSectionId: any = null;\r\n isInfoIconEnabled: boolean = true;\r\n\r\n constructor(\r\n private loader: LoaderService,\r\n private errorService: ErrorService,\r\n private auth: AuthenticationService,\r\n private httpClient: HttpClient\r\n ) {\r\n this.selectedEmployee = new Employee();\r\n }\r\n ngOnInit() {\r\n this.chkName = this.emp.EmployeeNumber;\r\n this.showMemberDetails();\r\n this.onCreateCheckBoxForm();\r\n }\r\n\r\n onCreateCheckBoxForm() {\r\n this.checkBoxForm = new FormGroup({\r\n chkBox: new FormControl(false)\r\n });\r\n }\r\n\r\n initEmployeeData(data: any){\r\n if(data.employee == null || data.employee.exit == null ){\r\n this.options = [];\r\n this.options = ['Start resignation process',\r\n 'Start qualifying retrenchment process','Start non-qualifying retrenchment process', 'Start dismissal process'];\r\n this.statusDescription = 'New';\r\n this.bulkSelection = true;\r\n }\r\n\r\n if (data.employee) {\r\n this.selectedEmployee.fkPersonId = this.emp.fkPersonID;\r\n this.selectedEmployee.employeeId = data.employee.employeeId;\r\n this.selectedEmployee.firstName = data.employee.firstName;\r\n this.selectedEmployee.surname = data.employee.surname;\r\n this.selectedEmployee.initials = data.employee.initials;\r\n this.selectedEmployee.dateOfBirth = data.employee.dateOfBirth;\r\n this.employeeIdentityValue = this.selectedEmployee.identityValue = data.employee.identityValue;\r\n this.selectedEmployee.identityTypeId = data.employee.identityTypeId;\r\n this.selectedEmployee.fundId = data.employee.fundId;\r\n this.selectedEmployee.employeeNumber = data.employee.employeeNumber;\r\n this.selectedEmployee.personalEmail = data.employee.personalEmail;\r\n this.selectedEmployee.telephoneNumber = data.employee.telephoneNumber;\r\n this.selectedEmployee.mobileNumber = data.employee.mobileNumber;\r\n this.selectedEmployee.membershipNumber = data.employee.membershipNumber;\r\n this.selectedEmployee.employerName = data.employee.employerName;\r\n this.selectedEmployee.workEmail = data.employee.workEmail;\r\n this.selectedEmployee.exitDate = data.employee.exitDate;\r\n this.selectedEmployee.exitNoticeDate = data.employee.exitNoticeDate;\r\n this.selectedEmployee.employeeUserName = data.employee.employeeUserName;\r\n this.selectedEmployee.primaryEmail = data.employee.primaryEmail;\r\n this.selectedEmployee.isHrEmailAddress = data.employee.isHrEmailAddress;\r\n this.selectedEmployee.indebtedToEmployer = data.employee.indebtedToEmployer;\r\n this.selectedEmployee.amountOfDeduction = data.employee.amountOfDeduction;\r\n this.selectedEmployee.hrRepresentativeId = data.employee.hrRepresentative.hrRepresentativeId;\r\n this.selectedEmployee.userName = data.employee.hrRepresentative.userName;\r\n this.selectedEmployee.emailAddress = data.employee.hrRepresentative.emailAddress;\r\n this.selectedEmployee.contactNumber = data.employee.hrRepresentative.contactNumber;\r\n this.selectedEmployee.address1 = data.employee.address1;\r\n this.selectedEmployee.address2 = data.employee.address2;\r\n this.selectedEmployee.address3 = data.employee.address3;\r\n this.selectedEmployee.postalCode = data.employee.postalCode;\r\n this.selectedEmployee.Country = data.employee.country;\r\n if(data.employee.exit){\r\n this.selectedEmployee.optionId = data.employee.exit.actionId;\r\n this.selectedEmployee.statusId = data.employee.exit.statusId;\r\n\r\n if (data.employee.exit.statusId == 1) {\r\n this.showView = true;\r\n this.showCancelRequest = true;\r\n this.isInfoIconEnabled =false;\r\n this.bulkSelection = false;\r\n this.options = [];\r\n this.options = [\r\n \"Cancel request\"\r\n ];\r\n this.statusDescription = 'Started';\r\n }\r\n // if (data.employee.exit.statusId == 2) {\r\n // this.showView = false;\r\n // this.showCancelRequest = true;\r\n // this.bulkSelection = false;\r\n // this.options = [];\r\n // this.options = [\"Cancel request\"];\r\n // this.statusDescription = 'Incomplete';\r\n // }\r\n\r\n if (data.employee.exit.statusId == 3) {\r\n this.showView = false;\r\n this.bulkSelection = false;\r\n this.showCancelRequest = false;\r\n this.options = [];\r\n this.isdropdownEnabled = false;\r\n this.statusDescription = 'Completed';\r\n }\r\n\r\n if( data.employee.exit.statusId == 4 ){\r\n this.showCancelRequest = false;\r\n this.options = [];\r\n this.options = ['Start resignation process',\r\n 'Start qualifying retrenchment process','Start non-qualifying retrenchment process', 'Start dismissal process'];\r\n this.statusDescription = 'New';\r\n this.bulkSelection = true;\r\n }\r\n\r\n if(data.employee.exit.statusId == 5){\r\n this.showCancelRequest = false;\r\n this.statusDescription = 'Submitted For Processing';\r\n this.bulkSelection = false;\r\n }\r\n if(data.employee.exit.statusId == 6){\r\n this.showView = true;\r\n this.options = [];\r\n this.showCancelRequest = false;\r\n this.options = [\"Cancel request\"];\r\n this.statusDescription = 'Cancelled';\r\n this.bulkSelection = false;\r\n this.isInfoIconEnabled =false;\r\n }\r\n if (data.employee.exit.statusId == 8) {\r\n this.showView = true;\r\n this.showCancelRequest = true;\r\n this.isInfoIconEnabled =false;\r\n this.bulkSelection = false;\r\n this.options = [];\r\n this.options = [\r\n \"Cancel request\"\r\n ];\r\n //this.statusDescription = 'Submission Failed';\r\n this.statusDescription = 'Cancelled';\r\n }\r\n }\r\n }\r\n }\r\n\r\n showMemberDetails(){\r\n this.getMemberDetails().subscribe((val) => {\r\n this.resp = val;\r\n console.log(\"resp:\", val)\r\n this.initEmployeeData(this.resp);\r\n }, (error) => {\r\n this.errorService.openErrorPopup('An error occurred while getting the member details. ');\r\n });\r\n }\r\n\r\n onViewClick() {\r\n this.showWizard();\r\n }\r\n\r\n onCancelRequestClick(event: Event, emp: any) {\r\n this.selectedOptions.emit('Cancel request');\r\n event.stopPropagation();\r\n // get element\r\n const el = document.getElementById(emp.fkPersonID)!;\r\n // create event\r\n el.dispatchEvent(\r\n new CustomEvent('af-member-resignation-submition', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-member-resignation-submition\",\r\n member: emp\r\n }\r\n })\r\n );\r\n }\r\n\r\n showWizard(){\r\n // get element\r\n const el = document.getElementById(this.selectedEmployee.fkPersonId)!;\r\n // create event\r\n el.dispatchEvent(\r\n new CustomEvent('af-member-resignation-view', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-member-resignation-view\",\r\n member: this.selectedEmployee\r\n }\r\n })\r\n );\r\n }\r\n\r\n getMemberDetails(): Observable {\r\n console.log(\"initEmployeeData\")\r\n console.log(this.emp)\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.memberDetails}/${this.emp.FundNumber}/${this.emp.SubscriptionNumber}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n getMemberStatus(): Observable {\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.employeeStatus}/${this.emp.fkPersonID}/exits`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n submit(event: Event, emp: any){\r\n if(this.selectedOption == undefined)\r\n {\r\n this.errorService.openErrorPopup(\"Please select action to proceed.\")\r\n }else{\r\n event.stopPropagation();\r\n // get element\r\n const el = document.getElementById(emp.fkPersonID)!;\r\n // create event\r\n el.dispatchEvent(\r\n new CustomEvent('af-member-resignation-submition', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-member-resignation-submition\",\r\n member: emp\r\n }\r\n })\r\n );\r\n }\r\n\r\n }\r\n\r\n toggle(event: any, id: any) {\r\n event.stopPropagation();\r\n var x = document.getElementById(id)!;\r\n var sections = document.querySelectorAll(\"section\");\r\n var openSection: HTMLElement | null = null;\r\n var openDropdown: HTMLElement | null = null;\r\n \r\n for (let i = 0; i < sections.length; i++) {\r\n if (sections[i].style.display === \"grid\") {\r\n openSection = sections[i] as HTMLElement;\r\n break;\r\n }\r\n }\r\n \r\n openDropdown = document.querySelector(\".dropdown-container\") as HTMLElement;\r\n\r\n if (openDropdown) {\r\n openDropdown.style.display=\"none\";\r\n }\r\n \r\n if (openSection && openSection.id !== id) {\r\n openSection.style.display = \"none\";\r\n }\r\n \r\n if (x.style.display === \"none\") {\r\n x.style.display = \"grid\";\r\n this.showMemberDetails();\r\n } else {\r\n x.style.display = \"none\";\r\n }\r\n this.selectedOptions.emit(this.selectedOption);\r\n }\r\n\r\n deselectFromPill(data:any) {\r\n const el = document.getElementById(data.EmployeeNumber)!;\r\n if (!this.isChecked) {\r\n el.dispatchEvent(\r\n new CustomEvent('af-check-click', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-check\",\r\n state: \"unchecked\",\r\n ref: data\r\n }\r\n })\r\n );\r\n //}\r\n //this.isChecked = !this.isChecked;\r\n el.classList.add('border-gray-500');\r\n el.classList.add('border-2');\r\n el.classList.remove('bg-orange-600');\r\n\r\n } else {\r\n el.dispatchEvent(\r\n new CustomEvent('af-check-click', {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-check\",\r\n state: \"checked\",\r\n ref: data\r\n }\r\n })\r\n );\r\n el.classList.add('bg-orange-600');\r\n el.classList.remove('border-2');\r\n el.classList.remove('border-gray-500');\r\n }\r\n }\r\n\r\n onSelectedOpt(data: any){\r\n this.selectedOption = data;\r\n this.selectedOptions.emit(this.selectedOption);\r\n }\r\n\r\n retrenchmentTip() {\r\n this.showRetrenchmentTip = true;\r\n }\r\n\r\n closeDetails(id: any){\r\n const x = document.getElementById(id);\r\n if (x) {\r\n x.style.display = 'none';\r\n this.openSectionId = null;\r\n }\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {{ emp.Initials.charAt(0) }}\r\n
\r\n
{{ emp.FirstName }}
\r\n
\r\n
\r\n \r\n {{ emp.Surname }}\r\n \r\n \r\n {{ emp.EmployeeNumber }}\r\n \r\n \r\n
\r\n {{ statusDescription }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n

Retiring in 3 months

\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n\r\n\r\n
\r\n
Details
\r\n
\r\n
\r\n ID / Passport:\r\n {{ employeeIdentityValue }}\r\n
\r\n
\r\n Fund name: {{ emp.FundName }}\r\n
\r\n
Status
\r\n {{\r\n statusDescription\r\n }}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n ?\r\n \r\n \r\n \r\n \r\n \r\n submit\r\n \r\n \r\n cancel request\r\n
\r\n \r\n view\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n\r\n\r\n
Types of Retrenchments
\r\n
\r\n Qualifying Retrenchment occurs when the employer:\r\n
\r\n
\r\n -\r\n \r\n has stopped or intends to stop the job the member was employed to do.\r\n \r\n
\r\n
\r\n -\r\n no longer needs the member's service.\r\n
\r\n
\r\n Non-qualifying Retrenchment occurs when the member:\r\n
\r\n
\r\n -\r\n \r\n owns more than 5% of the issued share capital or member's interest in the\r\n company the member is leaving.\r\n \r\n
\r\n
\r\n -\r\n \r\n does not meet the criteria for Qualifying retrenchment.\r\n \r\n
\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport {\r\n FormGroup,\r\n FormBuilder,\r\n FormControl,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { Employee } from \"../../../../models/employees.model\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { UtilitiesService } from \"./../../../../../../../../src/app/services/utilities.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ErrorService } from \"./../../../../../../../../src/app/services/error.service\";\r\nimport { LoaderService } from \"./../../../../../../../../src/app/services/loader.service\";\r\nimport { InfoPopupService } from \"./../../../../../../../../src/app/services/info-popup-service.service\";\r\nimport { getErrorMessage } from \"../../../../../../shared/common-functions\";\r\nimport { WizardHelperService } from \"src/app/services/wizard-helper.service\";\r\nimport appsettings from \"../../../../../../../assets/appsettings.json\"\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\n\r\n@Component({\r\n selector: \"app-send-email-last-step\",\r\n templateUrl: \"./send-email.last-step.component.html\",\r\n styleUrls: [\"./send-email.last-step.component.scss\"],\r\n})\r\nexport class StepThreeComponent implements OnInit {\r\n @Input() selectedEmployee: Employee;\r\n @Input() selectedEmployees: Employee[];\r\n @Input() step: number;\r\n @Input() numberOfSteps: number;\r\n @Input() showPrev: boolean;\r\n @Input() option: number;\r\n @Input() status: number;\r\n @Input() isBulkExit: boolean;\r\n @Output() close = new EventEmitter();\r\n @Output() prev = new EventEmitter();\r\n anyDebtForm: FormGroup;\r\n isChecked: Boolean = false;\r\n showAmount: Boolean = false;\r\n checkBoxId: string;\r\n private _headers: HttpHeaders;\r\n emailSent: any;\r\n success: boolean = false;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private authenticationService: AuthenticationService,\r\n private wizardHelperService: WizardHelperService,\r\n private httpClient: HttpClient,\r\n private utils: UtilitiesService,\r\n private errorService: ErrorService,\r\n private infoPopupService: InfoPopupService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.anyDebtForm = this.formBuilder.group({});\r\n }\r\n\r\n onCreateAnyDebtForm() {\r\n this.anyDebtForm = this.formBuilder.group({\r\n amount: new FormControl(\"\", [Validators.required]),\r\n });\r\n }\r\n\r\n toggle() {\r\n const el = document.getElementById(this.checkBoxId)!;\r\n if (!this.isChecked) {\r\n el.classList.add(\"bg-orange-600\");\r\n el.classList.remove(\"border-2\");\r\n el.classList.remove(\"border-gray-500\");\r\n } else {\r\n el.classList.add(\"border-gray-500\");\r\n el.classList.add(\"border-2\");\r\n el.classList.remove(\"bg-orange-600\");\r\n }\r\n this.isChecked = !this.isChecked;\r\n this.showAmount = this.isChecked;\r\n }\r\n\r\n onClose() {\r\n const el = document.getElementById(\"close\")!;\r\n el.dispatchEvent(\r\n new CustomEvent(\"af-selectedEmp-cleanup\", {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-selectedEmp-cleanup\",\r\n },\r\n })\r\n );\r\n this.wizardHelperService.wizardIntroShow = false;\r\n this.close.emit();\r\n }\r\n\r\n onPrev() {\r\n this.prev.emit();\r\n }\r\n\r\n onSendEmail() {\r\n this.loader.start();\r\n if (this.isBulkExit) {\r\n for (let i = 0; i < this.selectedEmployees.length; i++) {\r\n if (\r\n this.selectedEmployees[i].statusId == 0 ||\r\n this.selectedEmployees[i].statusId == 4\r\n ) {\r\n this.sendEmail(this.selectedEmployees[i]).subscribe(\r\n (resp) => {\r\n this.emailSent = resp;\r\n this.loader.stop();\r\n if (this.emailSent[0].isSuccess) {\r\n this.infoPopupService.openInfoPopup(\"Email sent successfully.\");\r\n this.onClose();\r\n } else {\r\n this.success = false;\r\n //this.errorService.openErrorPopup( `There was an error sending the email. ${this.emailSent[0].message}.`);\r\n this.onClose();\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n console.log(error.statusText);\r\n }\r\n );\r\n }\r\n }\r\n } else {\r\n this.sendEmail(this.selectedEmployee).subscribe(\r\n (resp) => {\r\n this.emailSent = resp;\r\n this.loader.stop();\r\n if (this.emailSent[0].isSuccess) {\r\n this.infoPopupService.openInfoPopup(\"Email sent successfully.\");\r\n this.onClose();\r\n } else {\r\n this.errorService.openErrorPopup(\r\n `There was an error sending the email. ${this.emailSent[0].message}.`\r\n );\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n this.errorService.openErrorPopup(\r\n \"Error while sending the email: \" + errorMessage\r\n );\r\n }\r\n );\r\n }\r\n }\r\n\r\n sendEmail(employee: Employee): Observable {\r\n const kickoffDate = this.utils.convertDateShortDash(employee.exitDate);\r\n const data = {\r\n exits: [\r\n {\r\n employeeId: employee.employeeId,\r\n kickoffDate: kickoffDate,\r\n action: this.option,\r\n },\r\n ],\r\n };\r\n\r\n //this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.authenticationService.getAuthorizationHeaderValue()\r\n ).set(\"Content-Type\", \"application/json\");\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.exitEmployee}`;\r\n const options = { headers: headers };\r\n //const options = { headers: this._headers };\r\n if (this.status == 1) {\r\n return this.httpClient.put(url, data, options);\r\n } else {\r\n return this.httpClient.post(url, data, options);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Ready to begin the resignation process?
\r\n
Ready to begin the qualifying retrenchment process?
\r\n
Ready to begin the non-qualifying retrenchment process?
\r\n
Ready to begin the dismissal process?
\r\n
\r\n
Send {{selectedEmployee.firstName}} their resignation email and begin their resignation process
\r\n
Send {{selectedEmployee.firstName}} their retrenchment email and begin their qualifying retrenchment process
\r\n
Send {{selectedEmployee.firstName}} their retrenchment email and begin their non-qualifying retrenchment process
\r\n
Send {{selectedEmployee.firstName}} their dismissal email and begin their dismissal process
\r\n
\r\n
\r\n
{{(selectedEmployee.initials && selectedEmployee.initials.length > 1) ? selectedEmployee.initials.substring(0,1) : selectedEmployee.initials}}
\r\n

{{selectedEmployee.firstName}} {{selectedEmployee.surname}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Ready to begin the resignation process?
\r\n
Ready to begin the qualifying retrenchment process?
\r\n
Ready to begin the non-qualifying retrenchment process?
\r\n
Ready to begin the dismissal process?
\r\n
\r\n
Send resignation email and begin their resignation process
\r\n
Send retrenchment email and begin their qualifying retrenchment process
\r\n
Send retrenchment email and begin their non-qualifying retrenchment process
\r\n
Send dismissal email and begin their retrenchment process
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

To begin the resignation process for the member(s), you agree with the following:

\r\n

To begin the qualifying retrenchment process for the member(s), you agree with the following:

\r\n

To begin the non-qualifying retrenchment process for the member(s), you agree with the following:

\r\n

To begin the dismissal process for the member(s), you agree with the following:

\r\n
    \r\n
  1. The member(s) selected have left or are leaving your employment.
  2. \r\n
  3. The correct monthly contribution was deducted by yourselves in respect of the member(s) and paid to the fund up to the member’s leaving date.
  4. \r\n
  5. If there is any loss suffered as a result of incorrect information given by yourselves neither Alexforbes nor the fund are responsible for the losses.
  6. \r\n
  7. If the member does not submit a payment option the member will remain in the default option.
  8. \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{step}}\r\n
\r\n
\r\n of\r\n
\r\n
\r\n {{numberOfSteps}}\r\n
\r\n
\r\n Steps\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Prev\r\n
\r\n
\r\n
\r\n \r\n
\r\n Done\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, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Employee } from \"../../../../models/employees.model\";\r\nimport { ErrorService } from \"../../../../../../services/error.service\";\r\nimport { ValidationService } from \"../../../../../../services/validation.service\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { UtilitiesService } from \"../../../../../../services/utilities.service\";\r\nimport { LoaderService } from \"../../../../../../services/loader.service\";\r\nimport { User } from \"oidc-client\";\r\nimport { messages } from \"../../../../../../constants/warningAndErrorMessages\";\r\nimport { getErrorMessage } from \"../../../../../../shared/common-functions\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport { WizardHelperService } from \"src/app/services/wizard-helper.service\";\r\nimport appsettings from \"../../../../../../../assets/appsettings.json\"\r\nimport { DatePipe } from '@angular/common'\r\n\r\n@Component({\r\n selector: \"app-contact-details-step-one\",\r\n templateUrl: \"./contact-details.step-one.component.html\",\r\n styleUrls: [\"./contact-details.step-one.component.scss\"],\r\n})\r\nexport class StepOneComponent implements OnInit {\r\n @Input() selectedEmployee: Employee;\r\n @Input() step: number;\r\n @Input() numberOfSteps: number;\r\n @Input() showPrev: boolean;\r\n @Input() option: number;\r\n @Output() close = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n @Output() prev = new EventEmitter();\r\n @Output() saveData = new EventEmitter();\r\n @Input() exitID: any;\r\n public minDate = new Date(\r\n new Date().setFullYear(new Date().getFullYear() - 2)\r\n );\r\n\r\n contactDetailsForm: FormGroup;\r\n isEmailChecked: Boolean = false;\r\n isDebtChecked: Boolean = false;\r\n showAmount: Boolean = false;\r\n updatedEmployee: any;\r\n private _headers: HttpHeaders;\r\n today = new Date();\r\n defaultStartDate = new Date(this.today.getTime() + 1000 * 60 * 24);\r\n maxDate: any;\r\n changedEmployee: Employee;\r\n confirmRequest: Boolean = false;\r\n indebtednessTip: Boolean = false;\r\n showNoPersonalEmailWarn: Boolean = false;\r\n proceedWithoutPersonalEmail: Boolean = false;\r\n idTypes: { value: number; label: string }[];\r\n genders: any;\r\n country: any;\r\n selectedIdType: number = 0;\r\n validID: boolean = false;\r\n formSubmitted: boolean = false;\r\n emailSubmitted: boolean = false;\r\n member: User | null = null;\r\n messages = messages;\r\n\r\n constructor(\r\n private auth: AuthenticationService,\r\n private httpClient: HttpClient,\r\n private errorService: ErrorService,\r\n private validationService: ValidationService,\r\n private wizardHelperService: WizardHelperService,\r\n private utils: UtilitiesService,\r\n private loader: LoaderService,\r\n public datepipe: DatePipe\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.auth\r\n .getClaims()\r\n .then((member: any) => {\r\n this.member = member;\r\n })\r\n .catch((reason: any) => {console.log(reason)});\r\n this.idTypes = [\r\n { value: 0, label: \"* Select *\" },\r\n { value: 1, label: \"Identity Document\" },\r\n { value: 2, label: \"Passport\" },\r\n ];\r\n this.onCreateContactDetailsForm();\r\n this.initFormData();\r\n if (this.contactDetailsForm.get(\"identityValue\")!.value) {\r\n this.validateID();\r\n }\r\n }\r\n\r\n getRandomId() {\r\n return Math.floor(Math.random() * 6 + 1);\r\n }\r\n\r\n onCreateContactDetailsForm() {\r\n this.contactDetailsForm = new FormGroup({\r\n firstName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z- ]*$\"),\r\n ]),\r\n mobileNumber: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n surname: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z- ]*$\"),\r\n ]),\r\n workEmail: new FormControl(null, [Validators.email]),\r\n identityTypeId: new FormControl(\"\", [Validators.required]),\r\n identityValue: new FormControl(\"\", [Validators.required]),\r\n personalEmail: new FormControl(null, [\r\n Validators.email,\r\n Validators.pattern(\r\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n ),\r\n ]),\r\n exitDate: new FormControl(\"\", [Validators.required]),\r\n amount: new FormControl(\"\", [Validators.pattern(\"^$|^[0-9]*$\")]),\r\n dateOfBirth: new FormControl(\"\", [Validators.required]),\r\n indebtedToEmployer: new FormControl(false),\r\n isHrEmailAddress: new FormControl(true),\r\n });\r\n this.addControls(this.isHrEmailAddressControl!.value);\r\n this.isHrEmailAddressControl!.valueChanges.subscribe((isHrEmailAddress) => {\r\n this.addControls(isHrEmailAddress);\r\n });\r\n \r\n }\r\n\r\n get isHrEmailAddressControl() {\r\n return this.contactDetailsForm.get(\"isHrEmailAddress\");\r\n }\r\n\r\n initFormData() {\r\n this.contactDetailsForm\r\n .get(\"firstName\")!\r\n .setValue(this.selectedEmployee.firstName);\r\n this.contactDetailsForm\r\n .get(\"surname\")!\r\n .setValue(this.selectedEmployee.surname);\r\n this.contactDetailsForm\r\n .get(\"mobileNumber\")!\r\n .setValue(this.selectedEmployee.mobileNumber);\r\n this.contactDetailsForm\r\n .get(\"workEmail\")!\r\n .setValue(this.selectedEmployee.workEmail);\r\n this.contactDetailsForm\r\n .get(\"personalEmail\")!\r\n .setValue(this.selectedEmployee.personalEmail);\r\n this.contactDetailsForm\r\n .get(\"identityValue\")!\r\n .setValue(this.selectedEmployee.identityValue);\r\n\r\n this.selectedEmployee.dateOfBirth=new Date(this.selectedEmployee.dateOfBirth);\r\n this.contactDetailsForm\r\n .get(\"dateOfBirth\")!\r\n .setValue(this.datepipe.transform(this.selectedEmployee.dateOfBirth, 'yyyy-MM-dd'));\r\n \r\n this.selectedEmployee.exitDate = new Date(this.selectedEmployee.exitDate);\r\n \r\n if (this.selectedEmployee.statusId != 0) {\r\n this.contactDetailsForm\r\n .get(\"exitDate\")!\r\n .setValue(this.datepipe.transform(this.selectedEmployee.exitDate, 'yyyy-MM-dd'));\r\n } else {\r\n this.contactDetailsForm.get(\"exitDate\")!.setValue(this.datepipe.transform(new Date(), 'yyyy-MM-dd'));\r\n this.selectedEmployee.exitDate = new Date(this.today);\r\n }\r\n this.maxDate = this.datepipe.transform(this.selectedEmployee.exitDate, 'yyyy-MM-dd');\r\n\r\n this.contactDetailsForm\r\n .get(\"isHrEmailAddress\")!\r\n .setValue(this.selectedEmployee.isHrEmailAddress);\r\n this.contactDetailsForm\r\n .get(\"indebtedToEmployer\")!\r\n .setValue(this.selectedEmployee.indebtedToEmployer);\r\n const chkValue = this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.showAmount = chkValue;\r\n this.contactDetailsForm\r\n .get(\"amount\")!\r\n .setValue(this.selectedEmployee.amountOfDeduction);\r\n\r\n this.selectedIdType = Number(this.selectedEmployee.identityTypeId);\r\n this.contactDetailsForm.get(\"identityTypeId\")!.setValue(this.selectedIdType);\r\n }\r\n\r\n addControls(isHrEmailAddress: any) {\r\n const controls = {\r\n address1: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z0-9_ ]*$\"),\r\n ]),\r\n address2: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z0-9_ ]*$\"),\r\n ]),\r\n address3: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z0-9_ ]*$\"),\r\n ]),\r\n postalCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z0-9_ ]*$\"),\r\n ]),\r\n Country: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z0-9_ ]*$\"),\r\n ]),\r\n };\r\n if (isHrEmailAddress) {\r\n Object.keys(controls).forEach((key: string) => {\r\n this.contactDetailsForm.addControl(key, (controls as any)[key]);\r\n });\r\n } else {\r\n Object.keys(controls).forEach((key) => {\r\n this.contactDetailsForm.removeControl(key);\r\n });\r\n }\r\n }\r\n\r\n toggle(id: string) {\r\n if (id === \"emailCheckId\") {\r\n const chkValue = this.contactDetailsForm.get(\"isHrEmailAddress\")!.value;\r\n if (chkValue) {\r\n this.selectedEmployee.primaryEmail = this.member!.profile.email!;\r\n } else {\r\n this.selectedEmployee.primaryEmail = \"\";\r\n }\r\n this.selectedEmployee.isHrEmailAddress = chkValue;\r\n }\r\n\r\n if (id === \"debtCheckId\") {\r\n if (!this.isDebtChecked) {\r\n const chkValue =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.showAmount = chkValue;\r\n this.selectedEmployee.indebtedToEmployer = chkValue;\r\n }\r\n }\r\n }\r\n\r\n validateModel(): boolean {\r\n this.createSelectedEmployeeModel();\r\n this.formSubmitted = true;\r\n this.emailSubmitted = false;\r\n\r\n if (!this.selectedEmployee || this.contactDetailsForm.invalid) {\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required fields, in the correct format.\"\r\n );\r\n return false;\r\n } else {\r\n if (\r\n this.selectedEmployee.indebtedToEmployer &&\r\n this.selectedEmployee.amountOfDeduction == 0\r\n ) {\r\n this.errorService.openErrorPopup(\r\n \"Please fill in the amount of deduction\"\r\n );\r\n return false;\r\n } else if (\r\n this.selectedEmployee.isHrEmailAddress &&\r\n !this.selectedEmployee.primaryEmail\r\n ) {\r\n this.errorService.openErrorPopup(\r\n \"Please fill in the HR email address.\"\r\n );\r\n return false;\r\n } else if (!this.selectedEmployee.primaryEmail) {\r\n this.errorService.openErrorPopup(\"Please fill in an email address.\");\r\n return false;\r\n } else if (!this.selectedEmployee.identityTypeId || this.selectedEmployee.identityTypeId === '0') {\r\n this.errorService.openErrorPopup(\"Please select the ID Type\");\r\n return false;\r\n } else if (\r\n !this.proceedWithoutPersonalEmail &&\r\n (!this.selectedEmployee.personalEmail ||\r\n this.selectedEmployee.personalEmail === \"\")\r\n ) {\r\n this.showNoPersonalEmailWarn = true;\r\n return false;\r\n } else if (\r\n this.selectedEmployee.personalEmail !== \"\" &&\r\n this.selectedEmployee.personalEmail.toLowerCase() ===\r\n this.selectedEmployee.workEmail.toLowerCase()\r\n ) {\r\n this.errorService.openErrorPopup(\r\n \"Personal email and Work email cannot be same.\"\r\n );\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n onKeydown(event) {\r\n if (event.keyCode === 32 ) {\r\n return false;\r\n }\r\n }\r\n\r\n ondropDownChange(event: any) {\r\n this.contactDetailsForm.controls[\"identityTypeId\"].patchValue(\r\n event.target.selectedIndex\r\n );\r\n }\r\n\r\n public createSelectedEmployeeModel(): void {\r\n this.selectedEmployee.firstName =\r\n this.contactDetailsForm.get(\"firstName\")!.value;\r\n this.selectedEmployee.surname =\r\n this.contactDetailsForm.get(\"surname\")!.value;\r\n this.selectedEmployee.workEmail =\r\n this.contactDetailsForm.get(\"workEmail\")!.value;\r\n this.selectedEmployee.mobileNumber =\r\n this.contactDetailsForm.get(\"mobileNumber\")!.value;\r\n this.selectedEmployee.personalEmail =\r\n this.contactDetailsForm.get(\"personalEmail\")!.value;\r\n this.selectedEmployee.indebtedToEmployer =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.selectedEmployee.amountOfDeduction =\r\n this.contactDetailsForm.get(\"amount\")!.value;\r\n this.selectedEmployee.dateOfBirth =\r\n this.contactDetailsForm.get(\"dateOfBirth\")!.value;\r\n this.selectedEmployee.exitDate =\r\n this.contactDetailsForm.get(\"exitDate\")!.value;\r\n\r\n this.selectedEmployee.identityTypeId =\r\n this.contactDetailsForm.get(\"identityTypeId\")!.value;\r\n\r\n this.selectedEmployee.identityValue =\r\n this.contactDetailsForm.get(\"identityValue\")!.value;\r\n this.selectedEmployee.isHrEmailAddress =\r\n this.contactDetailsForm.get(\"isHrEmailAddress\")!.value;\r\n this.selectedEmployee.indebtedToEmployer =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n if (this.selectedEmployee.isHrEmailAddress) {\r\n this.selectedEmployee.address1 =\r\n this.contactDetailsForm.get(\"address1\")!.value;\r\n this.selectedEmployee.address2 =\r\n this.contactDetailsForm.get(\"address2\")!.value;\r\n this.selectedEmployee.address3 =\r\n this.contactDetailsForm.get(\"address3\")!.value;\r\n this.selectedEmployee.postalCode =\r\n this.contactDetailsForm.get(\"postalCode\")!.value;\r\n this.selectedEmployee.Country =\r\n this.contactDetailsForm.get(\"Country\")!.value;\r\n }\r\n\r\n this.selectedEmployee.primaryEmail = \"\";\r\n if (this.selectedEmployee.isHrEmailAddress) {\r\n this.selectedEmployee.primaryEmail = this.member!.profile.email!;\r\n } else {\r\n if (this.selectedEmployee.personalEmail) {\r\n this.selectedEmployee.primaryEmail =\r\n this.selectedEmployee.personalEmail;\r\n } else if (this.selectedEmployee.workEmail) {\r\n this.selectedEmployee.primaryEmail = this.selectedEmployee.workEmail;\r\n }\r\n }\r\n if (!this.selectedEmployee.indebtedToEmployer) {\r\n this.selectedEmployee.amountOfDeduction = 0;\r\n }\r\n }\r\n\r\n validateID() {\r\n const idType = this.contactDetailsForm.get(\"identityTypeId\")!.value;\r\n if (idType == 1) {\r\n const idNumber = this.contactDetailsForm.get(\"identityValue\")!.value;\r\n if (idNumber) {\r\n this.validationService\r\n .validateSouthAfricanID(idNumber)\r\n .subscribe((data) => {\r\n if (!data.valid) {\r\n this.errorService.openErrorPopup(\"Incorrect South African ID\");\r\n } else {\r\n this.validID = true;\r\n this.selectedEmployee.identityTypeId = \"1\";\r\n }\r\n });\r\n }\r\n } else {\r\n this.selectedEmployee.identityTypeId = \"2\";\r\n }\r\n }\r\n\r\n onConfrm(event: any) {\r\n this.loader.start();\r\n this.cancelResignationProcess().subscribe(\r\n (response) => {\r\n this.loader.stop();\r\n if (response.cancellations[0].success) {\r\n this.confirmRequest = true;\r\n } else {\r\n this.errorService.openErrorPopup(\r\n `${response.cancellations[0].message}.`\r\n );\r\n this.onClose();\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while cancelling the resignation - \" + errorMessage\r\n );\r\n }\r\n );\r\n }\r\n\r\n cancelResignationProcess(): Observable {\r\n const data = {\r\n employeeIds: [this.exitID],\r\n };\r\n\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Authorization: this.auth.getAuthorizationHeaderValue()\r\n });\r\n \r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.exitEmployee}`;\r\n const options = {\r\n headers: headers,\r\n body: data,\r\n };\r\n return this.httpClient.delete(url, options);\r\n }\r\n\r\n onClose() {\r\n this.wizardHelperService.wizardIntroShow = false;\r\n const el = document.getElementById(\"cleanup\")!;\r\n el.dispatchEvent(\r\n new CustomEvent(\"af-selectedEmp-cleanup\", {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-selectedEmp-cleanup\",\r\n },\r\n })\r\n );\r\n this.close.emit();\r\n }\r\n\r\n refresh(): void {\r\n window.location.reload();\r\n }\r\n\r\n confirmUpdateContactDetails() {\r\n this.updateContactDetails().subscribe(\r\n (resp) => {\r\n this.loader.stop();\r\n this.updatedEmployee = resp;\r\n this.selectedEmployee.employeeId = resp.employeeId;\r\n this.saveData.emit(this.selectedEmployee);\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n if (errorMessage && errorMessage !== \"\") {\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while updating - \" + errorMessage\r\n );\r\n }\r\n }\r\n );\r\n }\r\n\r\n onNext() {\r\n console.log(\"next\");\r\n this.loader.start();\r\n console.log(this.validateModel());\r\n if (this.validateModel()) {\r\n if (this.selectedEmployee.identityTypeId == \"1\") {\r\n this.validationService\r\n .validateSouthAfricanID(\r\n this.contactDetailsForm.get(\"identityValue\")!.value\r\n )\r\n .subscribe((data) => {\r\n if (!data.valid) {\r\n this.errorService.openErrorPopup(\"Incorrect South African ID\");\r\n } else {\r\n this.validID = true;\r\n this.selectedEmployee.identityTypeId = \"1\";\r\n this.confirmUpdateContactDetails();\r\n }\r\n });\r\n } else {\r\n this.confirmUpdateContactDetails();\r\n }\r\n } else {\r\n this.loader.stop();\r\n }\r\n }\r\n\r\n updateContactDetails(): Observable {\r\n const dob = this.utils.convertDateShortDash(\r\n this.selectedEmployee.dateOfBirth\r\n );\r\n const resigDate = this.utils.convertDateShortDash(\r\n this.selectedEmployee.exitDate\r\n );\r\n \r\n const data = {\r\n fundId: this.selectedEmployee.fundId,\r\n membershipNumber: this.selectedEmployee.membershipNumber,\r\n employeeNumber: this.selectedEmployee.employeeNumber,\r\n employerName: this.selectedEmployee.employerName,\r\n exitDate: resigDate,\r\n identityValue: this.selectedEmployee.identityValue,\r\n identityTypeId: this.selectedEmployee.identityTypeId,\r\n employeeUserName: this.selectedEmployee.employeeUserName,\r\n initials: this.selectedEmployee.initials,\r\n firstName: this.selectedEmployee.firstName,\r\n surname: this.selectedEmployee.surname,\r\n dateOfBirth: dob,\r\n telephoneNumber: this.selectedEmployee.telephoneNumber,\r\n mobileNumber: this.selectedEmployee.mobileNumber,\r\n personalEmail: this.selectedEmployee.personalEmail,\r\n workEmail: this.selectedEmployee.workEmail,\r\n primaryEmail: this.selectedEmployee.primaryEmail,\r\n isHrEmailAddress: this.selectedEmployee.isHrEmailAddress,\r\n indebtedToEmployer: this.selectedEmployee.indebtedToEmployer,\r\n amountOfDeduction: this.selectedEmployee.amountOfDeduction,\r\n hrRepresentative: {\r\n hrRepresentativeId: this.selectedEmployee.hrRepresentativeId,\r\n userName: this.selectedEmployee.userName,\r\n emailAddress: this.selectedEmployee.emailAddress,\r\n firstName: this.member!.profile.given_name,\r\n lastName: this.member!.profile.family_name,\r\n contactNumber: this.selectedEmployee.telephoneNumber,\r\n },\r\n address1: this.selectedEmployee.address1,\r\n address2: this.selectedEmployee.address2,\r\n address3: this.selectedEmployee.address3,\r\n postalCode: this.selectedEmployee.postalCode,\r\n Country: this.selectedEmployee.Country,\r\n };\r\n console.log(data)\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.updateMemberUrl}`;\r\n const options = { headers: headers };\r\n return this.httpClient.post(url, data, options);\r\n }\r\n\r\n getExitDate() {\r\n this.maxDate = new Date(this.contactDetailsForm.get(\"exitDate\")!.value);\r\n }\r\n\r\n IndebtednessTip() {\r\n this.indebtednessTip = true;\r\n }\r\n\r\n closePopUp() {\r\n this.indebtednessTip = false;\r\n }\r\n\r\n closeNoPrimaryEmailWarnPopUp() {\r\n this.showNoPersonalEmailWarn = false;\r\n }\r\n\r\n continueNoPrimaryEmailWarnPopUp() {\r\n this.showNoPersonalEmailWarn = false;\r\n this.proceedWithoutPersonalEmail = true;\r\n this.onNext();\r\n }\r\n\r\n onPrev() {\r\n this.prev.emit();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Please check {{ selectedEmployee['firstName']}}'s details\r\n

\r\n

\r\n Before sending them an email to complete the process\r\n

\r\n
\r\n\r\n
\r\n \r\n {{\r\n selectedEmployee.initials &&\r\n selectedEmployee.initials.length > 1\r\n ? selectedEmployee.initials.substring(0, 1)\r\n : selectedEmployee.initials\r\n }}\r\n
\r\n

\r\n {{ selectedEmployee.firstName }} {{ selectedEmployee.surname }}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n {{ messages.PHONE_FORMAT }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ messages.PERSONAL_WORK_SAMEEMAIL }}\r\n
\r\n
\r\n {{ messages.EMAIL_FORMAT }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n I am using my email address on the member's\r\n behalf\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Indebtedness to employer to be recovered from\r\n benefits?\r\n \r\n \r\n \r\n \r\n \r\n \r\n ?\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Please note: You will need to confirm the employee's postal\r\n address, so that they can be contacted in future.\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Personal email address is missing
\r\n
\r\n It is advisable that this be captured so that we are able to communicate with the\r\n member after they've left the company.\r\n
\r\n
\r\n
\r\n Cancel
\r\n
\r\n Proceed Anyway
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
What is indebtedness?
\r\n
\r\n It is when there is an amount to be deducted from the member’s benefit and\r\n paid to the employer in terms of section 37D of the Pension Funds Act.\r\n
\r\n
Debt includes:
\r\n
\r\n Debt for a housing loan, if one of the following has occurred:\r\n
\r\n
\r\n -\r\n \r\n The fund or the employer gave a housing loan to the member and the\r\n member owes money on the loan.\r\n \r\n
\r\n
\r\n -\r\n \r\n The fund or the employer provided a guarantee for a housing loan for the\r\n member and the guarantee is enforced.\r\n \r\n
\r\n
\r\n Debt arising from theft, dishonesty, fraud or misconduct. If the employer\r\n has experienced loss because of this, and one of the following has\r\n occurred:\r\n
\r\n
\r\n -\r\n \r\n The member admitted responsibility (liability) in writing.\r\n \r\n
\r\n
\r\n -\r\n There is a court judgment against the member.\r\n
\r\n
\r\n -\r\n If the above applies, please attach a copy of:\r\n
\r\n
\r\n -\r\n the court order\r\n
\r\n
\r\n -\r\n the member’s admission of liability\r\n
\r\n
\r\n Got it\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Are you sure?\r\n
\r\n
\r\n Cancel {{ selectedEmployee.firstName }}'s resignaton process\r\n below\r\n
\r\n
\r\n\r\n
\r\n \r\n {{\r\n selectedEmployee.initials.length > 1\r\n ? selectedEmployee.initials.substring(0, 1)\r\n : selectedEmployee.initials\r\n }}\r\n
\r\n

\r\n {{ selectedEmployee.firstName }}\r\n {{ selectedEmployee.surname }}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Yes\r\n
\r\n
\r\n No\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {{ selectedEmployee.initials.substring(0, 1) }}\r\n
\r\n

\r\n {{ selectedEmployee.firstName }}\r\n {{ selectedEmployee.surname }}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Success!\r\n
\r\n
\r\n You have successfully cancelled\r\n {{ selectedEmployee.firstName }}'s
\r\n resignaton process\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n of\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n Steps\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, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport { Employee } from \"../../../../models/employees.model\";\r\nimport { ErrorService } from \"../../../../../../services/error.service\";\r\nimport { ValidationService } from \"../../../../../../services/validation.service\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { UtilitiesService } from \"../../../../../../services/utilities.service\";\r\nimport { LoaderService } from \"../../../../../../services/loader.service\";\r\nimport { User } from \"oidc-client\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport { WizardHelperService } from \"src/app/services/wizard-helper.service\";\r\nimport appsettings from \"../../../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-postal-step-postal\",\r\n templateUrl: \"./postal.step-postal.component.html\",\r\n styleUrls: [\"./postal.step-postal.component.scss\"],\r\n})\r\nexport class StepPostalComponent implements OnInit {\r\n @Input() selectedEmployee: Employee;\r\n @Input() step: number;\r\n @Input() numberOfSteps: number;\r\n @Input() option: number;\r\n @Output() close = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n @Output() prev = new EventEmitter();\r\n @Output() saveData = new EventEmitter();\r\n @Input() exitID: any;\r\n public minDate = new Date(\r\n new Date().setFullYear(new Date().getFullYear() - 2)\r\n );\r\n\r\n contactDetailsForm: FormGroup;\r\n isEmailChecked: Boolean = false;\r\n isDebtChecked: Boolean = false;\r\n showPrev: boolean;\r\n showAmount: Boolean = false;\r\n updatedEmployee: any;\r\n private _headers: HttpHeaders;\r\n today = new Date();\r\n defaultStartDate = new Date(this.today.getTime() + 1000 * 60 * 24);\r\n maxDate: any;\r\n changedEmployee: Employee;\r\n member: User | null = null;\r\n confirmRequest: Boolean = false;\r\n // emailSent: any;\r\n\r\n constructor(\r\n private auth: AuthenticationService,\r\n private httpClient: HttpClient,\r\n private errorService: ErrorService,\r\n private validationService: ValidationService,\r\n private wizardHelperService: WizardHelperService,\r\n private utils: UtilitiesService,\r\n private loader: LoaderService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.auth\r\n .getClaims()\r\n .then((member: any) => {\r\n this.member = member;\r\n })\r\n .catch((reason: any) => {console.log(reason)});\r\n this.onCreateContactDetailsForm();\r\n this.initFormData();\r\n }\r\n\r\n getRandomId() {\r\n return Math.floor(Math.random() * 6 + 1);\r\n }\r\n\r\n onCreateContactDetailsForm() {\r\n this.contactDetailsForm = new FormGroup({\r\n firstName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z- ]*$\"),\r\n ]),\r\n mobileNumber: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n surname: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z- ]*$\"),\r\n ]),\r\n workEmail: new FormControl(null, [Validators.email]),\r\n identityValue: new FormControl(\"\", [Validators.required]),\r\n personalEmail: new FormControl(null, [Validators.email]),\r\n exitDate: new FormControl(\"\", [Validators.required]),\r\n exitNoticeDate: new FormControl(\"\", [Validators.required]),\r\n amount: new FormControl(\"\", [Validators.pattern(\"^$|^[0-9]*$\")]),\r\n dateOfBirth: new FormControl(\"\", [Validators.required]),\r\n indebtedToEmployer: new FormControl(false),\r\n isHrEmailAddress: new FormControl(false),\r\n });\r\n }\r\n\r\n initFormData() {\r\n this.contactDetailsForm\r\n .get(\"firstName\")!\r\n .setValue(this.selectedEmployee.firstName);\r\n this.contactDetailsForm\r\n .get(\"surname\")!\r\n .setValue(this.selectedEmployee.surname);\r\n this.contactDetailsForm\r\n .get(\"mobileNumber\")!\r\n .setValue(this.selectedEmployee.mobileNumber);\r\n this.contactDetailsForm\r\n .get(\"workEmail\")!\r\n .setValue(this.selectedEmployee.workEmail);\r\n this.contactDetailsForm\r\n .get(\"personalEmail\")!\r\n .setValue(this.selectedEmployee.personalEmail);\r\n this.contactDetailsForm\r\n .get(\"identityValue\")!\r\n .setValue(this.selectedEmployee.identityValue);\r\n this.contactDetailsForm\r\n .get(\"dateOfBirth\")!\r\n .setValue(new Date(this.selectedEmployee.dateOfBirth));\r\n if (this.selectedEmployee.exitDate) {\r\n this.contactDetailsForm\r\n .get(\"exitDate\")!\r\n .setValue(new Date(this.selectedEmployee.exitDate));\r\n } else {\r\n this.contactDetailsForm.get(\"exitDate\")!.setValue(this.defaultStartDate);\r\n }\r\n if (this.selectedEmployee.exitNoticeDate) {\r\n this.contactDetailsForm\r\n .get(\"exitNoticeDate\")!\r\n .setValue(new Date(this.selectedEmployee.exitNoticeDate));\r\n }\r\n this.maxDate = new Date(this.contactDetailsForm.get(\"exitDate\")!.value);\r\n this.contactDetailsForm\r\n .get(\"isHrEmailAddress\")!\r\n .setValue(this.selectedEmployee.isHrEmailAddress);\r\n this.contactDetailsForm\r\n .get(\"indebtedToEmployer\")!\r\n .setValue(this.selectedEmployee.indebtedToEmployer);\r\n const chkValue = this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.showAmount = chkValue;\r\n this.contactDetailsForm\r\n .get(\"amount\")!\r\n .setValue(this.selectedEmployee.amountOfDeduction);\r\n }\r\n\r\n toggle(id: string) {\r\n if (id === \"emailCheckId\") {\r\n const chkValue = this.contactDetailsForm.get(\"isHrEmailAddress\")!.value;\r\n if (chkValue) {\r\n this.selectedEmployee.primaryEmail = this.member!.profile.email!;\r\n } else {\r\n this.selectedEmployee.primaryEmail = \"\";\r\n }\r\n this.selectedEmployee.isHrEmailAddress = chkValue;\r\n }\r\n\r\n if (id === \"debtCheckId\") {\r\n if (!this.isDebtChecked) {\r\n const chkValue =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.showAmount = chkValue;\r\n this.selectedEmployee.indebtedToEmployer = chkValue;\r\n }\r\n }\r\n }\r\n\r\n validateModel(): boolean {\r\n this.createSelectedEmployeeModel();\r\n\r\n if (!this.selectedEmployee || this.contactDetailsForm.invalid) {\r\n return false;\r\n } else {\r\n if (\r\n this.selectedEmployee.indebtedToEmployer &&\r\n this.selectedEmployee.amountOfDeduction == 0\r\n ) {\r\n return false;\r\n } else if (\r\n this.selectedEmployee.isHrEmailAddress &&\r\n !this.selectedEmployee.primaryEmail\r\n ) {\r\n return false;\r\n } else if (!this.selectedEmployee.primaryEmail) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n public createSelectedEmployeeModel(): void {\r\n this.selectedEmployee.firstName =\r\n this.contactDetailsForm.get(\"firstName\")!.value;\r\n this.selectedEmployee.surname =\r\n this.contactDetailsForm.get(\"surname\")!.value;\r\n this.selectedEmployee.workEmail =\r\n this.contactDetailsForm.get(\"workEmail\")!.value;\r\n this.selectedEmployee.mobileNumber =\r\n this.contactDetailsForm.get(\"mobileNumber\")!.value;\r\n this.selectedEmployee.personalEmail =\r\n this.contactDetailsForm.get(\"personalEmail\")!.value;\r\n this.selectedEmployee.indebtedToEmployer =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n this.selectedEmployee.amountOfDeduction =\r\n this.contactDetailsForm.get(\"amount\")!.value;\r\n this.selectedEmployee.dateOfBirth =\r\n this.contactDetailsForm.get(\"dateOfBirth\")!.value;\r\n this.selectedEmployee.exitDate =\r\n this.contactDetailsForm.get(\"exitDate\")!.value;\r\n this.selectedEmployee.exitNoticeDate =\r\n this.contactDetailsForm.get(\"exitNoticeDate\")!.value;\r\n this.selectedEmployee.identityValue =\r\n this.contactDetailsForm.get(\"identityValue\")!.value;\r\n this.selectedEmployee.isHrEmailAddress =\r\n this.contactDetailsForm.get(\"isHrEmailAddress\")!.value;\r\n this.selectedEmployee.indebtedToEmployer =\r\n this.contactDetailsForm.get(\"indebtedToEmployer\")!.value;\r\n\r\n if (this.selectedEmployee && this.selectedEmployee.isHrEmailAddress) {\r\n this.selectedEmployee.primaryEmail = this.member!.profile.email!;\r\n } else {\r\n if (this.selectedEmployee.personalEmail) {\r\n this.selectedEmployee.primaryEmail =\r\n this.selectedEmployee.personalEmail;\r\n } else if (this.selectedEmployee.workEmail) {\r\n this.selectedEmployee.primaryEmail = this.selectedEmployee.workEmail;\r\n }\r\n }\r\n if (!this.selectedEmployee.indebtedToEmployer) {\r\n this.selectedEmployee.amountOfDeduction = 0;\r\n }\r\n }\r\n\r\n validateID() {\r\n const idNumber = this.contactDetailsForm.get(\"identityValue\")!.value;\r\n if (idNumber != \"\") {\r\n this.validationService\r\n .validateSouthAfricanID(idNumber)\r\n .subscribe((data: any) => {\r\n if (!data.valid) {\r\n this.errorService.openErrorPopup(\"Incorrect South African ID\");\r\n } else {\r\n this.selectedEmployee.identityTypeId = \"1\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n onConfrm(confirm: any) {\r\n this.loader.start();\r\n this.cancelResignationProcess().subscribe(\r\n (response) => {\r\n this.loader.stop();\r\n if (response.cancellations[0].success) {\r\n this.confirmRequest = true;\r\n } else {\r\n this.errorService.openErrorPopup(\r\n `${response.cancellations[0].message}.`\r\n );\r\n this.onClose();\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n `An error occurred while cancelling the resignation process. `\r\n );\r\n }\r\n );\r\n }\r\n\r\n cancelResignationProcess(): Observable {\r\n const data = {\r\n employeeIds: [this.exitID],\r\n };\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.exitEmployee}`;\r\n const options = {\r\n headers: this._headers,\r\n body: JSON.stringify(data),\r\n };\r\n return this.httpClient.delete(url, options);\r\n }\r\n\r\n onClose() {\r\n this.wizardHelperService.wizardIntroShow = false;\r\n const el = document.getElementById(\"cleanup\")!;\r\n el.dispatchEvent(\r\n new CustomEvent(\"af-selectedEmp-cleanup\", {\r\n bubbles: true,\r\n detail: {\r\n name: \"af-selectedEmp-cleanup\",\r\n },\r\n })\r\n );\r\n this.close.emit();\r\n //this.refresh();\r\n }\r\n\r\n refresh(): void {\r\n window.location.reload();\r\n }\r\n\r\n onNext() {\r\n this.loader.start();\r\n if (this.validateModel()) {\r\n this.updateContactDetails().subscribe(\r\n (resp) => {\r\n this.loader.stop();\r\n this.updatedEmployee = resp;\r\n this.selectedEmployee.employeeId = this.updatedEmployee.employees[0];\r\n this.saveData.emit(this.selectedEmployee);\r\n //this.next.emit();\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while updating the member details.\"\r\n );\r\n }\r\n );\r\n } else {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required fields, in the correct format.\"\r\n );\r\n }\r\n }\r\n\r\n updateContactDetails(): Observable {\r\n const dob = this.utils.convertDateShortDash(\r\n this.selectedEmployee.dateOfBirth\r\n );\r\n const resigDate = this.utils.convertDateShortDash(\r\n this.selectedEmployee.exitDate\r\n );\r\n const resigNoticeDate = this.utils.convertDateShortDash(\r\n this.selectedEmployee.exitNoticeDate\r\n );\r\n\r\n const data = {\r\n fundId: this.selectedEmployee.fundId,\r\n membershipNumber: this.selectedEmployee.membershipNumber,\r\n employeeNumber: this.selectedEmployee.employeeNumber,\r\n employerName: this.selectedEmployee.employerName,\r\n exitDate: resigDate,\r\n exitNoticeDate: resigNoticeDate,\r\n identityValue: this.selectedEmployee.identityValue,\r\n identityTypeId: this.selectedEmployee.identityTypeId,\r\n employeeUserName: this.selectedEmployee.employeeUserName,\r\n initials: this.selectedEmployee.initials,\r\n firstName: this.selectedEmployee.firstName,\r\n surname: this.selectedEmployee.surname,\r\n dateOfBirth: dob,\r\n telephoneNumber: this.selectedEmployee.telephoneNumber,\r\n mobileNumber: this.selectedEmployee.mobileNumber,\r\n personalEmail: this.selectedEmployee.personalEmail,\r\n workEmail: this.selectedEmployee.workEmail,\r\n primaryEmail: this.selectedEmployee.primaryEmail,\r\n isHrEmailAddress: this.selectedEmployee.isHrEmailAddress,\r\n indebtedToEmployer: this.selectedEmployee.indebtedToEmployer,\r\n amountOfDeduction: this.selectedEmployee.amountOfDeduction,\r\n hrRepresentative: {\r\n hrRepresentativeId: this.selectedEmployee.hrRepresentativeId,\r\n userName: this.selectedEmployee.userName,\r\n emailAddress: this.selectedEmployee.emailAddress,\r\n firstName: this.member!.profile.given_name,\r\n lastName: this.member!.profile.family_name,\r\n contactNumber: this.selectedEmployee.telephoneNumber,\r\n },\r\n };\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.updateMemberUrl}`;\r\n const options = { headers: this._headers };\r\n return this.httpClient.post(url, data, options);\r\n }\r\n\r\n getExitDate() {\r\n this.maxDate = new Date(this.contactDetailsForm.get(\"exitDate\")!.value);\r\n }\r\n\r\n onPrev() {\r\n this.prev.emit();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Please check {{selectedEmployee['firstName']}}'s details

\r\n

Before sending them an email to complete the process

\r\n
\r\n\r\n
\r\n
{{(selectedEmployee['initials'] && selectedEmployee['initials'].length > 1) ? selectedEmployee['initials'].substring(0,1) : selectedEmployee['initials']}}
\r\n

{{selectedEmployee['firstName']}} {{selectedEmployee['surname']}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n I am using my email address on the member's behalf\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n Indebtedness to employer to be recovered from benefits?\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Please note: You will need to confirm the employee's postal address, so that they can be contacted in future.\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{step}}\r\n
\r\n
\r\n of\r\n
\r\n
\r\n {{numberOfSteps}}\r\n
\r\n
\r\n Steps\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n Prev\r\n
\r\n\r\n
\r\n \r\n
\r\n Next\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Are you sure?
\r\n
\r\n Cancel {{selectedEmployee['firstName']}}'s resignaton process below\r\n
\r\n
\r\n\r\n
\r\n \r\n {{selectedEmployee['initials'].length > 1 ? selectedEmployee['initials'].substring(0,1) : selectedEmployee['initials']}}
\r\n

{{selectedEmployee['firstName']}} {{selectedEmployee['surname']}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Yes
\r\n
No
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n {{selectedEmployee['initials'].substring(0,1)}}
\r\n

{{selectedEmployee['firstName']}} {{selectedEmployee['surname']}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
Success!
\r\n
\r\n You have successfully cancelled {{selectedEmployee['firstName']}}'s
resignaton process\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n of\r\n
\r\n
\r\n 1\r\n
\r\n
\r\n Steps\r\n
\r\n
\r\n
\r\n\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, Output, EventEmitter } from '@angular/core';\r\nimport { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';\r\nimport { Employee } from '../../../../models/employees.model';\r\n\r\n@Component({\r\n selector: 'app-any-debt-step-two',\r\n templateUrl: './any-debt.step-two.component.html',\r\n styleUrls: ['./any-debt.step-two.component.scss']\r\n})\r\nexport class StepTwoComponent implements OnInit {\r\n\r\n @Input() selectedEmployee: Employee;\r\n @Input() step: number;\r\n @Input() numberOfSteps: number;\r\n @Output() close = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n @Output() prev = new EventEmitter();\r\n \r\n anyDebtForm: FormGroup;\r\n isChecked: Boolean = false;\r\n showAmount: Boolean = false;\r\n checkBoxId: string;\r\n showPrev: Boolean;\r\n\r\n constructor(private formBuilder: FormBuilder) { }\r\n\r\n ngOnInit() {\r\n this.checkBoxId = this.selectedEmployee.employeeNumber + 2;\r\n this.showPrev = this.step >= 2;\r\n this.anyDebtForm = this.formBuilder.group({\r\n\r\n });\r\n\r\n }\r\n\r\n onCreateAnyDebtForm() {\r\n this.anyDebtForm = this.formBuilder.group({\r\n amount: new FormControl('', [Validators.required]),\r\n });\r\n\r\n }\r\n\r\n toggle() {\r\n const el = document.getElementById(this.checkBoxId)!;\r\n if (!this.isChecked) {\r\n el.classList.add('bg-orange-600');\r\n el.classList.remove('border-2');\r\n el.classList.remove('border-gray-500');\r\n } else {\r\n el.classList.add('border-gray-500');\r\n el.classList.add('border-2');\r\n el.classList.remove('bg-orange-600');\r\n }\r\n this.isChecked = !this.isChecked;\r\n this.showAmount = this.isChecked;\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n onPrev() {\r\n this.prev.emit();\r\n }\r\n onNext() {\r\n this.next.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Does {{selectedEmployee['firstName']}} owe any debt to

\r\n

You may know this as 37D

\r\n
\r\n
\r\n
{{(selectedEmployee['initials'] && selectedEmployee['initials'].length > 1) ? selectedEmployee['initials'].substring(0,1) : selectedEmployee['initials']}}
\r\n

{{selectedEmployee['firstName']}} {{selectedEmployee['surname']}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Indebtedness to employer to be recovered from benefits?\r\n
\r\n
\r\n !\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Amount of debt owed\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{step}}\r\n
\r\n
\r\n of\r\n
\r\n
\r\n {{numberOfSteps}}\r\n
\r\n
\r\n Steps\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n Prev\r\n
\r\n
\r\n
\r\n
\r\n Next\r\n \r\n \r\n \r\n \r\n \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';\r\nimport { WizardHelperService } from 'src/app/services/wizard-helper.service';\r\nimport { Employee } from '../../models/employees.model';\r\n@Component({\r\n selector: 'app-wizard',\r\n templateUrl: './wizard.component.html',\r\n styleUrls: ['./wizard.component.css']\r\n})\r\nexport class WizardComponent implements OnInit {\r\n\r\n @Input() selectedEmployees: Employee[];\r\n @Input() corpName: string;\r\n @Input() option: number;\r\n @Input() status: number;\r\n @Input() isBulkExit: boolean;\r\n @Input() exitID: any;\r\n @Input() showPrev: boolean;\r\n\r\n step: number = 1;\r\n showWizard: boolean;\r\n numberOfSteps: number;\r\n count: number = 0;\r\n selectedEmployee: Employee;\r\n showWizardStep1: Boolean;\r\n showLastStep: Boolean;\r\n continue: Boolean;\r\n selectedBulkExits: any[]= [];\r\n\r\n constructor(public wizardHelperService: WizardHelperService) {\r\n this.selectedEmployee = new Employee();\r\n }\r\n\r\n ngOnInit() {\r\n this.workoutNumberOfSteps();\r\n this.showWizardStep1 = this.wizardHelperService.wizardIntroShow;\r\n console.log(\"Show wizard step 1: \", this.showWizardStep1)\r\n }\r\n\r\n workoutNumberOfSteps() {\r\n if (this.selectedEmployees) {\r\n this.count = 0;\r\n this.numberOfSteps = (this.selectedEmployees.length) + 1;\r\n this.selectedEmployee = this.selectedEmployees[this.count];\r\n }\r\n }\r\n\r\n onPreviousStep(){\r\n this.step = this.step - 1;\r\n this.showPrev = this.step > 1;\r\n if (this.isBulkExit){\r\n this.count = this.count - 1;\r\n }\r\n this.selectedEmployee = this.selectedEmployees[this.count];\r\n if (this.step <= (this.numberOfSteps - 1)) {\r\n this.showLastStep = false;\r\n this.showWizardStep1 = true;\r\n }\r\n }\r\n\r\n onNextStep(){\r\n this.step = this.step + 1;\r\n this.showPrev = this.step > 1;\r\n if (this.isBulkExit){\r\n this.count = this.count + 1;\r\n }\r\n this.selectedEmployee = this.selectedEmployees[this.count];\r\n if (this.step <= (this.numberOfSteps - 1)) {\r\n this.showWizardStep1 = true;\r\n } else {\r\n this.showWizardStep1 = false;\r\n this.showLastStep = true;\r\n }\r\n }\r\n\r\n onSaveData(data: any) {\r\n this.selectedEmployees[this.count] = data;\r\n this.onNextStep();\r\n }\r\n\r\n onHideWizard() {\r\n this.wizardHelperService.wizardIntroShow = false;\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n
\r\n","export class Employee {\r\n employeeId: string;\r\n fundId: string;\r\n membershipNumber: string;\r\n employeeNumber: string;\r\n employerName: string;\r\n exitDate: Date | null;\r\n exitNoticeDate: Date;\r\n identityValue: string;\r\n identityTypeId: string;\r\n employeeUserName: string;\r\n initials: string;\r\n firstName: string;\r\n surname: string;\r\n dateOfBirth: Date;\r\n telephoneNumber: string;\r\n mobileNumber: string;\r\n personalEmail: string;\r\n workEmail: string;\r\n primaryEmail: string;\r\n isHrEmailAddress: Boolean;\r\n indebtedToEmployer: Boolean;\r\n amountOfDeduction: number;\r\n //hrRepresentative: {\r\n hrRepresentativeId: string;\r\n userName: string;\r\n emailAddress: string;\r\n contactNumber: string;\r\n //}\r\n optionId: number;\r\n fkPersonId: string;\r\n statusId: number;\r\n address1: string;\r\n address2: string;\r\n address3: string;\r\n postalCode: string;\r\n Country: string;\r\n}\r\n\r\n","export class SavingCalculations{\r\n currentAge: number;\r\n salary: number;\r\n contributionPercentage: number;\r\n currentFundCredit: number;\r\n gender: string;\r\n existingSavings: number;\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { FormGroup, FormControl, Validators, FormArray } from \"@angular/forms\";\r\nimport { UtilitiesService } from \"src/app/services/utilities.service\";\r\nimport { LoaderService } from \"src/app/services/loader.service\";\r\nimport { ContentService } from \"src/app/services/content.service\";\r\nimport { RoutingService } from \"src/app/services/routing.service\";\r\nimport { ErrorService } from \"src/app/services/error.service\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport { Constants } from \"src/app/constants/constants\";\r\nimport appsettings from \"../../../../../assets/appsettings.json\"\r\nimport { getErrorMessage } from \"src/app/shared/common-functions\";\r\n\r\n@Component({\r\n selector: \"app-confirm-details\",\r\n templateUrl: \"./confirm-details.component.html\",\r\n styleUrls: [\"./confirm-details.component.scss\"],\r\n})\r\nexport class ConfirmDetailsComponent implements OnInit {\r\n popIaDisclosurePath: String = \"\";\r\n infoIconDamPath: String = \"\";\r\n employee: any;\r\n member: any;\r\n claimId: any = \"\";\r\n email: any;\r\n countries: any;\r\n claimSuccess = false;\r\n showPopi = false;\r\n showBlock: boolean = false;\r\n memberValues: any;\r\n lastContributionDate: string;\r\n employeeForm: FormGroup;\r\n titles: any;\r\n idTypes: any;\r\n genders: any;\r\n country: any;\r\n selectedIdType: number = 0;\r\n formSubmitted: boolean = false;\r\n dateOfBirth: Date;\r\n route: string = \"summary\";\r\n showTabs: boolean = false;\r\n isDialogOpen: boolean;\r\n\r\n constructor(\r\n private utils: UtilitiesService,\r\n private httpClient: HttpClient,\r\n private loader: LoaderService,\r\n private contentService: ContentService,\r\n private routingService: RoutingService,\r\n private errorService: ErrorService,\r\n private auth: AuthenticationService\r\n ) {\r\n this.loader.start();\r\n this.employeeForm = new FormGroup({\r\n fundId: new FormControl(\"\"),\r\n membershipNumber: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n employeeNumber: new FormControl(\"\"),\r\n employerName: new FormControl(\"\"),\r\n exitDate: new FormControl(\"\"),\r\n identityValue: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.minLength(13),\r\n ]),\r\n identityTypeId: new FormControl(\"\", Validators.required),\r\n employeeUserName: new FormControl(\"\"),\r\n initials: new FormControl(\"\"),\r\n firstName: new FormControl(\"\", Validators.required),\r\n surname: new FormControl(\"\", Validators.required),\r\n dateOfBirth: new FormControl(\"\", Validators.required),\r\n telephoneNumber: new FormControl(\"\"),\r\n mobileNumber: new FormControl(\"\", [Validators.required]),\r\n personalEmail: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.pattern(\r\n \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,4})+$\"\r\n ),\r\n ]),\r\n workEmail: new FormControl(),\r\n primaryEmail: new FormControl(\"\"),\r\n isHrEmailAddress: new FormControl(\"\"),\r\n indebtedToEmployer: new FormControl(\"\"),\r\n amountOfDeduction: new FormControl(\"\"),\r\n poBox: new FormControl(\"\"),\r\n address1: new FormControl(\"\", Validators.required),\r\n address2: new FormControl(\"\", Validators.required),\r\n address3: new FormControl(\"\", Validators.required),\r\n unitNumber: new FormControl(\"\"),\r\n complex: new FormControl(\"\"),\r\n streetNumber: new FormControl(\"\"),\r\n streetOrFarmName: new FormControl(\"\"),\r\n suburbOrDistrict: new FormControl(\"\"),\r\n cityOrTown: new FormControl(\"\"),\r\n country: new FormControl(\"\"),\r\n postalCode: new FormControl(\"\", Validators.required),\r\n titleId: new FormControl(\"\"),\r\n genderId: new FormControl(\"\"),\r\n hrRepresentative: new FormGroup({\r\n hrRepresentativeId: new FormControl(\"\"),\r\n userName: new FormControl(\"\"),\r\n emailAddress: new FormControl(\"\"),\r\n firstName: new FormControl(\"\"),\r\n lastName: new FormControl(\"\"),\r\n }),\r\n membership: new FormArray([\r\n new FormGroup({\r\n employeeMembershipId: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n fundId: new FormControl(\"\"),\r\n fundName: new FormControl(\"\"),\r\n integrationSystem: new FormControl(\"\"),\r\n subscriptionNumber: new FormControl(\"\"),\r\n isHybrid: new FormControl(\"\"),\r\n modifiedBy: new FormControl(\"\"),\r\n }),\r\n ]),\r\n exit: new FormGroup({\r\n exitId: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n kickoffDate: new FormControl(\"\"),\r\n actionId: new FormControl(\"\"),\r\n statusId: new FormControl(\"\"),\r\n opportunityId: new FormControl(\"\"),\r\n claimId: new FormControl(\"\"),\r\n }),\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n if (localStorage.getItem(\"showBlock\")) {\r\n this.showBlock = true;\r\n } else {\r\n this.showBlock = false;\r\n }\r\n this.getMemberInfo();\r\n\r\n var firstPoint:any;\r\n let zoom;\r\n\r\n window.addEventListener(\r\n \"mousemove\",\r\n function (event) {\r\n if (!firstPoint) {\r\n firstPoint = createPoint(event);\r\n } else if (getDistance(event, firstPoint, \"client\") >= 100) {\r\n var secondPoint = event;\r\n var clientDistance = getDistance(event, firstPoint, \"client\");\r\n var screenDistance = getDistance(event, firstPoint, \"screen\");\r\n zoom = clientDistance - screenDistance;\r\n if (zoom > 18) {\r\n var bb = document.getElementsByClassName(\r\n \"black-box\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < bb.length; i++) {\r\n bb[i].style.marginLeft = \"945px\";\r\n bb[i].style.marginTop = \"330px\";\r\n }\r\n } else if (zoom < 18) {\r\n var bb = document.getElementsByClassName(\r\n \"black-box\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < bb.length; i++) {\r\n bb[i].style.marginLeft = \"753px\";\r\n bb[i].style.marginTop = \"328px\";\r\n }\r\n }\r\n firstPoint = null;\r\n }\r\n },\r\n {\r\n passive: true,\r\n }\r\n );\r\n\r\n function createPoint(event: MouseEvent) {\r\n return {\r\n clientX: event.clientX,\r\n clientY: event.clientY,\r\n screenX: event.screenX,\r\n screenY: event.screenY,\r\n };\r\n }\r\n\r\n function getDistance(pointA:any, pointB:any, property:any) {\r\n var x = pointA[property + \"X\"] - pointB[property + \"X\"];\r\n var y = pointA[property + \"Y\"] - pointB[property + \"Y\"];\r\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\r\n }\r\n }\r\n\r\n getMemberInfo() {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .get(\r\n `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.memberDetails}`,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.member = resp[\"member\"][0];\r\n this.httpClient\r\n .get(\r\n `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.updateMemberUrl}/${resp[\"member\"][0][\"employeeId\"]}`,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.dateOfBirth = new Date(resp[\"employee\"].dateOfBirth);\r\n this.employee = resp[\"employee\"];\r\n this.employeeForm.patchValue(this.employee);\r\n\r\n if (this.employee.identityTypeId === 1) {\r\n this.selectedIdType = 4;\r\n }\r\n this.checkMemberValues();\r\n this.loader.stop();\r\n },\r\n (err) => {\r\n let errorMessage = getErrorMessage(err);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while updating member details: \" +\r\n errorMessage.substring(0, 40)\r\n );\r\n this.loader.stop();\r\n }\r\n );\r\n },\r\n (err) => {\r\n let errorMessage = getErrorMessage(err);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while getting member information: \" +\r\n errorMessage.substring(0, 40)\r\n );\r\n this.loader.stop();\r\n }\r\n );\r\n } \r\n\r\n checkMemberValues() {\r\n this.getMemberValues().subscribe(\r\n (val) => {\r\n this.loader.stop();\r\n this.memberValues = val;\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('An error occurred while getting the member values.' );\r\n }\r\n );\r\n }\r\n\r\n getMemberValues(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalMemberServicesUrl}${appsettings.endPoints.memberFundValues}?MembershipNumber=${this.member.membership[0].subscriptionNumber}&FundId=${this.member.membership[0].fundId}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n goToRoute() {\r\n this.claimSuccess = false;\r\n this.routingService.savingsSummary();\r\n }\r\n\r\n claimSaved(args: { id: string; status: boolean; isSubmittedSuccessfully: boolean; responseMessage: string }) {\r\n this.claimId = args.id;\r\n this.claimSuccess = args.status;\r\n }\r\n\r\n toggle() {\r\n this.showBlock = !this.showBlock;\r\n localStorage.removeItem(\"showBlock\");\r\n }\r\n logout() {\r\n //this.authService.logout(false);\r\n this.auth.logout(false);\r\n }\r\n\r\n profileLandingPage() {\r\n this.routingService.profileLandingPage();\r\n }\r\n};\r\n","
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ employee.firstName }} {{ employee.surname }}\r\n
\r\n
\r\n \r\n Log out\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Find out\r\n how we protect your personal information, privacy and security.\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
Protecting your information
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Alexforbes will protect your personal information and only use it for\r\n the intended purpose.\r\n
\r\n
\r\n
    \r\n
  • \r\n We will use your personal information to act on your request or for any\r\n other valid or legal purpose.\r\n
  • \r\n
  • We will share your personal information with third parties:
  • \r\n
      \r\n
    • so that we can provide products and services to you
    • \r\n
    • if a law requires us to share this information
    • \r\n
    \r\n
  • We will keep your personal information
  • \r\n
      \r\n
    • \r\n for as long as we or the fund needs it to act on your instruction\r\n
    • \r\n
    • if a law requires us to share this information
    • \r\n
    \r\n
  • \r\n Once we are no longer allowed to keep your personal information, we will\r\n decide if it needs to be
    destroyed, deleted or de-identified (no\r\n longer linked to you).\r\n
  • \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n We need your personal details\r\n \r\n
\r\n Because you are leaving your employer, please check and update your contact\r\n details and postal address.\r\n
\r\n
\r\n \r\n got it\r\n \r\n
\r\n\r\n \r\n","export class MemberRetirementProjection {\r\n private _montlyIncomeProjection: number //5422.32\r\n private _ageWhenSORRI: number //89\r\n private _retirementAge: number //65\r\n private _valueAtRetirement: number\r\n\r\n get valueAtRetirement(): number {\r\n return this._valueAtRetirement;\r\n }\r\n\r\n set valueAtRetirement(value: number) {\r\n this._valueAtRetirement = value;\r\n }\r\n\r\n get montlyIncomeProjection(): number {\r\n return this._montlyIncomeProjection;\r\n }\r\n\r\n set montlyIncomeProjection(value: number) {\r\n this._montlyIncomeProjection = value;\r\n }\r\n\r\n get ageWhenSORRI(): number {\r\n return this._ageWhenSORRI;\r\n }\r\n\r\n set ageWhenSORRI(value: number) {\r\n this._ageWhenSORRI = value;\r\n }\r\n\r\n get retirementAge(): number {\r\n return this._retirementAge;\r\n }\r\n\r\n set retirementAge(value: number) {\r\n this._retirementAge = value;\r\n }\r\n}\r\n","export class ProjectionPayload {\r\n\r\n private CurrentAge: number//45\r\n private Salary: number//4255.67\r\n private ContributionPercentage: number//0\r\n private CurrentFundCredit: number//500000\r\n private Gender: string // \"Female\"\r\n\r\n get _CurrentAge(): number {\r\n return this.CurrentAge;\r\n }\r\n\r\n set _CurrentAge(value: number) {\r\n this.CurrentAge = value;\r\n }\r\n\r\n get _Salary(): number {\r\n return this.Salary;\r\n }\r\n\r\n set _Salary(value: number) {\r\n this.Salary = value;\r\n }\r\n\r\n get _ContributionPercentage(): number {\r\n return this.ContributionPercentage;\r\n }\r\n\r\n set _ContributionPercentage(value: number) {\r\n this.ContributionPercentage = value;\r\n }\r\n\r\n get _CurrentFundCredit(): number {\r\n return this.CurrentFundCredit;\r\n }\r\n\r\n set _CurrentFundCredit(value: number) {\r\n this.CurrentFundCredit = value;\r\n }\r\n\r\n get _Gender(): string {\r\n return this.Gender;\r\n }\r\n\r\n set _Gender(value: string) {\r\n this.Gender = value;\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { RoutingService } from \"../../../../../../src/app/services/routing.service\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport {\r\n RetirementSavings,\r\n Calculations,\r\n MemberDetails,\r\n} from \"../../store/retirement-savings/retirementsavings\";\r\nimport { ErrorService } from \"../../../../../../src/app/services/error.service\";\r\nimport { WithdrawalAmountProjectionServiceService } from \"../withdrawal-amount-projection-service.service\";\r\nimport { ClaimService } from \"../../store/retirement-savings/service/claimService.service\";\r\nimport { CurrencyPipe } from \"@angular/common\";\r\nimport { MemberRetirementProjection } from \"./MemberRetirementProjection\";\r\nimport { ProjectionPayload } from \"./ProjectionPayload\";\r\nimport { AuthenticationService } from \"../../../../services/authentication.service\";\r\nimport { User } from \"oidc-client\";\r\nimport { Constants } from \"../../../../constants/constants\";\r\n\r\n@Component({\r\n selector: \"app-move-withdraw\",\r\n templateUrl: \"./move-withdraw.component.html\",\r\n styleUrls: [\"./move-withdraw.component.scss\"],\r\n})\r\nexport class MoveWithdrawComponent implements OnInit, OnDestroy {\r\n popIaDisclosurePath: string = \"\";\r\n infoIconDamPath: string = \"\";\r\n firstName: String;\r\n surname: String;\r\n showMove: boolean;\r\n percentage: number;\r\n showWithdraw: boolean;\r\n protected _routeParams: any;\r\n moveWithDrawFlag: number;\r\n showFullPartFlag: number;\r\n stay: boolean;\r\n partSave: boolean;\r\n totalSavings: number;\r\n memberAction: string;\r\n showConnect: boolean = false;\r\n retirementSavings: RetirementSavings;\r\n memberDetails: MemberDetails;\r\n showMessage: boolean = false;\r\n tax: number = 0;\r\n payout: number = 0;\r\n estimatedTaxNotification: boolean = true;\r\n savingsTip: boolean = false;\r\n stayInvestedTip: boolean = false;\r\n calculations: Calculations;\r\n calculateTaxAmount: number;\r\n taxNumberInfoTip: boolean = false;\r\n memberRetirementProject: MemberRetirementProjection =\r\n new MemberRetirementProjection();\r\n amountToMove: any = 0;\r\n projectionPayload: ProjectionPayload = new ProjectionPayload();\r\n defaultAmount: any;\r\n totalDefaultAmount: any;\r\n showProjectionsDisclaimer: boolean;\r\n showTaxDisclaimer: boolean;\r\n member: User | null = null;\r\n // zoom: any;\r\n marginLeft: any;\r\n isDialogOpen: boolean;\r\n\r\n constructor(\r\n private auth: AuthenticationService,\r\n private routingService: RoutingService,\r\n protected _route: ActivatedRoute,\r\n private router: Router,\r\n private errorService: ErrorService,\r\n public currencyPipe: CurrencyPipe,\r\n private withdrawalAmountProjectionService: WithdrawalAmountProjectionServiceService,\r\n public claimService: ClaimService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.auth\r\n .getClaims()\r\n .then((member:any) => {\r\n this.member = member;\r\n this.firstName = this.member?.profile.given_name!;\r\n this.surname = this.member?.profile.family_name!;\r\n this.memberDetails = this.claimService.getMemberDetails();\r\n if (this.claimService) {\r\n this.retirementSavings = this.claimService.getRetirementSavings();\r\n this._route.queryParams.subscribe((parameters) => {\r\n this.moveWithDrawFlag = parameters[\"flag\"];\r\n this.totalSavings = parameters[\"sv\"].replace(/\\s/g, \"\");\r\n this.memberAction =\r\n this.moveWithDrawFlag == 1 ? \"move\" : \"withdraw\";\r\n this.percentage = this.moveWithDrawFlag == 1 ? 100 : 0;\r\n this.defaultAmount =\r\n this.moveWithDrawFlag == 1\r\n ? (this.totalDefaultAmount = this.currencyPipe\r\n .transform(this.totalSavings, \"R\")\r\n ?.split(\",\")\r\n .join(\" \")\r\n .substring(\r\n 0,\r\n this.currencyPipe\r\n .transform(this.totalSavings, \"R\")\r\n ?.split(\",\")\r\n .join(\" \").length - 3\r\n ))\r\n : (this.totalDefaultAmount = 0);\r\n this.amountToMove = this.defaultAmount;\r\n this.calculate();\r\n this.withdrawalAmountProjectionService\r\n .getFundCreditProjection(this.buildProjectionPayload())\r\n .subscribe((resp) => {\r\n this.memberRetirementProject.valueAtRetirement = resp;\r\n });\r\n this.withdrawalAmountProjectionService\r\n .getMemberRetirementProjection(this.buildProjectionPayload())\r\n .subscribe((resp) => {\r\n this.memberRetirementProject.retirementAge = resp.retirementAge;\r\n this.memberRetirementProject.ageWhenSORRI = resp.ageWhenSORRI;\r\n this.memberRetirementProject.montlyIncomeProjection =\r\n resp.montlyIncomeProjection;\r\n });\r\n });\r\n }\r\n\r\n if (localStorage.getItem(\"estimatedTaxNotificationDismissed\") != null) {\r\n this.estimatedTaxNotification = false;\r\n }\r\n if (localStorage.getItem(\"savingsTipDismissed\") != null) {\r\n this.savingsTip = false;\r\n }\r\n if (localStorage.getItem(\"stayInvestedTipDismissed\") != null) {\r\n this.stayInvestedTip = false;\r\n }\r\n })\r\n .catch((reason:any) => {\r\n console.log(\"could not get user\");\r\n });\r\n\r\n var firstPoint: { clientX: any; clientY: any; screenX: any; screenY: any; } | null;\r\n let zoom;\r\n\r\n window.addEventListener(\r\n \"mousemove\",\r\n function (event:any) {\r\n if (!firstPoint) {\r\n firstPoint = createPoint(event);\r\n } else if (getDistance(event, firstPoint, \"client\") >= 100) {\r\n var secondPoint = event;\r\n var clientDistance = getDistance(event, firstPoint, \"client\");\r\n var screenDistance = getDistance(event, firstPoint, \"screen\");\r\n zoom = clientDistance - screenDistance;\r\n if (zoom > 18) {\r\n var tt = document.getElementsByClassName(\r\n \"tax-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < tt.length; i++) {\r\n tt[i].style.height = \"200px\";\r\n }\r\n var ttw = document.getElementsByClassName(\r\n \"tax-tip-withdraw\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < ttw.length; i++) {\r\n ttw[i].style.height = \"225px\";\r\n }\r\n var st = document.getElementsByClassName(\r\n \"savings-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < st.length; i++) {\r\n st[i].style.right = \"38%\";\r\n st[i].style.height = \"230px\";\r\n }\r\n var si = document.getElementsByClassName(\r\n \"stay-invested-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < si.length; i++) {\r\n si[i].style.right = \"35%\";\r\n si[i].style.height = \"235px\";\r\n }\r\n } else if (zoom < 18) {\r\n var tt = document.getElementsByClassName(\r\n \"tax-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < tt.length; i++) {\r\n tt[i].style.height = \"225px\";\r\n }\r\n var ttw = document.getElementsByClassName(\r\n \"tax-tip-withdraw\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < ttw.length; i++) {\r\n ttw[i].style.height = \"225px\";\r\n }\r\n var st = document.getElementsByClassName(\r\n \"savings-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < st.length; i++) {\r\n st[i].style.right = \"35%\";\r\n st[i].style.height = \"220px\";\r\n }\r\n var si = document.getElementsByClassName(\r\n \"stay-invested-tip\"\r\n ) as HTMLCollectionOf;\r\n for (var i = 0; i < si.length; i++) {\r\n si[i].style.right = \"31%\";\r\n si[i].style.height = \"255px\";\r\n }\r\n }\r\n firstPoint = null;\r\n }\r\n },\r\n {\r\n passive: true,\r\n }\r\n );\r\n\r\n function createPoint(event:any) {\r\n return {\r\n clientX: event.clientX,\r\n clientY: event.clientY,\r\n screenX: event.screenX,\r\n screenY: event.screenY,\r\n };\r\n }\r\n\r\n function getDistance(pointA: { [x: string]: number; clientX?: any; clientY?: any; screenX?: any; screenY?: any; }, pointB: { [x: string]: number; clientX?: any; clientY?: any; screenX?: any; screenY?: any; }, property: string) {\r\n var x = pointA[property + \"X\"] - pointB[property + \"X\"];\r\n var y = pointA[property + \"Y\"] - pointB[property + \"Y\"];\r\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\r\n }\r\n }\r\n buildProjectionPayload(): ProjectionPayload {\r\n this.projectionPayload._CurrentAge =\r\n new Date().getFullYear() - \r\n new Date(this.claimService.getMemberDetails().dateOfBirth).getFullYear();\r\n this.projectionPayload._CurrentFundCredit =\r\n this.memberAction === \"move\"\r\n ? parseFloat(this.calculations.amountToMove)\r\n : parseFloat(String(this.totalSavings)) -\r\n parseFloat(this.calculations.amountToMove);\r\n this.projectionPayload._Salary =\r\n this.claimService.getMemberValues().AnnualPensionableSalary / 12;\r\n this.projectionPayload._Gender =\r\n this.claimService.getMemberDetails().genderId == 1 ? \"Male\" : \"Female\";\r\n this.projectionPayload._ContributionPercentage =\r\n this.claimService.getMemberValues().RetirementContributionRate / 100;\r\n return this.projectionPayload;\r\n }\r\n\r\n logout() {\r\n this.auth.logout(false);\r\n }\r\n\r\n profileLandingPage() {\r\n this.routingService.profileLandingPage();\r\n }\r\n\r\n onClose() {\r\n this.showWithdraw = false;\r\n this.showMove = false;\r\n this.stay = false;\r\n this.partSave = false;\r\n }\r\n\r\n calculate(event = null) {\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings\r\n );\r\n if (this.moveWithDrawFlag == 1) {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 2;\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n } else {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 1;\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n showPopup() {\r\n if (this.moveWithDrawFlag == 1) {\r\n this.showMove = true;\r\n } else {\r\n if (this.moveWithDrawFlag == 2) {\r\n this.showWithdraw = true;\r\n }\r\n }\r\n }\r\n\r\n goToSavings() {\r\n //this.router.navigate([\"digital/resignations/connect-adviser.html\"], {\r\n this.router.navigate(['connect-adviser'], {\r\n queryParams: {\r\n flag: this.moveWithDrawFlag,\r\n sv: this.totalSavings,\r\n pt: this.percentage,\r\n amt:\r\n this.memberAction === \"withdraw\"\r\n ? this.calculations.amountToMove\r\n : this.totalSavings - this.calculations.amountToMove,\r\n prompt: \"save\",\r\n },\r\n });\r\n }\r\n\r\n stayInvested() {\r\n this.stay = true;\r\n }\r\n\r\n onPartMove() {\r\n this.showWithdraw = false;\r\n this.stay = false;\r\n this.showMove = true;\r\n }\r\n\r\n onSave() {\r\n this.showWithdraw = false;\r\n this.stay = false;\r\n this.showMove = false;\r\n this.partSave = true;\r\n }\r\n\r\n toggleView() {\r\n this.showConnect = !this.showConnect;\r\n }\r\n goToSavingsDetails() {\r\n this.routingService.savingsDetails(\r\n this.moveWithDrawFlag,\r\n this.totalSavings,\r\n this.percentage\r\n );\r\n }\r\n connect() {\r\n document.getElementById(\"connect-button\")?.click();\r\n }\r\n\r\n goToGrowSavings() {\r\n this.routingService.confirmDetails();\r\n }\r\n\r\n closeEstimatedTaxNotification() {\r\n this.estimatedTaxNotification = false;\r\n localStorage.setItem(\"estimatedTaxNotificationDismissed\", \"yes\");\r\n this.savingsTip = true;\r\n }\r\n\r\n closeSavingsTip() {\r\n this.savingsTip = false;\r\n localStorage.setItem(\"savingsTipDismissed\", \"yes\");\r\n this.stayInvestedTip = true;\r\n }\r\n\r\n closeStayInvestedTip() {\r\n this.stayInvestedTip = false;\r\n localStorage.setItem(\"stayInvestedTipDismissed\", \"yes\");\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.claimService) {\r\n if (!this.retirementSavings) {\r\n this.retirementSavings = new RetirementSavings();\r\n }\r\n this.retirementSavings.percentage = this.percentage;\r\n this.retirementSavings.fullPartFlag = this.showFullPartFlag;\r\n this.retirementSavings.amountToMove = this.calculations.amountToMove;\r\n this.retirementSavings.moveWithDrawFlag = this.moveWithDrawFlag;\r\n this.retirementSavings.savingsLeft = this.calculations.savingsLeft;\r\n this.retirementSavings.totalSavings = this.totalSavings;\r\n this.retirementSavings.tax = this.tax;\r\n this.retirementSavings.payout = this.payout;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n }\r\n }\r\n transformAmount($event: FocusEvent) {\r\n console.log($event);\r\n switch (typeof $event) {\r\n case \"number\":\r\n //this.calculations.amountToMove = this.currencyPipe.transform(parseInt($event), 'R');\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings\r\n );\r\n let amount = this.currencyPipe\r\n .transform(this.calculations.amountToMove, \"R\")\r\n ?.split(\",\")\r\n .join(\" \");\r\n let element : any = document.getElementById(\"amount\");\r\n if(element){\r\n element = amount?.substr(\r\n 0,\r\n amount.length - 3\r\n );\r\n }\r\n this.amountToMove = amount?.substr(0, amount.length - 3);\r\n\r\n if (this.moveWithDrawFlag == 1) {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 2;\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n } else {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 1;\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n }\r\n this.withdrawalAmountProjectionService\r\n .getFundCreditProjection(this.buildProjectionPayload())\r\n .subscribe((resp:any) => {\r\n this.memberRetirementProject.valueAtRetirement = resp;\r\n });\r\n this.withdrawalAmountProjectionService\r\n .getMemberRetirementProjection(this.buildProjectionPayload())\r\n .subscribe((resp:any) => {\r\n this.memberRetirementProject.retirementAge = resp.retirementAge;\r\n this.memberRetirementProject.ageWhenSORRI = resp.ageWhenSORRI;\r\n this.memberRetirementProject.montlyIncomeProjection =\r\n resp.montlyIncomeProjection;\r\n });\r\n this.withdrawalAmountProjectionService\r\n .getTaxPayout(\r\n this.memberAction === \"move\"\r\n ? this.totalSavings - this.calculations.amountToMove\r\n : this.calculations.amountToMove\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n if (\r\n (this.showFullPartFlag == 1 && this.moveWithDrawFlag == 1) ||\r\n (this.percentage == 0 && this.moveWithDrawFlag == 2)\r\n ) {\r\n this.tax = 0;\r\n this.payout = 0;\r\n } else {\r\n this.tax = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.showMessage = true;\r\n }\r\n },\r\n (error:any) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the tax details.\"\r\n );\r\n }\r\n );\r\n break;\r\n default:\r\n if ($event &&\r\n parseInt($event.target[\"value\"].toString().replace(\" \", \"\").replace(\"R\", \"\")) >\r\n this.totalSavings\r\n ) {\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings,\r\n this.totalSavings\r\n );\r\n let amount = this.currencyPipe\r\n .transform(this.calculations.amountToMove, \"R\")\r\n ?.split(\",\")\r\n .join(\" \");\r\n this.calculations.amountToMove = amount\r\n ?.substr(0, amount.length - 3)\r\n .replace(\"R\", \"\")\r\n .replace(\" \", \"\");\r\n let element : any = document.getElementById(\"amount\");\r\n if(element){\r\n element = amount?.substr(\r\n 0,\r\n amount.length - 3\r\n );\r\n }\r\n } else {\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings,\r\n parseInt($event.target[\"value\"].replace(\" \", \"\").replace(\"R\", \"\"))\r\n );\r\n let amount : any = this.currencyPipe\r\n .transform(this.calculations.amountToMove, \"R\")\r\n ?.split(\",\")\r\n .join(\" \");\r\n let element : any = document.getElementById(\"amount\");\r\n if(element){\r\n element = amount?.substr(\r\n 0,\r\n amount.length - 3\r\n );\r\n }\r\n this.amountToMove = amount?.substr(0, amount?.length - 3);\r\n this.withdrawalAmountProjectionService\r\n .getFundCreditProjection(this.buildProjectionPayload())\r\n .subscribe((resp) => {\r\n this.memberRetirementProject.valueAtRetirement = resp;\r\n });\r\n this.withdrawalAmountProjectionService\r\n .getMemberRetirementProjection(this.buildProjectionPayload())\r\n .subscribe((resp) => {\r\n this.memberRetirementProject.retirementAge = resp.retirementAge;\r\n this.memberRetirementProject.ageWhenSORRI = resp.ageWhenSORRI;\r\n this.memberRetirementProject.montlyIncomeProjection =\r\n resp.montlyIncomeProjection;\r\n });\r\n }\r\n this.percentage = this.calculations.percentageToMove;\r\n if (this.moveWithDrawFlag == 1) {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 2;\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n } else {\r\n if (this.percentage == 0) {\r\n this.showFullPartFlag = 1;\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n } else {\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 2;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n this.showFullPartFlag = 1;\r\n }\r\n }\r\n }\r\n this.withdrawalAmountProjectionService\r\n .getTaxPayout(\r\n this.memberAction === \"move\"\r\n ? this.totalSavings - this.calculations.amountToMove\r\n : this.calculations.amountToMove\r\n )\r\n .subscribe(\r\n (resp) => {\r\n if (\r\n (this.showFullPartFlag == 1 && this.moveWithDrawFlag == 1) ||\r\n (this.percentage == 0 && this.moveWithDrawFlag == 2)\r\n ) {\r\n this.tax = 0;\r\n this.payout = 0;\r\n } else {\r\n this.tax = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.showMessage = true;\r\n }\r\n },\r\n (error) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the tax details.\"\r\n );\r\n }\r\n );\r\n //this.calculations.amountToMove = this.currencyPipe.transform(parseInt(this.calculations.amountToMove.replace(',','').replace('R','')), 'R');\r\n break;\r\n }\r\n }\r\n onlyNumberKey(evt: KeyboardEvent) {\r\n const pattern = /[0-9]/;\r\n const inputChar = String.fromCharCode(evt.which);\r\n if (!pattern.test(inputChar)) {\r\n evt.preventDefault();\r\n }\r\n }\r\n\r\n taxDisclaimer() {\r\n this.showTaxDisclaimer = true;\r\n }\r\n\r\n format(valueAtRetirement: number) {\r\n if (valueAtRetirement) {\r\n return Math.floor(valueAtRetirement);\r\n }\r\n }\r\n\r\n toInt(totalSavings: number) {\r\n return parseInt(totalSavings.toString());\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{{ firstName }} {{ surname }}
\r\n
\r\n \r\n Log out\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Find out\r\n how we protect your personal information, privacy and security.\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n You currently have\r\n R{{ totalSavings | number: \"1.0-0\":\"fr-FR\" }} saved\r\n in your {{ memberDetails.membership[0].fundName }}\r\n
\r\n
How much do you want to {{ memberAction }}?
\r\n
\r\n
\r\n \r\n {{ percentage }}%\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
= 1\" class=\"mt-4 flex\">\r\n
\r\n
Estimated tax to be paid
\r\n \r\n \r\n R{{ tax | number: \"1.0-0\":\"fr-FR\" }}\r\n
\r\n \r\n
\r\n
My payout after tax will be
\r\n \r\n \r\n R{{ payout | number: \"1.0-0\":\"fr-FR\" }}\r\n
\r\n \r\n
\r\n
\r\n

\r\n If you don't move your savings, you'll withdraw the rest as\r\n cash.\r\n

\r\n
\r\n
\r\n
\r\n \r\n Tax Disclaimer\r\n
\r\n
    \r\n
  • \r\n This is assumed to be your first withdrawal from a retirement\r\n fund. Any previous withdrawals are not taken into account in\r\n this calculation. Previous withdrawals will change the outcome\r\n of your calculation.\r\n
  • \r\n
  • \r\n This estimation serves as a guideline only and does not negate\r\n from your actual deduction of tax issued by the South African\r\n Revenue Service (SARS).\r\n
  • \r\n
  • \r\n These figures are an estimate only and may change upon your\r\n true calculation.\r\n
  • \r\n
  • \r\n Alexforbes has made an effort to ensure that the data\r\n contained herein is accurate, based on the information you\r\n have supplied. No warranties are attached in any form.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n View\r\n
\r\n
\r\n Have you withdrawn from your retirement savings before?\r\n
\r\n \r\n
\r\n

\r\n If you have previously withdrawn from your retirement savings or\r\n been retrenched,\r\n

\r\n

\r\n estimated tax calculations are more complex and may not be\r\n accurate.\r\n

\r\n

\r\n It is very important to consult a licensed financial adviser\r\n before you make any decisions.\r\n

\r\n \r\n connect to advice\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n {{ memberAction === \"move\" ? memberAction : \"Withdrawal\" }} summary\r\n
\r\n
\r\n
Current Savings
\r\n
\r\n R{{ totalSavings | number: \"1.0-0\":\"fr-FR\" }}\r\n
\r\n
\r\n \r\n
Amount to move
\r\n
{{ amountToMove }}
\r\n
\r\n \r\n
Amount to withdraw
\r\n
{{ amountToMove }}
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Retirement projection\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n ?\r\n \r\n \r\n \r\n
\r\n
\r\n
Amount Saved
\r\n \r\n {{\r\n currencyPipe\r\n .transform(\r\n toInt(totalSavings) - calculations.amountToMove,\r\n \"R\"\r\n )\r\n .split(\",\")\r\n .join(\" \")\r\n .substring(\r\n 0,\r\n currencyPipe\r\n .transform(\r\n toInt(totalSavings) - calculations.amountToMove,\r\n \"R\"\r\n )\r\n .split(\",\")\r\n .join(\" \").length - 3\r\n )\r\n }}\r\n
\r\n
\r\n {{ amountToMove }}\r\n
\r\n \r\n
\r\n
Value at Retirement
\r\n
\r\n R{{ memberRetirementProject.valueAtRetirement | number: \"1.0-0\":\"fr-FR\" }}\r\n \r\n
\r\n
\r\n
\r\n
Monthly pension
after retirement
\r\n
\r\n R{{ memberRetirementProject.montlyIncomeProjection | number: \"1.0-0\":\"fr-FR\" }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Here's how you can explore moving your retirement savings\r\n

\r\n \r\n Explore the impact withdrawing could have on your retirement savings\r\n

\r\n \r\n Use the impact slider to decide how much of your savings you'd like to\r\n move and see the estimated tax penalty.\r\n

\r\n \r\n Use the impact slider to decide how much of your savings you'd like to\r\n withdraw and see the estimated tax penalty.\r\n

\r\n
\r\n
\r\n \r\n got it\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Here's how you can explore withdrawing all or some of your retirement\r\n savings in cash.\r\n

\r\n \r\n Here's how you can explore withdrawing all or some of your retirement\r\n savings in cash.\r\n

\r\n

\r\n Use the impact slider to decide how much of your savings you'd like to\r\n withdraw and see the estimated tax penalty.\r\n

\r\n
\r\n
\r\n \r\n got it\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n At any time during your exploration you can decide to stay invested or\r\n get connected to advice.\r\n

\r\n

\r\n The most important thing is to make sure you have enough money to live\r\n on when you retire. Please make sure you consider your future self.\r\n

\r\n
\r\n
\r\n \r\n got it\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n Disclaimer\r\n \r\n
\r\n These projections are for illustrative purposes only. They don’t\r\n constitute advice nor imply or guarantee any particular outcome. The\r\n projections are mathematical calculations of your expected retirement\r\n income and savings using your current personal information available and\r\n various assumptions about your personal circumstances, future salary\r\n increases and future investment returns.\r\n
\r\n
\r\n We advise that you contact a financial adviser to get a detailed\r\n projection.\r\n
\r\n
\r\n By using this information you acknowledge that you understand these notes\r\n and their implications for the projections provided. Alexforbes, the\r\n fund, the trustees or any of their employees or agents cannot accept any\r\n responsibility for losses arising from, or damages caused by, or expenses\r\n incurred by members as a result of using the information contained in this\r\n statement.\r\n
\r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contact-details',\r\n templateUrl: './contact-details.component.html',\r\n styleUrls: ['./contact-details.component.scss']\r\n})\r\nexport class ContactDetailsComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
Contact details
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\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 } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-postal-address',\r\n templateUrl: './postal-address.component.html',\r\n styleUrls: ['./postal-address.component.scss']\r\n})\r\nexport class PostalAddressComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
Postal address
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\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, HostListener } from \"@angular/core\";\r\nimport { RoutingService } from \"./../../../../services/routing.service\";\r\nimport { LoaderService } from \"./../../../../services/loader.service\";\r\nimport { ErrorService } from \"./../../../../services/error.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport { ContentService } from \"../../../../../../src/app/services/content.service\";\r\nimport { SavingCalculations } from \"../../models/savings-calculations.model\";\r\nimport { ClaimService } from \"../../store/retirement-savings/service/claimService.service\";\r\nimport { MemberDetails } from \"../../store/retirement-savings/model/retirement-savings.model\";\r\nimport { Constants } from \"../../../../../app/constants/constants\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport appsettings from \"../../../../../assets/appsettings.json\"\r\n\r\nexport class MemDetails {\r\n cellNo: string;\r\n email: string;\r\n}\r\n@Component({\r\n selector: \"app-profile-landing-page\",\r\n templateUrl: \"./profile-landing-page.component.html\",\r\n styleUrls: [\"./profile-landing-page.component.scss\"],\r\n})\r\nexport class ProfileLandingPageComponent implements OnInit {\r\n popIaDisclosurePath: string = \"\";\r\n scrolled = 0;\r\n infoIconDamPath: string = \"\";\r\n userName: string;\r\n profileUser: any;\r\n corporateId: string;\r\n corporate: any;\r\n memberDetails: MemberDetails;\r\n memberStatus: any;\r\n moveWithdrawFlag: number;\r\n page: string = \"profile\";\r\n currentStep: number = 1;\r\n showPopup: unknown = false;\r\n showError = false;\r\n retirementProjectionValues: any;\r\n savingsCalculations: SavingCalculations;\r\n savingsMemberValues: any;\r\n showRequiredInfo = false;\r\n memberValues: any;\r\n showValuesBlock: boolean;\r\n showRetirementDisclaimerPopup = false;\r\n calculationsCache: any;\r\n isDialogOpen: boolean;\r\n\r\n constructor(\r\n private routingService: RoutingService,\r\n private loader: LoaderService,\r\n private errorService: ErrorService,\r\n private httpClient: HttpClient,\r\n private contentService: ContentService,\r\n private auth: AuthenticationService,\r\n public claimService: ClaimService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.loader.start();\r\n if (this.claimService.getMemberDetails() != null) {\r\n this.memberDetails = this.claimService.getMemberDetails();\r\n this.memberValues = this.claimService.getMemberValues();\r\n this.memberStatus = this.claimService.getMemberStatus();\r\n this.retirementProjectionValues = this.claimService.getProjections();\r\n this.showValuesBlock = true;\r\n this.loader.stop();\r\n } else {\r\n this.contentService.cacheDropdownOptions();\r\n this.getMemberDetails().subscribe(\r\n (resp: any) => {\r\n this.memberDetails = resp.member[0];\r\n this.claimService.setMemberDetails(this.memberDetails);\r\n this.getMemberStatus().subscribe(\r\n (val: any) => {\r\n this.memberStatus = val;\r\n this.claimService.setMemberStatus(this.memberStatus);\r\n this.getMemberValues().subscribe(\r\n (values) => {\r\n this.memberValues = values;\r\n this.showValuesBlock = true;\r\n this.claimService.setMemberValues(this.memberValues);\r\n this.loader.stop();\r\n if (this.memberStatus.CanClaim) {\r\n } else {\r\n this.loader.stop();\r\n this.goToSummaryPage();\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the member details.\"\r\n );\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the member status.\"\r\n );\r\n }\r\n ); \r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"Sorry, but there are no active claims available linked to your details. Please speak to your HR team for assistance.\"\r\n );\r\n document.addEventListener((\"logoutAfterClose\"), (event) => {\r\n this.logout();\r\n });\r\n }\r\n );\r\n }\r\n // this.errorService.openErrorPopup('Please access the system from a desktop/laptop for the best user experience');\r\n }\r\n\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll($event: any) {\r\n const numb = window.scrollY;\r\n if (numb >= 400){\r\n this.scrolled = 1;\r\n }\r\n else {\r\n this.scrolled = 0;\r\n }\r\n }\r\n\r\n getMemberDetails(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.memberDetails}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n getMemberStatus(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalClaimsService}${appsettings.endPoints.claimStatus}?MembershipNumber=${this.memberDetails.membership[0].subscriptionNumber}&FundId=${this.memberDetails.membership[0].fundId}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n getMemberValues(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalMemberServicesUrl}${appsettings.endPoints.memberFundValues}?MembershipNumber=${this.memberDetails.membership[0].subscriptionNumber}&FundId=${this.memberDetails.membership[0].fundId}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n goToSummaryPage() {\r\n this.routingService.savingsSummary();\r\n }\r\n\r\n scrollTo() {\r\n document.getElementById('#information-be-aware')!.scrollIntoView();\r\n }\r\n\r\n growSavings() {\r\n this.routingService.confirmDetails();\r\n }\r\n\r\n logout() {\r\n this.auth.logout(false);\r\n }\r\n\r\n next(step: any) {\r\n if (step === \"done\") {\r\n const savings = Math.floor(this.memberValues.FundCredit);\r\n this.routingService.moveSavings(this.moveWithdrawFlag, savings);\r\n } else {\r\n this.currentStep = step;\r\n }\r\n }\r\n prev(step: any) {\r\n this.currentStep = step;\r\n }\r\n\r\n projectionsCacheInitialized(cache: any) {\r\n this.claimService.setProjections(cache);\r\n }\r\n\r\n resetProjections() {\r\n this.claimService.setProjections(this.retirementProjectionValues);\r\n }\r\n}\r\n\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ memberDetails.firstName }} {{ memberDetails.surname }}\r\n
\r\n
\r\n \r\n Log out\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Find out\r\n how we protect your personal information, privacy and security.\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ memberDetails.firstName }} {{ memberDetails.surname }}\r\n
\r\n
\r\n \r\n Here are your retirement savings from your
\r\n time at {{ memberDetails.employerName }}\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n Your retirement savings are currently invested\r\n
\r\n
\r\n
\r\n Your retirement savings will remain safely in-fund and can\r\n continue to grow even though you are no longer contributing\r\n towards it. Here are a few benefits of keeping your retirement\r\n savings invested:\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Explore your options\r\n
\r\n
\r\n Even though you have left the company, you do not need to make a\r\n decision regarding your retirement savings. You are currently in the\r\n Save option, and only need to update your details if you want to\r\n stay here.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Save\r\n

\r\n
\r\n \r\n This is the easiest option. Leave your money where is and your\r\n retirement savings can continue to grow. You can decide what to do\r\n with your savings at a later date or just leave them where they\r\n are until you retire.\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Move\r\n

\r\n
\r\n You can move some or all of your retirement savings to another\r\n fund. The savings you move to another fund can continue to\r\n grow.\r\n
\r\n
\r\n \r\n EXPLORE THIS OPTION\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Withdraw\r\n

\r\n
\r\n Withdraw all or some of your savings in cash. You could pay up to\r\n 36% tax on the withdrawal of the amount.\r\n
\r\n
\r\n \r\n EXPLORE THIS OPTION\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Decisions about your retirement savings are very important.\r\n \r\n
\r\n Please think about what we're going to say next to help you get ready to\r\n make your decision.\r\n
\r\n
\r\n \r\n \r\n Here's some information to help you get ready\r\n \r\n \r\n Your retirement savings need to last you for the rest of your life after\r\n you retire\r\n \r\n
\r\n It is estimated that you will live 20 years longer than your\r\n grandparents. Think about how long you might live.
\r\n Do you think you will have enough money to last you that long?\r\n
\r\n \r\n You need to save enough to live on when you retire\r\n \r\n
\r\n If you had saved 1 million Rand in today's money when you retire, you\r\n could get a pension of approximately
R5 000 a month.
\r\n Do you think you will have enough to live on when you retire?\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n Disclaimer\r\n \r\n
\r\n These projections are for illustrative purposes only. They don’t\r\n constitute advice nor imply or guarantee any particular outcome. The\r\n projections are mathematical calculations of your expected retirement\r\n income and savings using your current personal information available and\r\n various assumptions about your personal circumstances, future salary\r\n increases and future investment returns.\r\n
\r\n
\r\n We advise that you contact a financial adviser to get a detailed\r\n projection.\r\n
\r\n
\r\n By using this information you acknowledge that you understand these\r\n notes and their implications for the projections provided. Alexander\r\n Forbes, the fund, the trustees or any of their employees or agents\r\n cannot accept any responsibility for losses arising from, or damages\r\n caused by, or expenses incurred by members as a result of using the\r\n information contained in this statement.\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport {\r\n RetirementSavings,\r\n BankingDetails,\r\n Calculations,\r\n} from \"../../../store/retirement-savings/retirementsavings\";\r\nimport { ErrorService } from \"./../../../../../services/error.service\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport { WithdrawalAmountProjectionServiceService } from \"../../withdrawal-amount-projection-service.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ActiveTab } from \"../shared/enum\";\r\nimport { ClaimService } from \"../../../store/retirement-savings/service/claimService.service\";\r\nimport { LoaderService } from \"./../../../../../services/loader.service\";\r\nimport { StoreService } from \"./../../../../../services/storeService\";\r\nimport { banks } from \"./../../../../../constants/banks\";\r\nimport { AuthenticationService } from \"../../../../../services/authentication.service\";\r\nimport { getErrorMessage } from \"../../../../../shared/common-functions\";\r\nimport appsettings from \"../../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-banking-details\",\r\n templateUrl: \"./banking-details.component.html\",\r\n styleUrls: [\"./banking-details.component.scss\"],\r\n})\r\nexport class BankingDetailsComponent implements OnInit {\r\n bankingDetailsForm: FormGroup;\r\n retirementSavings: RetirementSavings;\r\n bankingDetails: BankingDetails;\r\n bankingFormInvalid: boolean = false;\r\n private _headers: HttpHeaders;\r\n memberAction: string;\r\n amountToMove: any;\r\n savingsLeft: any;\r\n taxTobePaid: number = 0;\r\n payout: number = 0;\r\n moveWithDrawFlag: number;\r\n totalSavings: number;\r\n percentage: number;\r\n calculations: Calculations;\r\n calculateTaxAmount: number;\r\n @Input() fullTransfer: boolean;\r\n @Input() fullWithdrawal: boolean;\r\n @Input() fullCash: boolean;\r\n @Input() partTransfer: boolean;\r\n @Input() activeTab: ActiveTab;\r\n @Output() continue = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n banksResp: any;\r\n banks: {\r\n bankName: string;\r\n defaultBranchCode: string;\r\n id: number;\r\n isActive: boolean;\r\n }[] = [];\r\n\r\n constructor(\r\n private errorService: ErrorService,\r\n protected _route: ActivatedRoute,\r\n public claimService: ClaimService,\r\n private loader: LoaderService,\r\n private auth: AuthenticationService,\r\n private withdrawalAmountProjectionService: WithdrawalAmountProjectionServiceService,\r\n private httpClient: HttpClient\r\n ) {\r\n this.bankingDetails = new BankingDetails();\r\n this.retirementSavings = this.claimService.getRetirementSavings();\r\n this.bankingDetails = this.claimService.getBankingDetails();\r\n }\r\n\r\n ngOnInit() {\r\n this.getBankNames();\r\n if (this.retirementSavings) {\r\n this.memberAction =\r\n this.retirementSavings.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n this.amountToMove = this.retirementSavings.amountToMove;\r\n this.moveWithDrawFlag = this.retirementSavings.moveWithDrawFlag;\r\n this.totalSavings = this.retirementSavings.totalSavings;\r\n this.amountToMove = this.retirementSavings.amountToMove;\r\n this.savingsLeft = this.retirementSavings.savingsLeft;\r\n this.taxTobePaid = this.retirementSavings.tax;\r\n this.payout = this.retirementSavings.payout;\r\n this.percentage = this.retirementSavings.percentage;\r\n } else {\r\n this.retirementSavings = this.claimService.getRetirementSavings();\r\n if (!this.retirementSavings) {\r\n this.retirementSavings = new RetirementSavings();\r\n this._route.queryParams.subscribe((parameters) => {\r\n this.moveWithDrawFlag = parameters[\"flag\"];\r\n this.memberAction = this.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n this.totalSavings = parameters[\"sv\"].replace(/\\s/g, \"\");\r\n this.percentage = parameters[\"pt\"];\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings\r\n );\r\n this.retirementSavings.amountToMove = this.calculations.amountToMove;\r\n this.retirementSavings.savingsLeft = this.calculations.savingsLeft;\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n }\r\n this.retirementSavings.percentage = this.percentage;\r\n this.retirementSavings.fullPartFlag = this.percentage < 100 ? 2 : 1;\r\n this.retirementSavings.moveWithDrawFlag = this.moveWithDrawFlag;\r\n this.retirementSavings.totalSavings = this.totalSavings;\r\n if (this.fullTransfer) {\r\n this.taxTobePaid = 0;\r\n this.payout = 0;\r\n this.retirementSavings.tax = 0;\r\n this.retirementSavings.payout = 0;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n } else {\r\n this.withdrawalAmountProjectionService\r\n .getTaxPayout(this.calculateTaxAmount)\r\n .subscribe(\r\n (resp) => {\r\n this.taxTobePaid = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.retirementSavings.tax = this.taxTobePaid;\r\n this.retirementSavings.payout = this.payout;\r\n this.claimService.setRetirementSavings(\r\n this.retirementSavings\r\n );\r\n },\r\n (error) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the tax details.\"\r\n );\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n if (this.claimService) {\r\n this.bankingDetails = this.claimService.getBankingDetails();\r\n if (!this.bankingDetails) {\r\n this.bankingDetails = new BankingDetails();\r\n }\r\n }\r\n this.onCreateBankingDetailsForm();\r\n }\r\n\r\n getBankNames() {\r\n this.banks = banks;\r\n }\r\n\r\n onCreateBankingDetailsForm() {\r\n this.bankingDetailsForm = new FormGroup({\r\n accHolderName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z\\- ]*$\"),\r\n ]),\r\n accountNumber: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^$|^[0-9]*$\"),\r\n ]),\r\n bankName: new FormControl(null, [Validators.required]),\r\n branchCode: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^$|^[0-9]*$\"),\r\n ]),\r\n accountType: new FormControl(null, [Validators.required]),\r\n });\r\n }\r\n\r\n public getBankingData(): void {\r\n if (!this.bankingDetails) {\r\n this.bankingDetails = new BankingDetails();\r\n }\r\n this.bankingDetails.accHolderName = \r\n this.bankingDetailsForm.get(\"accHolderName\")?.value;\r\n this.bankingDetails.accountNumber =\r\n this.bankingDetailsForm.get(\"accountNumber\")?.value;\r\n this.bankingDetails.bankName =\r\n this.bankingDetailsForm.get(\"bankName\")?.value;\r\n this.bankingDetails.branchCode =\r\n this.bankingDetailsForm.get(\"branchCode\")?.value;\r\n this.bankingDetails.accountType =\r\n this.bankingDetailsForm.get(\"accountType\")?.value;\r\n }\r\n\r\n validateBankingDetails(option: string, tab: string): boolean {\r\n this.loader.start();\r\n this.validateBankDetails().subscribe(\r\n (val) => {\r\n if (val.IsValid) {\r\n this.loader.stop();\r\n this.getBankingData();\r\n this.continue.emit(this.bankingDetails);\r\n if (option == \"2\") {\r\n this.next.emit(tab);\r\n }\r\n } else {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"Please enter valid banking details.\"\r\n );\r\n this.bankingFormInvalid = true;\r\n }\r\n return true;\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n this.errorService.openErrorPopup(\r\n \"Error while validating Bank details: \" + errorMessage\r\n );\r\n return false;\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n validateBankDetails() {\r\n const data = {\r\n accountNumber: this.bankingDetails.accountNumber,\r\n accountType: this.bankingDetails.accountType,\r\n branchCode: this.bankingDetails.branchCode,\r\n };\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const url = `${appsettings.digitalMemberServicesUrl}${appsettings.endPoints.validateBankingDetails}`;\r\n const options = { headers: headers };\r\n return this.httpClient.post(url, data, options);\r\n }\r\n\r\n continueTab() {\r\n if (this.bankingDetailsForm.invalid) {\r\n this.bankingFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required banking details, in the correct format.\"\r\n );\r\n } else {\r\n this.validateBankingDetails(\"1\", \"\");\r\n }\r\n }\r\n\r\n nextTab(tab: string) {\r\n if (this.bankingDetailsForm.invalid) {\r\n this.bankingFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required banking details, in the correct format.\"\r\n );\r\n } else {\r\n this.validateBankingDetails(\"2\", tab);\r\n }\r\n }\r\n\r\n ondropDownChange(event:any) {\r\n this.bankingDetailsForm.controls[\"bankName\"].patchValue(event.target.value);\r\n const bank = this.banks.filter((x) => x.id == event.target.value)[0];\r\n this.bankingDetails.branchCode = bank.defaultBranchCode;\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n
Provide banking details
\r\n
\r\n

\r\n Please provide your own personal banking details and\r\n

\r\n

\r\n not someone else's (such as a spouse or family member)\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Withdrawal summary
\r\n
\r\n \r\n
\r\n
\r\n
Amount to withdraw
\r\n
R{{ (memberAction === 'Move' ? this.retirementSavings.totalSavings - this.retirementSavings.amountToMove: this.retirementSavings.amountToMove) | number:'':'fr-FR' }}
\r\n
\r\n
\r\n
Estimated tax
\r\n
R{{retirementSavings.tax | number:'1.0-0':'fr-FR'}}
\r\n
\r\n
\r\n
Payout after tax
\r\n
R{{retirementSavings.payout | number:'1.0-0':'fr-FR'}}
\r\n
\r\n
\r\n
Savings left
\r\n
R{{ (memberAction === 'Move' ? retirementSavings.amountToMove: retirementSavings.totalSavings - retirementSavings.amountToMove) | number:'':'fr-FR' }}
\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 {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n} from \"@angular/core\";\r\nimport { FormGroup, FormControl, Validators } from \"@angular/forms\";\r\nimport {\r\n RetirementSavings,\r\n RetirementSavingsStore,\r\n BrokerDetails,\r\n Calculations,\r\n} from \"../../../store/retirement-savings/retirementsavings\";\r\nimport { ErrorService } from \"./../../../../../services/error.service\";\r\nimport { WithdrawalAmountProjectionServiceService } from \"../../withdrawal-amount-projection-service.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ActiveTab } from \"../shared/enum\";\r\nimport { ClaimService } from \"../../../store/retirement-savings/service/claimService.service\";\r\nimport { StoreService } from \"../../../../../../../src/app/services/storeService\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { LoaderService } from \"../../../../../../../src/app/services/loader.service\";\r\nimport { messages } from \"../../../../../constants/warningAndErrorMessages\";\r\nimport { getErrorMessage } from \"../../../../../shared/common-functions\";\r\nimport appsettings from \"../../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-broker-details\",\r\n templateUrl: \"./broker-details.component.html\",\r\n styleUrls: [\"./broker-details.component.scss\"],\r\n})\r\nexport class BrokerDetailsComponent implements OnInit, OnDestroy {\r\n brokerDetailsForm: FormGroup;\r\n retirementSavings: RetirementSavings;\r\n brokerDetails: BrokerDetails;\r\n memberAction: string;\r\n amountToMove: any;\r\n savingsLeft: any;\r\n stay: boolean = false;\r\n taxTobePaid: number = 0;\r\n payout: number = 0;\r\n moveWithDrawFlag: number;\r\n totalSavings: number;\r\n percentage: number;\r\n calculations: Calculations;\r\n brokerFormInvalid: boolean = false;\r\n calculateTaxAmount: number;\r\n afrisProducts: any;\r\n productsDetailsVisible: boolean;\r\n products: { id: number; name: string }[] = [];\r\n otherProduct: boolean = false;\r\n selectedProduct: number;\r\n selectedProductName: string;\r\n prompt: string;\r\n public sendToBroker: boolean;\r\n protected _subscriptions = new Array();\r\n messages = messages;\r\n cellPhoneNumberError: boolean = false;\r\n workPhoneNumberError: boolean = false;\r\n emailFormatError: boolean = false;\r\n @Input() fullTransfer: boolean;\r\n @Input() fullWithdrawal: boolean;\r\n @Input() activeTab: ActiveTab;\r\n @Input() showTaxPayout: boolean;\r\n @Input() fullCash: boolean;\r\n @Input() partTransfer: boolean;\r\n @Output() continue = new EventEmitter();\r\n @Output() next = new EventEmitter();\r\n @Output() connectToAdvice = new EventEmitter();\r\n\r\n constructor(\r\n private withdrawalAmountProjectionService: WithdrawalAmountProjectionServiceService,\r\n public claimService: ClaimService,\r\n protected _route: ActivatedRoute,\r\n private storeService: StoreService,\r\n private httpClient: HttpClient,\r\n protected route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n private loader: LoaderService\r\n ) {\r\n this.brokerDetails = new BrokerDetails();\r\n this.retirementSavings = this.claimService.getRetirementSavings();\r\n this.brokerDetails = this.claimService.getBrokerDetails();\r\n }\r\n\r\n ngOnInit() {\r\n this.getProductsTypesList();\r\n\r\n if (this.retirementSavings) {\r\n this.memberAction =\r\n this.retirementSavings.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n this.moveWithDrawFlag = this.retirementSavings.moveWithDrawFlag;\r\n this.totalSavings = this.retirementSavings.totalSavings;\r\n this.amountToMove = this.retirementSavings.amountToMove;\r\n this.savingsLeft = this.retirementSavings.savingsLeft;\r\n this.taxTobePaid = this.retirementSavings.tax;\r\n this.payout = this.retirementSavings.payout;\r\n this.percentage = this.retirementSavings.percentage;\r\n } else {\r\n this.retirementSavings = new RetirementSavings();\r\n this._route.queryParams.subscribe((parameters) => {\r\n this.moveWithDrawFlag = parameters[\"flag\"];\r\n this.totalSavings = parameters[\"sv\"].replace(/\\s/g, \"\");\r\n this.percentage = parameters[\"pt\"];\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings\r\n );\r\n this.retirementSavings.amountToMove = this.calculations.amountToMove;\r\n this.retirementSavings.savingsLeft = this.calculations.savingsLeft;\r\n this.memberAction = this.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n }\r\n this.retirementSavings.percentage = this.percentage;\r\n this.retirementSavings.fullPartFlag = this.percentage < 100 ? 2 : 1;\r\n this.retirementSavings.moveWithDrawFlag = this.moveWithDrawFlag;\r\n this.retirementSavings.totalSavings = this.totalSavings;\r\n if (this.fullTransfer) {\r\n this.taxTobePaid = 0;\r\n this.payout = 0;\r\n this.retirementSavings.tax = 0;\r\n this.retirementSavings.payout = 0;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n } else {\r\n this.withdrawalAmountProjectionService\r\n .getTaxPayout(this.calculateTaxAmount)\r\n .subscribe(\r\n (resp) => {\r\n this.taxTobePaid = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.retirementSavings.tax = this.taxTobePaid;\r\n this.retirementSavings.payout = this.payout;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n },\r\n (error) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the tax details.\"\r\n );\r\n }\r\n );\r\n }\r\n });\r\n }\r\n if (this.claimService) {\r\n this.brokerDetails = this.claimService.getBrokerDetails();\r\n if (!this.brokerDetails) {\r\n this.brokerDetails = new BrokerDetails();\r\n }\r\n }\r\n this.onCreateBrokerDetailsForm();\r\n\r\n this._subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.prompt = params[\"prompt\"];\r\n })\r\n );\r\n }\r\n\r\n getProductsTypesList() {\r\n this.loader.start();\r\n this.products.push({\r\n id: 0,\r\n name: \"\",\r\n });\r\n\r\n this.getProducTypes().subscribe(\r\n (resp) => {\r\n this.afrisProducts = resp;\r\n this.loader.stop();\r\n this.afrisProducts.forEach((product:any) => {\r\n this.products.push({\r\n id: product.id,\r\n name: product.name,\r\n });\r\n });\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n let errorMessage = getErrorMessage(error);\r\n this.errorService.openErrorPopup(\r\n \"Error while getting Product Types: \" + errorMessage\r\n );\r\n }\r\n );\r\n }\r\n getProducTypes() {\r\n const token = this.storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.productTypeLookup}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n onProductChange($event: { target: { selectedOptions: { text: string; }[]; }; }, productId: number) {\r\n if (productId == 4) {\r\n this.otherProduct = true;\r\n } else {\r\n this.otherProduct = false;\r\n this.selectedProductName = $event.target.selectedOptions[0].text;\r\n }\r\n }\r\n\r\n onWorkNumberChange() {\r\n if (this.brokerDetailsForm.controls[\"brokerNumber\"].invalid) {\r\n this.workPhoneNumberError = true;\r\n } else {\r\n this.workPhoneNumberError = false;\r\n }\r\n }\r\n\r\n onEmailChange() {\r\n if (this.brokerDetailsForm.controls[\"brokerEmail\"].invalid) {\r\n this.emailFormatError = true;\r\n } else {\r\n this.emailFormatError = false;\r\n }\r\n }\r\n\r\n onCellNumberChange() {\r\n if (this.brokerDetailsForm.controls[\"brokerCell\"].invalid) {\r\n this.cellPhoneNumberError = true;\r\n } else {\r\n this.cellPhoneNumberError = false;\r\n }\r\n }\r\n\r\n onCreateBrokerDetailsForm() {\r\n this.brokerDetailsForm = new FormGroup({\r\n newFundName: new FormControl(null, [Validators.pattern(\"^[a-zA-Z- ]*$\")]),\r\n brokerCell: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n brokerName: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^[a-zA-Z-,]+(\\s{0,1}[a-zA-Z-, ])*$\"),\r\n ]),\r\n brokerEmail: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\r\n \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,4})+$\"\r\n ),\r\n ]),\r\n brokerNumber: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n productName: new FormControl(null, [Validators.pattern(\"^[a-zA-Z- ]*$\")]),\r\n sendToBroker: new FormControl(\"\"),\r\n productsDetailsVisible: new FormControl(\"\"),\r\n });\r\n }\r\n\r\n continueTab(data: string) {\r\n if (this.brokerDetailsForm.invalid) {\r\n this.brokerFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required broker details, in the correct format.\"\r\n );\r\n } else {\r\n this.getBrokerData();\r\n this.continue.emit(this.brokerDetails);\r\n }\r\n }\r\n nextTab(tab: string) {\r\n if (this.brokerDetailsForm.invalid) {\r\n this.brokerFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required broker details, in the correct format.\"\r\n );\r\n } else {\r\n this.getBrokerData();\r\n this.continue.emit(this.brokerDetails);\r\n this.next.emit(tab);\r\n }\r\n }\r\n\r\n getBrokerData(): void {\r\n if (!this.brokerDetails) {\r\n this.brokerDetails = new BrokerDetails();\r\n }\r\n if (this.prompt === \"save\") {\r\n this.brokerDetails.newFundName =\r\n this.brokerDetailsForm.get(\"productName\")?.value != null\r\n ? this.brokerDetailsForm.get(\"productName\")?.value\r\n : this.selectedProductName;\r\n } else {\r\n this.brokerDetails.newFundName =\r\n this.brokerDetailsForm.get(\"newFundName\")?.value;\r\n }\r\n this.brokerDetails.brokerCell =\r\n this.brokerDetailsForm.get(\"brokerCell\")?.value;\r\n this.brokerDetails.brokerName =\r\n this.brokerDetailsForm.get(\"brokerName\")?.value;\r\n this.brokerDetails.brokerEmail =\r\n this.brokerDetailsForm.get(\"brokerEmail\")?.value;\r\n this.brokerDetails.brokerNumber =\r\n this.brokerDetailsForm.get(\"brokerNumber\")?.value;\r\n this.brokerDetails.isAdvised = this.brokerDetailsForm.get(\"productsDetailsVisible\")?.value;\r\n this.brokerDetails.sendtoBroker =\r\n this.brokerDetailsForm.get(\"sendToBroker\")?.value;\r\n }\r\n\r\n toggleDisplay() {\r\n if (this.productsDetailsVisible) {\r\n this.productsDetailsVisible = false;\r\n document.getElementById(\"toggleBG\")?.classList.remove(\"bg-orange-600\");\r\n document.getElementById(\"toggleBG\")?.classList.add(\"bg-gray-400\");\r\n } else {\r\n this.productsDetailsVisible = true;\r\n document.getElementById(\"toggleBG\")?.classList.remove(\"bg-gray-400\");\r\n document.getElementById(\"toggleBG\")?.classList.add(\"bg-orange-600\");\r\n }\r\n }\r\n\r\n ngOnDestroy() {}\r\n\r\n toggleTaxPopUp() {\r\n this.showTaxPayout = false;\r\n localStorage.removeItem(\"showTaxInfo\");\r\n }\r\n\r\n onConnectToAdvice() {\r\n this.connectToAdvice.emit();\r\n }\r\n}\r\n","\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Did you receive advice?
\r\n
\r\n Were you assisted by an adviser when deciding where to save?\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Select a product
\r\n
\r\n Please select the product you have chosen\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
Provide broker details
\r\n
\r\n Please provide broker details on the receiving end of the transfer below.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n {{ messages.EMAIL_FORMAT }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{messages.PHONE_FORMAT}}\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
Share your decision
\r\n
\r\n Your broker will be notified on your decision and will receive a copy of your claim form.\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{messages.PHONE_FORMAT}}\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
Withdrawal summary
\r\n
\r\n
\r\n
Move summary
\r\n
\r\n \r\n
\r\n
\r\n
Amount to withdraw
\r\n
\r\n R{{ (memberAction === 'Move' ? retirementSavings.totalSavings - retirementSavings.amountToMove:\r\n retirementSavings.amountToMove) | number:'':'fr-FR' }}\r\n
\r\n
\r\n
\r\n
Estimated tax
\r\n
\r\n R{{retirementSavings.tax | number:'1.0-0':'fr-FR'}}
\r\n\r\n
\r\n
\r\n
Payout after tax
\r\n
\r\n R{{retirementSavings.payout | number:'1.0-0':'fr-FR'}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
Payout after tax estimation
\r\n

\r\n The 'Payout after tax' amount may not be the total amount\r\n paid to you, depending on withdrawals you have made when leaving\r\n jobs previously. If you would like help working out tax of your savings,\r\n please contact an adviser.\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Savings left
\r\n
Savings to move
\r\n
\r\n R{{ (memberAction === 'Move' ? retirementSavings.amountToMove: retirementSavings.totalSavings -\r\n retirementSavings.amountToMove) | number:'':'fr-FR' }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { RoutingService } from \"../../../../services/routing.service\";\r\nimport { ActiveTab } from \"./shared/enum\";\r\nimport {\r\n RetirementSavings,\r\n MemberContactDetails,\r\n Calculations,\r\n MemberDetails,\r\n MemberValues,\r\n} from \"../../store/retirement-savings/retirementsavings\";\r\nimport { Constants } from \"../../../../../app/constants/constants\";\r\n\r\nimport { ErrorService } from \"../../../../services/error.service\";\r\nimport { ClaimService } from \"../../store/retirement-savings/service/claimService.service\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { LoaderService } from \"../../../../services/loader.service\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { WithdrawalAmountProjectionServiceService } from \"../withdrawal-amount-projection-service.service\";\r\nimport { UtilitiesService } from \"../../../../services/utilities.service\";\r\nimport { eWithdrawalOption } from \"../../store/retirement-savings/service/enum\";\r\nimport { AuthenticationService } from \"../../../../services/authentication.service\";\r\nimport { User } from \"oidc-client\";\r\nimport { getErrorMessage } from \"../../../../shared/common-functions\";\r\nimport appsettings from \"../../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-savings-details\",\r\n templateUrl: \"./savings-details.component.html\",\r\n styleUrls: [\"./savings-details.component.scss\"],\r\n})\r\nexport class SavingsDetailsComponent implements OnInit {\r\n popIaDisclosurePath: String = \"\";\r\n infoIconDamPath: String = \"\";\r\n firstName: String;\r\n surname: String;\r\n active = ActiveTab;\r\n showToolTip: boolean = true;\r\n retirementsavings: RetirementSavings;\r\n memberAction: string;\r\n memberDetails: MemberDetails;\r\n activeTab: ActiveTab = ActiveTab.BROKER_DETAILS;\r\n formInvalid: boolean = false;\r\n brokerFormInvalid: boolean = false;\r\n bankingFormInvalid: boolean = false;\r\n incomeTaxNumber: string = \"\";\r\n amountToMove: any;\r\n claimSuccess: boolean = false;\r\n route: string = \"summary\";\r\n taxTobePaid: number = 0;\r\n savingsLeft: number;\r\n payout: number = 0;\r\n claimId: string;\r\n empEmail: string;\r\n private validateTaxRef: boolean = false;\r\n moveWithDrawFlag: number;\r\n totalSavings: number;\r\n percentage: number;\r\n calculations: Calculations;\r\n memberValues: MemberValues;\r\n fullTransfer: boolean = false;\r\n fullWithdrawal: boolean = false;\r\n partTransfer: boolean = false;\r\n fullCash: boolean = false;\r\n calculateTaxAmount: number;\r\n employeeId: any;\r\n showTaxPopUp: boolean;\r\n connect: boolean = false;\r\n afris: boolean;\r\n memberPersonalDetails: any;\r\n member: User | null = null;\r\n claimErrorMsg: string = \"An error occurred while submitting the claim.\";\r\n isDialogOpen: boolean;\r\n\r\n constructor(\r\n private auth: AuthenticationService,\r\n private routingService: RoutingService,\r\n private errorService: ErrorService,\r\n public claimService: ClaimService,\r\n private httpClient: HttpClient,\r\n private loader: LoaderService,\r\n protected _route: ActivatedRoute,\r\n private utils: UtilitiesService,\r\n private withdrawalAmountProjectionService: WithdrawalAmountProjectionServiceService\r\n ) {\r\n this.retirementsavings = this.claimService.getRetirementSavings();\r\n this.memberDetails = this.claimService.getMemberDetails();\r\n this.memberValues = this.claimService.getMemberValues();\r\n }\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.auth\r\n .getClaims()\r\n .then((member) => {\r\n this.member = member;\r\n this.firstName = this.member?.profile.given_name!;\r\n this.surname = this.member?.profile.family_name!;\r\n this.memberDetails = this.claimService.getMemberDetails();\r\n this.memberValues = this.claimService.getMemberValues();\r\n if (this.retirementsavings) {\r\n this.memberAction =\r\n this.retirementsavings.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n this.moveWithDrawFlag = this.retirementsavings.moveWithDrawFlag;\r\n this.totalSavings = this.retirementsavings.totalSavings;\r\n this.amountToMove = this.retirementsavings.amountToMove;\r\n this.savingsLeft = this.retirementsavings.savingsLeft;\r\n this.taxTobePaid = this.retirementsavings.tax;\r\n this.payout = this.retirementsavings.payout;\r\n this.percentage = this.retirementsavings.percentage;\r\n } else {\r\n if (this.claimService) {\r\n this.retirementsavings = this.claimService.getRetirementSavings();\r\n if (!this.retirementsavings) {\r\n this.retirementsavings = new RetirementSavings();\r\n this._route.queryParams.subscribe((parameters) => {\r\n this.moveWithDrawFlag = parameters[\"flag\"];\r\n this.memberAction =\r\n this.moveWithDrawFlag == 1 ? \"Move\" : \"Withdraw\";\r\n this.totalSavings = parameters[\"sv\"].replace(/\\s/g, \"\");\r\n this.percentage = parameters[\"pt\"];\r\n this.afris = parameters[\"af\"];\r\n this.calculations = this.claimService.getCalculations(\r\n this.percentage,\r\n this.totalSavings\r\n );\r\n this.retirementsavings.amountToMove =\r\n this.calculations.amountToMove;\r\n this.retirementsavings.savingsLeft =\r\n this.calculations.savingsLeft;\r\n if (this.percentage < 100) {\r\n this.calculateTaxAmount = this.retirementsavings.savingsLeft;\r\n } else {\r\n this.calculateTaxAmount = this.retirementsavings.amountToMove;\r\n }\r\n this.retirementsavings.percentage = this.percentage;\r\n this.retirementsavings.fullPartFlag =\r\n this.percentage < 100 ? 2 : 1;\r\n this.retirementsavings.moveWithDrawFlag = this.moveWithDrawFlag;\r\n this.retirementsavings.totalSavings = this.totalSavings;\r\n if (this.fullTransfer) {\r\n this.taxTobePaid = 0;\r\n this.payout = 0;\r\n this.retirementsavings.tax = 0;\r\n this.retirementsavings.payout = 0;\r\n this.claimService.setRetirementSavings(\r\n this.retirementsavings\r\n );\r\n } else {\r\n this.withdrawalAmountProjectionService\r\n .getTaxPayout(this.calculateTaxAmount)\r\n .subscribe(\r\n (resp) => {\r\n this.taxTobePaid = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.retirementsavings.tax = this.taxTobePaid;\r\n this.retirementsavings.payout = this.payout;\r\n this.claimService.setRetirementSavings(\r\n this.retirementsavings\r\n );\r\n },\r\n (error) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the tax details.\"\r\n );\r\n }\r\n );\r\n }\r\n });\r\n }\r\n }\r\n }\r\n // if (this.moveWithDrawFlag == 1 && this.percentage == 100 ){\r\n // this.fullTransfer = true;\r\n // } else if(this.moveWithDrawFlag == 2 && this.percentage == 100){\r\n // this.fullWithdrawal = true;\r\n // this.activeTab = ActiveTab.BANKING_DETAILS;\r\n // this.showToolTip = false;\r\n // }\r\n switch (this.moveWithDrawFlag.toString()) {\r\n case \"1\":\r\n if (this.percentage > 0 && this.percentage < 100) {\r\n this.partTransfer = true;\r\n } else if (this.percentage == 100) {\r\n this.fullTransfer = true;\r\n } else if (this.percentage == 0) {\r\n this.activeTab = ActiveTab.BANKING_DETAILS;\r\n this.showToolTip = false;\r\n this.fullCash = true;\r\n }\r\n break;\r\n case \"2\":\r\n if (\r\n this.retirementsavings.percentage > 0 &&\r\n this.percentage < 100\r\n ) {\r\n this.partTransfer = true;\r\n } else if (this.percentage == 100) {\r\n this.fullCash = true;\r\n this.activeTab = ActiveTab.BANKING_DETAILS;\r\n this.showToolTip = false;\r\n this.fullWithdrawal = true;\r\n } else if (this.percentage == 0) {\r\n this.fullTransfer = true;\r\n }\r\n break;\r\n default:\r\n console.error(\r\n `Could not determine user path: ${this.moveWithDrawFlag}`\r\n );\r\n }\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .get(\r\n `${appsettings.digitalHRAssisServicesUrl}${\r\n appsettings.endPoints.updateMemberUrl\r\n }/${this.claimService.getMemberDetails().employeeId}`,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.memberPersonalDetails = resp[\"employee\"];\r\n },\r\n (err) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while updating the member details.\"\r\n );\r\n }\r\n );\r\n this.showTaxPopUp = !!localStorage.getItem(\"showTaxInfo\");\r\n })\r\n .catch((reason) => {});\r\n }\r\n\r\n next(data: string) {\r\n switch (data) {\r\n case \"broker\":\r\n this.activeTab = ActiveTab.BROKER_DETAILS;\r\n break;\r\n case \"banking\":\r\n this.activeTab = ActiveTab.BANKING_DETAILS;\r\n this.showToolTip = false;\r\n break;\r\n case \"personal-details\":\r\n this.activeTab = ActiveTab.PERSONAL_DETAILS;\r\n this.showToolTip = false;\r\n break;\r\n case \"tax-details\":\r\n this.activeTab = ActiveTab.TAX_DETAILS;\r\n this.showToolTip = false;\r\n break;\r\n case \"summary\":\r\n this.activeTab = ActiveTab.SUMMARY;\r\n this.showToolTip = false;\r\n break;\r\n default:\r\n this.activeTab = ActiveTab.BROKER_DETAILS;\r\n }\r\n }\r\n\r\n updateMemberContactDetails(member:any) {\r\n let memberContactDetails = new MemberContactDetails();\r\n memberContactDetails.useResidentialAsPostal = member.useResidentialAsPostal;\r\n memberContactDetails.complex = member.complex;\r\n memberContactDetails.unitNumber = member.unitNumber;\r\n memberContactDetails.streetNumber = member.streetNumber;\r\n memberContactDetails.streetOrFarmName = member.streetOrFarmName;\r\n memberContactDetails.cityOrTown = member.cityOrTown;\r\n memberContactDetails.country = member.country;\r\n memberContactDetails.suburbOrDistrict = member.suburbOrDistrict;\r\n memberContactDetails.residentialCode = member.residentialCode;\r\n memberContactDetails.eMail = member.primaryEmail\r\n ? member.primaryEmail\r\n : member.eMail;\r\n memberContactDetails.address1 = member.address1;\r\n memberContactDetails.address2 = member.address2;\r\n memberContactDetails.address3 = member.address3;\r\n memberContactDetails.postalCode = member.postalCode\r\n ? member.postalCode\r\n : member.residentialCode;\r\n memberContactDetails.country = member.country;\r\n memberContactDetails.telNumber = member.telNumber;\r\n memberContactDetails.mobileNumber = member.mobileNumber;\r\n this.claimService.setMemberContactDetails = memberContactDetails;\r\n }\r\n\r\n continue(claimData:any) {\r\n this.showToolTip = false;\r\n switch (this.activeTab) {\r\n case ActiveTab.BROKER_DETAILS:\r\n this.claimService.setBrokerDetails(claimData);\r\n this.claimService.updateMemberBrokerDetails(claimData);\r\n if (this.fullTransfer) {\r\n this.activeTab = ActiveTab.PERSONAL_DETAILS;\r\n } else {\r\n this.activeTab = ActiveTab.BANKING_DETAILS;\r\n }\r\n break;\r\n case ActiveTab.BANKING_DETAILS:\r\n this.claimService.setBankingDetails(claimData);\r\n this.claimService.updateMemberBankingDetails(claimData);\r\n this.activeTab = ActiveTab.PERSONAL_DETAILS;\r\n break;\r\n case ActiveTab.PERSONAL_DETAILS:\r\n this.updateMemberPersonalDetails(claimData);\r\n this.activeTab = ActiveTab.TAX_DETAILS;\r\n break;\r\n case ActiveTab.TAX_DETAILS:\r\n if (\r\n this.incomeTaxNumber === \"\" ||\r\n this.incomeTaxNumber == undefined ||\r\n this.claimService.getCountryOfResidence === \"\" ||\r\n this.claimService.getCountryOfResidence == undefined\r\n ) {\r\n this.errorService.openErrorPopup(\r\n \"Please enter your income tax number and country of tax residence.\"\r\n );\r\n break;\r\n }\r\n if (this.validateTaxRef) {\r\n this.validateTaxNumber(claimData);\r\n } else {\r\n this.claimService.setIncomeTaxNumber = this.incomeTaxNumber;\r\n this.updateMemberContactDetails(claimData);\r\n this.activeTab = ActiveTab.SUMMARY;\r\n }\r\n break;\r\n\r\n case ActiveTab.SUMMARY:\r\n this.confirm();\r\n break;\r\n default:\r\n this.activeTab = ActiveTab.BROKER_DETAILS;\r\n }\r\n }\r\n\r\n validateTaxNumber(claimData:any) {\r\n this.loader.start();\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .post(\r\n `${appsettings.commonServicesUrl}${appsettings.endPoints.validateTaxNumber}`,\r\n { trn: this.incomeTaxNumber },\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.loader.stop();\r\n if (resp[\"valid\"] == true) {\r\n this.claimService.setIncomeTaxNumber = this.incomeTaxNumber;\r\n this.updateMemberContactDetails(claimData);\r\n this.activeTab = ActiveTab.SUMMARY;\r\n } else {\r\n this.errorService.openErrorPopup(\"Invalid Income Tax Number\");\r\n }\r\n },\r\n (err) => {\r\n let errorMessage = getErrorMessage(err);\r\n this.errorService.openErrorPopup(\r\n \"Error validating Income Tax Number: \" + errorMessage\r\n );\r\n window.scroll(0, 0);\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n\r\n goBack(data: string) {\r\n this.formInvalid = true;\r\n switch (data) {\r\n case \"broker\":\r\n this.brokerFormInvalid = true;\r\n this.activeTab = ActiveTab.BROKER_DETAILS;\r\n break;\r\n case \"banking\":\r\n this.bankingFormInvalid = true;\r\n this.activeTab = ActiveTab.BANKING_DETAILS;\r\n break;\r\n default:\r\n this.activeTab = ActiveTab.BROKER_DETAILS;\r\n }\r\n }\r\n\r\n logout() {\r\n //this.authService.logout(false);\r\n this.auth.logout(false);\r\n }\r\n\r\n moveDetails() {\r\n this.routingService.moveSavings(\r\n this.retirementsavings.moveWithDrawFlag,\r\n this.retirementsavings.totalSavings\r\n );\r\n }\r\n\r\n goToGrowSavings() {\r\n this.routingService.confirmDetails();\r\n }\r\n\r\n // TODO: submit claimService to api instead of manual mapping of objects and properties, but make sure the claim service is stable first.\r\n confirm() {\r\n const idType = localStorage.getItem(\"idType\");\r\n this.loader.start();\r\n let claimObject:any = {\r\n claim: {\r\n incomeTaxNumber: null,\r\n indebtedToEmployer: true,\r\n amountOfDeduction: 0,\r\n employeeNumber: null,\r\n employerName: null,\r\n bulkClaimsBatchId: 0,\r\n nonSaTaxpayer: true,\r\n annualTaxableSalary: 0,\r\n sarsCountryCode: null,\r\n dateLastContrib: \"2020-06-19T08:46:32.308Z\",\r\n continuation: true,\r\n countryOfResidence: null,\r\n userEmail: null,\r\n membership: [\r\n {\r\n fundId: 0,\r\n subscriptionNumber: null,\r\n withdrawalPaymentInstruction: {\r\n fkWithdrawalTypeID: 1,\r\n fkWithdrawalOptionId: 2,\r\n cashAmount: 0,\r\n amountIsPostTax: true,\r\n transferToFundName: null,\r\n transferToPolicyRef: \"n/a\",\r\n withdrawalDate: \"2020-06-19T08:46:32.308Z\",\r\n broker: {\r\n brokerName: null,\r\n email: null,\r\n telNumber: null,\r\n mobileNumber: null,\r\n },\r\n },\r\n },\r\n ],\r\n member: {\r\n firstName: null,\r\n middleName: null,\r\n surname: null,\r\n maidenName: null,\r\n initials: null,\r\n dateOfBirth: null,\r\n identity: {\r\n fkOfficialIdentityTypeID: idType,\r\n fkCountryOfIssueID: 1,\r\n identityValue: null,\r\n },\r\n },\r\n memberContactDetails: {\r\n unitNumber: null,\r\n complex: null,\r\n streetNumber: null,\r\n streetOrFarmName: null,\r\n suburbOrDistrict: null,\r\n cityOrTown: null,\r\n country: null,\r\n postalCode: null,\r\n residentialCode: null,\r\n useResidentialAsPostal: null,\r\n telNumber: null,\r\n mobileNumber: null,\r\n eMail: null,\r\n address1: null,\r\n address2: null,\r\n address3: null,\r\n },\r\n memberBankingDetail: {\r\n accountNumber: null,\r\n accountType: 1,\r\n accountHolder: null,\r\n branchNumber: null,\r\n bankName: null,\r\n },\r\n },\r\n rbc: null,\r\n isAdvised: false,\r\n sendToBroker: false,\r\n };\r\n\r\n claimObject.claim.countryOfResidence =\r\n this.claimService.getCountryOfResidence;\r\n claimObject.claim.sarsCountryCode = this.claimService.getCountryOfResidence;\r\n claimObject.claim.incomeTaxNumber = this.claimService.getIncomeTaxNumber;\r\n claimObject.claim.indebtedToEmployer =\r\n this.claimService.getIndebtedToEmployer;\r\n claimObject.claim.amountOfDeduction = this.memberDetails.amountOfDeduction;\r\n claimObject.claim.employeeNumber = this.claimService.getEmployeeNumber;\r\n claimObject.claim.employerName = this.claimService.getEmployerName;\r\n claimObject.claim.annualTaxableSalary =\r\n this.memberValues.AnnualPensionableSalary;\r\n if (this.memberValues) {\r\n if (!this.memberValues.LastContributionDate) {\r\n claimObject.claim.dateLastContrib = new Date().toString();\r\n } else {\r\n claimObject.claim.dateLastContrib =\r\n this.memberValues.LastContributionDate;\r\n }\r\n } else {\r\n claimObject.claim.dateLastContrib = new Date().toString();\r\n }\r\n claimObject.claim.dateLastContrib = this.utils.convertDateShortDash(\r\n claimObject.claim.dateLastContrib\r\n );\r\n claimObject.claim.userEmail = this.claimService.getUserEmail;\r\n\r\n claimObject.claim.membership[0].fundId =\r\n this.memberDetails.membership[0].fundId;\r\n claimObject.claim.membership[0].subscriptionNumber =\r\n this.memberDetails.membership[0].subscriptionNumber;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.fkWithdrawalOptionId =\r\n this.setWithdrawalOption();\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.fkWithdrawalTypeID = 1;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.cashAmount =\r\n this.memberAction.toUpperCase() === \"MOVE\"\r\n ? this.retirementsavings.totalSavings -\r\n this.retirementsavings.amountToMove\r\n : this.retirementsavings.amountToMove;\r\n if (this.fullTransfer || this.partTransfer) {\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.transferToFundName =\r\n this.claimService.getBrokerDetails().newFundName;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.broker.brokerName =\r\n this.claimService.getBrokerDetails().brokerName;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.broker.email =\r\n this.claimService.getBrokerDetails().brokerEmail;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.broker.mobileNumber =\r\n this.claimService.getBrokerDetails().brokerCell;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.broker.telNumber =\r\n this.claimService.getBrokerDetails().brokerNumber;\r\n } else {\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.transferToFundName =\r\n null;\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.broker =\r\n null;\r\n }\r\n\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.withdrawalDate =\r\n this.utils.convertDateShortDash(this.memberDetails.exitDate);\r\n\r\n claimObject.claim.member.firstName = this.claimService.getMember.firstName;\r\n claimObject.claim.member.middleName =\r\n this.claimService.getMember.middleName;\r\n claimObject.claim.member.surname = this.claimService.getMember.surname;\r\n claimObject.claim.member.initials = this.claimService.getMember.initials;\r\n claimObject.claim.member.dateOfBirth =\r\n this.claimService.getMember.dateOfBirth;\r\n claimObject.claim.member.identity.identityValue =\r\n this.claimService.getMember.identity.identityValue;\r\n\r\n // TODO: collapse this into claimObject.claim.memberContactDetails = this.claimService.getMemberContactDetails\r\n claimObject.claim.memberContactDetails.unitNumber =\r\n this.claimService.getMemberContactDetails.unitNumber;\r\n claimObject.claim.memberContactDetails.complex =\r\n this.claimService.getMemberContactDetails.complex;\r\n claimObject.claim.memberContactDetails.streetNumber =\r\n this.claimService.getMemberContactDetails.streetNumber;\r\n claimObject.claim.memberContactDetails.streetOrFarmName =\r\n this.claimService.getMemberContactDetails.streetOrFarmName;\r\n claimObject.claim.memberContactDetails.cityOrTown =\r\n this.claimService.getMemberContactDetails.cityOrTown;\r\n claimObject.claim.memberContactDetails.country =\r\n this.claimService.getMemberContactDetails.country;\r\n claimObject.claim.memberContactDetails.address1 =\r\n this.claimService.getMemberContactDetails.address1;\r\n claimObject.claim.memberContactDetails.address2 =\r\n this.claimService.getMemberContactDetails.address2;\r\n claimObject.claim.memberContactDetails.address3 =\r\n this.claimService.getMemberContactDetails.address3;\r\n claimObject.claim.memberContactDetails.postalCode =\r\n this.claimService.getMemberContactDetails.postalCode;\r\n claimObject.claim.memberContactDetails.residentialCode =\r\n this.claimService.getMemberContactDetails.residentialCode;\r\n claimObject.claim.memberContactDetails.country =\r\n this.claimService.getMemberContactDetails.country;\r\n claimObject.claim.memberContactDetails.telNumber =\r\n this.claimService.getMemberContactDetails.telNumber;\r\n claimObject.claim.memberContactDetails.mobileNumber =\r\n this.claimService.getMemberContactDetails.mobileNumber;\r\n claimObject.claim.memberContactDetails.eMail =\r\n this.claimService.getMemberContactDetails.eMail;\r\n claimObject.claim.memberContactDetails.suburbOrDistrict =\r\n this.claimService.getMemberContactDetails.suburbOrDistrict;\r\n claimObject.claim.memberContactDetails.useResidentialAsPostal =\r\n this.claimService.getMemberContactDetails.useResidentialAsPostal;\r\n\r\n if (!this.fullTransfer) {\r\n claimObject.claim.memberBankingDetail.bankName =\r\n this.claimService.getBankingDetails().bankName;\r\n claimObject.claim.memberBankingDetail.accountHolder =\r\n this.claimService.getBankingDetails().accHolderName;\r\n claimObject.claim.memberBankingDetail.accountNumber =\r\n this.claimService.getBankingDetails().accountNumber;\r\n claimObject.claim.memberBankingDetail.accountType =\r\n this.claimService.getBankingDetails().accountType == \"Cheque\" ? 1 : 2;\r\n claimObject.claim.memberBankingDetail.branchNumber =\r\n this.claimService.getBankingDetails().branchCode;\r\n } else {\r\n claimObject.claim.memberBankingDetail = null;\r\n }\r\n claimObject.rbc = true;\r\n claimObject.isAdvised =\r\n this.claimService.getBrokerDetails() &&\r\n this.claimService.getBrokerDetails().isAdvised\r\n ? this.claimService.getBrokerDetails().isAdvised\r\n : false;\r\n claimObject.sendToBroker =\r\n this.claimService.getBrokerDetails() &&\r\n this.claimService.getBrokerDetails().sendtoBroker\r\n ? this.claimService.getBrokerDetails().sendtoBroker\r\n : false;\r\n\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .post(\r\n `${appsettings.digitalClaimsService}${appsettings.endPoints.claimWidthrawal}`,\r\n claimObject,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n if(resp[\"SubmittedSuccessfully\"]) {\r\n this.claimId = resp[\"ClaimId\"];\r\n this.empEmail = this.claimService.getUserEmail;\r\n this.claimSuccess = true;\r\n this.loader.stop();\r\n } else {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n resp[\"Message\"] ? resp[\"Message\"] : this.claimErrorMsg\r\n ); \r\n }\r\n },\r\n (err) => {\r\n this.errorService.openErrorPopup(\r\n this.claimErrorMsg\r\n );\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n\r\n setWithdrawalOption(): eWithdrawalOption {\r\n switch (this.retirementsavings.moveWithDrawFlag.toString()) {\r\n case \"1\":\r\n if (\r\n this.retirementsavings.percentage > 0 &&\r\n this.retirementsavings.percentage < 100\r\n ) {\r\n return eWithdrawalOption.PartTransfer;\r\n } else if (this.retirementsavings.percentage == 100) {\r\n return eWithdrawalOption.FullTransfer;\r\n } else if (this.retirementsavings.percentage == 0) {\r\n return eWithdrawalOption.FullCash;\r\n }\r\n break;\r\n case \"2\":\r\n if (\r\n this.retirementsavings.percentage > 0 &&\r\n this.retirementsavings.percentage < 100\r\n ) {\r\n return eWithdrawalOption.PartTransfer;\r\n } else if (this.retirementsavings.percentage == 100) {\r\n return eWithdrawalOption.FullCash;\r\n } else if (this.retirementsavings.percentage == 0) {\r\n return eWithdrawalOption.FullTransfer;\r\n }\r\n break;\r\n default:\r\n return eWithdrawalOption.FullTransfer;\r\n }\r\n return eWithdrawalOption.FullTransfer;\r\n }\r\n\r\n goToRoute() {\r\n this.claimSuccess = false;\r\n this.routingService.savingsSummary();\r\n }\r\n\r\n closePopUp() {\r\n this.claimSuccess = false;\r\n }\r\n\r\n updateMemberPersonalDetails(memberData: any) {\r\n let claimProperties = {\r\n indebtedToEmployer: memberData.indebtedToEmployer,\r\n employeeNumber: memberData.employeeNumber,\r\n employerName: memberData.employerName,\r\n userEmail: memberData.memberContactDetails.eMail,\r\n dateLastContrib: memberData.dateLastContrib,\r\n withdrawalDate: memberData.withdrawalDate,\r\n amountToMove: this.amountToMove,\r\n };\r\n this.claimService.updateClaim(claimProperties);\r\n this.claimService.updateClaimPersonalDetails(memberData.member);\r\n this.claimService.updateClaimAddressDetails(\r\n memberData.memberContactDetails\r\n );\r\n }\r\n\r\n toggleTaxValidation(data:any) {\r\n this.incomeTaxNumber = data.taxRef;\r\n this.claimService.setCountryOfResidence = data.country;\r\n switch (data.country) {\r\n case \"ZA\":\r\n this.validateTaxRef = true;\r\n break;\r\n default:\r\n this.validateTaxRef = false;\r\n }\r\n }\r\n\r\n connectToAdvice() {\r\n this.showTaxPopUp = false;\r\n setTimeout(function () {\r\n document.getElementById(\"connect-button\")?.click();\r\n }, 500);\r\n }\r\n\r\n toggleTaxPopUp() {\r\n this.showTaxPopUp = false;\r\n localStorage.removeItem(\"showTaxInfo\");\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","export enum ActiveTab {\r\n BROKER_DETAILS = 'broker-details',\r\n BANKING_DETAILS = 'banking-details',\r\n PERSONAL_DETAILS = 'personal-details',\r\n TAX_DETAILS = 'tax-details',\r\n SUMMARY = 'summary',\r\n}\r\n","export * from './active-tab.enum';\r\n","export * from './tabs/tabs.component';\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ActiveTab } from '../enum';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.scss']\r\n})\r\nexport class TabsComponent implements OnInit {\r\n @Input() activeTab: ActiveTab;\r\n @Input() fullTransfer: boolean;\r\n @Input() fullWithdrawal: boolean;\r\n @Input() fullCash: boolean;\r\n @Input() partTransfer: boolean;\r\n @Input() percentageMoved: number;\r\n @Input() action: String;\r\n @Output() back = new EventEmitter();\r\n @Output() selectedFunction = new EventEmitter();\r\n active = ActiveTab\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n onClick() {\r\n this.back.emit();\r\n }\r\n\r\n selectTab(data: string){\r\n this.selectedFunction.emit(data);\r\n }\r\n gotoCorporateBasics() {\r\n this.router.navigateByUrl(\"/digital/onboarding/hr-operations/company-basics.html\");\r\n }\r\n\r\n gotoCorporateBenefits() {\r\n this.router.navigateByUrl(\"/digital/onboarding/hr-operations/company.html\");\r\n }\r\n\r\n}\r\n","
\r\n
Broker details
\r\n
Banking details
\r\n
Personal details
\r\n
Tax details
\r\n
Summary
\r\n
\r\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\r\nimport { RetirementSavings, Calculations } from '../../../store/retirement-savings/retirementsavings';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ErrorService } from '../../../../../services/error.service';\r\nimport { WithdrawalAmountProjectionServiceService } from '../../withdrawal-amount-projection-service.service';\r\nimport { ActiveTab } from '../shared/enum';\r\nimport { ClaimService } from '../../../store/retirement-savings/service/claimService.service';\r\n\r\n@Component({\r\n selector: 'app-summary',\r\n templateUrl: './summary.component.html',\r\n styleUrls: ['./summary.component.scss']\r\n})\r\nexport class SummaryComponent implements OnInit {\r\n\r\n retirementSavings: RetirementSavings;\r\n moveWithDrawFlag: number;\r\n showFullPartFlag: number;\r\n stay: boolean;\r\n partSave: boolean;\r\n showDeclaration: Boolean = false;\r\n totalSavings: number;\r\n memberAction: string;\r\n amountToMove: any;\r\n savingsLeft: number;\r\n taxTobePaid: number = 0;\r\n payout: number = 0;\r\n percentage: number;\r\n calculations: Calculations;\r\n calculateTaxAmount: number;\r\n @Input() fullTransfer: boolean;\r\n @Input() fullWithdrawal: boolean;\r\n @Input() partTransfer: boolean;\r\n @Input() fullCash: boolean;\r\n @Output() continue = new EventEmitter();\r\n @Input() activeTab:ActiveTab;\r\n @Output() next = new EventEmitter();\r\n afris: boolean;\r\n\r\n constructor(private withdrawalAmountProjectionService: WithdrawalAmountProjectionServiceService,\r\n protected _route: ActivatedRoute,\r\n private errorService: ErrorService,\r\n public claimService: ClaimService) {\r\n this.retirementSavings = this.claimService.getRetirementSavings();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.retirementSavings) {\r\n this.moveWithDrawFlag = this.retirementSavings.moveWithDrawFlag;\r\n this.showFullPartFlag = this.retirementSavings.fullPartFlag;\r\n this.totalSavings = this.retirementSavings.totalSavings;\r\n this.memberAction = this.retirementSavings.moveWithDrawFlag == 1 ? 'Move' : 'Withdraw'\r\n this.amountToMove = this.retirementSavings.amountToMove;\r\n this.savingsLeft = this.retirementSavings.savingsLeft;\r\n this.taxTobePaid = this.retirementSavings.tax;\r\n this.payout = this.retirementSavings.payout;\r\n this.percentage = this.retirementSavings.percentage;\r\n\r\n this._route.queryParams\r\n .subscribe(parameters => {\r\n this.afris = parameters['af'];\r\n });\r\n }\r\n else {\r\n this.retirementSavings = new RetirementSavings();\r\n this._route.queryParams\r\n .subscribe(parameters => {\r\n this.moveWithDrawFlag = parameters['flag'];\r\n this.totalSavings = parameters['sv'].replace(/\\s/g, '');\r\n this.percentage = parameters['pt'];\r\n this.afris = parameters['af'];\r\n this.calculations = this.claimService.getCalculations(this.percentage,this.totalSavings);\r\n this.retirementSavings.amountToMove = this.calculations.amountToMove;\r\n this.retirementSavings.savingsLeft = this.calculations.savingsLeft;\r\n this.memberAction = this.moveWithDrawFlag == 1 ? 'Move' : 'Withdraw'\r\n if (this.percentage < 100) {\r\n this.showFullPartFlag = 2;\r\n this.calculateTaxAmount = this.calculations.savingsLeft;\r\n } else {\r\n this.showFullPartFlag = 1;\r\n this.calculateTaxAmount = this.calculations.amountToMove;\r\n }\r\n this.retirementSavings.percentage = this.percentage;\r\n this.retirementSavings.fullPartFlag = this.percentage < 100 ? 2: 1;\r\n this.retirementSavings.moveWithDrawFlag = this.moveWithDrawFlag;\r\n this.retirementSavings.totalSavings = this.totalSavings;\r\n if(this.fullTransfer){\r\n this.taxTobePaid = 0;\r\n this.payout = 0;\r\n this.retirementSavings.tax = 0;\r\n this.retirementSavings.payout = 0;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n } else {\r\n this.withdrawalAmountProjectionService.getTaxPayout(this.calculateTaxAmount).subscribe((resp) => {\r\n this.taxTobePaid = resp.taxPayable;\r\n this.payout = resp.netOfTax;\r\n this.retirementSavings.tax = this.taxTobePaid;\r\n this.retirementSavings.payout = this.payout;\r\n this.claimService.setRetirementSavings(this.retirementSavings);\r\n },(error) => {\r\n this.errorService.openErrorPopup('An error occurred while getting the tax details.');\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n confirmChoice(){\r\n if(this.validateModel()) {\r\n this.continue.emit();\r\n this.showDeclaration = false;\r\n }\r\n }\r\n\r\n validateModel(): boolean{\r\n const broker = this.claimService.getBrokerDetails();\r\n const banking = this.claimService.getBankingDetails();\r\n if (!this.claimService.getMembership){\r\n this.errorService.openErrorPopup('Please fill in all required details before continuing.');\r\n return false;\r\n } else {\r\n if (this.fullTransfer || this.partTransfer) {\r\n if (!broker) {\r\n this.errorService.openErrorPopup('Please fill in the broker details before continuing.');\r\n this.next.emit('broker');\r\n return false;\r\n }\r\n } else {\r\n if (!this.fullTransfer) {\r\n if (!banking) {\r\n this.errorService.openErrorPopup('Please fill in valid banking details before continuing.');\r\n this.next.emit('banking');\r\n return false;\r\n }\r\n } else {\r\n if (!this.claimService.getMemberContactDetails) {\r\n this.errorService.openErrorPopup('Please fill in the personal details before continuing.');\r\n this.next.emit('tax-details');\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n nextTab(data: string){\r\n this.next.emit(data);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
Withdraw
\r\n
Withdrawing R{{ (memberAction === 'Move' ? totalSavings - amountToMove : amountToMove) | number:'':'fr-FR' }} of existing
\r\n
retirement savings.
\r\n
Withdrawing all your existing
\r\n
retirement savings.
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Save
\r\n
Saving the remaining R{{ totalSavings - amountToMove | number:'':'fr-FR' }}
\r\n
with Alexforbes.
\r\n
Move
\r\n
Moving the total R{{ totalSavings - amountToMove | number:'':'fr-FR' }}
\r\n
your retirement savings.
\r\n
You have selected to withdraw all your retirement savings.
\r\n
We will request to contact you in the
\r\n
future to see if you would be able to
\r\n
save again towards your retirement.
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
Move
\r\n
Moving the remaining R{{ amountToMove | number:'':'fr-FR' }}
\r\n
your retirement savings.
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Save
\r\n
Saving the remaining R{{ amountToMove | number:'':'fr-FR' }}
\r\n
with Alexforbes.
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
Move for full transfer
\r\n
Moving the total R{{ amountToMove | number:'':'fr-FR' }}
\r\n
your retirement savings.
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
Save
\r\n
Saving the remaining R{{ amountToMove | number:'':'fr-FR' }}
\r\n
with Alexforbes.
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
Withdrawal summary
\r\n
\r\n
\r\n
Move summary
\r\n
\r\n \r\n
\r\n
\r\n
Amount to withdraw
\r\n
R{{ (memberAction === 'Move' ? retirementSavings.totalSavings - retirementSavings.amountToMove: retirementSavings.amountToMove) | number:'':'fr-FR' }}
\r\n
\r\n
\r\n
Estimated tax
\r\n
R{{ taxTobePaid | number:'1.0-0':'fr-FR'}}
\r\n
\r\n
\r\n
Payout after tax
\r\n
R{{payout | number:'1.0-0':'fr-FR'}}
\r\n
\r\n
\r\n
Savings left
\r\n
Savings to move
\r\n
R{{ (memberAction === 'Move' ? retirementSavings.amountToMove: retirementSavings.totalSavings - retirementSavings.amountToMove) | number:'':'fr-FR' }}
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
Complete your claim by agreeing to the following declaration:
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • You understand your options, including the tax implications.
  • \r\n
  • If there is any loss suffered as a result of incorrect information given by yourself, neither Alexforbes nor the fund are responsible for the losses.
  • \r\n
  • You made your own decision or were assisted by an adviser.
  • \r\n
  • When all your information has been received, we will process your decision according to the fund rules and the withdrawal process.
  • \r\n
  • If you are in debt to your employer, your savings will be used to pay the debt in terms of section 37D of the Pension Funds Act.
  • \r\n
  • Once you have chosen an option and SARS has issued a directive, the directive cannot be cancelled.
  • \r\n
  • You acknowledge that Retirement Benefit Counselling has been offered to you throughout this exit journey. If you chose not to get in touch with us we accept that you have declined this offering.
  • \r\n
  • You acknowledge that this claim form will be sent to your HR representative for record purposes.
  • \r\n
\r\n
\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, OnInit, Output, Input} from '@angular/core';\r\nimport { ActiveTab } from '../shared/enum';\r\nimport { RetirementSavings } from '../../../store/retirement-savings/retirementsavings';\r\nimport { ClaimService } from '../../../store/retirement-savings/service/claimService.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-tax-details',\r\n templateUrl: './tax-details.component.html',\r\n styleUrls: ['./tax-details.component.scss']\r\n})\r\nexport class TaxDetailsComponent implements OnInit {\r\n\r\n @Input() activeTab:ActiveTab;\r\n @Output() next = new EventEmitter();\r\n @Input() fullTransfer: boolean;\r\n @Input() fullWithdrawal: boolean;\r\n @Input() partTransfer: boolean;\r\n @Input() fullCash: boolean;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n continueTab(data: string){\r\n this.next.emit(data);\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/auth-guard.service';\r\nimport { MoveWithdrawComponent } from './move-withdraw/move-withdraw.component';\r\nimport { ProfileLandingPageComponent } from './profile-landing-page/profile-landing-page.component';\r\nimport { ContactDetailsComponent } from './profile-landing-page/contact-details/contact-details.component';\r\n//import { PostalAddressComponent } from './profile-landing-page/postal-address/postal-address.component';\r\nimport { SavingsDetailsComponent } from './savings-details/savings-details.component';\r\nimport { BankingDetailsComponent } from './savings-details/banking-details/banking-details.component';\r\nimport { BrokerDetailsComponent } from './savings-details/broker-details/broker-details.component';\r\nimport { TaxDetailsComponent } from './savings-details/tax-details/tax-details.component';\r\nimport { ConfirmDetailsComponent } from './confirm-details/confirm-details.component';\r\nimport { SavingsSummaryComponent } from './savings-summary/savings-summary/savings-summary.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n canActivate: [AuthGuard],\r\n component: ProfileLandingPageComponent\r\n },\r\n {\r\n path: 'confirm-details',\r\n canActivate: [AuthGuard],\r\n component: ConfirmDetailsComponent\r\n },\r\n {\r\n path: 'move-withdraw',\r\n canActivate: [AuthGuard],\r\n component: MoveWithdrawComponent\r\n },\r\n {\r\n path: 'profile-landing/contact-details',\r\n canActivate: [AuthGuard],\r\n component: ContactDetailsComponent\r\n },\r\n // {\r\n // path: 'profile-landing/postal-address',\r\n // canActivate: [AuthGuard],\r\n // component: PostalAddressComponent\r\n // },\r\n {\r\n path: 'savings-details',\r\n canActivate: [AuthGuard],\r\n component: SavingsDetailsComponent\r\n },\r\n {\r\n path: 'savings-details/banking-details',\r\n canActivate: [AuthGuard],\r\n component: BankingDetailsComponent\r\n },\r\n {\r\n path: 'savings-details/broker-details',\r\n canActivate: [AuthGuard],\r\n component: BrokerDetailsComponent\r\n },\r\n {\r\n path: 'savings-details/tax-details',\r\n canActivate: [AuthGuard],\r\n component: TaxDetailsComponent\r\n },\r\n {\r\n path: 'savings-summary',\r\n canActivate: [AuthGuard],\r\n component: SavingsSummaryComponent\r\n },\r\n ];\r\n\r\n @NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n })\r\n\r\nexport class SavingsRoutingModule { }\r\n","import { Component, OnInit, HostListener } from \"@angular/core\";\r\nimport { StoreService } from \"../../../../../../../src/app/services/storeService\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport { environment } from \"../../../../../../environments/environment\";\r\nimport { LoaderService } from \"../../../../../../../src/app/services/loader.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ErrorService } from \"../../../../../../../src/app/services/error.service\";\r\nimport { AuthService } from \"../../../../../services/auth.service\";\r\nimport {\r\n RetirementSavings,\r\n MemberDetails,\r\n} from \"../../../store/retirement-savings/retirementsavings\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { InfoPopupService } from \"../../../../../../../src/app/services/info-popup-service.service\";\r\nimport { AuthenticationService } from \"../../../../../services/authentication.service\";\r\nimport { User } from \"oidc-client\";\r\nimport { ClaimService } from \"../../../store/retirement-savings/service/claimService.service\";\r\nimport { Constants } from \"../../../../../constants/constants\";\r\n\r\n@Component({\r\n selector: \"app-savings-summary\",\r\n templateUrl: \"./savings-summary.component.html\",\r\n styleUrls: [\"./savings-summary.component.scss\"],\r\n})\r\nexport class SavingsSummaryComponent implements OnInit {\r\n popIaDisclosurePath: string = \"\";\r\n scrolled = 0;\r\n infoIconDamPath: string = \"\";\r\n firstName: String;\r\n surname: String;\r\n companyName: String;\r\n step = 1;\r\n currentStep: number = 1;\r\n page: string = \"summary\";\r\n showPopUp = false;\r\n memberDetails: MemberDetails;\r\n retirementProjectionValues: any;\r\n additionalCover = {\r\n incomeProtection: false,\r\n lifeCover: false,\r\n taxFreeSavingsAccount: false,\r\n medicalAid: false,\r\n };\r\n claimNumber: string;\r\n retirementSavings: RetirementSavings;\r\n claimDetails: any;\r\n paymentOption: string;\r\n memberValues: any;\r\n showValuesBlock: boolean;\r\n cover: boolean;\r\n showRetirementDisclaimerPopup: boolean = false;\r\n member: User = null;\r\n\r\n constructor(\r\n private auth: AuthenticationService,\r\n protected _route: ActivatedRoute,\r\n private httpClient: HttpClient,\r\n private loader: LoaderService,\r\n private errorService: ErrorService,\r\n private claimService: ClaimService,\r\n private infoPopupService: InfoPopupService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.auth\r\n .getClaims()\r\n .then((member) => {\r\n this.member = member;\r\n this.firstName = this.member.profile[\"given_name\"];\r\n this.surname = this.member.profile[\"family_name\"];\r\n })\r\n .catch((reason) => {});\r\n if (this.claimService.getMemberValues() == null) {\r\n this.getCompanyName();\r\n } else {\r\n this.memberDetails = this.claimService.getMemberDetails();\r\n this.memberValues = this.claimService.getMemberValues();\r\n this.showValuesBlock = true;\r\n this.companyName = this.memberDetails.employerName;\r\n }\r\n // this.errorService.openErrorPopup('Please access the system from a desktop/laptop for the best user experience');\r\n setTimeout(() => {\r\n this.showPopUp = true;\r\n }, 5000);\r\n }\r\n\r\n @HostListener('window:scroll', ['$event'])\r\n onWindowScroll($event) {\r\n const numb = window.scrollY;\r\n if (numb >= 400){\r\n this.scrolled = 1;\r\n }\r\n else {\r\n this.scrolled = 0;\r\n }\r\n }\r\n\r\n getClaimDetails() {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${environment.digitalClaimsService}${environment.endPoints.claimdetails}?claimid=${this.memberDetails.exit.claimId}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n getClaim() {\r\n this.getClaimDetails().subscribe(\r\n (values) => {\r\n if (values) {\r\n this.claimDetails = values;\r\n this.paymentOption = this.claimDetails.Memberships[0].PaymentOption;\r\n this.claimNumber = this.claimDetails.ClaimNumber;\r\n this.paymentOption =\r\n this.paymentOption == \"Withdraw all your savings (Full cash)\"\r\n ? \"Full Cash\"\r\n : this.paymentOption;\r\n this.loader.stop();\r\n } else {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the claim details.\"\r\n );\r\n }\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the claim details.\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n getCompanyName() {\r\n this.loader.start();\r\n this.getMemberDetails().subscribe(\r\n (val) => {\r\n this.companyName = val[\"member\"][0][\"employerName\"];\r\n this.memberDetails = val.member[0];\r\n this.getClaim();\r\n this.getValues();\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the member values.\"\r\n );\r\n }\r\n );\r\n }\r\n getValues() {\r\n this.loader.start();\r\n this.getMemberValues().subscribe(\r\n (values) => {\r\n this.memberValues = values;\r\n this.showValuesBlock = true;\r\n this.loader.stop();\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while getting the member values.\"\r\n );\r\n }\r\n );\r\n }\r\n\r\n getMemberValues(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${environment.digitalMemberServicesUrl}${environment.endPoints.memberFundValues}?MembershipNumber=${this.memberDetails.membership[0].subscriptionNumber}&FundId=${this.memberDetails.membership[0].fundId}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n getMemberDetails(): Observable {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n const url = `${environment.digitalHRAssisServicesUrl}${environment.endPoints.memberDetails}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n\r\n logout() {\r\n this.auth.logout(false);\r\n }\r\n\r\n scrollTo() {\r\n document.getElementById('#information-be-aware').scrollIntoView();\r\n }\r\n\r\n addCover() {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .post(\r\n `${environment.digitalHRAssisServicesUrl}${environment.endPoints.additionalCover}`,\r\n this.additionalCover,\r\n options\r\n )\r\n .subscribe(\r\n (resp) => {\r\n this.infoPopupService.openInfoPopup(\r\n \"Request submitted successfully. One of our consultants will contact you within the next 2 business days.\"\r\n );\r\n },\r\n (err) => {}\r\n );\r\n }\r\n\r\n addCovers(): boolean {\r\n if (this.additionalCover.incomeProtection) {\r\n this.cover = true;\r\n } else {\r\n if (this.additionalCover.lifeCover) {\r\n this.cover = true;\r\n } else {\r\n if (this.additionalCover.medicalAid) {\r\n this.cover = true;\r\n } else {\r\n if (this.additionalCover.taxFreeSavingsAccount) {\r\n this.cover = true;\r\n }\r\n }\r\n }\r\n }\r\n return this.cover;\r\n }\r\n\r\n next(step) {\r\n if (step === \"done\") {\r\n if (this.addCovers()) {\r\n this.addCover();\r\n }\r\n this.showPopUp = false;\r\n } else {\r\n this.currentStep = step;\r\n }\r\n }\r\n prev(step) {\r\n this.currentStep = step;\r\n }\r\n\r\n projectionsCacheInitialized($event: any) {}\r\n\r\n resetProjections() {}\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
{{ firstName }} {{ surname }}
\r\n
\r\n \r\n Log out\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Find out\r\n how we protect your personal information, privacy and security.\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ firstName }} {{ surname }}\r\n
\r\n
\r\n \r\n Here are your retirement savings from your
\r\n time at {{ companyName }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n Selected grow my savings\r\n
\r\n
\r\n You'll receive a member certificate by email shortly, once your\r\n request has been processed.\r\n
\r\n
\r\n You've made a wise financial decision, share it with your friends and\r\n family #BeRetirementWise\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n Selected withdrawing and moving\r\n
\r\n
\r\n We’ll also contact your broker and action your request to move your\r\n savings.\r\n
\r\n
\r\n You can expect your cash withdrawal to be processed in the next five\r\n business days. Your claim tracking number is #{{ claimNumber }}\r\n
\r\n \r\n
\r\n \r\n
\r\n Selected move my savings\r\n
\r\n
\r\n We'll be in touch with your broker to action your request.\r\n Your claim tracking number is #{{ claimNumber }}\r\n
\r\n \r\n \r\n \r\n
\r\n Selected withdraw my savings\r\n
\r\n
\r\n You can expect your cash to be processed in the next five business\r\n days.\r\n Your claim tracking number is #{{ claimNumber }}\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n
Information to be aware of
\r\n
\r\n You are keeping your savings invested, but be on the look out for\r\n these things in the future\r\n
\r\n
\r\n
\r\n
\r\n
Admin fees
\r\n

\r\n In future, if you opt to move your retirement savings to any other\r\n fund, be sure to ask about the impact that admin fees will have.\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
Broker fees
\r\n

\r\n A broker might suggest that you move your savings to a different\r\n retirement product. Be sure to ask whether brokerage fees will have\r\n a significant impact on the transfer.\r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n R- -\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n Hello {{ firstName }}!\r\n \r\n
\r\n We want to look at one more thing before you go.\r\n
\r\n
\r\n Because you are leaving {{ companyName }} we'd like to make sure that you\r\n and your loved ones are covered for any of life's emergencies.\r\n
\r\n
\r\n Continue to look at some ways that you might need cover.\r\n
\r\n \r\n \r\n \r\n Financial protection\r\n \r\n \r\n Income protection\r\n \r\n
\r\n You will have a guaranteed income for a period if you lose your current\r\n income.\r\n
\r\n \r\n Life Cover\r\n \r\n
\r\n Your loved ones will be covered in the unfortunate event of your passing.\r\n
\r\n\r\n \r\n Tax-free savings account\r\n \r\n
\r\n Because you've withdrawn money from your retirement funds, why don't you\r\n consider opening a tax-free savings account? Its one of the most\r\n accessible and easy ways to save.\r\n
\r\n \r\n \r\n \r\n Health protection\r\n \r\n\r\n \r\n Medical aid\r\n \r\n
\r\n Medical aid provides peace of mind against unexpected medical bills.\r\n
\r\n \r\n \r\n \r\n Do you need help with any cover?\r\n \r\n

\r\n Please select below if you would like a consultant to call you back on any\r\n of the following:\r\n

\r\n
\r\n \r\n Financial protection\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n Health protection\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n\r\n\r\n
\r\n \r\n Disclaimer\r\n \r\n
\r\n These projections are for illustrative purposes only. They don’t\r\n constitute advice nor imply or guarantee any particular outcome. The\r\n projections are mathematical calculations of your expected retirement\r\n income and savings using your current personal information available and\r\n various assumptions about your personal circumstances, future salary\r\n increases and future investment returns.\r\n
\r\n
\r\n We advise that you contact a financial adviser to get a detailed\r\n projection.\r\n
\r\n
\r\n By using this information you acknowledge that you understand these notes\r\n and their implications for the projections provided. Alexforbes, the\r\n fund, the trustees or any of their employees or agents cannot accept any\r\n responsibility for losses arising from, or damages caused by, or expenses\r\n incurred by members as a result of using the information contained in this\r\n statement.\r\n
\r\n
\r\n\r\n\r\n\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport {CommonModule, CurrencyPipe, DatePipe, DecimalPipe} from '@angular/common';\r\n// import { SavingsSummaryComponent } from './savings-summary/savings-summary/savings-summary.component'\r\nimport { AppHeaderModule } from '../../shared-ui/app-header/app-header.module';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SavingsCalculationsModule } from '../../shared-ui/savings-calculations/savings-calculations.module';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n//import { ConnectAdviserModule } from '../connect-adviser';\r\n// import { DisclaimerPopUpComponent } from '../../shared-ui/disclaimer-popup/disclaimer-popup.component';\r\nimport { HelpTipsComponent } from '../../shared-ui/help-tips/help-tips.component';\r\nimport { ScrollingBannerComponent } from '../../shared-ui/scrolling-banner/scrolling-banner.component';\r\nimport { SavingsRoutingModule } from './savings-routing.module';\r\nimport { MoveWithdrawComponent } from './move-withdraw/move-withdraw.component';\r\nimport { SavingsDetailsComponent } from './savings-details/savings-details.component';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { ProfileLandingPageComponent } from './profile-landing-page/profile-landing-page.component';\r\nimport { BankingDetailsComponent } from './savings-details/banking-details/banking-details.component';\r\nimport { BrokerDetailsComponent } from './savings-details/broker-details/broker-details.component';\r\nimport { TaxDetailsComponent } from './savings-details/tax-details/tax-details.component';\r\n//import { PostalAddressComponent } from './profile-landing-page/postal-address/postal-address.component';\r\nimport { ContactDetailsComponent } from './profile-landing-page/contact-details/contact-details.component';\r\nimport { ConfirmDetailsComponent } from './confirm-details/confirm-details.component';\r\nimport { CustomSharedModule } from 'src/app/shared/custom-shared.module';\r\nimport { SummaryComponent } from './savings-details/summary/summary.component';\r\nimport { SharedUiModule } from '../../shared-ui/shared-ui.module';\r\nimport { SavingsSummaryComponent } from './savings-summary/savings-summary/savings-summary.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n //PostalAddressComponent,\r\n // DisclaimerPopUpComponent,\r\n HelpTipsComponent,\r\n ScrollingBannerComponent,\r\n MoveWithdrawComponent,\r\n SavingsDetailsComponent,\r\n ProfileLandingPageComponent,\r\n BankingDetailsComponent,\r\n BrokerDetailsComponent,\r\n TaxDetailsComponent,\r\n ConfirmDetailsComponent,\r\n SummaryComponent,\r\n SavingsSummaryComponent,\r\n ],\r\n imports: [\r\n CommonModule, \r\n //ConnectAdviserModule,\r\n AppHeaderModule,\r\n FormsModule, \r\n ReactiveFormsModule, \r\n SliderModule, \r\n SavingsCalculationsModule, \r\n CheckboxModule, \r\n SavingsRoutingModule, \r\n CalendarModule,\r\n CustomSharedModule,\r\n SharedUiModule\r\n ],\r\n providers: [\r\n CurrencyPipe, \r\n AuthenticationService,\r\n DatePipe,\r\n DecimalPipe\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n exports: [SavingsRoutingModule]\r\n})\r\n\r\nexport class SavingsModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport { StoreService } from \"../../../../../src/app/services/storeService\";\r\nimport {ProjectionPayload} from \"./move-withdraw/ProjectionPayload\";\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class WithdrawalAmountProjectionServiceService {\r\n constructor(\r\n private _storeService: StoreService,\r\n private httpClient: HttpClient\r\n ) {}\r\n\r\n getTaxPayout(amountToMove: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url =`${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.withdrawalAmountProjection}` +`/${amountToMove}`;\r\n return this.httpClient.get(url, options);\r\n }\r\n getFundCreditProjection(projectionPayload: ProjectionPayload): Observable{\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url =`${appsettings.calculatorServiceUrl}${appsettings.endPoints.fundCreditProjection}`;\r\n return this.httpClient.post(url,projectionPayload, options);\r\n }\r\n getMemberRetirementProjection(projectionPayload: ProjectionPayload): Observable{\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url =`${appsettings.calculatorServiceUrl}${appsettings.endPoints.memberRetirementProjection}`;\r\n return this.httpClient.post(url,projectionPayload, options);\r\n }\r\n}\r\n","\r\n// Import the core angular services.\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n// ----------------------------------------------------------------------------------- //\r\n// ----------------------------------------------------------------------------------- //\r\n\r\nexport class BaseStore {\r\n\r\n private stateSubject: BehaviorSubject;\r\n\r\n // I initialize the simple store with the givne initial state value.\r\n constructor( initialState: StateType ) {\r\n\r\n this.stateSubject = new BehaviorSubject( initialState );\r\n\r\n }\r\n\r\n // ---\r\n // PUBLIC METHODS.\r\n // ---\r\n\r\n // I get the current state as a stream (will always emit the current state value as\r\n // the first item in the stream).\r\n public getState(): Observable {\r\n\r\n return( this.stateSubject.pipe( distinctUntilChanged() ) );\r\n\r\n }\r\n\r\n\r\n // I get the current state snapshot.\r\n public getStateSnapshot() : StateType {\r\n\r\n return( this.stateSubject.getValue() );\r\n\r\n }\r\n\r\n\r\n // I return the given top-level state key as a stream (will always emit the current\r\n // key value as the first item in the stream).\r\n public select( key: K ): Observable {\r\n\r\n var selectStream = this.stateSubject.pipe(\r\n map(\r\n ( state: StateType ) => {\r\n\r\n return( state[ key ] );\r\n\r\n }\r\n ),\r\n distinctUntilChanged()\r\n );\r\n\r\n return( selectStream );\r\n\r\n }\r\n\r\n\r\n // I move the store to a new state by merging the given partial state into the\r\n // existing state (creating a new state object).\r\n // --\r\n // CAUTION: Partial does not currently project against \"undefined\" values. This is\r\n // a known type safety issue in TypeScript.\r\n public setState( partialState: Partial ): void {\r\n\r\n var currentState = this.getStateSnapshot();\r\n var nextState = Object.assign( {}, currentState, partialState );\r\n\r\n this.stateSubject.next( nextState );\r\n\r\n }\r\n\r\n public setCollectionState(newState: StateType): void{\r\n this.stateSubject.next(newState);\r\n }\r\n\r\n}\r\n","import { BaseStore } from '../base.store';\r\nimport { Employee } from '../../models/employees.model';\r\nimport { inject, Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SelectedEmployeesStore extends BaseStore {\r\n constructor() {\r\n super([]);\r\n }\r\n\r\n //effect like in ngrx\r\n public loadStoreFromBackend() {\r\n\r\n // this._productService.fetchProductsFromServer().subscribe(products => {\r\n // this.setCollectionState(products);\r\n // });\r\n\r\n\r\n }\r\n}\r\n","export interface WithdrawalPaymentInstruction {\r\n fkWithdrawalTypeID: string;\r\n fkWithdrawalOptionId: string;\r\n cashAmount: number;\r\n amountIsPostTax: boolean;\r\n transferToFundName?: any;\r\n transferToPolicyRef?: any;\r\n withdrawalDate: string;\r\n broker?: Broker | null;\r\n}\r\n\r\nexport interface Membership {\r\n fundId?: any;\r\n subscriptionNumber?: any;\r\n withdrawalPaymentInstruction: WithdrawalPaymentInstruction;\r\n}\r\n\r\nexport interface Identity {\r\n fkOfficialIdentityTypeID: string;\r\n fkCountryOfIssueID: string;\r\n identityValue?: any;\r\n}\r\n\r\nexport interface Broker {\r\n brokerName: string;\r\n email: string;\r\n telNumber: string;\r\n mobileNumber: string;\r\n}\r\n\r\nexport interface Member {\r\n firstName?: any;\r\n middleName?: any;\r\n surname?: any;\r\n maidenName?: any;\r\n initials?: any;\r\n dateOfBirth?: any;\r\n identity: Identity;\r\n}\r\n\r\nexport interface MemberContactDetails {\r\n useResidentialAsPostal: boolean;\r\n unitNumber?: any;\r\n complex?: any;\r\n streetNumber?: any;\r\n streetOrFarmName?: any;\r\n suburbOrDistrict?: any;\r\n cityOrTown?: any;\r\n country: string;\r\n postalCode?: any;\r\n residentialCode?: any;\r\n telNumber?: any;\r\n mobileNumber?: any;\r\n eMail?: any;\r\n address1?: any;\r\n address2?: any;\r\n address3?: any;\r\n}\r\n\r\nexport interface Claim {\r\n getIncomeTaxNumber: any;\r\n setIncomeTaxNumber: any;\r\n\r\n getIndebtedToEmployer: boolean;\r\n setIndebtedToEmployer: boolean;\r\n\r\n getAmountOfDeduction?: any;\r\n setAmountOfDeduction?: any;\r\n\r\n getEmployeeNumber?: any;\r\n getEmployerName?: any;\r\n\r\n getBulkClaimsBatchId?: any;\r\n setBulkClaimsBatchId?: any;\r\n\r\n getNonSaTaxpayer: boolean;\r\n setNonSaTaxpayer: boolean;\r\n\r\n getAnnualTaxableSalary: number;\r\n setAnnualTaxableSalary: number;\r\n\r\n getSarsCountryCode: string;\r\n setSarsCountryCode: string;\r\n\r\n getDateLastContrib: string;\r\n setDateLastContrib: string;\r\n\r\n getContinuation: boolean;\r\n setContinuation: boolean;\r\n\r\n getCountryOfResidence: string;\r\n setCountryOfResidence: string;\r\n\r\n getUserEmail?: any;\r\n setUserEmail?: any;\r\n\r\n getMembership: Membership[];\r\n setMembership: Membership[];\r\n\r\n getMember: Member;\r\n setMember: Member;\r\n\r\n getMemberContactDetails: MemberContactDetails;\r\n setMemberContactDetails: MemberContactDetails;\r\n\r\n getMemberBankingDetail?: MemberBankingDetail;\r\n setMemberBankingDetail?: MemberBankingDetail;\r\n}\r\n\r\nexport interface MemberBankingDetail {\r\n accountNumber: string;\r\n accountType: number;\r\n accountHolder: string;\r\n branchNumber: string;\r\n bankName: string;\r\n}\r\n\r\nexport interface MemberClaim {\r\n claim: Claim;\r\n}\r\n\r\nexport interface RetirementSavings {\r\n fullPartFlag: number;\r\n moveWithDrawFlag: number;\r\n amountToMove: any;\r\n savingsLeft: any;\r\n totalSavings: any;\r\n percentage: number;\r\n tax: number;\r\n payout: number;\r\n}\r\n\r\nexport interface BrokerDetails {\r\n newFundName: string;\r\n brokerCell: string;\r\n brokerName: string;\r\n brokerEmail: string;\r\n brokerNumber: string;\r\n}\r\n","// Main interface\r\nexport class RetirementSavings {\r\n fullPartFlag: number;\r\n moveWithDrawFlag: number;\r\n amountToMove: any;\r\n savingsLeft: any\r\n totalSavings: any;\r\n percentage:number;\r\n tax: number;\r\n payout: number;\r\n}\r\n\r\nexport class BrokerDetails{\r\n newFundName: string;\r\n brokerCell: string;\r\n brokerName: string;\r\n brokerEmail: string;\r\n brokerNumber: string;\r\n productName: string;\r\n isAdvised: boolean;\r\n sendtoBroker: boolean;\r\n}\r\n\r\nexport class BankingDetails{\r\n accHolderName: string;\r\n accountNumber: string;\r\n bankName: string;\r\n branchCode: string;\r\n accountType:string;\r\n}\r\n\r\nexport class MemberContactDetails{\r\n useResidentialAsPostal: boolean;\r\n unitNumber?: any;\r\n complex?: any;\r\n streetNumber?: any;\r\n streetOrFarmName?: any;\r\n suburbOrDistrict?: any;\r\n cityOrTown?: any;\r\n country: string;\r\n postalCode?: any;\r\n telNumber?: any;\r\n mobileNumber?: any;\r\n eMail?: any;\r\n address1?: any;\r\n address2?: any;\r\n address3?: any;\r\n residentialCode?: any; \r\n}\r\n\r\nexport class Member {\r\n firstName: string\r\n middleName: string\r\n surname: string\r\n maidenName: string\r\n initials: string\r\n dateOfBirth: string\r\n identity: Identity\r\n}\r\n\r\nclass Identity{\r\n fkOfficialIdentityTypeID: string\r\n fkCountryOfIssueID: string\r\n identityValue: string\r\n}\r\n\r\n\r\nexport interface Calculations{\r\n amountToMove: any;\r\n savingsLeft:any;\r\n percentageToMove: any;\r\n}\r\n\r\nexport class MemberDetails {\r\n employeeId: string;\r\n hrRepresentativeId: string;\r\n employeeNumber: string;\r\n employerName: string;\r\n exitDate: string;\r\n exitNoticeDate?: any;\r\n identityValue: string;\r\n identityTypeId: number;\r\n employeeUserName: string;\r\n initials: string;\r\n firstName: string;\r\n surname: string;\r\n dateOfBirth: string;\r\n telephoneNumber: string;\r\n mobileNumber: string;\r\n personalEmail: string;\r\n workEmail: string;\r\n primaryEmail: string;\r\n isHrEmailAddress: boolean;\r\n indebtedToEmployer: boolean;\r\n amountOfDeduction: number;\r\n poBox?: any;\r\n address1: string;\r\n address2: string;\r\n address3: string;\r\n unitNumber?: any;\r\n complex?: any;\r\n streetNumber?: any;\r\n streetOrFarmName?: any;\r\n suburbOrDistrict?: any;\r\n cityOrTown?: any;\r\n country: string;\r\n postalCode: string;\r\n titleId: number;\r\n genderId: number;\r\n modifiedBy: string;\r\n hrRepresentative: HrRepresentative;\r\n membership: Membership[];\r\n exit: Exit;\r\n}\r\n\r\ninterface HrRepresentative {\r\n hrRepresentativeId: string;\r\n userName: string;\r\n emailAddress: string;\r\n modifiedBy: string;\r\n firstName: string;\r\n lastName: string;\r\n contactNumber: string,\r\n}\r\n\r\nexport class MemberValues{\r\n FundCredit: number;\r\n LastContribution:number;\r\n LastContributionDate:string;\r\n InvestmentPeriod: string;\r\n AnnualPensionableSalary:number;\r\n RetirementContributionRate:number;\r\n EmployerContributions:number;\r\n MemberContributions:number;\r\n IsSuccess:boolean;\r\n Message: string;\r\n}\r\n\r\ninterface Exit {\r\n exitId: string;\r\n employeeId: string;\r\n kickoffDate: string;\r\n actionId: number;\r\n statusId: number;\r\n statusDescription?: any;\r\n modifiedBy: string;\r\n opportunityId: string;\r\n claimId: number;\r\n}\r\n\r\ninterface Membership {\r\n employeeMembershipId: number;\r\n employeeId: string;\r\n fundId: number;\r\n fundName: string;\r\n integrationSystem: string;\r\n subscriptionNumber: string;\r\n isHybrid: boolean;\r\n modifiedBy: string;\r\n}\r\n","export * from './service/retirement-savings.store';\r\nexport * from './model/retirement-savings.model'\r\n","import {Injectable} from '@angular/core';\r\nimport {Claim, Member, MemberBankingDetail, MemberContactDetails, Membership, RetirementSavings} from \"../model/claim\";\r\nimport {BankingDetails, BrokerDetails, Calculations, MemberDetails, MemberValues} from \"../model/retirement-savings.model\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ClaimService implements Claim{\r\n private amountOfDeduction: any;\r\n private annualTaxableSalary: number;\r\n private bulkClaimsBatchId: any;\r\n private continuation: boolean;\r\n private countryOfResidence: string;\r\n private dateLastContrib: string;\r\n private employeeNumber: any;\r\n private employerName: any;\r\n private incomeTaxNumber: any;\r\n private indebtedToEmployer: boolean;\r\n private member: Member;\r\n private memberBankingDetail: MemberBankingDetail;\r\n private memberContactDetails: MemberContactDetails;\r\n private membership: Membership[] = [];\r\n private nonSaTaxpayer: boolean;\r\n private sarsCountryCode: string;\r\n private userEmail: any;\r\n private retirementSavings: RetirementSavings;\r\n private brokerDetails: BrokerDetails;\r\n private bankingDetails: BankingDetails;\r\n private calculations: Calculations\r\n private memberDetails: MemberDetails;\r\n private memberValues: MemberValues;\r\n private memberStatus: any\r\n private projections: any\r\n\r\n updateClaimPersonalDetails(member: Member) {\r\n this.member = member;\r\n\r\n }\r\n\r\n updateClaimAddressDetails({address1,address2,address3,postalCode,country,telNumber,mobileNumber,eMail}: MemberContactDetails) {\r\n let memberContactDetails: MemberContactDetails = {\r\n cityOrTown: undefined,\r\n complex: \"\",\r\n streetNumber: \"\",\r\n streetOrFarmName: \"\",\r\n unitNumber: \"\",\r\n address1: address1, address2: address2 ,address3: address3 ,\r\n postalCode: postalCode ,country: country, telNumber: telNumber, mobileNumber:mobileNumber, eMail: eMail, useResidentialAsPostal:false};\r\n this.memberContactDetails = memberContactDetails;\r\n }\r\n\r\n updateClaim({ withdrawalDate, dateLastContrib, employerName, userEmail, indebtedToEmployer, employeeNumber,amountToMove } : any) {\r\n if (!this.membership[0]){\r\n let withDrawPayment = {\r\n \"fundId\": null,\r\n \"subscriptionNumber\": null,\r\n \"withdrawalPaymentInstruction\": {\r\n \"fkWithdrawalTypeID\": \"\",\r\n \"fkWithdrawalOptionId\": \"\",\r\n \"cashAmount\": 0,\r\n \"amountIsPostTax\": false,\r\n \"transferToFundName\": null,\r\n \"transferToPolicyRef\": null,\r\n \"withdrawalDate\": \"2021-01-29\",\r\n \"broker\": null\r\n }\r\n }\r\n this.membership.push(withDrawPayment);\r\n }\r\n this.membership[0].withdrawalPaymentInstruction.withdrawalDate = withdrawalDate\r\n this.membership[0].withdrawalPaymentInstruction.cashAmount = amountToMove\r\n this.dateLastContrib = dateLastContrib;\r\n this.employeeNumber = employeeNumber;\r\n this.employerName = employerName;\r\n this.userEmail = userEmail;\r\n }\r\n\r\n updateMemberBankingDetails(memberBankingDetail: MemberBankingDetail) {\r\n this.memberBankingDetail = memberBankingDetail;\r\n }\r\n updateMemberBrokerDetails({newFundName,brokerCell,brokerName,brokerEmail,brokerNumber}:BrokerDetails){\r\n\r\n let withDrawPayment = {\r\n \"fundId\": null,\r\n \"subscriptionNumber\": null,\r\n \"withdrawalPaymentInstruction\": {\r\n \"fkWithdrawalTypeID\": \"\",\r\n \"fkWithdrawalOptionId\": \"\",\r\n \"cashAmount\": 0,\r\n \"amountIsPostTax\": false,\r\n \"transferToFundName\": null,\r\n \"transferToPolicyRef\": null,\r\n \"withdrawalDate\": \"2021-01-29\",\r\n \"broker\": null\r\n }\r\n }\r\n\r\n if (!this.membership[0]){\r\n this.membership.push(withDrawPayment);\r\n } else {\r\n this.membership[0].withdrawalPaymentInstruction.broker = {\r\n brokerName: brokerName,\r\n email: brokerEmail,\r\n telNumber: brokerNumber,\r\n mobileNumber: brokerCell\r\n };\r\n this.membership[0].withdrawalPaymentInstruction.transferToFundName = newFundName;\r\n }\r\n\r\n }\r\n\r\n get getAmountOfDeduction(): any {\r\n return this.amountOfDeduction;\r\n }\r\n\r\n set setAmountOfDeduction(value: any) {\r\n this.amountOfDeduction = value;\r\n }\r\n\r\n get getAnnualTaxableSalary(): number {\r\n return this.annualTaxableSalary;\r\n }\r\n\r\n set setAnnualTaxableSalary(value: number) {\r\n this.annualTaxableSalary = value;\r\n }\r\n\r\n get getBulkClaimsBatchId(): any {\r\n return this.bulkClaimsBatchId;\r\n }\r\n\r\n set setBulkClaimsBatchId(value: any) {\r\n this.bulkClaimsBatchId = value;\r\n }\r\n\r\n get getContinuation(): boolean {\r\n return this.continuation;\r\n }\r\n\r\n set setContinuation(value: boolean) {\r\n this.continuation = value;\r\n }\r\n\r\n get getCountryOfResidence(): string {\r\n return this.countryOfResidence;\r\n }\r\n\r\n set setCountryOfResidence(value: string) {\r\n this.countryOfResidence = value;\r\n }\r\n\r\n get getDateLastContrib(): string {\r\n return this.dateLastContrib;\r\n }\r\n\r\n set setDateLastContrib(value: string) {\r\n this.dateLastContrib = value;\r\n }\r\n\r\n get getEmployeeNumber(): any {\r\n return this.employeeNumber;\r\n }\r\n\r\n set setEmployeeNumber(value: any) {\r\n this.employeeNumber = value;\r\n }\r\n\r\n get getEmployerName(): any {\r\n return this.employerName;\r\n }\r\n\r\n set setEmployerName(value: any) {\r\n this.employerName = value;\r\n }\r\n\r\n get getIncomeTaxNumber(): any {\r\n return this.incomeTaxNumber;\r\n }\r\n\r\n set setIncomeTaxNumber(value: any) {\r\n this.incomeTaxNumber = value;\r\n }\r\n\r\n get getIndebtedToEmployer(): boolean {\r\n return this.indebtedToEmployer;\r\n }\r\n\r\n set setIndebtedToEmployer(value: boolean) {\r\n this.indebtedToEmployer = value;\r\n }\r\n\r\n get getMember(): Member {\r\n return this.member;\r\n }\r\n\r\n set setMember(value: Member) {\r\n this.member = value;\r\n }\r\n\r\n get getMemberBankingDetail(): MemberBankingDetail {\r\n return this.memberBankingDetail;\r\n }\r\n\r\n set setMemberBankingDetail(value: MemberBankingDetail) {\r\n this.memberBankingDetail = value;\r\n }\r\n\r\n get getMemberContactDetails(): MemberContactDetails {\r\n return this.memberContactDetails;\r\n }\r\n\r\n set setMemberContactDetails(value: MemberContactDetails) {\r\n this.memberContactDetails = value;\r\n }\r\n\r\n get getMembership(): Membership[] {\r\n return this.membership;\r\n }\r\n\r\n set setMembership(value: Membership[]) {\r\n this.membership = value;\r\n }\r\n\r\n get getNonSaTaxpayer(): boolean {\r\n return this.nonSaTaxpayer;\r\n }\r\n\r\n set setNonSaTaxpayer(value: boolean) {\r\n this.nonSaTaxpayer = value;\r\n }\r\n\r\n get getSarsCountryCode(): string {\r\n return this.sarsCountryCode;\r\n }\r\n\r\n set setSarsCountryCode(value: string) {\r\n this.sarsCountryCode = value;\r\n }\r\n\r\n get getUserEmail(): any {\r\n return this.userEmail;\r\n }\r\n\r\n set setUserEmail(value: any) {\r\n this.userEmail = value;\r\n }\r\n\r\n getRetirementSavings(): RetirementSavings{\r\n return this.retirementSavings;\r\n }\r\n\r\n setRetirementSavings({fullPartFlag,moveWithDrawFlag,amountToMove,savingsLeft,totalSavings,percentage,tax,payout}: RetirementSavings) {\r\n let retirementSavings: RetirementSavings = { fullPartFlag: fullPartFlag, moveWithDrawFlag: moveWithDrawFlag,\r\n amountToMove: amountToMove,savingsLeft: savingsLeft ,totalSavings: totalSavings, percentage: percentage,tax:tax,payout:payout};\r\n this.retirementSavings = retirementSavings;\r\n }\r\n\r\n getBrokerDetails(): BrokerDetails{\r\n return this.brokerDetails;\r\n }\r\n\r\n setBrokerDetails({newFundName,brokerCell,brokerName,brokerEmail,brokerNumber, productName, isAdvised, sendtoBroker}: BrokerDetails) {\r\n let brokerDetails: BrokerDetails = { newFundName: newFundName, brokerCell: brokerCell,\r\n brokerName: brokerName,brokerEmail: brokerEmail ,brokerNumber: brokerNumber, productName: productName, isAdvised, sendtoBroker};\r\n this.brokerDetails = brokerDetails;\r\n }\r\n\r\n getBankingDetails(): BankingDetails{\r\n return this.bankingDetails;\r\n }\r\n\r\n setBankingDetails({accHolderName,accountNumber,bankName,branchCode,accountType}: BankingDetails) {\r\n let brokerDetails: BankingDetails = { accHolderName: accHolderName, accountNumber: accountNumber,\r\n bankName: bankName,branchCode: branchCode ,accountType: accountType};\r\n this.bankingDetails = brokerDetails;\r\n }\r\n\r\n getCalculations(percent: number, totalSavings: any, amountToMove: number | null = null): Calculations{\r\n if (amountToMove == null){\r\n let calcAmount = Math.round(((percent) /100) * totalSavings);\r\n let calcSavings = Math.round(totalSavings -((percent) /100) * totalSavings);\r\n let calcs: Calculations = {amountToMove: calcAmount, savingsLeft: calcSavings, percentageToMove: percent};\r\n this.calculations = calcs\r\n }else{\r\n\r\n let percent = Math.round(amountToMove/ parseFloat(totalSavings) * 100);\r\n // let calcAmount = Math.round(((percent) /100) * totalSavings);\r\n let calcSavings = Math.round(parseFloat(totalSavings) -((percent) /100) * parseFloat(totalSavings));\r\n let calcs: Calculations = {amountToMove: amountToMove, savingsLeft: calcSavings, percentageToMove: percent};\r\n this.calculations = calcs\r\n }\r\n return this.calculations;\r\n }\r\n\r\n getMemberDetails(): MemberDetails{\r\n return this.memberDetails;\r\n }\r\n\r\n setMemberDetails(memberDetails: MemberDetails) {\r\n this.memberDetails = memberDetails;\r\n }\r\n\r\n getMemberValues(): MemberValues{\r\n return this.memberValues;\r\n }\r\n\r\n setMemberValues(memberValues: MemberValues) {\r\n this.memberValues = memberValues;\r\n }\r\n\r\n getMemberStatus(){\r\n return this.memberStatus;\r\n }\r\n\r\n setMemberStatus(memberStatus: any){\r\n this.memberStatus = memberStatus;\r\n }\r\n\r\n getProjections(): any {\r\n return this.projections;\r\n }\r\n\r\n setProjections(value: any) {\r\n this.projections = value;\r\n }\r\n}\r\n","export enum eWithdrawalOption {\r\n FullBenefitToBeTransferred = 2,\r\n FullTransfer = 3,\r\n FullCash = 4,\r\n PartTransfer = 5,\r\n NoPaymentOption = 6,\r\n PartTransferToAlexanderForbesPreservationFund = 7,\r\n KeepYourSavingsWhereTheyAre = 8\r\n}\r\n","export enum eWithdrawalType {\r\n Resignation = 1,\r\n NonQualifyingRetrenchment = 2,\r\n Dismissal = 3,\r\n QualifyingRetrenchment = 9\r\n}\r\n","export * from './eWithdrawalOption.enum';\r\nexport * from './eWithdrawalType.enum';\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { RetirementSavings } from '../model/retirement-savings.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RetirementSavingsStore{\r\n private _retirement_savings: RetirementSavings;\r\n constructor() {\r\n }\r\n\r\n public get retirement_savings() : RetirementSavings {\r\n return this._retirement_savings\r\n }\r\n\r\n public set retirement_savings(rs : RetirementSavings) {\r\n this._retirement_savings = rs;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-app-footer',\r\n templateUrl: './app-footer.component.html',\r\n styleUrls: ['./app-footer.component.scss']\r\n})\r\nexport class AppFooterComponent implements OnInit {\r\n\r\n currentYear = new Date().getFullYear();\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","\r\n
\r\n","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { ContentService } from \"../../../services/content.service\";\r\nimport { RoutingService } from \"../../../services/routing.service\";\r\nimport { UserService } from \"../../../services/user.service\";\r\nimport { NotificationService } from \"../../../services/notification.service\";\r\nimport { LoaderService } from \"../../../services/loader.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { User } from \"oidc-client\";\r\nimport { Constants } from \"../../../constants/constants\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-app-header\",\r\n templateUrl: \"./app-header.component.html\",\r\n styleUrls: [\"./app-header.component.scss\"],\r\n})\r\nexport class AppHeaderComponent implements OnInit, OnDestroy {\r\n protected _subscriptions = new Array();\r\n @Input() disabled: boolean;\r\n @Input() active: string;\r\n userFullName: string | undefined;\r\n userRole: string;\r\n isDialogOpen: boolean = false;\r\n popIaDisclosurePath: string = \"\";\r\n infoIconDamPath: string = \"\";\r\n\r\n appVersion: string = appsettings.appVersion;\r\n dataReady = false;\r\n corporate: any;\r\n corporateName: string;\r\n user: User | null = null;\r\n\r\n constructor(\r\n public auth: AuthenticationService,\r\n protected _routingService: RoutingService,\r\n public contentService: ContentService,\r\n protected _userService: UserService,\r\n public notificationService: NotificationService,\r\n protected _loader: LoaderService,\r\n public sanitizer: DomSanitizer,\r\n private _http: HttpClient\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n this.infoIconDamPath = Constants.infoIconDamPath;\r\n this.auth\r\n .getClaims()\r\n .then((member) => {\r\n this.user = member;\r\n this.contentService.cacheDropdownOptions();\r\n this.setUserDetails();\r\n })\r\n .catch((reason) => {});\r\n }\r\n\r\n protected setUserDetails() {\r\n this.userRole = this.user!.profile['role'];\r\n if (this.user!.profile['role'].toLowerCase() === \"user\") {\r\n this.userFullName = this.user!.profile.name;\r\n }\r\n\r\n if (!this.contentService.currentUser) {\r\n this._loader.start();\r\n\r\n this._subscriptions.push(\r\n this._userService.getCurrentUserProfileData().subscribe(\r\n (currentUser) => {\r\n this.contentService.currentUser = currentUser;\r\n this.userFullName =\r\n currentUser.firstname + \" \" + currentUser.lastname;\r\n sessionStorage.setItem('userProfileBillGroups', JSON.stringify(currentUser.billgroups));\r\n this._subscriptions.push(\r\n this.getUserCorp().subscribe(\r\n (resp) => {\r\n if (resp) {\r\n this.corporate = resp;\r\n this.contentService.corporateName = this.corporate.name;\r\n this.corporateName = this.corporate.name;\r\n this._loader.stop();\r\n } else {\r\n this._loader.stop();\r\n }\r\n },\r\n (error) => {\r\n this._loader.stop();\r\n }\r\n )\r\n );\r\n },\r\n (error) => {\r\n this._loader.stop();\r\n }\r\n )\r\n );\r\n } else {\r\n this.userFullName =\r\n this.contentService.currentUser.firstname +\r\n \" \" +\r\n this.contentService.currentUser.lastname;\r\n this.corporateName = this.contentService.corporateName;\r\n }\r\n }\r\n\r\n getUserCorp() {\r\n const url = `${appsettings.serverUrl}${appsettings.endPoints.corporateUrl}/${this.user!.profile['CorporateId']}`;\r\n return this._http.get(url);\r\n }\r\n\r\n resetToDefaultLogo() {\r\n this.contentService.resetLogo();\r\n }\r\n\r\n isDisabledJoiners(): boolean {\r\n return true;\r\n }\r\n\r\n isDisabledDashboard(): boolean {\r\n if (\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"System Admin\" ||\r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledTemplates(): boolean {\r\n if (\r\n this.userRole === \"HR Recruiter\" ||\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"HR Manager\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"System Admin\" ||\r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledUsers(): boolean {\r\n if (\r\n this.userRole === \"HR Recruiter\" ||\r\n this.userRole === \"HR Manager\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n }else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledCorporates(): boolean {\r\n if (\r\n this.userRole === \"HR Admin\" ||\r\n this.userRole === \"HR Recruiter\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"HR Manager\" ||\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"System Admin\" || \r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledArchive(): boolean {\r\n if (\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledLeavers(): boolean {\r\n if (\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"HR Recruiter\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"System Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n isDisabledCompany(): boolean {\r\n if (\r\n this.userRole === \"Candidate\" ||\r\n this.userRole === \"HR Recruiter\" ||\r\n this.userRole === \"HR Manager\" ||\r\n this.userRole === \"HR Operations\" ||\r\n this.userRole === \"Operations administrator\" ||\r\n this.userRole === \"Internal Account Manager\" ||\r\n this.userRole === \"CAT Manager\" ||\r\n this.userRole === \"System Admin\" ||\r\n this.userRole === \"HR Admin\"\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n onSignOut() {\r\n this.isDialogOpen = false;\r\n this.auth.logout(false);\r\n }\r\n\r\n goToDashboard() {\r\n this._routingService.corporateDashboard();\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common'\r\nimport { AppHeaderComponent } from \"./app-header.component\";\r\nimport { AppLogoutDialogComponent } from \"./app-logout-dialog/app-logout-dialog.component\";\r\nimport { RouterModule } from '@angular/router';\r\nimport { AppFooterComponent} from './../app-footer/app-footer.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [AppHeaderComponent,\r\n AppLogoutDialogComponent,\r\n AppFooterComponent],\r\n imports: [\r\n CommonModule,\r\n RouterModule\r\n ],\r\n exports: [\r\n AppHeaderComponent,\r\n AppLogoutDialogComponent,\r\n AppFooterComponent,\r\n RouterModule\r\n ]\r\n\r\n})\r\nexport class AppHeaderModule { }\r\n","\r\nimport { Component, EventEmitter, Output, OnInit} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-app-logout-dialog',\r\n templateUrl: './app-logout-dialog.component.html',\r\n styleUrls: ['./app-logout-dialog.component.scss']\r\n})\r\nexport class AppLogoutDialogComponent {\r\n\r\n @Output() close = new EventEmitter();\r\n @Output() logout = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n onLogout() {\r\n this.logout.emit();\r\n }\r\n\r\n\r\n}\r\n\r\n","
\r\n
\r\n

\r\n Are you sure you want to log out ?\r\n

\r\n\r\n
\r\n
\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 { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-inputswitch',\r\n templateUrl: './app-inputswitch.component.html',\r\n styleUrls: ['./app-inputswitch.component.scss']\r\n})\r\nexport class InputswitchComponent implements OnInit {\r\n @Input() toggleValue: boolean;\r\n @Input() toggleLabel1: string;\r\n @Input() toggleLabel2: string;\r\n @Input() toggleWidth: number;\r\n @Output() toggleValueChange = new EventEmitter();\r\n\r\n @ViewChild('label1', {read: ElementRef})\r\n label1: ElementRef;\r\n\r\n @ViewChild('label2', {read: ElementRef})\r\n label2: ElementRef;\r\n\r\n constructor(private cdref: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngAfterViewInit() { //view children must be accessed at this hook or later\r\n let label1Width = this.label1.nativeElement.offsetWidth;\r\n let label2Width = this.label2.nativeElement.offsetWidth;\r\n\r\n let biggerWidth = Math.max(label1Width, label2Width)\r\n\r\n // Get the longer label and set that as the minium for both of the labels so it scales properly no matter the length\r\n this.toggleWidth = biggerWidth * 2;\r\n this.cdref.detectChanges();\r\n }\r\n\r\n toggle(){\r\n this.toggleValue = !this.toggleValue; \r\n this.toggleValueChange.emit(this.toggleValue);\r\n }\r\n\r\n}\r\n","
\r\n {{ toggleLabel1 }}\r\n {{ toggleLabel1 }}\r\n {{ toggleLabel2 }}\r\n {{ toggleLabel2 }}\r\n \r\n
","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"app-claim-confirm-popup\",\r\n templateUrl: \"./claim-confirm-popup.component.html\",\r\n styleUrls: [\"./claim-confirm-popup.component.scss\"],\r\n})\r\nexport class ClaimConfirmPopupComponent implements OnInit {\r\n @Input() claimSuccess: boolean;\r\n @Input() route: string;\r\n @Input() claimId: string;\r\n @Input() empEmail: string;\r\n @Output() routeSummary = new EventEmitter();\r\n @Input() header: string;\r\n @Input() subheader: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n closePopUp() {\r\n this.claimSuccess = false;\r\n this.routeSummary.emit(this.route);\r\n }\r\n}\r\n","
\r\n
Done!
\r\n
\r\n {{header}} \r\n
\r\n
\r\n {{subheader}} \r\n Your tracking number is #{{claimId}}, and has been emailed to this address:\r\n {{empEmail}}. \r\n
\r\n
Got it\r\n
\r\n
","import { Component, OnInit, Input, Injectable } from \"@angular/core\";\r\nimport { LoaderService } from \"./../../../services/loader.service\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\nimport {\r\n FormGroup,\r\n FormBuilder,\r\n FormControl,\r\n Validators,\r\n} from \"@angular/forms\";\r\nimport { InfoPopupService } from \"./../../../services/info-popup-service.service\";\r\nimport {ClaimService} from \"../../resignations/store/retirement-savings/service/claimService.service\";\r\n\r\n@Component({\r\n selector: \"app-connect-advice\",\r\n templateUrl: \"./connect-advice.component.html\",\r\n styleUrls: [\"./connect-advice.component.scss\"],\r\n})\r\nexport class ConnectAdviceComponent implements OnInit {\r\n connectAdviceForm: FormGroup;\r\n @Input() showInfo: boolean;\r\n @Input() memberDetails: any;\r\n showConnectWindow: boolean = false;\r\n advice: any;\r\n private _headers: HttpHeaders;\r\n message: string;\r\n cellNo: string;\r\n\r\n constructor(\r\n private loader: LoaderService,\r\n private httpClient: HttpClient,\r\n private formBuilder: FormBuilder,\r\n private infoPopupService: InfoPopupService,\r\n private informService: InformService,\r\n private claimService: ClaimService,\r\n private auth: AuthenticationService,\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.onCreateConnectAdviceForm();\r\n }\r\n\r\n public showContent() {\r\n this.showConnectWindow = true;\r\n this.informService.warnToTipComponent(this.showConnectWindow);\r\n }\r\n\r\n public hideContent() {\r\n this.showConnectWindow = false;\r\n this.informService.warnToTipComponent(this.showConnectWindow);\r\n }\r\n\r\n onCreateConnectAdviceForm() {\r\n this.connectAdviceForm = this.formBuilder.group({\r\n cellNo: new FormControl(\"\", [Validators.required]),\r\n message: new FormControl(\"\", [Validators.required]),\r\n });\r\n\r\n if (this.memberDetails.mobileNumber) {\r\n var phoneNumberFormat = require(\"awesome-phonenumber\");\r\n var pn = new phoneNumberFormat(this.memberDetails.mobileNumber, \"ZA\");\r\n this.cellNo = pn.getNumber();\r\n this.connectAdviceForm.get(\"cellNo\")!.setValue(this.cellNo);\r\n }\r\n }\r\n\r\n onGetAdvice() {\r\n this.loader.start();\r\n this.getAdvice().subscribe(\r\n (resp) => {\r\n this.loader.stop();\r\n this.infoPopupService.openInfoPopup(\r\n \"Message sent successfully. One of our consultants will contact you within the next 2 business days.\"\r\n );\r\n this.showConnectWindow = false;\r\n },\r\n (error) => {\r\n this.loader.stop();\r\n console.log(error.statusText);\r\n }\r\n );\r\n }\r\n\r\n getAdvice(): Observable {\r\n this.message = this.connectAdviceForm.get(\"message\")!.value;\r\n this.cellNo = this.connectAdviceForm.get(\"cellNo\")!.value;\r\n const data = {\r\n email: this.memberDetails.email,\r\n phoneNumber: this.cellNo,\r\n message: this.message,\r\n fundCredit: this.claimService.getMemberValues().FundCredit\r\n };\r\n\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\")\r\n .set(\"Access-Control-Allow-Origin\", \"*\")\r\n .set(\"Authorization\", this.auth.getAuthorizationHeaderValue());\r\n\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.advisorRequest}`;\r\n const options = { headers: this._headers };\r\n return this.httpClient.post(url, data, options);\r\n }\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InformService {\r\n private informSource = new Subject();\r\n informStatus$ = this.informSource.asObservable();\r\n\r\n public warnToTipComponent(value: any) {\r\n this.informSource.next(value);\r\n }\r\n}\r\n","\r\n \r\n
CONNECT
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
CLOSE
\r\n
\r\n
Get guidance
\r\n
\r\n
\r\n
\r\n

\r\n Not sure on how to proceed with your retirement savings? An\r\n adviser can guide you to ensure you make the best decision.\r\n

\r\n

\r\n Contact your financial adviser (check with your current employer\r\n if you are not sure) or\r\n

\r\n

\r\n Alexforbes can assist you, if you provide your information\r\n below.\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n Call centre\r\n
\r\n
\r\n If you prefer phoning in your own time, call us on 0860 000\r\n 381.\r\n
\r\n
\r\n Operating hours: Monday to Friday, 8h00 - 17h00\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-continue-warning',\r\n templateUrl: './continue-warning.component.html',\r\n styleUrls: ['./continue-warning.component.scss']\r\n})\r\nexport class ContinueWarningComponent implements OnInit {\r\n\r\n @Input() showFullPartFlag: string | number;\r\n @Input() showMoveWithdraw: string;\r\n @Input() subtext: string;\r\n @Input() subtext1: string;\r\n @Input() header1: string;\r\n @Input() info1: string;\r\n @Input() header2: string;\r\n @Input() info2: string;\r\n @Input() buttonsFlag: string;\r\n @Output() close = new EventEmitter();\r\n @Output() move = new EventEmitter();\r\n @Output() save = new EventEmitter();\r\n @Output() savingsDetails = new EventEmitter();\r\n @Input() header3: string;\r\n @Input() header4: string;\r\n @Output() growSavings = new EventEmitter();\r\n @Input() bankingText: any;\r\n @Input() info3: string;\r\n @Output() exit = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n comeBackLater() {\r\n this.close.emit();\r\n }\r\n\r\n exitLater() {\r\n this.exit.emit();\r\n }\r\n\r\n onPartMove(){\r\n this.move.emit()\r\n }\r\n\r\n onSave(){\r\n this.save.emit()\r\n }\r\n\r\n onReady(){\r\n this.savingsDetails.emit();\r\n }\r\n\r\n growMySavings(){\r\n this.growSavings.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n {{subtext1}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n {{header3}} \r\n
\r\n
\r\n
\r\n
\r\n {{header2}} \r\n
\r\n
\r\n {{header4}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n {{header3}} \r\n
\r\n
\r\n
\r\n
\r\n {{header2}} \r\n
\r\n
\r\n {{header4}} \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n {{header3}} \r\n
\r\n
\r\n
\r\n
\r\n {{header2}} \r\n
\r\n
\r\n {{header4}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n
{{bankingText}}
\r\n
{{info1}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n {{subtext1}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n {{subtext1}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n {{header2}} \r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{header1}} \r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n {{subtext1}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{header1}}\r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
{{info3}}
\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, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'disclaimer-popup',\r\n templateUrl: './disclaimer-popup.component.html',\r\n styleUrls: ['./disclaimer-popup.component.scss']\r\n})\r\nexport class DisclaimerPopUpComponent implements OnInit {\r\n\r\n @Output() disclaimerClosed = new EventEmitter();\r\n\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n\r\n close(){\r\n this.disclaimerClosed.emit('disclaimer-popup-closed')\r\n }\r\n}\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, EventEmitter, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-help-popup',\r\n templateUrl: './help-popup.component.html',\r\n styleUrls: ['./help-popup.component.scss']\r\n})\r\nexport class HelpPopupComponent implements OnInit {\r\n @Output() close = new EventEmitter();\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n \r\n closePopUp() {\r\n this.close.emit();\r\n }\r\n}\r\n\r\n\r\n","
\r\n \r\n \r\n
Got it\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { InformService } from '../connect-advice/connect-advice.component';\r\n\r\n@Component({\r\n selector: 'app-help-tips',\r\n templateUrl: './help-tips.component.html',\r\n styleUrls: ['./help-tips.component.scss'],\r\n})\r\nexport class HelpTipsComponent implements OnInit {\r\n\r\n @Input() subtext: string;\r\n @Input() subtext1: string;\r\n @Input() header1: string;\r\n @Input() header2: string;\r\n @Input() info1: string;\r\n @Input() info2: string;\r\n helpTip: boolean = true;\r\n connectToAdviceTip: boolean = false;\r\n isShowConnectClicked: any;\r\n\r\n constructor(private informService: InformService) { }\r\n\r\n ngOnInit() {\r\n\r\n if (localStorage.getItem(\"helpTipsShown\") != null) {\r\n this.helpTip = false;\r\n this.connectToAdviceTip = false;\r\n }\r\n\r\n this.informService.informStatus$.subscribe(res => {\r\n this.isShowConnectClicked = res;\r\n })\r\n }\r\n\r\n closeHelpTips() {\r\n this.helpTip = false;\r\n this.connectToAdviceTip = true;\r\n }\r\n\r\n closeConnectToAdviceTip() {\r\n this.connectToAdviceTip = false;\r\n localStorage.setItem(\"helpTipsShown\", \"yes\");\r\n }\r\n\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{subtext}} \r\n
\r\n
\r\n {{subtext1}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{header1}} \r\n
\r\n
\r\n
{{info1}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n {{header2}} \r\n
\r\n
\r\n
{{info2}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Get connected to advice here

\r\n

These are important decisions and we are here to answer any questions you might have during this time.

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'app-identification-details',\r\n templateUrl: './identification-details.component.html',\r\n styleUrls: ['./identification-details.component.scss']\r\n})\r\nexport class IdentificationDetailsComponent implements OnInit {\r\n\r\n @Input() emp;\r\n titles: any;\r\n idTypes:any\r\n genders: any;\r\n country;\r\n selectedIdType: number;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.titles = JSON.parse(localStorage.getItem(\"titles\"));\r\n this.idTypes = JSON.parse(localStorage.getItem(\"identityTypes\"));\r\n this.genders = JSON.parse(localStorage.getItem(\"genders\"));\r\n if (this.emp.identityTypeId === 1){\r\n this.selectedIdType = 4;\r\n }\r\n }\r\n ondropDownChange(event) {\r\n debugger\r\n switch (event.target.id) {\r\n case \"title\":\r\n this.emp.titleId = event.target.selectedIndex\r\n break;\r\n case \"gender\":\r\n this.emp.genderId = event.target.selectedIndex\r\n break;\r\n case \"idType\":\r\n this.emp.identityTypeId = event.target.selectedIndex\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {FormArray, FormControl, FormGroup, Validators} from \"@angular/forms\";\r\nimport {UtilitiesService} from \"../../../services/utilities.service\";\r\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {LoaderService} from \"../../../services/loader.service\";\r\nimport {ErrorService} from \"../../../services/error.service\";\r\nimport {environment} from \"../../../../environments/environment\";\r\nimport { MemberContactDetails } from '../../resignations/store/retirement-savings/model/retirement-savings.model';\r\nimport { ClaimService } from '../../resignations/store/retirement-savings/service/claimService.service';\r\nimport { countries } from \"./../../../constants/countries\";\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\n\r\n@Component({\r\n selector: 'app-member-address',\r\n templateUrl: './member-address.component.html',\r\n styleUrls: ['./member-address.component.scss']\r\n})\r\nexport class MemberAddressComponent implements OnInit {\r\n\r\n employeeForm: FormGroup;\r\n formSubmitted: boolean = false;\r\n countries: any;\r\n showPostalAddress = true;\r\n memberContactDetails: MemberContactDetails;\r\n countryInvalid: boolean = false;\r\n @Input() employee: any;\r\n @Output() continue = new EventEmitter();\r\n @Output() employeeId = new EventEmitter();\r\n\r\n constructor(private utils:UtilitiesService,\r\n private auth: AuthenticationService,\r\n private httpClient: HttpClient,\r\n private loader: LoaderService,\r\n private errorService: ErrorService,\r\n private claimService: ClaimService) {\r\n\r\n this.memberContactDetails = new MemberContactDetails();\r\n this.employeeForm = new FormGroup({\r\n fundId: new FormControl(''),\r\n membershipNumber: new FormControl(''),\r\n employeeId: new FormControl(''),\r\n employeeNumber: new FormControl(''),\r\n employerName: new FormControl(''),\r\n exitDate: new FormControl(''),\r\n identityValue: new FormControl('',[Validators.minLength(13)]),\r\n identityTypeId: new FormControl(''),\r\n employeeUserName: new FormControl(''),\r\n initials: new FormControl(''),\r\n firstName: new FormControl(''),\r\n surname: new FormControl(''),\r\n dateOfBirth: new FormControl(''),\r\n telephoneNumber: new FormControl(''),\r\n mobileNumber: new FormControl(''),\r\n personalEmail: new FormControl('',[Validators.pattern(\"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,4})+$\")]),\r\n workEmail: new FormControl(),\r\n primaryEmail: new FormControl(''),\r\n isHrEmailAddress: new FormControl(''),\r\n indebtedToEmployer: new FormControl(''),\r\n amountOfDeduction: new FormControl(''),\r\n poBox: new FormControl(''),\r\n address1: new FormControl(''),\r\n address2: new FormControl(''),\r\n address3: new FormControl(''),\r\n postalCode: new FormControl(''),\r\n unitNumber: new FormControl(''),\r\n useResidentialAsPostal: new FormControl(false),\r\n complex: new FormControl(''),\r\n streetNumber: new FormControl('', Validators.required),\r\n streetOrFarmName: new FormControl('', Validators.required),\r\n suburbOrDistrict: new FormControl('', Validators.required),\r\n cityOrTown: new FormControl(''),\r\n country: new FormControl('', Validators.required),\r\n residentialCode: new FormControl('',Validators.required),\r\n titleId: new FormControl(''),\r\n genderId: new FormControl(''),\r\n hrRepresentative: new FormGroup({\r\n hrRepresentativeId: new FormControl(''),\r\n userName: new FormControl(''),\r\n emailAddress: new FormControl(''),\r\n firstName: new FormControl(''),\r\n lastName: new FormControl(''),\r\n contactNumber: new FormControl(''),\r\n }),\r\n membership: new FormArray([\r\n new FormGroup({\r\n employeeMembershipId: new FormControl(''),\r\n employeeId: new FormControl(''),\r\n fundId:new FormControl(''),\r\n fundName: new FormControl(''),\r\n integrationSystem: new FormControl(''),\r\n subscriptionNumber: new FormControl(''),\r\n isHybrid: new FormControl(''),\r\n modifiedBy: new FormControl('')\r\n })\r\n ]),\r\n exit: new FormGroup({\r\n exitId: new FormControl(''),\r\n employeeId: new FormControl(''),\r\n kickoffDate: new FormControl(''),\r\n actionId: new FormControl(''),\r\n statusId: new FormControl(''),\r\n opportunityId: new FormControl(''),\r\n claimId: new FormControl('')\r\n })\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.countries = countries;\r\n this.getMemberInfo();\r\n }\r\n ondropDownChange(event) {\r\n this.countryInvalid = false;\r\n if(event.target.value == \"\"){\r\n this.countryInvalid = true;\r\n }\r\n switch (event.target.id) {\r\n case \"country\":\r\n this.employeeForm.controls['country'].patchValue(event.target.value);\r\n break;\r\n case \"postal-country\":\r\n console.log(event.target.value)\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n getMemberInfo() {\r\n if (this.defaultCountryIfNoAddress(this.employee)){\r\n this.employee.country = 'ZA';\r\n }\r\n if (this.claimService.getMemberContactDetails) {\r\n this.memberContactDetails = this.claimService.getMemberContactDetails;\r\n if (this.defaultCountryIfNoAddress(this.memberContactDetails)){\r\n this.memberContactDetails.country ='ZA';\r\n }\r\n this.showPostalAddressSection(this.memberContactDetails.useResidentialAsPostal);\r\n }else{\r\n this.initData(this.employee);\r\n }\r\n }\r\n\r\n defaultCountryIfNoAddress(employee: any): boolean{\r\n if(!employee.address1 && !employee.address2 && !employee.postalCode && !employee.country){\r\n return true;\r\n }\r\n }\r\n\r\n initData(data){\r\n this.memberContactDetails.unitNumber = data.unitNumber;\r\n this.memberContactDetails.complex = data.complex;\r\n this.memberContactDetails.streetNumber = data.streetNumber;\r\n this.memberContactDetails.streetOrFarmName = data.streetOrFarmName;\r\n this.memberContactDetails.suburbOrDistrict = data.suburbOrDistrict;\r\n this.memberContactDetails.residentialCode = data.residentialCode;\r\n this.memberContactDetails.cityOrTown = data.cityOrTown;\r\n this.memberContactDetails.country = data.country;\r\n this.memberContactDetails.postalCode = data.residentialCode;\r\n this.memberContactDetails.address1 = data.address1;\r\n this.memberContactDetails.address2 = data.address2;\r\n this.memberContactDetails.address3 = data.address3;\r\n this.memberContactDetails.eMail = data.eMail;\r\n this.memberContactDetails.mobileNumber = data.mobileNumber;\r\n this.memberContactDetails.telNumber = data.telNumber;\r\n this.memberContactDetails.useResidentialAsPostal = data.useResidentialAsPostal;\r\n }\r\n\r\n showPostalAddressSection(event) {\r\n this.showPostalAddress = !event;\r\n //this.employeeForm.controls['useResidentialAsPostal'].patchValue(event);\r\n if (event) {\r\n this.employeeForm.controls[\"address1\"].clearValidators();\r\n this.employeeForm.controls[\"address1\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"address2\"].clearValidators();\r\n this.employeeForm.controls[\"address2\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"address3\"].clearValidators();\r\n this.employeeForm.controls[\"address3\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"postalCode\"].clearValidators();\r\n this.employeeForm.controls[\"postalCode\"].updateValueAndValidity();\r\n } else {\r\n this.employeeForm.controls[\"address1\"].setValidators([Validators.required]);\r\n this.employeeForm.controls[\"address1\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"address2\"].setValidators([Validators.required]);\r\n this.employeeForm.controls[\"address2\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"address3\"].setValidators([Validators.required]);\r\n this.employeeForm.controls[\"address3\"].updateValueAndValidity();\r\n this.employeeForm.controls[\"postalCode\"].setValidators([Validators.required]);\r\n this.employeeForm.controls[\"postalCode\"].updateValueAndValidity();\r\n }\r\n }\r\n\r\n validate() {\r\n this.formSubmitted = true;\r\n const countryValue = this.employeeForm.get(\"country\").value;\r\n if (countryValue == \"\") {\r\n this.countryInvalid = true;\r\n this.errorService.openErrorPopup(\"Please complete required fields.\");\r\n } else {\r\n if (this.employeeForm.invalid) {\r\n this.errorService.openErrorPopup(\"Please complete required fields.\");\r\n }\r\n else {\r\n const chkValue = this.employeeForm.get(\"useResidentialAsPostal\").value;\r\n if (chkValue) {\r\n this.continue.emit(this.memberContactDetails);\r\n }\r\n if (!chkValue) {\r\n this.continue.emit(this.memberContactDetails);\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
Residential address
\r\n
\r\n

Please confirm that we have your correct address as registered with SARS.

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Postal address
\r\n
\r\n \r\n \r\n
Postal address same as Residential.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
continue
\r\n
\r\n\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from \"@angular/common/http\";\r\nimport {environment} from \"../../../../environments/environment\";\r\nimport {UtilitiesService} from \"../../../services/utilities.service\";\r\nimport {StoreService} from \"../../../services/storeService\";\r\nimport {LoaderService} from \"../../../services/loader.service\";\r\nimport {ErrorService} from \"../../../services/error.service\";\r\nimport {Observable} from \"rxjs\";\r\nimport { saveAs } from 'file-saver';\r\nimport { countries } from \"./../../../constants/countries\";\r\nimport { AuthenticationService } from 'src/app/services/authentication.service';\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: 'app-member-tax-details',\r\n templateUrl: './member-tax-details.component.html',\r\n styleUrls: ['./member-tax-details.component.scss']\r\n})\r\nexport class MemberTaxDetailsComponent implements OnInit {\r\n\r\n taxReference: any;\r\n @Output() countryChange = new EventEmitter();\r\n @Output() download = new EventEmitter();\r\n countries: any;\r\n fileName: string = null;\r\n file: File;\r\n private files: FileList;\r\n @Input() employeeId;\r\n taxResidence: string = '';\r\n\r\n constructor(private utils: UtilitiesService, private httpClient: HttpClient,\r\n private auth: AuthenticationService, private loader: LoaderService,\r\n private errorService: ErrorService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.countries = countries;\r\n this.taxResidence = '';\r\n }\r\n\r\n ondropDownChange() {\r\n const data = {\r\n country: this.taxResidence,\r\n taxRef: this.taxReference\r\n }\r\n this.countryChange.emit(data);\r\n }\r\n\r\n onTaxDetailsUpdate(){\r\n const data = {\r\n country: this.taxResidence,\r\n taxRef: this.taxReference\r\n }\r\n this.countryChange.emit(data);\r\n }\r\n\r\n uploadFile(url: string, file: File): Observable {\r\n this.fileName = file.name\r\n let formData = new FormData();\r\n formData.append('formFile', file);\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = {headers: headers};\r\n return this.httpClient.post(url, formData, options);\r\n }\r\n\r\n deleteFile(url: string) {\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = {headers: headers};\r\n return this.httpClient.delete(url, options);\r\n }\r\n\r\n fileChange($event: Event) {\r\n this.files = $event.target['files'];\r\n if (this.files.length == 0)\r\n return;\r\n this.file = (this.files)[0];\r\n this.loader.start();\r\n let url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.memberDocuments}?employeeId=${this.employeeId}&fileType=WTI&overWriteIfExists=true`\r\n this.uploadFile(url, this.file).subscribe(resp => {\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('Upload successful.')\r\n }, err => {\r\n console.log(err.status)\r\n switch (err.status) {\r\n case 404:\r\n this.loader.stop();\r\n this.errorService.openErrorPopup('No available documents.')\r\n break;\r\n case 500:\r\n this.loader.stop();\r\n if(err.error.error[0].includes('The document type you are trying to upload is not allowed.')){\r\n this.errorService.openErrorPopup('The document type you are trying to upload is not allowed.(Allowed type: .pdf)');\r\n }else {\r\n this.errorService.openErrorPopup('File size exceeds limit');\r\n }\r\n this.fileName = null;\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n deleteWTI() {\r\n this.loader.start();\r\n this.deleteFile(`${appsettings.digitalHRAssisServicesUrl}${environment.endPoints.memberDocuments}?employeeId=${this.employeeId}&fileType=WTI`).subscribe(resp => {\r\n this.fileName = null;\r\n document.getElementById('wti-form-upload')['value'] = '';\r\n this.loader.stop()\r\n }, err => {\r\n this.loader.stop()\r\n })\r\n }\r\n downloadWTI() {\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${environment.endPoints.memberDocuments}?fileType=WTI&employeeId=${this.employeeId}`;\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = {\r\n headers: headers,\r\n responseType: 'blob' as 'blob'\r\n }\r\n this.loader.start();\r\n this.httpClient.get(\"/content/dam/memberonboarding/wti1.pdf\", options).subscribe(resp => {\r\n let wtiForm = new Blob([resp], {type: 'application/pdf'});\r\n saveAs(wtiForm, \"WTID.pdf\");\r\n this.loader.stop();\r\n }, err => {\r\n switch (err.status) {\r\n case 404:\r\n this.errorService.openErrorPopup('No document available, Please upload document.')\r\n break;\r\n default:\r\n break;\r\n }\r\n window.scroll(0, 0);\r\n this.loader.stop();\r\n });\r\n return false;\r\n }\r\n}\r\n","\r\n
\r\n
Tax information
\r\n

Please provide your tax details as below.

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Please complete a withholding tax on interest (WTI) form if your country of residence for tax purposes is not South Africa.\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ fileName == null ? 'Completed WTI form' : (fileName.length >= 29 ? fileName.substring(0,29) + '...' : fileName) }}
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { FormArray, FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { UtilitiesService } from \"../../../services/utilities.service\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { StoreService } from \"../../../services/storeService\";\r\nimport { LoaderService } from \"../../../services/loader.service\";\r\nimport { ContentService } from \"../../../services/content.service\";\r\nimport { RoutingService } from \"../../../services/routing.service\";\r\nimport { ErrorService } from \"../../../services/error.service\";\r\nimport { countries } from \"./../../../constants/countries\";\r\nimport { Router } from \"@angular/router\";\r\nimport { messages } from \"../../../constants/warningAndErrorMessages\";\r\nimport { getErrorMessage } from \"../../../shared/common-functions\";\r\nimport { ActiveTab } from \"../../resignations/savings/savings-details/shared/enum\";\r\nimport { AuthenticationService } from \"src/app/services/authentication.service\";\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\n\r\n@Component({\r\n selector: \"app-personal-details\",\r\n templateUrl: \"./personal-details.component.html\",\r\n styleUrls: [\"./personal-details.component.scss\"],\r\n})\r\nexport class MemberPersonalDetailsComponent implements OnInit {\r\n @Input() page: any = \"confirm\";\r\n @Input() fullWithdrawal: boolean;\r\n @Input() fullTransfer: boolean;\r\n @Input() fullCash: boolean;\r\n @Input() partTransfer: boolean;\r\n @Input() activeTab: ActiveTab;\r\n @Input() showTabs: boolean = true;\r\n @Input() employee: any;\r\n @Input() memberValues: any;\r\n @Output() continue = new EventEmitter();\r\n @Output() claimsaved = new EventEmitter();\r\n\r\n @Output() next = new EventEmitter();\r\n savingsUrl: any;\r\n member: any;\r\n claimId: any = \"\";\r\n isSubmittedSuccessfully: any = \"\";\r\n responseMessage: any = \"\";\r\n email: any;\r\n countries: any;\r\n claimSuccess = false;\r\n showPopi = false;\r\n showDeclaration: Boolean = false;\r\n showBlock: boolean = false;\r\n lastContributionDate: string;\r\n employeeForm: FormGroup;\r\n titles: any;\r\n idTypes: any;\r\n genders: any;\r\n country: any;\r\n selectedIdType: number = 0;\r\n formSubmitted: boolean = false;\r\n dateOfBirth: Date;\r\n exitDate: Date;\r\n messages = messages;\r\n employeeFormInvalid: boolean = false;\r\n constructor(\r\n private utils: UtilitiesService,\r\n private httpClient: HttpClient,\r\n private loader: LoaderService,\r\n private contentService: ContentService,\r\n private routingService: RoutingService,\r\n private errorService: ErrorService,\r\n private auth: AuthenticationService,\r\n private router: Router\r\n ) {\r\n this.employeeForm = new FormGroup({\r\n fundId: new FormControl(\"\"),\r\n membershipNumber: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n employeeNumber: new FormControl(\"\"),\r\n employerName: new FormControl(\"\"),\r\n exitDate: new FormControl(\"\"),\r\n identityValue: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.minLength(13),\r\n ]),\r\n identityTypeId: new FormControl(\"\", Validators.required),\r\n employeeUserName: new FormControl(\"\"),\r\n initials: new FormControl(\"\"),\r\n firstName: new FormControl(\"\", Validators.required),\r\n surname: new FormControl(\"\", Validators.required),\r\n dateOfBirth: new FormControl(\"\", Validators.required),\r\n telephoneNumber: new FormControl(\"\", [\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n mobileNumber: new FormControl(\"\", [\r\n Validators.required,\r\n Validators.pattern(\"^([0|+[0-9]{1,5})?([1-9][0-9]{8}|[1-9][0-9]{9})$\"),\r\n ]),\r\n personalEmail: new FormControl(null, [\r\n Validators.required,\r\n Validators.pattern(\r\n \"^\\\\w+([\\\\.-]?\\\\w+)*@\\\\w+([\\\\.-]?\\\\w+)*(\\\\.\\\\w{2,4})+$\"\r\n ),\r\n ]),\r\n workEmail: new FormControl(),\r\n primaryEmail: new FormControl(\"\"),\r\n isHrEmailAddress: new FormControl(\"\"),\r\n indebtedToEmployer: new FormControl(\"\"),\r\n amountOfDeduction: new FormControl(\"\"),\r\n poBox: new FormControl(\"\"),\r\n unitNumber: new FormControl(\"\"),\r\n complex: new FormControl(\"\"),\r\n streetNumber: new FormControl(\"\"),\r\n streetOrFarmName: new FormControl(\"\"),\r\n suburbOrDistrict: new FormControl(\"\"),\r\n cityOrTown: new FormControl(\"\"),\r\n country: new FormControl(\"\"),\r\n titleId: new FormControl(\"\"),\r\n genderId: new FormControl(\"\"),\r\n hrRepresentative: new FormGroup({\r\n hrRepresentativeId: new FormControl(\"\"),\r\n userName: new FormControl(\"\"),\r\n emailAddress: new FormControl(\"\"),\r\n firstName: new FormControl(\"\"),\r\n lastName: new FormControl(\"\"),\r\n contactNumber: new FormControl(\"\"),\r\n }),\r\n membership: new FormArray([\r\n new FormGroup({\r\n employeeMembershipId: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n fundId: new FormControl(\"\"),\r\n fundName: new FormControl(\"\"),\r\n integrationSystem: new FormControl(\"\"),\r\n subscriptionNumber: new FormControl(\"\"),\r\n isHybrid: new FormControl(\"\"),\r\n modifiedBy: new FormControl(\"\"),\r\n }),\r\n ]),\r\n exit: new FormGroup({\r\n exitId: new FormControl(\"\"),\r\n employeeId: new FormControl(\"\"),\r\n kickoffDate: new FormControl(\"\"),\r\n actionId: new FormControl(\"\"),\r\n statusId: new FormControl(\"\"),\r\n opportunityId: new FormControl(\"\"),\r\n claimId: new FormControl(\"\"),\r\n }),\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.titles = JSON.parse(localStorage.getItem(\"titles\"));\r\n this.idTypes = JSON.parse(localStorage.getItem(\"identityTypes\"));\r\n this.genders = JSON.parse(localStorage.getItem(\"genders\"));\r\n this.countries = countries;\r\n if (localStorage.getItem(\"showBlock\")) {\r\n this.showBlock = true;\r\n } else {\r\n this.showBlock = false;\r\n }\r\n this.savingsUrl = this.router.url.includes(\"confirm-details.html\");\r\n if (this.savingsUrl) {\r\n this.employeeForm.addControl(\r\n \"address1\",\r\n new FormControl(null, Validators.required)\r\n );\r\n this.employeeForm.addControl(\r\n \"address2\",\r\n new FormControl(null, Validators.required)\r\n );\r\n this.employeeForm.addControl(\r\n \"address3\",\r\n new FormControl(null, Validators.required)\r\n );\r\n this.employeeForm.addControl(\r\n \"postalCode\",\r\n new FormControl(null, Validators.required)\r\n );\r\n }\r\n this.getMemberInfo();\r\n }\r\n\r\n ondropDownChange(event: any) {\r\n switch (event.target.id) {\r\n case \"title\":\r\n this.employeeForm.controls[\"titleId\"].patchValue(\r\n event.target.selectedIndex\r\n );\r\n break;\r\n case \"gender\":\r\n this.employeeForm.controls[\"genderId\"].patchValue(\r\n event.target.selectedIndex\r\n );\r\n break;\r\n case \"idType\":\r\n this.employeeForm.controls[\"identityTypeId\"].patchValue(\r\n event.target.selectedIndex\r\n );\r\n break;\r\n case \"country\":\r\n this.employeeForm.controls[\"country\"].patchValue(event.target.value);\r\n \r\n break;\r\n }\r\n }\r\n\r\n // TODO: member info call should be made by the parent component, save it in the store/service and pass this object into this component\r\n getMemberInfo() {\r\n this.dateOfBirth = new Date(this.employee.dateOfBirth);\r\n this.exitDate = new Date(this.employee.exitDate);\r\n this.defaultCountryIfNoAddress(this.employee);\r\n this.employeeForm.patchValue(this.employee);\r\n if (this.employee.identityTypeId === 1) {\r\n localStorage.setItem(\"idType\", \"1\");\r\n this.selectedIdType = 4;\r\n } else if (this.employee.identityTypeId === 2) {\r\n localStorage.setItem(\"idType\", \"2\");\r\n this.selectedIdType = 5;\r\n this.employeeForm.get(\"identityValue\")!.clearValidators();\r\n this.employeeForm.get(\"identityValue\")!.updateValueAndValidity();\r\n }\r\n }\r\n\r\n defaultCountryIfNoAddress(employee: any) {\r\n if (\r\n !this.employee.address1 &&\r\n !this.employee.address2 &&\r\n !this.employee.postalCode &&\r\n !this.employee.country\r\n ) {\r\n this.employee.country = \"ZA\";\r\n }\r\n }\r\n\r\n submit(employeeForm: any) {\r\n if (this.employeeForm.invalid) {\r\n this.employeeFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required Personal details, in the correct format.\"\r\n );\r\n } else {\r\n this.employeeFormInvalid = false;\r\n if (\r\n this.employeeForm.value &&\r\n this.employeeForm.value.personalEmail &&\r\n this.employeeForm.value.personalEmail !== \"\"\r\n ) {\r\n this.employeeForm.value.primaryEmail =\r\n this.employeeForm.value.personalEmail;\r\n }\r\n this.employee.primaryEmail = this.employeeForm.value.primaryEmail;\r\n this.employee.personalEmail = this.employeeForm.value.personalEmail;\r\n this.employee.workEmail = this.employeeForm.value.workEmail;\r\n this.loader.start();\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .post(\r\n `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.confirmDetailsUpdate}`,\r\n this.employeeForm.value,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.employee = resp[\"employee\"];\r\n this.loader.stop();\r\n this.makeClaim();\r\n this.showDeclaration = false;\r\n },\r\n (err) => {\r\n let errorMessage = getErrorMessage(err);\r\n this.errorService.openErrorPopup(\r\n \"Error while confirming details: \" + errorMessage\r\n );\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n }\r\n\r\n validateForm(employeeForm:any) {\r\n if (employeeForm.invalid) {\r\n this.formSubmitted = true;\r\n this.employeeFormInvalid = true;\r\n this.errorService.openErrorPopup(\r\n \"Please fill in all the required Personal details, in the correct format.\"\r\n );\r\n } else {\r\n this.showDeclaration = true;\r\n }\r\n }\r\n\r\n makeClaim() {\r\n // TODO: move claim model object\r\n let claimObject = {\r\n claim: {\r\n incomeTaxNumber: null,\r\n indebtedToEmployer: false,\r\n amountOfDeduction: null,\r\n employeeNumber: null,\r\n employerName: null,\r\n bulkClaimsBatchId: null,\r\n nonSaTaxpayer: false,\r\n annualTaxableSalary: 60000.0,\r\n sarsCountryCode: \"ZA\",\r\n dateLastContrib: \"2021-01-29\",\r\n continuation: false,\r\n countryOfResidence: \"ZA\",\r\n userEmail: null,\r\n membership: [\r\n {\r\n fundId: null,\r\n subscriptionNumber: null,\r\n withdrawalPaymentInstruction: {\r\n fkWithdrawalTypeID: \"Resignation\",\r\n fkWithdrawalOptionId: \"KeepYourSavingsWhereTheyAre\",\r\n cashAmount: 0,\r\n amountIsPostTax: false,\r\n transferToFundName: null,\r\n transferToPolicyRef: null,\r\n withdrawalDate: \"2021-01-29\",\r\n broker: null,\r\n },\r\n },\r\n ],\r\n member: {\r\n firstName: null,\r\n middleName: null,\r\n surname: null,\r\n maidenName: null,\r\n initials: null,\r\n dateOfBirth: null,\r\n identity: {\r\n fkOfficialIdentityTypeID: \"RSAID\",\r\n fkCountryOfIssueID: \"ZA\",\r\n identityValue: null,\r\n },\r\n },\r\n memberContactDetails: {\r\n unitNumber: null,\r\n complex: null,\r\n streetNumber: null,\r\n streetOrFarmName: null,\r\n suburbOrDistrict: null,\r\n cityOrTown: null,\r\n country: \"South Africa\",\r\n postalCode: null,\r\n useResidentialAsPostal: true,\r\n telNumber: null,\r\n mobileNumber: null,\r\n eMail: null,\r\n address1: null,\r\n address2: null,\r\n address3: null,\r\n },\r\n memberBankingDetail: null,\r\n },\r\n rbc: null,\r\n };\r\n\r\n claimObject.claim.indebtedToEmployer = this.employee.indebtedToEmployer;\r\n claimObject.claim.amountOfDeduction = this.employee.amountOfDeduction;\r\n claimObject.claim.employeeNumber = this.employee.employeeNumber;\r\n claimObject.claim.employerName = this.employee.employerName;\r\n claimObject.claim.userEmail = this.employee.personalEmail;\r\n\r\n claimObject.claim.membership[0].fundId = this.employee.fundId;\r\n claimObject.claim.membership[0].subscriptionNumber =\r\n this.employee.membership[0].subscriptionNumber;\r\n if (this.memberValues) {\r\n if (!this.memberValues.LastContributionDate) {\r\n claimObject.claim.dateLastContrib = new Date().toString();\r\n } else {\r\n claimObject.claim.dateLastContrib =\r\n this.memberValues.LastContributionDate;\r\n }\r\n } else {\r\n claimObject.claim.dateLastContrib = new Date().toString();\r\n }\r\n claimObject.claim.dateLastContrib = this.utils.convertDateShortDash(\r\n claimObject.claim.dateLastContrib\r\n );\r\n claimObject.claim.membership[0].withdrawalPaymentInstruction.withdrawalDate =\r\n this.utils.convertDateShortDash(this.employee.exitDate); \r\n\r\n claimObject.claim.member.firstName = this.employee.firstName;\r\n claimObject.claim.member.surname = this.employee.surname;\r\n claimObject.claim.member.initials = this.employee.initials;\r\n claimObject.claim.member.dateOfBirth = this.employee.dateOfBirth;\r\n claimObject.claim.member.identity.identityValue =\r\n this.employee.identityValue;\r\n\r\n claimObject.claim.memberContactDetails.address1 = this.employee.address1;\r\n claimObject.claim.memberContactDetails.address2 = this.employee.address2;\r\n claimObject.claim.memberContactDetails.address3 = this.employee.address3;\r\n claimObject.claim.memberContactDetails.postalCode =\r\n this.employee.postalCode;\r\n claimObject.claim.memberContactDetails.country = this.employee.country;\r\n claimObject.claim.memberContactDetails.telNumber =\r\n this.employee.telephoneNumber;\r\n claimObject.claim.memberContactDetails.mobileNumber =\r\n this.employee.mobileNumber;\r\n claimObject.claim.memberContactDetails.eMail = this.employee.personalEmail;\r\n claimObject.rbc = true;\r\n if (this.page !== \"confirm\") {\r\n this.continue.emit(claimObject.claim);\r\n } else {\r\n const headers = new HttpHeaders().set(\r\n \"Authorization\",\r\n this.auth.getAuthorizationHeaderValue()\r\n );\r\n const options = { headers: headers };\r\n this.httpClient\r\n .post(\r\n `${appsettings.digitalClaimsService}${appsettings.endPoints.claimWidthrawal}`,\r\n claimObject,\r\n options\r\n )\r\n .subscribe(\r\n (resp:any) => {\r\n this.isSubmittedSuccessfully = resp[\"SubmittedSuccessfully\"];\r\n this.responseMessage = resp[\"Message\"];\r\n if (this.isSubmittedSuccessfully) {\r\n this.claimId = resp[\"ClaimId\"];\r\n window.scroll(0, 0);\r\n this.claimSuccess = true;\r\n this.claimsaved.emit({\r\n id: this.claimId,\r\n status: this.claimSuccess,\r\n });\r\n } else {\r\n this.errorService.openErrorPopup(\r\n this.responseMessage\r\n ? this.responseMessage\r\n : \"An error occurred while confirming the member details.\"\r\n );\r\n }\r\n this.loader.stop();\r\n },\r\n (err) => {\r\n this.errorService.openErrorPopup(\r\n \"An error occurred while confirming the member details.\"\r\n );\r\n window.scroll(0, 0);\r\n this.loader.stop();\r\n }\r\n );\r\n }\r\n }\r\n\r\n closePopUp() {\r\n this.claimSuccess = false;\r\n this.routingService.savingsSummary();\r\n }\r\n\r\n toggle() {\r\n this.showBlock = !this.showBlock;\r\n localStorage.removeItem(\"showBlock\");\r\n }\r\n logout() {\r\n //this.authService.logout(false);\r\n }\r\n dobChanged(event: Date) {\r\n this.employeeForm.controls[\"dateOfBirth\"].patchValue(\r\n `${event.getFullYear()}${\"-\"}${\r\n event.getMonth() + 1\r\n }${\"-\"}${event.getDate()}${\"T00:00:00\"}`\r\n );\r\n }\r\n profileLandingPage() {\r\n this.routingService.profileLandingPage();\r\n }\r\n\r\n continueTab(data: string) {\r\n if (this.employeeForm.invalid) {\r\n this.formSubmitted = true;\r\n this.errorService.openErrorPopup(\"Please complete required fields.\");\r\n } else {\r\n this.makeClaim();\r\n }\r\n }\r\n\r\n nextTab(tab: string) {\r\n if (this.employeeForm.invalid) {\r\n this.formSubmitted = true;\r\n this.errorService.openErrorPopup(\"Please complete required fields.\");\r\n } else {\r\n this.next.emit(tab);\r\n }\r\n }\r\n}\r\n ","\r\n\r\n
\r\n
\r\n \r\n
Identification details
\r\n
Your employer\r\n provided the details below. If you need to change any of these details, please contact your HR representative.\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
Contact details
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n {{ messages.EMAIL_FORMAT }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n {{ messages.PHONE_FORMAT }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
Postal address
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {{ messages.MANDATORY_MESSAGE }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
Your beneficiaries
\r\n

\r\n Keeping your beneficiary nominations up to date means that those who are dependent on you can receive\r\n financial support at a time when they'll need it most.\r\n

\r\n

\r\n Go to the\r\n Alexforbes Online portal to\r\n update your beneficiaries.\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
continue
\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
Protecting your information
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Alexforbes will protect your personal information and only use it for the intended purpose.\r\n
\r\n
\r\n
    \r\n
  • We will use your personal information to act on your request or for any other valid or legal purpose.
  • \r\n
  • We will share your personal information with third parties:
  • \r\n
      \r\n
    • so that we can provide products and services to you
    • \r\n
    • if a law requires us to share this information
    • \r\n
    \r\n
  • We will keep your personal information
  • \r\n
      \r\n
    • for as long as we or the fund needs it to act on your instruction
    • \r\n
    • if a law requires us to share this information
    • \r\n
    \r\n
  • Once we are no longer allowed to keep your personal information, we will decide if it needs to be\r\n
    destroyed, deleted or de-identified (no longer linked to you).\r\n
  • \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
Complete your claim by agreeing to the following declaration:
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • You understand your options, including the tax implications.
  • \r\n
  • If there is any loss suffered as a result of incorrect information given by yourself, neither Alexforbes\r\n nor the fund are responsible for the losses.
  • \r\n
  • You made your own decision or were assisted by an adviser.
  • \r\n
  • When all your information has been received, we will process your decision according to the fund rules and the\r\n withdrawal process.
  • \r\n
  • If you are in debt to your employer, your savings will be used to pay the debt in terms of section 37D of the\r\n Pension Funds Act.
  • \r\n
  • Once you have chosen an option and SARS has issued a directive, the directive cannot be cancelled.
  • \r\n
  • You acknowledge that Retirement Benefit Counselling has been offered to you throughout this exit journey. If\r\n you chose not to get in touch with us we accept that you have declined this offering.
  • \r\n
  • You acknowledge that this claim form will be sent to your HR representative for record purposes.
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n
\r\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Constants } from 'src/app/constants/constants';\r\n\r\n@Component({\r\n selector: 'app-popi',\r\n templateUrl: './popi.component.html',\r\n styleUrls: ['./popi.component.scss']\r\n})\r\nexport class PopiComponent implements OnInit {\r\n\r\n @Output() open: EventEmitter = new EventEmitter();\r\n popIaDisclosurePath: string = \"\";\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.popIaDisclosurePath = Constants.popia_clause_form;\r\n }\r\n\r\n showPopi(){\r\n window.scroll(0,0);\r\n this.open.emit('showPopiBlock');\r\n }\r\n\r\n}\r\n","import {Component, OnInit, Input, EventEmitter, Output} from '@angular/core';\r\nimport { SavingCalculations } from '../../resignations/models/savings-calculations.model';\r\nimport { StoreService } from './../../../../app/services/storeService';\r\nimport { ErrorService } from './../../../../app/services/error.service';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport appsettings from \"../../../../assets/appsettings.json\"\r\nimport { LoaderService } from './../../../../app/services/loader.service';\r\n\r\n@Component({\r\n selector: 'app-savings-calculations',\r\n templateUrl: './savings-calculations.component.html',\r\n styleUrls: ['./savings-calculations.component.scss']\r\n})\r\nexport class SavingsCalculationsComponent implements OnInit {\r\n\r\n savingsCalculations: SavingCalculations;\r\n @Input() memberValues: any;\r\n @Input() page: string;\r\n @Input() retirementProjectionValues: any;\r\n @Input() memberDetails: any;\r\n existingSavingsValue: number;\r\n cachedValues: any = null;\r\n @Output() showDisclaimer = new EventEmitter();\r\n @Output() cacheUpdated = new EventEmitter();\r\n @Output() cacheReset = new EventEmitter();\r\n @Output() cacheInitialized = new EventEmitter();\r\n\r\n constructor( private storeService: StoreService, private errorService: ErrorService,\r\n private httpClient: HttpClient, private loader: LoaderService) {\r\n this.savingsCalculations = new SavingCalculations();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.memberValues && this.retirementProjectionValues){\r\n this.cachedValues = this.retirementProjectionValues;\r\n }else{\r\n this.getRetirementProjectionValues();\r\n }\r\n }\r\n\r\n calculateAge(birthday: any) {\r\n var ageDifMs = Date.now() - birthday.getTime();\r\n var ageDate = new Date(ageDifMs);\r\n return Math.abs(ageDate.getUTCFullYear() - 1970);\r\n }\r\n\r\n getRetirementProjectionValues(data: number = 0){\r\n this.savingsCalculations.existingSavings = data;\r\n this.createSavingsCalculationsData(this.savingsCalculations).subscribe((data) =>{\r\n this.retirementProjectionValues = data;\r\n if(this.cachedValues == null) {\r\n this.cachedValues = data;\r\n this.cacheInitialized.emit(data)\r\n }\r\n },\r\n (error) =>{\r\n this.errorService.openErrorPopup('An error occurred while getting the Retirement projection.' );\r\n })\r\n }\r\n\r\n createSavingsCalculationsData(data: SavingCalculations): Observable{\r\n const token = this.storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization',`Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = {headers: headers};\r\n this.savingsCalculations.currentAge = this.calculateAge(new Date(this.memberDetails.dateOfBirth));\r\n switch (this.memberDetails.genderId) {\r\n case 0:\r\n this.savingsCalculations.gender = \"* Select *\";\r\n break;\r\n case 1:\r\n this.savingsCalculations.gender = \"Male\";\r\n break;\r\n case 2:\r\n this.savingsCalculations.gender = \"Female\";\r\n break;\r\n case 3:\r\n this.savingsCalculations.gender = \"Other\";\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if(this.savingsCalculations.existingSavings > 0) {\r\n this.savingsCalculations.currentFundCredit = this.memberValues.FundCredit + this.savingsCalculations.existingSavings;\r\n }else {\r\n this.savingsCalculations.currentFundCredit = this.memberValues.FundCredit;\r\n }\r\n this.savingsCalculations.contributionPercentage = this.memberValues.RetirementContributionRate/100;\r\n this.savingsCalculations.salary = this.memberValues.AnnualPensionableSalary/12;\r\n const url = `${appsettings.digitalHRAssisServicesUrl}${appsettings.endPoints.retirementProjection}`;\r\n return this.httpClient.post(url, data, options);\r\n }\r\n\r\n removeExistingSavings(){\r\n this.retirementProjectionValues = this.cachedValues;\r\n this.cacheReset.emit();\r\n }\r\n\r\n notifyParent($event: any) {\r\n this.showDisclaimer.emit()\r\n }\r\n}\r\n","\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SavingsMemberValuesComponent } from './savings-member-values/savings-member-values.component';\r\nimport { SavingsCalculationsComponent } from './savings-calculations.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\n\r\n@NgModule({\r\n declarations: [SavingsMemberValuesComponent, SavingsCalculationsComponent],\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n SavingsMemberValuesComponent,\r\n SavingsCalculationsComponent\r\n ]\r\n})\r\nexport class SavingsCalculationsModule { }\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { SavingCalculations } from '../../../../../app/components/resignations/models/savings-calculations.model';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\n@Component({\r\n selector: 'app-savings-member-values',\r\n templateUrl: './savings-member-values.component.html',\r\n styleUrls: ['./savings-member-values.component.scss']\r\n})\r\nexport class SavingsMemberValuesComponent implements OnInit {\r\n\r\n @Input() memberValues: any;\r\n @Input() page: string;\r\n @Input() retirementProjectionValues: any;\r\n showUpdateProjection: boolean = false;\r\n showAddOtherSavings: boolean = true;\r\n @Output() buttonClicked = new EventEmitter();\r\n @Input() savingsCalculation: SavingCalculations;\r\n existingSavingsForm: FormGroup;\r\n @Output() remove = new EventEmitter();\r\n @Output() showDisclaimer = new EventEmitter();\r\n\r\n showMoreDetails : boolean = false;\r\n lastContribution : any;\r\n memberContributions : any;\r\n employerContributions : any;\r\n fundCredit : any;\r\n montlyIncomeProjection: any;\r\n toggleMoreDetails(){\r\n if(this.showMoreDetails){\r\n this.showMoreDetails = false;\r\n }else{\r\n this.showMoreDetails = true;\r\n }\r\n }\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.onCreateExistingSavingsForm();\r\n this.lastContribution = this.removeDecimals(this.memberValues.LastContribution);\r\n this.memberContributions = this.removeDecimals(this.memberValues.MemberContributions);\r\n this.employerContributions = this.removeDecimals(this.memberValues.EmployerContributions);\r\n this.fundCredit = this.removeDecimals(this.memberValues.FundCredit);\r\n this.montlyIncomeProjection = this.removeDecimals(this.retirementProjectionValues.montlyIncomeProjection);\r\n }\r\n\r\n onAddOtherSavings(){\r\n this.showUpdateProjection = true;\r\n this.showAddOtherSavings= false;\r\n }\r\n\r\n onClick($event: any){\r\n const savingsValue = this.existingSavingsForm.get('existingSavings')!.value;\r\n this.buttonClicked.emit(savingsValue);\r\n }\r\n\r\n removeDecimals(amount: number){\r\n return Math.round(amount);\r\n }\r\n\r\n onCreateExistingSavingsForm() {\r\n this.existingSavingsForm = new FormGroup({\r\n existingSavings: new FormControl(null, [ Validators.required, Validators.pattern(\"^$|^[0-9]*$\")])\r\n });\r\n }\r\n\r\n OnRemove(){\r\n this.remove.emit();\r\n this.showAddOtherSavings = true;\r\n this.showUpdateProjection = false;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
Your last contribution was
\r\n
You've been saving about
\r\n
\r\n R{{lastContribution | number:'1.0-0':'fr-FR'}} \r\n
\r\n
\r\n
\r\n
You've been saving towards
your retirement
\r\n
towards
your retirement
\r\n
for the past {{memberValues.InvestmentPeriod}}
\r\n
\r\n
\r\n
giving you a current
\r\n
total of \r\n R{{fundCredit | number:'':'fr-FR'}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
Member contributions R{{memberContributions | number:'1.0-0':'fr-FR'}}
\r\n
Employer contributions R{{employerContributions | number:'1.0-0':'fr-FR'}}
\r\n
\r\n
\r\n\r\n
\r\n
What your total savings mean for your retirement:
\r\n
\r\n If you keep saving the way you are, you would have R{{retirementProjectionValues.montlyIncomeProjection | number:'1.0-0':'fr-FR'}} a month to live on for retirement.\r\n
\r\n \r\n
\r\n R{{ retirementProjectionValues.montlyIncomeProjection | number:'1.0-0':'fr-FR'}} monthly pension\r\n \r\n
\r\n
\r\n
You can add in existing retirement savings if you have,
\r\n
and if you would like to see a more accurate projection
\r\n \r\n
\r\n\r\n
\r\n
Add in other retirement savings you have
\r\n
How much do you estimate you have in other retirement savings?
\r\n
\r\n
\r\n
\r\n \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, OnDestroy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-scrolling-banner',\r\n templateUrl: './scrolling-banner.component.html',\r\n styleUrls: ['./scrolling-banner.component.scss']\r\n})\r\nexport class ScrollingBannerComponent implements OnInit,OnDestroy {\r\n\r\n\r\n bannerStatus: number = 1;\r\n bannerTimer: number = 10000;\r\n startShowBanners: any;\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n ngOnInit() {\r\n this.showBanners();\r\n\r\n this.startShowBanners = setInterval( () => {\r\n this.showBanners();\r\n }, this.bannerTimer);\r\n }\r\n\r\n clearInterval(){\r\n clearInterval(this.startShowBanners);\r\n }\r\n\r\n setInterval(){\r\n this.startShowBanners = setInterval( () => {\r\n this.showBanners();\r\n }, this.bannerTimer);\r\n\r\n }\r\n\r\n goNext(){\r\n this.showBanners();\r\n }\r\n\r\n goPrev(){\r\n if (this.bannerStatus === 1) {\r\n this.bannerStatus = 2;\r\n } else {\r\n if (this.bannerStatus === 2) {\r\n this.bannerStatus = 3;\r\n } else {\r\n if (this.bannerStatus === 3) {\r\n this.bannerStatus = 1;\r\n }\r\n }\r\n }\r\n this.hideBanners();\r\n }\r\n\r\n showBanners(){\r\n\r\n if (this.bannerStatus === 1) {\r\n if (document.getElementById('imgban3') && document.getElementById('imgban1') && document.getElementById('imgban2')) {\r\n document.getElementById('imgban2')!.style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban1')!.style.right = '0px';\r\n document.getElementById('imgban1')!.style.zIndex = '1000';\r\n document.getElementById('imgban2')!.style.right = '-691px';\r\n document.getElementById('imgban2')!.style.zIndex = '1500';\r\n document.getElementById('imgban3')!.style.right = '691px';2\r\n document.getElementById('imgban3')!.style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban2')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 2;\r\n }\r\n } else {\r\n if (this.bannerStatus === 2) {\r\n if (document.getElementById('imgban3') && document.getElementById('imgban1') && document.getElementById('imgban2')) {\r\n document.getElementById('imgban3')!.style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban2')!.style.right = '0px';\r\n document.getElementById('imgban2')!.style.zIndex = '1000';\r\n document.getElementById('imgban3')!.style.right = '-691px';\r\n document.getElementById('imgban3')!.style.zIndex = '1500';\r\n document.getElementById('imgban1')!.style.right = '691px';\r\n document.getElementById('imgban1')!.style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban3')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 3;\r\n }\r\n } else {\r\n if (this.bannerStatus === 3) {\r\n if (document.getElementById('imgban3') && document.getElementById('imgban1') && document.getElementById('imgban2')) {\r\n document.getElementById('imgban1')!.style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban3')!.style.right = '0px';\r\n document.getElementById('imgban3')!.style.zIndex = '1000';\r\n document.getElementById('imgban1')!.style.right = '-691px';\r\n document.getElementById('imgban1')!.style.zIndex = '1500';\r\n document.getElementById('imgban2')!.style.right = '691px';\r\n document.getElementById('imgban2')!.style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban1')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 1;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n hideBanners(){\r\n\r\n if (this.bannerStatus === 1) {\r\n //document.getElementById('imgban2').style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban1')!.style.right = '0px';\r\n document.getElementById('imgban1')!.style.zIndex = '1000';\r\n document.getElementById('imgban2')!.style.right = '-691px';\r\n document.getElementById('imgban2')!.style.zIndex = '1500';\r\n // document.getElementById('imgban3').style.right = '691px';\r\n // document.getElementById('imgban3').style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban2')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 2;\r\n } else {\r\n if (this.bannerStatus === 2) {\r\n //document.getElementById('imgban3').style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban3')!.style.right = '-691px';\r\n document.getElementById('imgban3')!.style.zIndex = '1500';\r\n document.getElementById('imgban2')!.style.right = '0px';\r\n document.getElementById('imgban2')!.style.zIndex = '1000';\r\n\r\n\r\n // document.getElementById('imgban1').style.right = '691px';\r\n // document.getElementById('imgban1').style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban3')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 3;\r\n } else {\r\n if (this.bannerStatus === 3) {\r\n //document.getElementById('imgban1').style.opacity = '0';\r\n setTimeout(function() {\r\n document.getElementById('imgban3')!.style.right = '0px';\r\n document.getElementById('imgban3')!.style.zIndex = '1000';\r\n document.getElementById('imgban1')!.style.right = '-691px';\r\n document.getElementById('imgban1')!.style.zIndex = '1500';\r\n\r\n\r\n // document.getElementById('imgban2').style.right = '691px';\r\n // document.getElementById('imgban2').style.zIndex = '500';\r\n\r\n }, 500);\r\n setTimeout(function() {\r\n document.getElementById('imgban1')!.style.opacity = '1';\r\n }, 1000);\r\n this.bannerStatus = 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(){\r\n this.clearInterval();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n Securing your financial future\r\n
\r\n
\r\n You are taking a great step towards a healthy financial future by keeping your total retirement savings invested.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n The lowest fees available\r\n
\r\n
\r\n Alexforbes will still give you the low fees usually reserved for companies, even though you have now left the company.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Minimal effort for you\r\n
\r\n
\r\n Keeping your savings where they are is the quickest and easiest. All you need to do is update your details so that we can keep in touch with you about your savings.\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputswitchComponent } from './app-inputswitch/app-inputswitch.component';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { DisclaimerPopUpComponent } from './disclaimer-popup/disclaimer-popup.component';\r\nimport { ConnectAdviceComponent } from './connect-advice/connect-advice.component';\r\n\r\n@NgModule({\r\n declarations: [InputswitchComponent,\r\n DisclaimerPopUpComponent,\r\n ConnectAdviceComponent],\r\n imports: [\r\n InputSwitchModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule\r\n ],\r\n exports: [\r\n InputswitchComponent,\r\n DisclaimerPopUpComponent,\r\n ConnectAdviceComponent\r\n ]\r\n})\r\nexport class SharedUiModule { }\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-wizard-step',\r\n templateUrl: './wizard-step.component.html',\r\n styleUrls: ['./wizard-step.component.scss']\r\n})\r\nexport class WizardStepComponent implements OnInit {\r\n @Input() title: string;\r\n @Input('initialStep') currentStep: number = 0;\r\n @Input() steps: number;\r\n @Input() subtext: string;\r\n @Output() previousStepClicked = new EventEmitter();\r\n @Output() wizardClosed = new EventEmitter();\r\n @Output() nextStepClicked = new EventEmitter();\r\n @Input() showBackground = false;\r\n @Input() showNav: boolean;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n goToPreviousStep() {\r\n this.currentStep--;\r\n this.previousStepClicked.emit(this.currentStep);\r\n }\r\n\r\n goToNextStep() {\r\n this.currentStep++;\r\n if(this.currentStep > this.steps){\r\n this.currentStep = this.steps;\r\n this.nextStepClicked.emit(\"done\");\r\n }\r\n this.nextStepClicked.emit(this.currentStep);\r\n }\r\n\r\n close(){\r\n this.wizardClosed.emit('wizard-step-closed')\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
{{currentStep}} of {{steps}} {{subtext}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Prev\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n Next\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","export const assumptions = {\r\n RetirementAge: 65,\r\n SpouseAgeDifference: -4,\r\n Reversion: 0.75,\r\n Inflation: 0.055,\r\n LongBondYield: 0.0841,\r\n LongInflationYield: 0.0613,\r\n ProfitMargin: 0.1,\r\n RAAllowance: 3500,\r\n MinimumTaxableIncome: 350000,\r\n MinimumPercentageTaxableIncome: 0.275,\r\n UIF: {\r\n contribution: 0.01,\r\n max: 178464,\r\n isMonthly: false\r\n },\r\n MedicalAidCreditTaxMember: 310,\r\n MedicalAidTaxCreditFirstDependent: 310,\r\n MedicalAidTaxCreditAdditionalDependent: 209\r\n};\r\n","export const banks = [\r\n { id: 0,\r\n bankName: \"\",\r\n defaultBranchCode: \"\",\r\n isActive: false\r\n },\r\n {\r\n id: 1,\r\n bankName: \"Absa Bank\",\r\n defaultBranchCode: \"632005\",\r\n isActive: true,\r\n },\r\n {\r\n id: 2,\r\n bankName: \"African Bank\",\r\n defaultBranchCode: \"430000\",\r\n isActive: true,\r\n },\r\n {\r\n id: 3,\r\n bankName: \"Bank of Athens\",\r\n defaultBranchCode: \"410506\",\r\n isActive: true,\r\n },\r\n {\r\n id: 4,\r\n bankName: \"Bidvest Bank\",\r\n defaultBranchCode: \"462005\",\r\n isActive: true,\r\n },\r\n {\r\n id: 5,\r\n bankName: \"Capitec Bank\",\r\n defaultBranchCode: \"470010\",\r\n isActive: true,\r\n },\r\n {\r\n id: 6,\r\n bankName: \"Discovery Bank\",\r\n defaultBranchCode: \"679000\",\r\n isActive: true,\r\n },\r\n {\r\n id: 7,\r\n bankName: \"First National Bank\",\r\n defaultBranchCode: \"250655\",\r\n isActive: true,\r\n },\r\n {\r\n id: 8,\r\n bankName: \"Grindrod Bank\",\r\n defaultBranchCode: \"584000\",\r\n isActive: true,\r\n },\r\n {\r\n id: 9,\r\n bankName: \"Investec\",\r\n defaultBranchCode: \"580105\",\r\n isActive: true,\r\n },\r\n {\r\n id: 10,\r\n bankName: \"Nedbank\",\r\n defaultBranchCode: \"198765\",\r\n isActive: true,\r\n },\r\n {\r\n id: 11,\r\n bankName: \"SA Post Bank\",\r\n defaultBranchCode: \"460005\",\r\n isActive: true,\r\n },\r\n {\r\n id: 12,\r\n bankName: \"Sasfin Bank\",\r\n defaultBranchCode: \"683000\",\r\n isActive: true,\r\n },\r\n {\r\n id: 13,\r\n bankName: \"Standard Bank\",\r\n defaultBranchCode: \"051001\",\r\n isActive: true,\r\n },\r\n {\r\n id: 15,\r\n bankName: \"Tyme Bank\",\r\n defaultBranchCode: \"678910\",\r\n isActive: true,\r\n },\r\n {\r\n id: 14,\r\n bankName: \"UBank\",\r\n defaultBranchCode: \"431010\",\r\n isActive: true,\r\n },\r\n {\r\n id: 16,\r\n bankName: \"Albaraka Bank\",\r\n defaultBranchCode: \"800000\",\r\n isActive: true,\r\n },\r\n];\r\n","export const benefitRates = {\r\n providentGLA : 0.00980,\r\n spouseCoverRate: 0.00036,\r\n spouseCoverMax: 55,\r\n phiRate: 0.01150,\r\n statedBenefitRate: 0.00222,\r\n dreadDiseaseProvidentFundRate: 0.00200,\r\n funeralCost: 15\r\n};\r\n","import appsettings from \"../../assets/appsettings.json\"\r\n\r\nexport class Constants {\r\n public static apiRoot = `${appsettings.serverUrl}/api`;\r\n public static stsAuthority = appsettings.accessTokenApiUrl;\r\n public static clientId = appsettings.clientId;\r\n public static clientRoot = appsettings.clientRoot;\r\n public static clientScope = appsettings.clientScope;\r\n public static redirect_uri = `${appsettings.clientRoot}${appsettings.redirect_uri}`;\r\n public static post_logout_redirect_uri = `${appsettings.clientRoot}${appsettings.post_logout_redirect_uri}`;\r\n public static silent_redirect_uri = `${appsettings.clientRoot}${appsettings.silent_redirect_uri}`;\r\n public static popia_clause_form =\r\n \"https://www.alexanderforbes.co.za/popia-clause-forms\";\r\n public static infoIconDamPath =\r\n \"/assets/icons/info-icon.png\";\r\n}","export const countries = [\r\n {\r\n pkCountryOfIssueID: 0,\r\n Code: \"\",\r\n Name: \"\",\r\n },\r\n {\r\n pkCountryOfIssueID: 206,\r\n Code: \"ZA\",\r\n Name: \"South Africa\",\r\n },\r\n {\r\n pkCountryOfIssueID: 1,\r\n Code: \"AF\",\r\n Name: \"Afghanistan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 2,\r\n Code: \"AX\",\r\n Name: \"Åland Islands\",\r\n },\r\n {\r\n pkCountryOfIssueID: 3,\r\n Code: \"AL\",\r\n Name: \"Albania\",\r\n },\r\n {\r\n pkCountryOfIssueID: 4,\r\n Code: \"DZ\",\r\n Name: \"Algeria\",\r\n },\r\n {\r\n pkCountryOfIssueID: 5,\r\n Code: \"AS\",\r\n Name: \"American Samoa\",\r\n },\r\n {\r\n pkCountryOfIssueID: 6,\r\n Code: \"AD\",\r\n Name: \"Andorra\",\r\n },\r\n {\r\n pkCountryOfIssueID: 7,\r\n Code: \"AO\",\r\n Name: \"Angola\",\r\n },\r\n {\r\n pkCountryOfIssueID: 8,\r\n Code: \"AI\",\r\n Name: \"Anguilla\",\r\n },\r\n {\r\n pkCountryOfIssueID: 9,\r\n Code: \"AQ\",\r\n Name: \"Antarctica\",\r\n },\r\n {\r\n pkCountryOfIssueID: 10,\r\n Code: \"AG\",\r\n Name: \"Antigua and Barbuda\",\r\n },\r\n {\r\n pkCountryOfIssueID: 11,\r\n Code: \"AR\",\r\n Name: \"Argentina\",\r\n },\r\n {\r\n pkCountryOfIssueID: 12,\r\n Code: \"AM\",\r\n Name: \"Armenia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 13,\r\n Code: \"AW\",\r\n Name: \"Aruba\",\r\n },\r\n {\r\n pkCountryOfIssueID: 14,\r\n Code: \"AU\",\r\n Name: \"Australia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 15,\r\n Code: \"AT\",\r\n Name: \"Austria\",\r\n },\r\n {\r\n pkCountryOfIssueID: 16,\r\n Code: \"AZ\",\r\n Name: \"Azerbaijan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 17,\r\n Code: \"BS\",\r\n Name: \"Bahamas (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 18,\r\n Code: \"BH\",\r\n Name: \"Bahrain\",\r\n },\r\n {\r\n pkCountryOfIssueID: 19,\r\n Code: \"BD\",\r\n Name: \"Bangladesh\",\r\n },\r\n {\r\n pkCountryOfIssueID: 20,\r\n Code: \"BB\",\r\n Name: \"Barbados\",\r\n },\r\n {\r\n pkCountryOfIssueID: 21,\r\n Code: \"BY\",\r\n Name: \"Belarus\",\r\n },\r\n {\r\n pkCountryOfIssueID: 22,\r\n Code: \"BE\",\r\n Name: \"Belgium\",\r\n },\r\n {\r\n pkCountryOfIssueID: 23,\r\n Code: \"BZ\",\r\n Name: \"Belize\",\r\n },\r\n {\r\n pkCountryOfIssueID: 24,\r\n Code: \"BJ\",\r\n Name: \"Benin\",\r\n },\r\n {\r\n pkCountryOfIssueID: 25,\r\n Code: \"BM\",\r\n Name: \"Bermuda\",\r\n },\r\n {\r\n pkCountryOfIssueID: 26,\r\n Code: \"BT\",\r\n Name: \"Bhutan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 27,\r\n Code: \"BO\",\r\n Name: \"Bolivia, Plurinational State of\",\r\n },\r\n {\r\n pkCountryOfIssueID: 28,\r\n Code: \"BQ\",\r\n Name: \"Bonaire, Sint Eustatius and Saba\",\r\n },\r\n {\r\n pkCountryOfIssueID: 29,\r\n Code: \"BA\",\r\n Name: \"Bosnia and Herzegovina\",\r\n },\r\n {\r\n pkCountryOfIssueID: 30,\r\n Code: \"BW\",\r\n Name: \"Botswana\",\r\n },\r\n {\r\n pkCountryOfIssueID: 31,\r\n Code: \"BV\",\r\n Name: \"Bouvet Island\",\r\n },\r\n {\r\n pkCountryOfIssueID: 32,\r\n Code: \"BR\",\r\n Name: \"Brazil\",\r\n },\r\n {\r\n pkCountryOfIssueID: 33,\r\n Code: \"IO\",\r\n Name: \"British Indian Ocean Territory (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 34,\r\n Code: \"BN\",\r\n Name: \"Brunei Darussalam\",\r\n },\r\n {\r\n pkCountryOfIssueID: 35,\r\n Code: \"BG\",\r\n Name: \"Bulgaria\",\r\n },\r\n {\r\n pkCountryOfIssueID: 36,\r\n Code: \"BF\",\r\n Name: \"Burkina Faso\",\r\n },\r\n {\r\n pkCountryOfIssueID: 37,\r\n Code: \"BI\",\r\n Name: \"Burundi\",\r\n },\r\n {\r\n pkCountryOfIssueID: 38,\r\n Code: \"CV\",\r\n Name: \"Cabo Verde\",\r\n },\r\n {\r\n pkCountryOfIssueID: 39,\r\n Code: \"KH\",\r\n Name: \"Cambodia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 40,\r\n Code: \"CM\",\r\n Name: \"Cameroon\",\r\n },\r\n {\r\n pkCountryOfIssueID: 41,\r\n Code: \"CA\",\r\n Name: \"Canada\",\r\n },\r\n {\r\n pkCountryOfIssueID: 42,\r\n Code: \"KY\",\r\n Name: \"Cayman Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 43,\r\n Code: \"CF\",\r\n Name: \"Central African Republic (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 44,\r\n Code: \"TD\",\r\n Name: \"Chad\",\r\n },\r\n {\r\n pkCountryOfIssueID: 45,\r\n Code: \"CL\",\r\n Name: \"Chile\",\r\n },\r\n {\r\n pkCountryOfIssueID: 46,\r\n Code: \"CN\",\r\n Name: \"China\",\r\n },\r\n {\r\n pkCountryOfIssueID: 47,\r\n Code: \"CX\",\r\n Name: \"Christmas Island\",\r\n },\r\n {\r\n pkCountryOfIssueID: 48,\r\n Code: \"CC\",\r\n Name: \"Cocos (Keeling) Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 49,\r\n Code: \"CO\",\r\n Name: \"Colombia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 50,\r\n Code: \"KM\",\r\n Name: \"Comoros\",\r\n },\r\n {\r\n pkCountryOfIssueID: 51,\r\n Code: \"CG\",\r\n Name: \"Congo\",\r\n },\r\n {\r\n pkCountryOfIssueID: 52,\r\n Code: \"CD\",\r\n Name: \"Congo (the Democratic Republic of the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 53,\r\n Code: \"CK\",\r\n Name: \"Cook Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 54,\r\n Code: \"CR\",\r\n Name: \"Costa Rica\",\r\n },\r\n {\r\n pkCountryOfIssueID: 55,\r\n Code: \"CI\",\r\n Name: \"Côte d'Ivoire\",\r\n },\r\n {\r\n pkCountryOfIssueID: 56,\r\n Code: \"HR\",\r\n Name: \"Croatia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 57,\r\n Code: \"CU\",\r\n Name: \"Cuba\",\r\n },\r\n {\r\n pkCountryOfIssueID: 58,\r\n Code: \"CW\",\r\n Name: \"Curaçao\",\r\n },\r\n {\r\n pkCountryOfIssueID: 59,\r\n Code: \"CY\",\r\n Name: \"Cyprus\",\r\n },\r\n {\r\n pkCountryOfIssueID: 60,\r\n Code: \"CZ\",\r\n Name: \"Czech Republic (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 61,\r\n Code: \"DK\",\r\n Name: \"Denmark\",\r\n },\r\n {\r\n pkCountryOfIssueID: 62,\r\n Code: \"DJ\",\r\n Name: \"Djibouti\",\r\n },\r\n {\r\n pkCountryOfIssueID: 63,\r\n Code: \"DM\",\r\n Name: \"Dominica\",\r\n },\r\n {\r\n pkCountryOfIssueID: 64,\r\n Code: \"DO\",\r\n Name: \"Dominican Republic (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 65,\r\n Code: \"EC\",\r\n Name: \"Ecuador\",\r\n },\r\n {\r\n pkCountryOfIssueID: 66,\r\n Code: \"EG\",\r\n Name: \"Egypt\",\r\n },\r\n {\r\n pkCountryOfIssueID: 67,\r\n Code: \"SV\",\r\n Name: \"El Salvador\",\r\n },\r\n {\r\n pkCountryOfIssueID: 68,\r\n Code: \"GQ\",\r\n Name: \"Equatorial Guinea\",\r\n },\r\n {\r\n pkCountryOfIssueID: 69,\r\n Code: \"ER\",\r\n Name: \"Eritrea\",\r\n },\r\n {\r\n pkCountryOfIssueID: 70,\r\n Code: \"EE\",\r\n Name: \"Estonia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 71,\r\n Code: \"ET\",\r\n Name: \"Ethiopia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 72,\r\n Code: \"FK\",\r\n Name: \"Falkland Islands (the) [Malvinas]\",\r\n },\r\n {\r\n pkCountryOfIssueID: 73,\r\n Code: \"FO\",\r\n Name: \"Faroe Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 74,\r\n Code: \"FJ\",\r\n Name: \"Fiji\",\r\n },\r\n {\r\n pkCountryOfIssueID: 75,\r\n Code: \"FI\",\r\n Name: \"Finland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 76,\r\n Code: \"FR\",\r\n Name: \"France\",\r\n },\r\n {\r\n pkCountryOfIssueID: 77,\r\n Code: \"GF\",\r\n Name: \"French Guiana\",\r\n },\r\n {\r\n pkCountryOfIssueID: 78,\r\n Code: \"PF\",\r\n Name: \"French Polynesia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 79,\r\n Code: \"TF\",\r\n Name: \"French Southern Territories (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 80,\r\n Code: \"GA\",\r\n Name: \"Gabon\",\r\n },\r\n {\r\n pkCountryOfIssueID: 81,\r\n Code: \"GM\",\r\n Name: \"Gambia (The)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 82,\r\n Code: \"GE\",\r\n Name: \"Georgia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 83,\r\n Code: \"DE\",\r\n Name: \"Germany\",\r\n },\r\n {\r\n pkCountryOfIssueID: 84,\r\n Code: \"GH\",\r\n Name: \"Ghana\",\r\n },\r\n {\r\n pkCountryOfIssueID: 85,\r\n Code: \"GI\",\r\n Name: \"Gibraltar\",\r\n },\r\n {\r\n pkCountryOfIssueID: 86,\r\n Code: \"GR\",\r\n Name: \"Greece\",\r\n },\r\n {\r\n pkCountryOfIssueID: 87,\r\n Code: \"GL\",\r\n Name: \"Greenland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 88,\r\n Code: \"GD\",\r\n Name: \"Grenada\",\r\n },\r\n {\r\n pkCountryOfIssueID: 89,\r\n Code: \"GP\",\r\n Name: \"Guadeloupe\",\r\n },\r\n {\r\n pkCountryOfIssueID: 90,\r\n Code: \"GU\",\r\n Name: \"Guam\",\r\n },\r\n {\r\n pkCountryOfIssueID: 91,\r\n Code: \"GT\",\r\n Name: \"Guatemala\",\r\n },\r\n {\r\n pkCountryOfIssueID: 92,\r\n Code: \"GG\",\r\n Name: \"Guernsey\",\r\n },\r\n {\r\n pkCountryOfIssueID: 93,\r\n Code: \"GN\",\r\n Name: \"Guinea\",\r\n },\r\n {\r\n pkCountryOfIssueID: 94,\r\n Code: \"GW\",\r\n Name: \"Guinea-Bissau\",\r\n },\r\n {\r\n pkCountryOfIssueID: 95,\r\n Code: \"GY\",\r\n Name: \"Guyana\",\r\n },\r\n {\r\n pkCountryOfIssueID: 96,\r\n Code: \"HT\",\r\n Name: \"Haiti\",\r\n },\r\n {\r\n pkCountryOfIssueID: 97,\r\n Code: \"HM\",\r\n Name: \"Heard Island and McDonald Islands\",\r\n },\r\n {\r\n pkCountryOfIssueID: 98,\r\n Code: \"VA\",\r\n Name: \"Holy See (the) [Vatican City State]\",\r\n },\r\n {\r\n pkCountryOfIssueID: 99,\r\n Code: \"HN\",\r\n Name: \"Honduras\",\r\n },\r\n {\r\n pkCountryOfIssueID: 100,\r\n Code: \"HK\",\r\n Name: \"Hong Kong\",\r\n },\r\n {\r\n pkCountryOfIssueID: 101,\r\n Code: \"HU\",\r\n Name: \"Hungary\",\r\n },\r\n {\r\n pkCountryOfIssueID: 102,\r\n Code: \"IS\",\r\n Name: \"Iceland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 103,\r\n Code: \"IN\",\r\n Name: \"India\",\r\n },\r\n {\r\n pkCountryOfIssueID: 104,\r\n Code: \"ID\",\r\n Name: \"Indonesia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 105,\r\n Code: \"IR\",\r\n Name: \"Iran (the Islamic Republic of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 106,\r\n Code: \"IQ\",\r\n Name: \"Iraq\",\r\n },\r\n {\r\n pkCountryOfIssueID: 107,\r\n Code: \"IE\",\r\n Name: \"Ireland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 108,\r\n Code: \"IM\",\r\n Name: \"Isle of Man\",\r\n },\r\n {\r\n pkCountryOfIssueID: 109,\r\n Code: \"IL\",\r\n Name: \"Israel\",\r\n },\r\n {\r\n pkCountryOfIssueID: 110,\r\n Code: \"IT\",\r\n Name: \"Italy\",\r\n },\r\n {\r\n pkCountryOfIssueID: 111,\r\n Code: \"JM\",\r\n Name: \"Jamaica\",\r\n },\r\n {\r\n pkCountryOfIssueID: 112,\r\n Code: \"JP\",\r\n Name: \"Japan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 113,\r\n Code: \"JE\",\r\n Name: \"Jersey\",\r\n },\r\n {\r\n pkCountryOfIssueID: 114,\r\n Code: \"JO\",\r\n Name: \"Jordan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 115,\r\n Code: \"KZ\",\r\n Name: \"Kazakhstan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 116,\r\n Code: \"KE\",\r\n Name: \"Kenya\",\r\n },\r\n {\r\n pkCountryOfIssueID: 117,\r\n Code: \"KI\",\r\n Name: \"Kiribati\",\r\n },\r\n {\r\n pkCountryOfIssueID: 118,\r\n Code: \"KP\",\r\n Name: \"Korea (the Democratic People's Republic of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 119,\r\n Code: \"KR\",\r\n Name: \"Korea (the Republic of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 120,\r\n Code: \"KW\",\r\n Name: \"Kuwait\",\r\n },\r\n {\r\n pkCountryOfIssueID: 121,\r\n Code: \"KG\",\r\n Name: \"Kyrgyzstan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 122,\r\n Code: \"LA\",\r\n Name: \"Lao People's Democratic Republic (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 123,\r\n Code: \"LV\",\r\n Name: \"Latvia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 124,\r\n Code: \"LB\",\r\n Name: \"Lebanon\",\r\n },\r\n {\r\n pkCountryOfIssueID: 125,\r\n Code: \"LS\",\r\n Name: \"Lesotho\",\r\n },\r\n {\r\n pkCountryOfIssueID: 126,\r\n Code: \"LR\",\r\n Name: \"Liberia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 127,\r\n Code: \"LY\",\r\n Name: \"Libya\",\r\n },\r\n {\r\n pkCountryOfIssueID: 128,\r\n Code: \"LI\",\r\n Name: \"Liechtenstein\",\r\n },\r\n {\r\n pkCountryOfIssueID: 129,\r\n Code: \"LT\",\r\n Name: \"Lithuania\",\r\n },\r\n {\r\n pkCountryOfIssueID: 130,\r\n Code: \"LU\",\r\n Name: \"Luxembourg\",\r\n },\r\n {\r\n pkCountryOfIssueID: 131,\r\n Code: \"MO\",\r\n Name: \"Macao\",\r\n },\r\n {\r\n pkCountryOfIssueID: 132,\r\n Code: \"MK\",\r\n Name: \"Macedonia (the former Yugoslav Republic of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 133,\r\n Code: \"MG\",\r\n Name: \"Madagascar\",\r\n },\r\n {\r\n pkCountryOfIssueID: 134,\r\n Code: \"MW\",\r\n Name: \"Malawi\",\r\n },\r\n {\r\n pkCountryOfIssueID: 135,\r\n Code: \"MY\",\r\n Name: \"Malaysia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 136,\r\n Code: \"MV\",\r\n Name: \"Maldives\",\r\n },\r\n {\r\n pkCountryOfIssueID: 137,\r\n Code: \"ML\",\r\n Name: \"Mali\",\r\n },\r\n {\r\n pkCountryOfIssueID: 138,\r\n Code: \"MT\",\r\n Name: \"Malta\",\r\n },\r\n {\r\n pkCountryOfIssueID: 139,\r\n Code: \"MH\",\r\n Name: \"Marshall Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 140,\r\n Code: \"MQ\",\r\n Name: \"Martinique\",\r\n },\r\n {\r\n pkCountryOfIssueID: 141,\r\n Code: \"MR\",\r\n Name: \"Mauritania\",\r\n },\r\n {\r\n pkCountryOfIssueID: 142,\r\n Code: \"MU\",\r\n Name: \"Mauritius\",\r\n },\r\n {\r\n pkCountryOfIssueID: 143,\r\n Code: \"YT\",\r\n Name: \"Mayotte\",\r\n },\r\n {\r\n pkCountryOfIssueID: 144,\r\n Code: \"MX\",\r\n Name: \"Mexico\",\r\n },\r\n {\r\n pkCountryOfIssueID: 145,\r\n Code: \"FM\",\r\n Name: \"Micronesia (the Federated States of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 146,\r\n Code: \"MD\",\r\n Name: \"Moldova (the Republic of)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 147,\r\n Code: \"MC\",\r\n Name: \"Monaco\",\r\n },\r\n {\r\n pkCountryOfIssueID: 148,\r\n Code: \"MN\",\r\n Name: \"Mongolia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 149,\r\n Code: \"ME\",\r\n Name: \"Montenegro\",\r\n },\r\n {\r\n pkCountryOfIssueID: 150,\r\n Code: \"MS\",\r\n Name: \"Montserrat\",\r\n },\r\n {\r\n pkCountryOfIssueID: 151,\r\n Code: \"MA\",\r\n Name: \"Morocco\",\r\n },\r\n {\r\n pkCountryOfIssueID: 152,\r\n Code: \"MZ\",\r\n Name: \"Mozambique\",\r\n },\r\n {\r\n pkCountryOfIssueID: 153,\r\n Code: \"MM\",\r\n Name: \"Myanmar\",\r\n },\r\n {\r\n pkCountryOfIssueID: 154,\r\n Code: \"NA\",\r\n Name: \"Namibia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 155,\r\n Code: \"NR\",\r\n Name: \"Nauru\",\r\n },\r\n {\r\n pkCountryOfIssueID: 156,\r\n Code: \"NP\",\r\n Name: \"Nepal\",\r\n },\r\n {\r\n pkCountryOfIssueID: 157,\r\n Code: \"NL\",\r\n Name: \"Netherlands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 158,\r\n Code: \"NC\",\r\n Name: \"New Caledonia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 159,\r\n Code: \"NZ\",\r\n Name: \"New Zealand\",\r\n },\r\n {\r\n pkCountryOfIssueID: 160,\r\n Code: \"NI\",\r\n Name: \"Nicaragua\",\r\n },\r\n {\r\n pkCountryOfIssueID: 161,\r\n Code: \"NE\",\r\n Name: \"Niger (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 162,\r\n Code: \"NG\",\r\n Name: \"Nigeria\",\r\n },\r\n {\r\n pkCountryOfIssueID: 163,\r\n Code: \"NU\",\r\n Name: \"Niue\",\r\n },\r\n {\r\n pkCountryOfIssueID: 164,\r\n Code: \"NF\",\r\n Name: \"Norfolk Island\",\r\n },\r\n {\r\n pkCountryOfIssueID: 165,\r\n Code: \"MP\",\r\n Name: \"Northern Mariana Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 166,\r\n Code: \"NO\",\r\n Name: \"Norway\",\r\n },\r\n {\r\n pkCountryOfIssueID: 167,\r\n Code: \"OM\",\r\n Name: \"Oman\",\r\n },\r\n {\r\n pkCountryOfIssueID: 168,\r\n Code: \"PK\",\r\n Name: \"Pakistan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 169,\r\n Code: \"PW\",\r\n Name: \"Palau\",\r\n },\r\n {\r\n pkCountryOfIssueID: 170,\r\n Code: \"PS\",\r\n Name: \"Palestine, State of\",\r\n },\r\n {\r\n pkCountryOfIssueID: 171,\r\n Code: \"PA\",\r\n Name: \"Panama\",\r\n },\r\n {\r\n pkCountryOfIssueID: 172,\r\n Code: \"PG\",\r\n Name: \"Papua New Guinea\",\r\n },\r\n {\r\n pkCountryOfIssueID: 173,\r\n Code: \"PY\",\r\n Name: \"Paraguay\",\r\n },\r\n {\r\n pkCountryOfIssueID: 174,\r\n Code: \"PE\",\r\n Name: \"Peru\",\r\n },\r\n {\r\n pkCountryOfIssueID: 175,\r\n Code: \"PH\",\r\n Name: \"Philippines (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 176,\r\n Code: \"PN\",\r\n Name: \"Pitcairn\",\r\n },\r\n {\r\n pkCountryOfIssueID: 177,\r\n Code: \"PL\",\r\n Name: \"Poland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 178,\r\n Code: \"PT\",\r\n Name: \"Portugal\",\r\n },\r\n {\r\n pkCountryOfIssueID: 179,\r\n Code: \"PR\",\r\n Name: \"Puerto Rico\",\r\n },\r\n {\r\n pkCountryOfIssueID: 180,\r\n Code: \"QA\",\r\n Name: \"Qatar\",\r\n },\r\n {\r\n pkCountryOfIssueID: 181,\r\n Code: \"RE\",\r\n Name: \"Réunion\",\r\n },\r\n {\r\n pkCountryOfIssueID: 182,\r\n Code: \"RO\",\r\n Name: \"Romania\",\r\n },\r\n {\r\n pkCountryOfIssueID: 183,\r\n Code: \"RU\",\r\n Name: \"Russian Federation (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 184,\r\n Code: \"RW\",\r\n Name: \"Rwanda\",\r\n },\r\n {\r\n pkCountryOfIssueID: 185,\r\n Code: \"BL\",\r\n Name: \"Saint Barthélemy\",\r\n },\r\n {\r\n pkCountryOfIssueID: 186,\r\n Code: \"SH\",\r\n Name: \"Saint Helena, Ascension and Tristan da Cunha\",\r\n },\r\n {\r\n pkCountryOfIssueID: 187,\r\n Code: \"KN\",\r\n Name: \"Saint Kitts and Nevis\",\r\n },\r\n {\r\n pkCountryOfIssueID: 188,\r\n Code: \"LC\",\r\n Name: \"Saint Lucia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 189,\r\n Code: \"MF\",\r\n Name: \"Saint Martin (French part)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 190,\r\n Code: \"PM\",\r\n Name: \"Saint Pierre and Miquelon\",\r\n },\r\n {\r\n pkCountryOfIssueID: 191,\r\n Code: \"VC\",\r\n Name: \"Saint Vincent and the Grenadines\",\r\n },\r\n {\r\n pkCountryOfIssueID: 192,\r\n Code: \"WS\",\r\n Name: \"Samoa\",\r\n },\r\n {\r\n pkCountryOfIssueID: 193,\r\n Code: \"SM\",\r\n Name: \"San Marino\",\r\n },\r\n {\r\n pkCountryOfIssueID: 194,\r\n Code: \"ST\",\r\n Name: \"Sao Tome and Principe\",\r\n },\r\n {\r\n pkCountryOfIssueID: 195,\r\n Code: \"SA\",\r\n Name: \"Saudi Arabia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 196,\r\n Code: \"SN\",\r\n Name: \"Senegal\",\r\n },\r\n {\r\n pkCountryOfIssueID: 197,\r\n Code: \"RS\",\r\n Name: \"Serbia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 198,\r\n Code: \"SC\",\r\n Name: \"Seychelles\",\r\n },\r\n {\r\n pkCountryOfIssueID: 199,\r\n Code: \"SL\",\r\n Name: \"Sierra Leone\",\r\n },\r\n {\r\n pkCountryOfIssueID: 200,\r\n Code: \"SG\",\r\n Name: \"Singapore\",\r\n },\r\n {\r\n pkCountryOfIssueID: 201,\r\n Code: \"SX\",\r\n Name: \"Sint Maarten (Dutch part)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 202,\r\n Code: \"SK\",\r\n Name: \"Slovakia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 203,\r\n Code: \"SI\",\r\n Name: \"Slovenia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 204,\r\n Code: \"SB\",\r\n Name: \"Solomon Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 205,\r\n Code: \"SO\",\r\n Name: \"Somalia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 207,\r\n Code: \"GS\",\r\n Name: \"South Georgia and the South Sandwich Islands\",\r\n },\r\n {\r\n pkCountryOfIssueID: 208,\r\n Code: \"SS\",\r\n Name: \"South Sudan \",\r\n },\r\n {\r\n pkCountryOfIssueID: 209,\r\n Code: \"ES\",\r\n Name: \"Spain\",\r\n },\r\n {\r\n pkCountryOfIssueID: 210,\r\n Code: \"LK\",\r\n Name: \"Sri Lanka\",\r\n },\r\n {\r\n pkCountryOfIssueID: 211,\r\n Code: \"SD\",\r\n Name: \"Sudan (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 212,\r\n Code: \"SR\",\r\n Name: \"Suriname\",\r\n },\r\n {\r\n pkCountryOfIssueID: 213,\r\n Code: \"SJ\",\r\n Name: \"Svalbard and Jan Mayen\",\r\n },\r\n {\r\n pkCountryOfIssueID: 214,\r\n Code: \"SZ\",\r\n Name: \"Swaziland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 215,\r\n Code: \"SE\",\r\n Name: \"Sweden\",\r\n },\r\n {\r\n pkCountryOfIssueID: 216,\r\n Code: \"CH\",\r\n Name: \"Switzerland\",\r\n },\r\n {\r\n pkCountryOfIssueID: 217,\r\n Code: \"SY\",\r\n Name: \"Syrian Arab Republic (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 218,\r\n Code: \"TW\",\r\n Name: \"Taiwan (Province of China)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 219,\r\n Code: \"TJ\",\r\n Name: \"Tajikistan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 220,\r\n Code: \"TZ\",\r\n Name: \"Tanzania, United Republic of\",\r\n },\r\n {\r\n pkCountryOfIssueID: 221,\r\n Code: \"TH\",\r\n Name: \"Thailand\",\r\n },\r\n {\r\n pkCountryOfIssueID: 222,\r\n Code: \"TL\",\r\n Name: \"Timor-Leste\",\r\n },\r\n {\r\n pkCountryOfIssueID: 223,\r\n Code: \"TG\",\r\n Name: \"Togo\",\r\n },\r\n {\r\n pkCountryOfIssueID: 224,\r\n Code: \"TK\",\r\n Name: \"Tokelau\",\r\n },\r\n {\r\n pkCountryOfIssueID: 225,\r\n Code: \"TO\",\r\n Name: \"Tonga\",\r\n },\r\n {\r\n pkCountryOfIssueID: 226,\r\n Code: \"TT\",\r\n Name: \"Trinidad and Tobago\",\r\n },\r\n {\r\n pkCountryOfIssueID: 227,\r\n Code: \"TN\",\r\n Name: \"Tunisia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 228,\r\n Code: \"TR\",\r\n Name: \"Turkey\",\r\n },\r\n {\r\n pkCountryOfIssueID: 229,\r\n Code: \"TM\",\r\n Name: \"Turkmenistan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 230,\r\n Code: \"TC\",\r\n Name: \"Turks and Caicos Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 231,\r\n Code: \"TV\",\r\n Name: \"Tuvalu\",\r\n },\r\n {\r\n pkCountryOfIssueID: 232,\r\n Code: \"UG\",\r\n Name: \"Uganda\",\r\n },\r\n {\r\n pkCountryOfIssueID: 233,\r\n Code: \"UA\",\r\n Name: \"Ukraine\",\r\n },\r\n {\r\n pkCountryOfIssueID: 234,\r\n Code: \"AE\",\r\n Name: \"United Arab Emirates (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 235,\r\n Code: \"GB\",\r\n Name: \"United Kingdom (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 236,\r\n Code: \"US\",\r\n Name: \"United States (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 237,\r\n Code: \"UM\",\r\n Name: \"United States Minor Outlying Islands (the)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 238,\r\n Code: \"UY\",\r\n Name: \"Uruguay\",\r\n },\r\n {\r\n pkCountryOfIssueID: 239,\r\n Code: \"UZ\",\r\n Name: \"Uzbekistan\",\r\n },\r\n {\r\n pkCountryOfIssueID: 240,\r\n Code: \"VU\",\r\n Name: \"Vanuatu\",\r\n },\r\n {\r\n pkCountryOfIssueID: 241,\r\n Code: \"VE\",\r\n Name: \"Venezuela, Bolivarian Republic of \",\r\n },\r\n {\r\n pkCountryOfIssueID: 242,\r\n Code: \"VN\",\r\n Name: \"Viet Nam\",\r\n },\r\n {\r\n pkCountryOfIssueID: 243,\r\n Code: \"VG\",\r\n Name: \"Virgin Islands (British)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 244,\r\n Code: \"VI\",\r\n Name: \"Virgin Islands (U.S.)\",\r\n },\r\n {\r\n pkCountryOfIssueID: 245,\r\n Code: \"WF\",\r\n Name: \"Wallis and Futuna\",\r\n },\r\n {\r\n pkCountryOfIssueID: 246,\r\n Code: \"EH\",\r\n Name: \"Western Sahara\",\r\n },\r\n {\r\n pkCountryOfIssueID: 247,\r\n Code: \"YE\",\r\n Name: \"Yemen\",\r\n },\r\n {\r\n pkCountryOfIssueID: 248,\r\n Code: \"ZM\",\r\n Name: \"Zambia\",\r\n },\r\n {\r\n pkCountryOfIssueID: 249,\r\n Code: \"ZW\",\r\n Name: \"Zimbabwe\",\r\n }\r\n];\r\n","export const gapCovers = \r\n[\r\n {\r\n \"gapCoverProviders\": [\r\n {\r\n \"name\": \"Default\",\r\n \"gapCoverOptions\": [\r\n {\r\n id: 1,\r\n isForMember: true,\r\n name: 'Primary Gap Cover',\r\n optionPrice: 125\r\n },\r\n {\r\n id: 2,\r\n isForMember: true,\r\n name: 'Supreme Gap Cover',\r\n optionPrice: 175\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ];","export const insuranceOptions = [\r\n {\r\n id: 1,\r\n isForMember: true,\r\n name: 'Life Cover',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 2,\r\n isForMember: true,\r\n name: 'Dread Disease Cover',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 3,\r\n isForMember: true,\r\n name: 'Disability Lump Sum',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 4,\r\n isForMember: true,\r\n name: 'Disability Income Protection',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 5,\r\n isForMember: true,\r\n name: 'Temporary Total Disability',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 6,\r\n isForMember: true,\r\n name: 'Funeral',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 7,\r\n isForMember: false,\r\n name: 'Spousal Life Cover',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 8,\r\n isForMember: false,\r\n name: 'Spousal Dread Disease Cover',\r\n monthlyAmount: null\r\n },\r\n {\r\n id: 9,\r\n isForMember: false,\r\n name: 'Spousal Disability Lump Sum',\r\n monthlyAmount: null\r\n }\r\n];\r\n","export const medicalAidPlans = \r\n[\r\n {\r\n \"selectedMAP\": [\r\n {\r\n \"mapName\": \"Default\",\r\n \"options\": [\r\n {\r\n id: 1,\r\n optionName: 'Hospital Plan',\r\n memberAmount: 1850,\r\n adultDependantAmount: 900,\r\n childDependantAmount: 900\r\n },\r\n {\r\n id: 2,\r\n optionName: 'Savings Plan',\r\n memberAmount: 2200,\r\n adultDependantAmount: 1100,\r\n childDependantAmount: 1100\r\n },\r\n {\r\n id: 3,\r\n optionName: 'Elite Plan',\r\n memberAmount: 4900,\r\n adultDependantAmount: 2200,\r\n childDependantAmount: 2200\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ];\r\n\r\n\r\n","export const mortalityTable = [{\r\n 'AGE': 16,\r\n 'MALE': 0.00103,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999131769,\r\n 'MNPX': 0.999131769,\r\n 'FPX': 0.999741982,\r\n 'FNPX': 0.999741982\r\n },\r\n {\r\n 'AGE': 17,\r\n 'MALE': 0.00103,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999140451,\r\n 'MNPX': 0.998272966,\r\n 'FPX': 0.999744563,\r\n 'FNPX': 0.999486611\r\n },\r\n {\r\n 'AGE': 18,\r\n 'MALE': 0.00103,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999149046,\r\n 'MNPX': 0.997423482,\r\n 'FPX': 0.999747117,\r\n 'FNPX': 0.999233858\r\n },\r\n {\r\n 'AGE': 19,\r\n 'MALE': 0.00103,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999157556,\r\n 'MNPX': 0.996583208,\r\n 'FPX': 0.999749646,\r\n 'FNPX': 0.998983696\r\n },\r\n {\r\n 'AGE': 20,\r\n 'MALE': 0.00103,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.99916598,\r\n 'MNPX': 0.995752038,\r\n 'FPX': 0.999752149,\r\n 'FNPX': 0.998736097\r\n },\r\n {\r\n 'AGE': 21,\r\n 'MALE': 0.00101,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999190353,\r\n 'MNPX': 0.99494583,\r\n 'FPX': 0.999754628,\r\n 'FNPX': 0.998491035\r\n },\r\n {\r\n 'AGE': 22,\r\n 'MALE': 0.00097,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999230194,\r\n 'MNPX': 0.994179915,\r\n 'FPX': 0.999757082,\r\n 'FNPX': 0.998248483\r\n },\r\n {\r\n 'AGE': 23,\r\n 'MALE': 0.00091,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999285033,\r\n 'MNPX': 0.993469109,\r\n 'FPX': 0.999759511,\r\n 'FNPX': 0.998008415\r\n },\r\n {\r\n 'AGE': 24,\r\n 'MALE': 0.00083,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999354408,\r\n 'MNPX': 0.992827734,\r\n 'FPX': 0.999761916,\r\n 'FNPX': 0.997770805\r\n },\r\n {\r\n 'AGE': 25,\r\n 'MALE': 0.00075,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999422468,\r\n 'MNPX': 0.992254344,\r\n 'FPX': 0.999764297,\r\n 'FNPX': 0.997535627\r\n },\r\n {\r\n 'AGE': 26,\r\n 'MALE': 0.00069,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999473984,\r\n 'MNPX': 0.991732402,\r\n 'FPX': 0.999766654,\r\n 'FNPX': 0.997302856\r\n },\r\n {\r\n 'AGE': 27,\r\n 'MALE': 0.00064,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.99951698,\r\n 'MNPX': 0.991253375,\r\n 'FPX': 0.999768987,\r\n 'FNPX': 0.997072466\r\n },\r\n {\r\n 'AGE': 28,\r\n 'MALE': 0.00061,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999544225,\r\n 'MNPX': 0.990801586,\r\n 'FPX': 0.999771297,\r\n 'FNPX': 0.996844433\r\n },\r\n {\r\n 'AGE': 29,\r\n 'MALE': 0.0006,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.99955618,\r\n 'MNPX': 0.990361848,\r\n 'FPX': 0.999773584,\r\n 'FNPX': 0.996618731\r\n },\r\n {\r\n 'AGE': 30,\r\n 'MALE': 0.00058,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999575264,\r\n 'MNPX': 0.989941206,\r\n 'FPX': 0.999775848,\r\n 'FNPX': 0.996395338\r\n },\r\n {\r\n 'AGE': 31,\r\n 'MALE': 0.00057,\r\n 'FEMALE': 0.0003,\r\n 'MPX': 0.999586761,\r\n 'MNPX': 0.989532124,\r\n 'FPX': 0.99977809,\r\n 'FNPX': 0.996174227\r\n },\r\n {\r\n 'AGE': 32,\r\n 'MALE': 0.00061,\r\n 'FEMALE': 0.00033,\r\n 'MPX': 0.999562184,\r\n 'MNPX': 0.989098891,\r\n 'FPX': 0.99975834,\r\n 'FNPX': 0.995933492\r\n },\r\n {\r\n 'AGE': 33,\r\n 'MALE': 0.00067,\r\n 'FEMALE': 0.00037,\r\n 'MPX': 0.999523929,\r\n 'MNPX': 0.98862801,\r\n 'FPX': 0.999731757,\r\n 'FNPX': 0.99566634\r\n },\r\n {\r\n 'AGE': 34,\r\n 'MALE': 0.00073,\r\n 'FEMALE': 0.00041,\r\n 'MPX': 0.999486483,\r\n 'MNPX': 0.988120333,\r\n 'FPX': 0.99970573,\r\n 'FNPX': 0.995373346\r\n },\r\n {\r\n 'AGE': 35,\r\n 'MALE': 0.00079,\r\n 'FEMALE': 0.00046,\r\n 'MPX': 0.999449834,\r\n 'MNPX': 0.987576703,\r\n 'FPX': 0.999673146,\r\n 'FNPX': 0.995048003\r\n },\r\n {\r\n 'AGE': 36,\r\n 'MALE': 0.00086,\r\n 'FEMALE': 0.00051,\r\n 'MPX': 0.999407074,\r\n 'MNPX': 0.986991143,\r\n 'FPX': 0.999641242,\r\n 'FNPX': 0.994691022\r\n },\r\n {\r\n 'AGE': 37,\r\n 'MALE': 0.00095,\r\n 'FEMALE': 0.00057,\r\n 'MPX': 0.999351573,\r\n 'MNPX': 0.986351151,\r\n 'FPX': 0.999603044,\r\n 'FNPX': 0.994296173\r\n },\r\n {\r\n 'AGE': 38,\r\n 'MALE': 0.00104,\r\n 'FEMALE': 0.00064,\r\n 'MPX': 0.999297242,\r\n 'MNPX': 0.985657985,\r\n 'FPX': 0.999558753,\r\n 'FNPX': 0.993857443\r\n },\r\n {\r\n 'AGE': 39,\r\n 'MALE': 0.00115,\r\n 'FEMALE': 0.00071,\r\n 'MPX': 0.999230682,\r\n 'MNPX': 0.984899701,\r\n 'FPX': 0.999515386,\r\n 'FNPX': 0.993375806\r\n },\r\n {\r\n 'AGE': 40,\r\n 'MALE': 0.00127,\r\n 'FEMALE': 0.00079,\r\n 'MPX': 0.999158902,\r\n 'MNPX': 0.984071303,\r\n 'FPX': 0.999466174,\r\n 'FNPX': 0.992845516\r\n },\r\n {\r\n 'AGE': 41,\r\n 'MALE': 0.00142,\r\n 'FEMALE': 0.00089,\r\n 'MPX': 0.999068964,\r\n 'MNPX': 0.983155097,\r\n 'FPX': 0.999404615,\r\n 'FNPX': 0.992254391\r\n },\r\n {\r\n 'AGE': 42,\r\n 'MALE': 0.00159,\r\n 'FEMALE': 0.00099,\r\n 'MPX': 0.998967927,\r\n 'MNPX': 0.982140409,\r\n 'FPX': 0.999344341,\r\n 'FNPX': 0.99160381\r\n },\r\n {\r\n 'AGE': 43,\r\n 'MALE': 0.00179,\r\n 'FEMALE': 0.0011,\r\n 'MPX': 0.998849725,\r\n 'MNPX': 0.981010678,\r\n 'FPX': 0.999278775,\r\n 'FNPX': 0.990888641\r\n },\r\n {\r\n 'AGE': 44,\r\n 'MALE': 0.00202,\r\n 'FEMALE': 0.00123,\r\n 'MPX': 0.998714905,\r\n 'MNPX': 0.979749986,\r\n 'FPX': 0.999201604,\r\n 'FNPX': 0.990097519\r\n },\r\n {\r\n 'AGE': 45,\r\n 'MALE': 0.0023,\r\n 'FEMALE': 0.00137,\r\n 'MPX': 0.998551406,\r\n 'MNPX': 0.978330726,\r\n 'FPX': 0.999119622,\r\n 'FNPX': 0.989225859\r\n },\r\n {\r\n 'AGE': 46,\r\n 'MALE': 0.00262,\r\n 'FEMALE': 0.00152,\r\n 'MPX': 0.998366363,\r\n 'MNPX': 0.976732489,\r\n 'FPX': 0.999032998,\r\n 'FNPX': 0.988269276\r\n },\r\n {\r\n 'AGE': 47,\r\n 'MALE': 0.00301,\r\n 'FEMALE': 0.0017,\r\n 'MPX': 0.998141957,\r\n 'MNPX': 0.974917678,\r\n 'FPX': 0.9989293,\r\n 'FNPX': 0.987211135\r\n },\r\n {\r\n 'AGE': 48,\r\n 'MALE': 0.00346,\r\n 'FEMALE': 0.0019,\r\n 'MPX': 0.997885534,\r\n 'MNPX': 0.972856248,\r\n 'FPX': 0.998815302,\r\n 'FNPX': 0.986041588\r\n },\r\n {\r\n 'AGE': 49,\r\n 'MALE': 0.00398,\r\n 'FEMALE': 0.00211,\r\n 'MPX': 0.997592076,\r\n 'MNPX': 0.970513684,\r\n 'FPX': 0.998697518,\r\n 'FNPX': 0.984757287\r\n },\r\n {\r\n 'AGE': 50,\r\n 'MALE': 0.0046,\r\n 'FEMALE': 0.00235,\r\n 'MPX': 0.997244802,\r\n 'MNPX': 0.967839727,\r\n 'FPX': 0.998563874,\r\n 'FNPX': 0.983343051\r\n },\r\n {\r\n 'AGE': 51,\r\n 'MALE': 0.00532,\r\n 'FEMALE': 0.00262,\r\n 'MPX': 0.996845419,\r\n 'MNPX': 0.964786598,\r\n 'FPX': 0.998414884,\r\n 'FNPX': 0.981784339\r\n },\r\n {\r\n 'AGE': 52,\r\n 'MALE': 0.00615,\r\n 'FEMALE': 0.00293,\r\n 'MPX': 0.996389724,\r\n 'MNPX': 0.961303452,\r\n 'FPX': 0.998245059,\r\n 'FNPX': 0.980061365\r\n },\r\n {\r\n 'AGE': 53,\r\n 'MALE': 0.0071,\r\n 'FEMALE': 0.00326,\r\n 'MPX': 0.995873718,\r\n 'MNPX': 0.957336843,\r\n 'FPX': 0.998066929,\r\n 'FNPX': 0.978166837\r\n },\r\n {\r\n 'AGE': 54,\r\n 'MALE': 0.00818,\r\n 'FEMALE': 0.00363,\r\n 'MPX': 0.995293598,\r\n 'MNPX': 0.952831231,\r\n 'FPX': 0.997869056,\r\n 'FNPX': 0.976082419\r\n },\r\n {\r\n 'AGE': 55,\r\n 'MALE': 0.00941,\r\n 'FEMALE': 0.00405,\r\n 'MPX': 0.994640053,\r\n 'MNPX': 0.947724106,\r\n 'FPX': 0.997646276,\r\n 'FNPX': 0.97378499\r\n },\r\n {\r\n 'AGE': 56,\r\n 'MALE': 0.01079,\r\n 'FEMALE': 0.00452,\r\n 'MPX': 0.993915463,\r\n 'MNPX': 0.941957644,\r\n 'FPX': 0.997399397,\r\n 'FNPX': 0.971252562\r\n },\r\n {\r\n 'AGE': 57,\r\n 'MALE': 0.01232,\r\n 'FEMALE': 0.00503,\r\n 'MPX': 0.993122161,\r\n 'MNPX': 0.935479011,\r\n 'FPX': 0.997134906,\r\n 'FNPX': 0.968469832\r\n },\r\n {\r\n 'AGE': 58,\r\n 'MALE': 0.01352,\r\n 'FEMALE': 0.00561,\r\n 'MPX': 0.992527719,\r\n 'MNPX': 0.928488849,\r\n 'FPX': 0.996836492,\r\n 'FNPX': 0.96540607\r\n },\r\n {\r\n 'AGE': 59,\r\n 'MALE': 0.01477,\r\n 'FEMALE': 0.00625,\r\n 'MPX': 0.991918496,\r\n 'MNPX': 0.920985263,\r\n 'FPX': 0.996510837,\r\n 'FNPX': 0.96203761\r\n },\r\n {\r\n 'AGE': 60,\r\n 'MALE': 0.01613,\r\n 'FEMALE': 0.00696,\r\n 'MPX': 0.99126262,\r\n 'MNPX': 0.912938265,\r\n 'FPX': 0.996153323,\r\n 'FNPX': 0.958336962\r\n },\r\n {\r\n 'AGE': 61,\r\n 'MALE': 0.01761,\r\n 'FEMALE': 0.00776,\r\n 'MPX': 0.990556317,\r\n 'MNPX': 0.904316765,\r\n 'FPX': 0.995754064,\r\n 'FNPX': 0.954267925\r\n },\r\n {\r\n 'AGE': 62,\r\n 'MALE': 0.01923,\r\n 'FEMALE': 0.00864,\r\n 'MPX': 0.989790686,\r\n 'MNPX': 0.895084311,\r\n 'FPX': 0.995319841,\r\n 'FNPX': 0.9498018\r\n },\r\n {\r\n 'AGE': 63,\r\n 'MALE': 0.021,\r\n 'FEMALE': 0.00962,\r\n 'MPX': 0.988962474,\r\n 'MNPX': 0.885204795,\r\n 'FPX': 0.9948411,\r\n 'FNPX': 0.944901867\r\n },\r\n {\r\n 'AGE': 64,\r\n 'MALE': 0.02292,\r\n 'FEMALE': 0.01072,\r\n 'MPX': 0.988073795,\r\n 'MNPX': 0.874647661,\r\n 'FPX': 0.994308693,\r\n 'FNPX': 0.93952414\r\n },\r\n {\r\n 'AGE': 65,\r\n 'MALE': 0.02502,\r\n 'FEMALE': 0.01194,\r\n 'MPX': 0.987111269,\r\n 'MNPX': 0.863374563,\r\n 'FPX': 0.993724378,\r\n 'FNPX': 0.933628041\r\n },\r\n {\r\n 'AGE': 66,\r\n 'MALE': 0.0273,\r\n 'FEMALE': 0.01329,\r\n 'MPX': 0.986077389,\r\n 'MNPX': 0.851354135,\r\n 'FPX': 0.993084674,\r\n 'FNPX': 0.927171699\r\n },\r\n {\r\n 'AGE': 67,\r\n 'MALE': 0.02978,\r\n 'FEMALE': 0.0148,\r\n 'MPX': 0.984964498,\r\n 'MNPX': 0.838553598,\r\n 'FPX': 0.992375971,\r\n 'FNPX': 0.920102915\r\n },\r\n {\r\n 'AGE': 68,\r\n 'MALE': 0.03248,\r\n 'FEMALE': 0.01647,\r\n 'MPX': 0.983765293,\r\n 'MNPX': 0.824939926,\r\n 'FPX': 0.991600535,\r\n 'FNPX': 0.912374543\r\n },\r\n {\r\n 'AGE': 69,\r\n 'MALE': 0.03542,\r\n 'FEMALE': 0.01833,\r\n 'MPX': 0.982472815,\r\n 'MNPX': 0.810481051,\r\n 'FPX': 0.990745442,\r\n 'FNPX': 0.903930919\r\n },\r\n {\r\n 'AGE': 70,\r\n 'MALE': 0.03861,\r\n 'FEMALE': 0.0204,\r\n 'MPX': 0.981085337,\r\n 'MNPX': 0.795151075,\r\n 'FPX': 0.989803325,\r\n 'FNPX': 0.894713829\r\n },\r\n {\r\n 'AGE': 71,\r\n 'MALE': 0.04208,\r\n 'FEMALE': 0.02269,\r\n 'MPX': 0.979591563,\r\n 'MNPX': 0.778923285,\r\n 'FPX': 0.988772111,\r\n 'FNPX': 0.884668081\r\n },\r\n {\r\n 'AGE': 72,\r\n 'MALE': 0.04584,\r\n 'FEMALE': 0.02523,\r\n 'MPX': 0.977990316,\r\n 'MNPX': 0.761779429,\r\n 'FPX': 0.987640068,\r\n 'FNPX': 0.873733644\r\n },\r\n {\r\n 'AGE': 73,\r\n 'MALE': 0.04992,\r\n 'FEMALE': 0.02805,\r\n 'MPX': 0.976271025,\r\n 'MNPX': 0.743703184,\r\n 'FPX': 0.986395992,\r\n 'FNPX': 0.861847365\r\n },\r\n {\r\n 'AGE': 74,\r\n 'MALE': 0.05435,\r\n 'FEMALE': 0.03118,\r\n 'MPX': 0.974423616,\r\n 'MNPX': 0.724681946,\r\n 'FPX': 0.985029189,\r\n 'FNPX': 0.848944811\r\n },\r\n {\r\n 'AGE': 75,\r\n 'MALE': 0.05914,\r\n 'FEMALE': 0.03464,\r\n 'MPX': 0.972447811,\r\n 'MNPX': 0.704715372,\r\n 'FPX': 0.983534221,\r\n 'FNPX': 0.834966274\r\n },\r\n {\r\n 'AGE': 76,\r\n 'MALE': 0.06433,\r\n 'FEMALE': 0.03847,\r\n 'MPX': 0.970329591,\r\n 'MNPX': 0.683806178,\r\n 'FPX': 0.981896532,\r\n 'FNPX': 0.819850488\r\n },\r\n {\r\n 'AGE': 77,\r\n 'MALE': 0.06994,\r\n 'FEMALE': 0.04271,\r\n 'MPX': 0.968064714,\r\n 'MNPX': 0.661968633,\r\n 'FPX': 0.980102232,\r\n 'FNPX': 0.803537294\r\n },\r\n {\r\n 'AGE': 78,\r\n 'MALE': 0.07599,\r\n 'FEMALE': 0.04739,\r\n 'MPX': 0.965649203,\r\n 'MNPX': 0.639229483,\r\n 'FPX': 0.978142691,\r\n 'FNPX': 0.785974131\r\n },\r\n {\r\n 'AGE': 79,\r\n 'MALE': 0.08253,\r\n 'FEMALE': 0.05255,\r\n 'MPX': 0.963065909,\r\n 'MNPX': 0.615620123,\r\n 'FPX': 0.976005158,\r\n 'FNPX': 0.767114805\r\n },\r\n {\r\n 'AGE': 80,\r\n 'MALE': 0.08957,\r\n 'FEMALE': 0.05824,\r\n 'MPX': 0.960316192,\r\n 'MNPX': 0.591189972,\r\n 'FPX': 0.973672978,\r\n 'FNPX': 0.746918957\r\n },\r\n {\r\n 'AGE': 81,\r\n 'MALE': 0.09715,\r\n 'FEMALE': 0.06451,\r\n 'MPX': 0.95738831,\r\n 'MNPX': 0.565998368,\r\n 'FPX': 0.971130277,\r\n 'FNPX': 0.725355614\r\n },\r\n {\r\n 'AGE': 82,\r\n 'MALE': 0.1053,\r\n 'FEMALE': 0.0714,\r\n 'MPX': 0.954275441,\r\n 'MNPX': 0.540118343,\r\n 'FPX': 0.968366374,\r\n 'FNPX': 0.702409986\r\n },\r\n {\r\n 'AGE': 83,\r\n 'MALE': 0.11405,\r\n 'FEMALE': 0.07896,\r\n 'MPX': 0.950971158,\r\n 'MNPX': 0.513636966,\r\n 'FPX': 0.965366762,\r\n 'FNPX': 0.678083254\r\n },\r\n {\r\n 'AGE': 84,\r\n 'MALE': 0.12342,\r\n 'FEMALE': 0.08725,\r\n 'MPX': 0.947473667,\r\n 'MNPX': 0.486657499,\r\n 'FPX': 0.962113317,\r\n 'FNPX': 0.652392928\r\n },\r\n {\r\n 'AGE': 85,\r\n 'MALE': 0.13344,\r\n 'FEMALE': 0.09632,\r\n 'MPX': 0.943777161,\r\n 'MNPX': 0.459296233,\r\n 'FPX': 0.95859309,\r\n 'FNPX': 0.625379353\r\n },\r\n {\r\n 'AGE': 86,\r\n 'MALE': 0.14415,\r\n 'FEMALE': 0.10622,\r\n 'MPX': 0.939872025,\r\n 'MNPX': 0.431679681,\r\n 'FPX': 0.954793817,\r\n 'FNPX': 0.59710834\r\n },\r\n {\r\n 'AGE': 87,\r\n 'MALE': 0.15556,\r\n 'FEMALE': 0.11701,\r\n 'MPX': 0.935761549,\r\n 'MNPX': 0.403949247,\r\n 'FPX': 0.950699683,\r\n 'FNPX': 0.567670709\r\n },\r\n {\r\n 'AGE': 88,\r\n 'MALE': 0.1677,\r\n 'FEMALE': 0.12874,\r\n 'MPX': 0.931440857,\r\n 'MNPX': 0.376254833,\r\n 'FPX': 0.946299858,\r\n 'FNPX': 0.537186711\r\n },\r\n {\r\n 'AGE': 89,\r\n 'MALE': 0.18058,\r\n 'FEMALE': 0.14145,\r\n 'MPX': 0.9269135,\r\n 'MNPX': 0.348755684,\r\n 'FPX': 0.941588269,\r\n 'FNPX': 0.505808706\r\n },\r\n {\r\n 'AGE': 90,\r\n 'MALE': 0.19422,\r\n 'FEMALE': 0.15519,\r\n 'MPX': 0.922179027,\r\n 'MNPX': 0.321615177,\r\n 'FPX': 0.936555197,\r\n 'FNPX': 0.473717772\r\n },\r\n {\r\n 'AGE': 91,\r\n 'MALE': 0.20863,\r\n 'FEMALE': 0.17001,\r\n 'MPX': 0.917241109,\r\n 'MNPX': 0.294998662,\r\n 'FPX': 0.931191517,\r\n 'FNPX': 0.441121971\r\n },\r\n {\r\n 'AGE': 92,\r\n 'MALE': 0.22381,\r\n 'FEMALE': 0.18592,\r\n 'MPX': 0.912107345,\r\n 'MNPX': 0.269070446,\r\n 'FPX': 0.925504709,\r\n 'FNPX': 0.408260461\r\n },\r\n {\r\n 'AGE': 93,\r\n 'MALE': 0.23976,\r\n 'FEMALE': 0.20297,\r\n 'MPX': 0.906785168,\r\n 'MNPX': 0.24398909,\r\n 'FPX': 0.919486306,\r\n 'FNPX': 0.375389903\r\n },\r\n {\r\n 'AGE': 94,\r\n 'MALE': 0.25647,\r\n 'FEMALE': 0.22115,\r\n 'MPX': 0.901285703,\r\n 'MNPX': 0.219903878,\r\n 'FPX': 0.913151956,\r\n 'FNPX': 0.342788025\r\n },\r\n {\r\n 'AGE': 95,\r\n 'MALE': 0.27393,\r\n 'FEMALE': 0.24047,\r\n 'MPX': 0.895619763,\r\n 'MNPX': 0.196950259,\r\n 'FPX': 0.906509131,\r\n 'FNPX': 0.310740474\r\n },\r\n {\r\n 'AGE': 96,\r\n 'MALE': 0.29211,\r\n 'FEMALE': 0.26091,\r\n 'MPX': 0.889805403,\r\n 'MNPX': 0.175247405,\r\n 'FPX': 0.899576764,\r\n 'FNPX': 0.27953491\r\n },\r\n {\r\n 'AGE': 97,\r\n 'MALE': 0.31097,\r\n 'FEMALE': 0.28244,\r\n 'MPX': 0.883863813,\r\n 'MNPX': 0.154894839,\r\n 'FPX': 0.892377052,\r\n 'FNPX': 0.249450539\r\n },\r\n {\r\n 'AGE': 98,\r\n 'MALE': 0.33049,\r\n 'FEMALE': 0.30502,\r\n 'MPX': 0.877808052,\r\n 'MNPX': 0.135967937,\r\n 'FPX': 0.884935278,\r\n 'FNPX': 0.220747582\r\n },\r\n {\r\n 'AGE': 99,\r\n 'MALE': 0.35061,\r\n 'FEMALE': 0.32857,\r\n 'MPX': 0.871665401,\r\n 'MNPX': 0.118518547,\r\n 'FPX': 0.877290841,\r\n 'FNPX': 0.193659832\r\n },\r\n {\r\n 'AGE': 100,\r\n 'MALE': 0.37127,\r\n 'FEMALE': 0.35302,\r\n 'MPX': 0.865462141,\r\n 'MNPX': 0.102573315,\r\n 'FPX': 0.869478043,\r\n 'FNPX': 0.168382972\r\n },\r\n {\r\n 'AGE': 101,\r\n 'MALE': 0.39242,\r\n 'FEMALE': 0.37827,\r\n 'MPX': 0.859219993,\r\n 'MNPX': 0.088133043,\r\n 'FPX': 0.861540946,\r\n 'FNPX': 0.145068825\r\n },\r\n {\r\n 'AGE': 102,\r\n 'MALE': 0.41398,\r\n 'FEMALE': 0.40419,\r\n 'MPX': 0.852970526,\r\n 'MNPX': 0.075174888,\r\n 'FPX': 0.853532854,\r\n 'FNPX': 0.123821008\r\n },\r\n {\r\n 'AGE': 103,\r\n 'MALE': 0.43587,\r\n 'FEMALE': 0.43066,\r\n 'MPX': 0.846744095,\r\n 'MNPX': 0.063653893,\r\n 'FPX': 0.845501458,\r\n 'FNPX': 0.104690843\r\n },\r\n {\r\n 'AGE': 104,\r\n 'MALE': 0.45802,\r\n 'FEMALE': 0.45753,\r\n 'MPX': 0.840566392,\r\n 'MNPX': 0.053505323,\r\n 'FPX': 0.837503272,\r\n 'FNPX': 0.087678924\r\n },\r\n {\r\n 'AGE': 105,\r\n 'MALE': 0.48033,\r\n 'FEMALE': 0.48465,\r\n 'MPX': 0.83447243,\r\n 'MNPX': 0.044648717,\r\n 'FPX': 0.829592598,\r\n 'FNPX': 0.072737786\r\n }\r\n];\r\n","export const salaryScales = [\r\n { age: 18, increase: 0.135 },\r\n { age: 19, increase: 0.135 },\r\n { age: 20, increase: 0.135 },\r\n { age: 21, increase: 0.126 },\r\n { age: 22, increase: 0.117 },\r\n { age: 23, increase: 0.108 },\r\n { age: 24, increase: 0.099 },\r\n { age: 25, increase: 0.090 },\r\n { age: 26, increase: 0.083 },\r\n { age: 27, increase: 0.076 },\r\n { age: 28, increase: 0.069 },\r\n { age: 29, increase: 0.062 },\r\n { age: 30, increase: 0.055 },\r\n { age: 31, increase: 0.050 },\r\n { age: 32, increase: 0.045 },\r\n { age: 33, increase: 0.043 },\r\n { age: 34, increase: 0.041 },\r\n { age: 35, increase: 0.039 },\r\n { age: 36, increase: 0.037 },\r\n { age: 37, increase: 0.035 },\r\n { age: 38, increase: 0.033 },\r\n { age: 39, increase: 0.031 },\r\n { age: 40, increase: 0.029 },\r\n { age: 41, increase: 0.027 },\r\n { age: 42, increase: 0.025 },\r\n { age: 43, increase: 0.023 },\r\n { age: 44, increase: 0.021 },\r\n { age: 45, increase: 0.019 },\r\n { age: 46, increase: 0.017 },\r\n { age: 47, increase: 0.015 },\r\n { age: 48, increase: 0.015 },\r\n { age: 49, increase: 0.015 },\r\n { age: 50, increase: 0.015 },\r\n { age: 51, increase: 0.015 },\r\n { age: 52, increase: 0.015 },\r\n { age: 53, increase: 0.015 },\r\n { age: 54, increase: 0.015 },\r\n { age: 55, increase: 0.015 },\r\n { age: 56, increase: 0.015 },\r\n { age: 57, increase: 0.015 },\r\n { age: 58, increase: 0.015 },\r\n { age: 59, increase: 0.015 },\r\n { age: 60, increase: 0.015 },\r\n { age: 61, increase: 0.015 },\r\n { age: 62, increase: 0.015 },\r\n { age: 63, increase: 0.015 },\r\n { age: 64, increase: 0.015 },\r\n { age: 65, increase: 0.015 }\r\n];\r\n","export const taxRebates = {\r\n primary: {\r\n amount: 14220,\r\n age: 0\r\n },\r\n secondary: {\r\n amount: 7794,\r\n age: 65\r\n },\r\n tertiary: {\r\n amount: 2601,\r\n age: 75\r\n }\r\n};\r\n","export const messages: any = {\r\n MANDATORY_MESSAGE: \"This field is required\",\r\n PHONE_FORMAT:\r\n \"Please use one of the following formats: +27XXXXXXXXX or 0XXXXXXXXX\",\r\n CELLPHONE_FORMAT: \"Cellnumber should be in +27xxxxxx or 0xxxxxx format\",\r\n WORKPHONE_FORMAT: \"Work number should be in +27xxxxxxx or 0xxxxxxx format\",\r\n EMAIL_FORMAT: \"Invalid email format\",\r\n PERSONAL_WORK_SAMEEMAIL: \"Should not be same as work email\",\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpHeaders, HttpEvent } from '@angular/common/http';\r\nimport { AuthenticationService } from '../services/authentication.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenInterceptorService implements HttpInterceptor {\r\n constructor(private authenticationService: AuthenticationService,) {\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n if (!this.authenticationService.getAuthorizationHeaderValue()) {\r\n return next.handle(req);\r\n }\r\n\r\n const headers = new HttpHeaders({\r\n // 'Content-Type': 'application/json',\r\n Authorization: this.authenticationService.getAuthorizationHeaderValue()\r\n });\r\n\r\n const authReq = req.clone({ headers });\r\n return next.handle(authReq);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { StoreService } from './storeService';\r\nimport appsettings from \"src/assets/appsettings.json\"\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminService {\r\n\r\n private _templatesUrl: string;\r\n\r\n\r\n constructor(private _http: HttpClient, private _storeService: StoreService) {\r\n this._configureEndpoints();\r\n }\r\n\r\n createOfferTemplate(template: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._templatesUrl}/offers/create`;\r\n const data = JSON.stringify(template);\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n updateOfferTemplate(template: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._templatesUrl}/offers/${template.id}/update`;\r\n const data = JSON.stringify(template);\r\n return this._http.put(url, data, options);\r\n }\r\n\r\n getOfferTemplates() {\r\n const corporateId = this._storeService.getStoredData().profile['CorporateId'];\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this._templatesUrl}/offers/${corporateId}`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n getOfferTemplateById(templateId: string): Observable {\r\n const url = `${this._templatesUrl}/offers/`;\r\n return this._http.get(url + templateId);\r\n }\r\n\r\n deleteOfferTemplate(id: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this._templatesUrl}/offers/${id}/delete`;\r\n return this._http.delete(url, options);\r\n }\r\n\r\n private _configureEndpoints(): void {\r\n const baseUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this._templatesUrl = `${baseUrl}${endPoint.templatesUrl}`;\r\n }\r\n}\r\n","\r\nimport { Injectable } from \"@angular/core\";\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree\r\n} from \"@angular/router\";\r\nimport { catchError, from, map, Observable, of } from \"rxjs\";\r\nimport { AuthService } from \"./auth.service\";\r\n \r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable {\r\n return this.authService.isLoggedInObs().pipe(\r\n map(e => {\r\n if (e) {\r\n return true;\r\n } else {\r\n return false\r\n }\r\n }),\r\n catchError((err) => {\r\n this.router.navigate(['/login']);\r\n return of(false);\r\n })\r\n );\r\n } \r\n //TODO: Extend to check role so that a memebr cant get to the hradmin landing page\r\n \r\n }","import { Injectable } from \"@angular/core\";\r\nimport { Observable, BehaviorSubject, from, map } from \"rxjs\";\r\nimport { UserManager, User, Log, UserManagerSettings, UserSettings } from \"oidc-client\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Constants } from \"../constants/constants\";\r\nimport { AuthContext } from \"../models/auth-context\";\r\n\r\nimport { StoreService } from \"./storeService\";\r\nimport { ErrorService } from \"./error.service\";\r\nimport { RoutingService } from \"./routing.service\";\r\nimport appsettings from \"../../assets/appsettings.json\"\r\n\r\n// import { ApplicationInsightsService } from \"./insights/applicationinsights.service\";\r\n// Verbose logging in debug mode\r\n// Log.level = Log.DEBUG;\r\n// Log.logger = console;\r\n\r\nconst settings: UserManagerSettings = {\r\n authority: Constants.stsAuthority,\r\n client_id: Constants.clientId,\r\n redirect_uri: Constants.redirect_uri,\r\n post_logout_redirect_uri: Constants.post_logout_redirect_uri,\r\n response_type: \"id_token token\",\r\n scope: Constants.clientScope,\r\n silent_redirect_uri: Constants.silent_redirect_uri,\r\n automaticSilentRenew: true,\r\n accessTokenExpiringNotificationTime: 60,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n checkSessionInterval: 5000,\r\n monitorSession: true\r\n};\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n [x: string]: any;\r\n mgr: UserManager = new UserManager(settings);\r\n userLoadeded = new BehaviorSubject(null);\r\n currentUser: User | null;\r\n loggedIn = false;\r\n authContext: AuthContext;\r\n authHeaders: Headers;\r\n private _user: User;\r\n public isLoggedIn = new BehaviorSubject(false);\r\n\r\n//logic for OIDC\r\n\r\n constructor(\r\n private _httpClient: HttpClient,\r\n private _storeService: StoreService,\r\n private _errorService: ErrorService,\r\n private _routingService: RoutingService\r\n ) {\r\n const location = window.location;\r\n this.mgr\r\n .getUser()\r\n .then(user => {\r\n if (user) {\r\n console.log(user)\r\n this.loggedIn = true;\r\n this.currentUser = user;\r\n this.userLoadeded.next(user);\r\n\r\n if (!user.profile) {\r\n this.loggedIn = false;\r\n }\r\n }\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.loggedIn = false;\r\n });\r\n\r\n this.mgr.events.addUserLoaded(user => {\r\n this.currentUser = user;\r\n });\r\n\r\n this.mgr.events.addUserSignedOut(() => this.startSignoutMainWindow());\r\n\r\n this.mgr.events.addUserUnloaded(() => {\r\n this.loggedIn = false;\r\n });\r\n\r\n this.mgr.events.addAccessTokenExpiring(e => {\r\n console.log(\"Access token expiring.\" + e);\r\n });\r\n\r\n this.mgr.events.addAccessTokenExpired(e => {\r\n console.log(\"Access token expired.\");\r\n this._errorService.openErrorPopup(\"Your access token has expired.\");\r\n this.logout(true);\r\n });\r\n }\r\n\r\n\r\n\r\n logout(isTimeout?: boolean) {\r\n\r\n // try {\r\n // const accessTokenApiUrl = appsettings.accessTokenApiUrl;\r\n // const signoutCallback = appsettings.signoutCallback;\r\n // const storedData = this._storeService.getStoredData();\r\n // const idToken = storedData ? storedData.id_token : \"\";\r\n // const profileRole = storedData.profile['role'];\r\n // const clientRoot = encodeURI(appsettings.clientRoot);\r\n // const timeout = isTimeout ? \"Timeout\" : \"\";\r\n // const state = profileRole + timeout;\r\n\r\n // const redirectURL = `${accessTokenApiUrl}/connect/endsession?id_token_hint=${idToken}&post_logout_redirect_uri=${clientRoot}${signoutCallback}&state=${state}`;\r\n\r\n // // this._appInsightsService.clearUserId();\r\n // localStorage.clear();\r\n // sessionStorage.clear();\r\n // const cookies = document.cookie;\r\n\r\n // if (cookies != null || cookies != undefined) {\r\n // for (let i = 0; i < cookies.split(\";\").length; ++i) {\r\n // const myCookie = cookies[i];\r\n // if (myCookie != null || myCookie != undefined) {\r\n // const pos = myCookie.indexOf(\"=\");\r\n // const name = pos > -1 ? myCookie.substr(0, pos) : myCookie;\r\n // document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n // }\r\n // }\r\n // }\r\n\r\n // // this._appInsightsService.flush();\r\n // window.location.href = redirectURL;\r\n // } catch (error) {\r\n // console.log(error);\r\n // }\r\n\r\n \r\n }\r\n\r\n public resendCredentials(userId: string): Observable {\r\n // TODO replace with backend call\r\n return new Observable(observer => {\r\n observer.next(userId);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public getLoginHelp(userId: string): Observable {\r\n // TODO replace with backend call\r\n return new Observable(observer => {\r\n observer.next(userId);\r\n observer.complete();\r\n });\r\n }\r\n\r\n public resendCorporateMagicLink(\r\n userId: string,\r\n corporateId: string\r\n ): Observable {\r\n const data = {\r\n UserId: userId,\r\n CorporateId: corporateId\r\n };\r\n const url =\r\n appsettings.serverUrl +\r\n appsettings.endPoints.rolesUrl +\r\n \"/corporate/invitation\";\r\n return this._httpClient.post(url, data);\r\n }\r\n\r\n public resendAdminMagicLink(userId: string): Observable {\r\n const data = {\r\n UserId: userId\r\n };\r\n const url =\r\n appsettings.serverUrl +\r\n appsettings.endPoints.rolesUrl +\r\n \"/admin/invitation\";\r\n return this._httpClient.post(url, data);\r\n }\r\n\r\n public resendCandidateMagicLink(offerId: string): Observable {\r\n const url =\r\n appsettings.serverUrl +\r\n appsettings.endPoints.offersUrl +\r\n `/${offerId}/tryresendemail`;\r\n return this._httpClient.get(url);\r\n }\r\n\r\n isLoggedInObs(): Observable {\r\n return from(this.mgr.getUser()).pipe(map(\r\n user => {\r\n if (user) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n );\r\n }\r\n isAuthenticated() {\r\n if (this._storeService.getStoredData()) {\r\n if (this._storeService.getStoredData().id_token && this._storeService.getStoredData().profile['role']) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n clearState() {\r\n this.mgr\r\n .clearStaleState()\r\n .then(function() {\r\n console.log(\"clearStateState success\");\r\n })\r\n .catch(function(e) {\r\n console.log(\"clearStateState error\", e.message);\r\n });\r\n }\r\n\r\n getUser() {\r\n this.mgr\r\n .getUser()\r\n .then(user => {\r\n this.currentUser = user;\r\n this.userLoadeded.next(user);\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n removeUser() {\r\n this.mgr\r\n .removeUser()\r\n .then(() => {\r\n this.userLoadeded.next(null);\r\n console.log(\"user removed\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n startProfileSigninMainWindow() {\r\n var queryParams:any = {};\r\n queryParams.p = \"exit\";\r\n queryParams.et = \"profile\";\r\n this.mgr\r\n .signinRedirect({ extraQueryParams: queryParams})\r\n .then(function() {\r\n console.log(\"signinRedirect done\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n startSigninMainWindow() {\r\n this.mgr\r\n .signinRedirect({ data: \"some data\" })\r\n .then(function() {\r\n console.log(\"signinRedirect done\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n endSigninMainWindow() {\r\n this.mgr\r\n .signinRedirectCallback()\r\n .then(function(user) {\r\n console.log(\"signed in\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n signinRedirectCallbackHandler() {\r\n console.log(`signinRedirectCallbackHandler running`);\r\n\r\n return from(this.mgr.signinRedirectCallback()).pipe(map(\r\n user => {\r\n if (user) {\r\n this.isLoggedIn.next(true);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n })\r\n );\r\n\r\n\r\n // this.mgr\r\n // .signinRedirectCallback()\r\n // .then(user => {\r\n // this.isLoggedIn.next(true);\r\n\r\n // // switch (user.profile.role) {\r\n // // case userRole.CAT_MANAGER:\r\n // // this._routingService.corporateDashboard();\r\n // // break;\r\n // // case userRole.HR_ADMIN:\r\n // // this._routingService.templatesDashboard();\r\n // // break;\r\n // // case userRole.SYS_ADMIN:\r\n // // this._routingService.rolesDashboard();\r\n // // break;\r\n // // case userRole.HR_MANAGER:\r\n // // this._routingService.dashboard();\r\n // // break;\r\n // // case userRole.HR_RECRUITER:\r\n // // this._routingService.dashboard();\r\n // // break;\r\n // // case userRole.CANDIDATE:\r\n // // this._routingService.candidateReviewOffer();\r\n // // break;\r\n // // case userRole.USER:\r\n // // this._routingService.transitionAssistAllTasks();\r\n // // break;\r\n // // case userRole.HR_OPERATIONS:\r\n // // this._routingService.opsDashboard(); // TODO this dashboard has not been developed yet\r\n // // break;\r\n // // default:\r\n // // window.location.href = \"/content/memberonboarding/spa/home.html\";\r\n // // }\r\n // })\r\n // .catch(err => {\r\n // this._routingService.home();\r\n // console.error(\"User error: \" + err);\r\n // });\r\n }\r\n\r\n startSignoutMainWindow() {\r\n this.mgr\r\n .signoutRedirect()\r\n .then(function(resp) {\r\n console.log(\"signed out\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n endSignoutMainWindow() {\r\n this.mgr\r\n .signoutRedirectCallback()\r\n .then(function(resp) {\r\n console.log(\"signed out\");\r\n })\r\n .catch(function(err) {\r\n console.log(err);\r\n });\r\n }\r\n\r\n private _setAuthHeaders(user: any): void {\r\n this.authHeaders = new Headers();\r\n this.authHeaders.append(\r\n \"Authorization\",\r\n user.token_type + \" \" + user.access_token\r\n );\r\n if (this.authHeaders.get(\"Content-Type\")) {\r\n } else {\r\n this.authHeaders.append(\"Content-Type\", \"application/json\");\r\n }\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { UserManager, User, UserManagerSettings } from \"oidc-client\";\r\nimport { Constants } from \"../constants/constants\";\r\nimport appsettings from \"../../assets/appsettings.json\"\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { LoaderService } from \"./loader.service\";\r\nimport { LocalStorageService } from \"./local-storage.service\";\r\nimport { StoreService } from \"./storeService\";\r\nimport { AuthService } from 'src/app/services/auth.service';\r\n\r\nconst settings: UserManagerSettings = {\r\n authority: Constants.stsAuthority,\r\n client_id: Constants.clientId,\r\n redirect_uri: Constants.redirect_uri,\r\n post_logout_redirect_uri: Constants.post_logout_redirect_uri,\r\n response_type: \"id_token token\",\r\n scope: Constants.clientScope,\r\n silent_redirect_uri: Constants.silent_redirect_uri,\r\n automaticSilentRenew: true,\r\n accessTokenExpiringNotificationTime: 60,\r\n filterProtocolClaims: true,\r\n loadUserInfo: true,\r\n checkSessionInterval: 5000,\r\n monitorSession: true\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthenticationService {\r\n manager: UserManager = new UserManager(settings);\r\n user: any;\r\n\r\n constructor( \r\n private httpClient: HttpClient, \r\n private loader: LoaderService,\r\n private _localStorageService: LocalStorageService,\r\n private _storeService: StoreService,\r\n private authService: AuthService \r\n ) {\r\n\r\n this.manager.getUser().then(user => {\r\n console.log(\"USER: \",user)\r\n this.user = user;\r\n });\r\n this.manager.events.addUserLoaded(user => {\r\n console.log(`User loaded`)\r\n });\r\n this.manager.events.addAccessTokenExpiring(e => {\r\n console.log(\"Access token expiring.\" + e);\r\n });\r\n this.manager.events.addSilentRenewError(error => {\r\n console.log(\"Silent renew failed\")\r\n });\r\n this.manager.events.addUserSignedOut(() => {\r\n console.log(\"Signed out\")\r\n });\r\n //this.getToken();\r\n }\r\n\r\n // getToken(): string\r\n // {\r\n // if(this._localStorageService.get(\"rc-jwt\"))\r\n // {\r\n // return this._localStorageService.get(\"rc-jwt\")!;\r\n // }\r\n\r\n // this.loader.start();\r\n // const headers = new HttpHeaders().set(\r\n // \"Content-Type\",\r\n // \"application/x-www-form-urlencoded\"\r\n // );\r\n \r\n // const body = new URLSearchParams();\r\n\r\n // let user = \"Member\";\r\n \r\n // body.set(\"client_id\", \"urn:dev/af/afredcarpet\");\r\n // body.set(\"grant_type\", \"password\");\r\n\r\n // if(user == \"Member\")\r\n // {\r\n // body.set(\"username\", \"alexforbes\\\\ZwelinjaniDaniso\");\r\n // body.set(\"password\", \"Testing@1\");\r\n // }\r\n // if(user == \"HR\")\r\n // {\r\n // body.set(\"username\", \"alexforbes\\\\afrfprov3\");\r\n // body.set(\"password\", \"Password@01\");\r\n // }\r\n \r\n // body.set(\"scope\", \"email openid profile\");\r\n\r\n // const options = { headers: headers, responseType: \"json\" as const};\r\n \r\n // const url = `https://dev.secure.alexanderforbes.co.za/adfs/oauth2/token`;\r\n\r\n // this.httpClient.post(url, body, options).subscribe(\r\n // (resp: any) => {\r\n // this._localStorageService.set('rc-jwt', resp.access_token)\r\n // },\r\n // (err) => {\r\n // console.log(err);\r\n // }\r\n // );\r\n\r\n // this.loader.stop();\r\n // return this._localStorageService.get(\"rc-jwt\")!;\r\n // }\r\n\r\n getClaims(): Promise {\r\n return this.manager.getUser();\r\n }\r\n getUser(): User {\r\n return this.user;\r\n }\r\n getAuthorizationHeaderValue(): string {\r\n return `bearer ${this._storeService.getStoredData().id_token}`;\r\n }\r\n startAuthentication(): Promise {\r\n return this.manager.signinRedirect();\r\n }\r\n logout(isTimeout?: boolean) {\r\n try {\r\n\r\n this.user = this.authService.currentUser\r\n \r\n const accessTokenApiUrl = appsettings.accessTokenApiUrl;\r\n const signoutCallback = appsettings.signoutCallback;\r\n const idToken = this.user ? this.user.id_token : \"\";\r\n const profileRole = this.user.profile.role;\r\n const clientRoot = encodeURI(appsettings.clientRoot);\r\n const timeout = isTimeout ? \"Timeout\" : \"\";\r\n const state = profileRole + timeout;\r\n const redirectURL = `${accessTokenApiUrl}/connect/endsession?id_token_hint=${idToken}&post_logout_redirect_uri=${clientRoot}${signoutCallback}&state=${state}`;\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n const cookies = document.cookie;\r\n if (cookies != null || cookies != undefined) {\r\n for (let i = 0; i < cookies.split(\";\").length; ++i) {\r\n const myCookie = cookies[i];\r\n if (myCookie != null || myCookie != undefined) {\r\n const pos = myCookie.indexOf(\"=\");\r\n const name = pos > -1 ? myCookie.substr(0, pos) : myCookie;\r\n document.cookie = name + \"=;expires=Thu, 01 Jan 1970 00:00:00 GMT\";\r\n }\r\n }\r\n }\r\n localStorage.setItem(\"return_login\", this.user.profile.return_page);\r\n window.location.href = redirectURL;\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport appsettings from \"src/assets/appsettings.json\"\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from './error.service';\r\nimport { CandidateModel, DocumentModel, userDocumentModel } from '../../../src/app/shared/models/candidate.model';\r\nimport { GetCandidateByIdModel } from './service_models/candidate-models/get-candidate-by-id.model';\r\nimport { CandidateMapper } from './model-mappers/candidate-mapper.service';\r\nimport { StoreService } from './storeService';\r\nimport { GetCandidateActivityByIdModel } from './service_models/candidate-models/get-candidate-activity.model';\r\nimport { PabeSelection } from '../shared/models/pabe-selection.model';\r\nimport { DecisionDetails } from '../components/onboarding/candidate/candidate-decision-details/models/decision-details.model';\r\n\r\n\r\n\r\nexport class SignedOffer {\r\n id: string;\r\n signedDocId: string;\r\n comment: string;\r\n}\r\n\r\n@Injectable()\r\nexport class CandidateService implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n private _headers: HttpHeaders;\r\n\r\n offersUrl: string;\r\n candidatesUrl: string;\r\n candidateUrl: string;\r\n dashboardUrl: string;\r\n documentsUrl: string;\r\n docDownloadUrl: string;\r\n updateOffer: SignedOffer;\r\n fileToUploadCV: File;\r\n fileToUploadID: File;\r\n currentCandidate: CandidateModel;\r\n cvDocument: DocumentModel;\r\n idDocument: DocumentModel;\r\n userDocuments: userDocumentModel;\r\n\r\n\r\n constructor(private _http: HttpClient,\r\n private _errorService: ErrorService,\r\n private _mapper: CandidateMapper,\r\n private _storeService: StoreService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this.currentCandidate = new CandidateModel();\r\n this.cvDocument = new DocumentModel();\r\n this.idDocument = new DocumentModel();\r\n this.userDocuments = new userDocumentModel();\r\n this._configureEndpoints();\r\n }\r\n\r\n getAllCandidates(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile[\"CorporateId\"];\r\n const url = `${this.dashboardUrl}/${corpId}`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n getAllArchivedItems(): Observable { // TODO\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile[\"CorporateId\"];\r\n const url = `${this.dashboardUrl}/${corpId}/archive`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n\r\n getById(candidateId: string): Observable {\r\n const url = `${this.candidatesUrl}/`;\r\n return this._http.get(url + candidateId);\r\n }\r\n\r\n\r\n downloadOffer(id: string): Observable {\r\n const url = `${this.documentsUrl}/download/`;\r\n return this._http.get(url + id, { responseType: 'blob' });\r\n }\r\n\r\n public updateCandidate(candidate: CandidateModel, candidateId: string): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.candidatesUrl}/`;\r\n const data = this._mapper.mapUpdatePostModel(candidate, candidateId);\r\n\r\n return this._http.put(url + data.id + '/update', JSON.stringify(data), options);\r\n }\r\n\r\n public createCandidate(candidate: CandidateModel): Observable<{ id: string }> {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this.candidatesUrl}/create`;\r\n\r\n return this._http.post(url, JSON.stringify(candidate), options);\r\n }\r\n\r\n getCandidateDocuments(candidateId: string): Observable {\r\n // TODO implement backend call\r\n // remove this mock data\r\n\r\n return this.getById(candidateId);\r\n }\r\n\r\n getCandidateActivity(candidateId: string): Observable {\r\n const url = this.candidatesUrl;\r\n return this._http.get(`${url}/${candidateId}/activity`);\r\n\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.offersUrl = `${baseUrl}${endPoint.offersUrl}`;\r\n this.candidatesUrl = `${baseUrl}${endPoint.candidatesUrl}`;\r\n this.candidateUrl = `${baseUrl}${endPoint.candidateUrl}`;\r\n this.documentsUrl = `${baseUrl}${endPoint.documentsUrl}`;\r\n this.dashboardUrl = `${baseUrl}${endPoint.dashboardUrl}`;\r\n }\r\n\r\n\r\n openFile(offerDocumentId: string) {\r\n this._subscriptions.push(this.downloadOffer(offerDocumentId).subscribe(res => {\r\n const newBlob = new Blob([res], { type: 'application/pdf' });\r\n \r\n // We are not supporting IE\r\n // if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n // }\r\n // For other browsers:\r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.download = this.currentCandidate.cvDocumentId;\r\n // this is necessary as link.click() does not work on the latest Firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n\r\n }, error => {\r\n this._errorService.openErrorPopup('An error occured!');\r\n }));\r\n }\r\n\r\n\r\n updateDetail(details: DecisionDetails): Observable {\r\n const data = {\r\n titleId: details.personalDetails.titleId,\r\n firstName: details.personalDetails.firstName,\r\n surname: details.personalDetails.lastname,\r\n nationalityId: details.personalDetails.nationalityId,\r\n identityTypeId: details.personalDetails.identityTypeId,\r\n identityNumber: details.personalDetails.identityValue,\r\n genderId: details.personalDetails.genderId,\r\n email: {\r\n id: details.contactDetails.email.id,\r\n value: details.contactDetails.email.value\r\n },\r\n contactNumber: {\r\n id: details.contactDetails.contactNumber.id,\r\n value: details.contactDetails.contactNumber.value\r\n }\r\n };\r\n const url = `${this.candidateUrl}/acceptdetails`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n acceptOffer(): Observable {\r\n const data = {\r\n comments: sessionStorage.getItem('feedback'),\r\n payslip: JSON.parse(sessionStorage.getItem('payslipOptions'))\r\n };\r\n\r\n const url = `${this.candidatesUrl}/AcceptOffer`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n queryOffer(): Observable {\r\n const data = {\r\n offerId: sessionStorage.getItem('offerId'),\r\n comments: sessionStorage.getItem('feedback')\r\n };\r\n\r\n const url = `${this.candidatesUrl}/QueryOffer`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n extendOffer(offerId: string, newExpDate: Date, rescindReasonId: string): Observable {\r\n const data = {\r\n 'offerId': offerId,\r\n 'reason': rescindReasonId,\r\n 'extendedDate': newExpDate,\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n\r\n const url = `${this.offersUrl}/Extend`;\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n rescindOffer(offerId: string, reasonId: string): Observable {\r\n const data = {\r\n 'offerId': offerId,\r\n 'reason': reasonId,\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n\r\n const url = `${this.offersUrl}/Rescind`;\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n signOffer(offerId: string, acceptedOfferFileId: string): Observable {\r\n const data = {\r\n 'offerId': offerId,\r\n 'signedDocId': acceptedOfferFileId,\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n\r\n const url = `${this.candidatesUrl}/SignOffer`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n setupDisplayOfferDetails(offerDetails: any) {\r\n\r\n if (offerDetails.candidateIdNumber) {\r\n offerDetails.candidateIdPassportLabel = 'Identity Number';\r\n } else {\r\n offerDetails.candidateIdPassportLabel = 'Passport Number';\r\n }\r\n\r\n offerDetails.candidateContactChannels.forEach((element) => {\r\n if (element.type === 'email') {\r\n offerDetails.candidateEmailAddress = element.value;\r\n } else {\r\n offerDetails.candidateCellPhone = element.value;\r\n }\r\n });\r\n return offerDetails;\r\n }\r\n\r\n addItemsToArchive(itemsForArchiving: any[]) {\r\n\r\n const itemsToBeArchived: any[] = [];\r\n itemsForArchiving.forEach((user) => {\r\n itemsToBeArchived.push(user.candidateId);\r\n });\r\n\r\n const itemsToArchive = {\r\n 'candidateIDs': itemsToBeArchived,\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n const url = `${this.candidatesUrl}/archive`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, itemsToArchive, options);\r\n\r\n }\r\n\r\n reinstateItemsToArchive(itemsForArchiving: any[]) {\r\n const itemsToBeArchived: any[] = [];\r\n const offersToBeArchived: any[] = [];\r\n\r\n const candidates = itemsForArchiving.filter(x => x.id);\r\n const offers = itemsForArchiving.filter(x => x.offerId);\r\n\r\n candidates.forEach((user) => {\r\n itemsToBeArchived.push(user.id);\r\n });\r\n\r\n offers.forEach((user) => {\r\n itemsToBeArchived.push(user.candidateId);\r\n });\r\n offers.forEach((user) => {\r\n offersToBeArchived.push(user.offerId);\r\n });\r\n\r\n const itemsToArchive = {\r\n 'candidateIDs': itemsToBeArchived,\r\n 'offerIDs': offersToBeArchived,\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n const url = `${this.candidatesUrl}/Archive`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, itemsToArchive, options);\r\n\r\n }\r\n\r\n public savePabeSelection(candidateId: string, pabeSelection: PabeSelection, step: number): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const data = {\r\n step: step,\r\n pabeSelection: pabeSelection\r\n };\r\n\r\n const options = { headers: headers };\r\n const url = `${this.candidatesUrl}/${candidateId}/pabe`;\r\n\r\n return this._http.post(url, JSON.stringify(data), options);\r\n }\r\n\r\n getPabeSelection(candidateId: string): Observable<{ step: number, pabeSelection: PabeSelection }> {\r\n const url = `${this.candidatesUrl}/${candidateId}/pabe`;\r\n return this._http.get(url);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject } from 'rxjs';\r\nimport appsettings from \"../../assets/appsettings.json\"\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { ErrorService } from './error.service';\r\nimport { LookupsModel } from '../shared/models/lookups';\r\nimport { BillGroupsModel } from '../shared/models/bill-groups';\r\nimport { medicalAidPlans } from '../constants/medicalAidPlans';\r\nimport {AuthenticationService} from \"./authentication.service\";\r\nimport { DashboardOfferModel } from '../shared/models/dashboard-offer.model';\r\nimport { DashboardCandidateModel } from '../shared/models/dashboard-candidate.model';\r\n\r\nexport class Candidate {\r\n candidateId: string;\r\n cadidateCellPhone: string;\r\n candidateFirstName: string;\r\n candidateLastName: string;\r\n idNumber: string;\r\n offerId: string;\r\n accessToken: string;\r\n candidateEmailAddress: string;\r\n pin: string;\r\n}\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContentService implements OnDestroy {\r\n\r\n private _headers: HttpHeaders;\r\n private _subscriptions = new Array();\r\n\r\n public lookupsCached = new BehaviorSubject(false);\r\n public logoInPreviewMode: boolean;\r\n public previewLogoUrl: any;\r\n public currentHeaderLogoUrl: string;\r\n public currentUser: { corporateId: string, firstname: string, lastname: string, roleId: number, userId: string, username: string };\r\n public offerDocId: string;\r\n public offerDocName: string;\r\n public lookupsUrl: string;\r\n public billGroupsUrl: string;\r\n public lookupsRolesUrl: string;\r\n public currentCandidate: Candidate;\r\n public acceptedOfferFile: any;\r\n public acceptedOfferFileId: any;\r\n public expiryDate: string | null = null;\r\n public corporateName: string;\r\n public dashboardItems: {\r\n draftCandidates: Array,\r\n newCandidates: Array,\r\n pendingOffers: Array,\r\n acceptedOffers: Array,\r\n queriedOffers: Array,\r\n expiredOffers: Array\r\n };\r\n\r\n corp: any;\r\n\r\n\r\n constructor(private _http: HttpClient,\r\n private _errorService: ErrorService,\r\n private auth: AuthenticationService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this._configureEndpoints();\r\n this.currentCandidate = new Candidate(); // TODO remove or refactor\r\n }\r\n\r\n previewLogo(url: string) {\r\n this.previewLogoUrl = url;\r\n this.logoInPreviewMode = true;\r\n }\r\n\r\n resetLogo() {\r\n document.getElementById('logo')!.setAttribute('src', this.currentHeaderLogoUrl);\r\n this.logoInPreviewMode = false;\r\n }\r\n\r\n public getLookups(): Observable {\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = { headers: headers };\r\n return this._http.get(this.lookupsUrl + '?lookupType=Lookups',options);\r\n }\r\n\r\n public getBillGroups(schemeNumber: any): Observable {\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = { headers: headers };\r\n return this._http.get(this.billGroupsUrl + \"?schemeNumber=\" + schemeNumber, options);\r\n }\r\n\r\n public getRoles(): Observable {\r\n const headers = new HttpHeaders().set('Authorization', this.auth.getAuthorizationHeaderValue());\r\n const options = { headers: headers };\r\n return this._http.get(this.lookupsRolesUrl,options);\r\n }\r\n\r\n private _configureEndpoints() {\r\n const theUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.lookupsUrl = `${theUrl}${endPoint.lookupsUrl}`;\r\n this.billGroupsUrl = `${theUrl}${endPoint.billGroupsUrl}`;\r\n this.lookupsRolesUrl = `${theUrl}${endPoint.lookupsRolesUrl}`;\r\n }\r\n\r\n public cacheDropdownOptions() {\r\n this._subscriptions.push(this.getRoles().subscribe((resp) => {\r\n if (resp) {\r\n const rolesArr = Object.entries(resp).map(x => ({ value: x[0], label: x[1]!.toString() }));\r\n localStorage.setItem('roles', JSON.stringify(rolesArr));\r\n } else {\r\n this._errorService.openErrorPopup('An error occured while extracting the roles.');\r\n }\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured while extracting the roles.');\r\n }));\r\n\r\n let medicalPlansArr: any[] = [];\r\n for(let i = 0; i < medicalAidPlans[0].selectedMAP.length; i++) {\r\n for(let j = 0; j < medicalAidPlans[0].selectedMAP[i].options.length; j++) {\r\n medicalPlansArr.push({\"label\": medicalAidPlans[0].selectedMAP[i].options[j].optionName, \"value\": medicalAidPlans[0].selectedMAP[i].options[j].id})\r\n }\r\n }\r\n\r\n this._subscriptions.push(this.getLookups().subscribe((resp) => {\r\n if (resp) {\r\n\r\n localStorage.setItem('medicalPlans', JSON.stringify(medicalPlansArr));\r\n\r\n if (resp.genders) {\r\n const genderArr = Object.entries(resp.genders).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('genders', JSON.stringify(genderArr));\r\n }\r\n if (resp.races) {\r\n const racesArr = Object.entries(resp.races).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('races', JSON.stringify(racesArr));\r\n }\r\n if (resp.titles) {\r\n const titlesArr = Object.entries(resp.titles).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('titles', JSON.stringify(titlesArr));\r\n }\r\n if (resp.maritalStatus) {\r\n const maritalStatusArr = Object.entries(resp.maritalStatus).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('maritalStatus', JSON.stringify(maritalStatusArr));\r\n }\r\n if (resp.nationality) {\r\n const nationalityArr = Object.entries(resp.nationality).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('nationality', JSON.stringify(nationalityArr));\r\n }\r\n if (resp.identityTypes) {\r\n const identityTypesArr = Object.entries(resp.identityTypes).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('identityTypes', JSON.stringify(identityTypesArr));\r\n }\r\n if (resp.companyTypes) {\r\n const companyTypeArray = Object.entries(resp.companyTypes).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('companyTypes', JSON.stringify(companyTypeArray));\r\n }\r\n if (resp.industries) {\r\n const industryArray = Object.entries(resp.industries).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('industry', JSON.stringify(industryArray));\r\n }\r\n if (resp.fileTypes) {\r\n const fileTypesArr = Object.entries(resp.fileTypes).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('fileTypes', JSON.stringify(fileTypesArr));\r\n }\r\n if (resp.userDocumentCategories) {\r\n const documentCategoriesArray = Object.entries(resp.userDocumentCategories).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('documentCategories', JSON.stringify(documentCategoriesArray));\r\n }\r\n if (resp.reasonExtend) {\r\n const reasonExtendArr = Object.entries(resp.reasonExtend).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('extendReasons', JSON.stringify(reasonExtendArr));\r\n }\r\n if (resp.reasonRescind) {\r\n const reasonRescindArr = Object.entries(resp.reasonRescind).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('rescindReasons', JSON.stringify(reasonRescindArr));\r\n }\r\n if (resp.sources) {\r\n const savingsSourcesArr = Object.entries(resp.sources).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('savingsSources', JSON.stringify(savingsSourcesArr));\r\n }\r\n if (resp.relationshipTypes) {\r\n const savingsSourcesArr = Object.entries(resp.relationshipTypes).map(x => ({ value: x[0], label: x[1].toString() }));\r\n localStorage.setItem('relationshipTypes', JSON.stringify(savingsSourcesArr));\r\n }\r\n\r\n localStorage.setItem('contentSet', 'true');\r\n this.lookupsCached.next(true);\r\n\r\n } else {\r\n this._errorService.openErrorPopup('An error occured while extracting the lookups.');\r\n this.auth.logout();\r\n }\r\n }, (error) => {\r\n this._errorService.openErrorPopup('An error occured while extracting the lookups.');\r\n this.auth.logout();\r\n }));\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { ErrorService } from './error.service';\r\nimport { StoreService } from './storeService';\r\nimport { environment } from '../../../src/environments/environment';\r\nimport { Observable } from 'rxjs';\r\nimport { BenefitProvider } from '../components/onboarding/hr-operations/company/corporate-benefits/models/company-benefit-provider.model';\r\nimport { IRiskDataInput } from '../components/onboarding/hr-operations/company/interfaces/risk-data-input.interface';\r\nimport { IRiskDataOutput } from '../components/onboarding/hr-operations/company/interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CorporateBenefitsService {\r\n\r\n corporateBenefitUrl: string;\r\n\r\n public constructor(private _http: HttpClient, private _errorService: ErrorService, private _storeService: StoreService) {\r\n this._configureEndpoints();\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = environment.serverUrl;\r\n const endPoint = environment.endPoints;\r\n this.corporateBenefitUrl = `${baseUrl}${endPoint.corporateUrl}`;\r\n }\r\n\r\n public createProvider(data: BenefitProvider): Observable<{ id: string }> {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.corporateBenefitUrl}/corporatebenefits`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n public getMedicalAidProvider(): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile['CorporateId'];\r\n const url = `${this.corporateBenefitUrl}/${corpId}/benefits/medicalaidproviders`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n public getGapCoverProvider(): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile['CorporateId'];\r\n const url = `${this.corporateBenefitUrl}/${corpId}/benefits/gapcoverproviders`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n public getPackageOptions(): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile['CorporateId'];\r\n const url = `${this.corporateBenefitUrl}/${corpId}/corporateriskpackagesoptionprice`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n public postPackageOptions(data: IRiskDataOutput): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers };\r\n const url = `${this.corporateBenefitUrl}/corporateriskpackagesoptionprice`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport appsettings from \"../../assets/appsettings.json\"\r\nimport { Corporate } from '../components/onboarding/users/corporate/models/corporate.model';\r\nimport { CorporateMapper } from '../services/model-mappers/corporate-mapper.service';\r\nimport { CreateCorporateModel } from './service_models/corporate_models/create-corporate.model';\r\nimport { GetCorporateById } from './service_models/corporate_models/get-corporate-by-id.model';\r\nimport { StoreService } from './storeService';\r\nimport { ConstantsRootObject } from './service_models/corporate_models/get-corporate-risk-constants';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CorporateService {\r\n corporateUrl: string;\r\n templatesUrl: string;\r\n\r\n constructor(private _http: HttpClient, private _mapper: CorporateMapper, private _storeService: StoreService) {\r\n this._configureEndpoints();\r\n }\r\n\r\n public updateCorpBasics(corpId: string, data: any): Observable {\r\n const url = `${this.corporateUrl}/${corpId}/updateCorporateBasics`;\r\n return this._http.put(url, data);\r\n }\r\n\r\n public getAllCorporates(): Observable {\r\n const url = `${this.corporateUrl}`;\r\n return this._http.get(url);\r\n }\r\n\r\n createCorporate(isDraft: boolean, corporateToCreate: Corporate | undefined): Observable {\r\n let data: CreateCorporateModel | undefined;\r\n\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.corporateUrl}/create`;\r\n data = this._mapper.mapCreatePostModel(corporateToCreate);\r\n if(data)\r\n {\r\n data.isDraft = isDraft;\r\n }\r\n return this._http.post(url, data, options);\r\n } \r\n\r\n updateCorporate(corporateModel: Corporate | undefined): Observable {\r\n let data: CreateCorporateModel | undefined;\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corporateId = corporateModel?.basics?.id;\r\n const url = `${this.corporateUrl}/`;\r\n data = this._mapper.mapCreatePostModel(corporateModel);\r\n return this._http.put(url + corporateId + '/update', data, options);\r\n }\r\n\r\n getTemplateCorporateSettings(corporateId: string): Observable {\r\n const url = `${this.templatesUrl}/offers/initiatecreate/${corporateId}`;\r\n return this._http.get(url);\r\n }\r\n\r\n getGroupDetailsById(id: string): Observable {\r\n const url = `${this.corporateUrl}/`;\r\n return this._http.get(url + id);\r\n }\r\n\r\n getSubGroupDetailsById(id: string): Observable {\r\n const url = `${this.corporateUrl}/`;\r\n return this._http.get(`${url}?parentId=${id}`);\r\n }\r\n\r\n updateGroupBasics(basicsModel: any): Observable {\r\n // TODO implement backend call\r\n return new Observable((observer) => {\r\n observer.next(basicsModel);\r\n observer.complete();\r\n });\r\n }\r\n\r\n updateGroupRetirement(basicsModel: any): Observable {\r\n // TODO implement backend call\r\n return new Observable((observer) => {\r\n observer.next(basicsModel);\r\n observer.complete();\r\n });\r\n }\r\n\r\n createCorporateRetirementBenefit(createOptions: { fundOption: string, fundOffering: string, fundType: string }) {\r\n // TODO implement backend call\r\n return new Observable((observer) => {\r\n observer.next('BenefitName');\r\n observer.complete();\r\n });\r\n }\r\n\r\n searchForCorporateRetirementBenefit(searchName: string): Observable<{ selectedOption: any, case: string, name: string }> {\r\n // TODO implement backend call\r\n return new Observable((observer) => {\r\n const resp = {\r\n selectedOption: searchName,\r\n case: 'comprehensive',\r\n name: searchName\r\n };\r\n observer.next(resp);\r\n observer.complete();\r\n });\r\n }\r\n\r\n getMedicalAidProvider(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const corpId = this._storeService.getStoredData().profile['CorporateId'];\r\n const url = `${this.corporateUrl}/${corpId}/benefits/medicalaidproviders`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = `${appsettings.serverUrl}`;\r\n const endPoint = `${appsettings.endPoints}`;\r\n this.corporateUrl = `${baseUrl}${appsettings.endPoints.corporateUrl}`;\r\n this.templatesUrl = `${baseUrl}${appsettings.endPoints.templatesUrl}`;\r\n }\r\n\r\n\r\n getRiskConstants(): Observable {\r\n const url = `${this.corporateUrl}/constants/riskpackagecoverconstants`;\r\n return this._http.get(url);\r\n }\r\n\r\n getRiskPackageCovers(corpId:any): Observable {\r\n const url = `${this.corporateUrl}/${corpId}/corporateriskpackages`;\r\n return this._http.get(url);\r\n }\r\n\r\n public sendOTP(corpId:any, data: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.corporateUrl}/${corpId}/security`;\r\n return this._http.put(url, data, options);\r\n }\r\n\r\n getOTPChannel(corpId: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.corporateUrl}/${corpId}/security`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { environment } from '../../../src/environments/environment';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { ErrorService } from './error.service';\r\nimport { StoreService } from './storeService';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DocumentService implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n\r\n documentsUrl: string;\r\n docDownloadUrl: string;\r\n fileToUpload: File;\r\n private _headers: HttpHeaders;\r\n\r\n\r\n public constructor(private _http: HttpClient, private _errorService: ErrorService, private _storeService: StoreService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this._configureEndpoints();\r\n }\r\n\r\n\r\n downloadDocument(id: string): Observable {\r\n const url = `${this.documentsUrl}/download/${id}`;\r\n return this._http.get(url, { responseType: 'blob' });\r\n }\r\n\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = environment.serverUrl;\r\n const endPoint = environment.endPoints;\r\n this.documentsUrl = `${baseUrl}${endPoint.documentsUrl}`;\r\n }\r\n\r\n openFile(documentId: string, fileName: string = 'default') {\r\n this._subscriptions.push(this.downloadDocument(documentId)\r\n .subscribe((res) => {\r\n\r\n const newBlob = new Blob([res], { type: 'application/pdf' });\r\n if (window.navigator && window.navigator['msSaveOrOpenBlob']) {\r\n window.navigator['msSaveOrOpenBlob'](newBlob);\r\n return;\r\n }\r\n\r\n // For other browsers:\r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n const link = document.createElement('a');\r\n link.href = data;\r\n link.download = fileName;\r\n // this is necessary as link.click() does not work on the latest Firefox\r\n link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\r\n\r\n setTimeout(function () {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n\r\n }, error => {\r\n this._errorService.openErrorPopup('An error occured!');\r\n }\r\n ));\r\n }\r\n\r\n openDoc(url) {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Accept', 'application/pdf');\r\n const options = { headers: headers, 'responseType': 'blob' as 'json' };\r\n const _url = url;\r\n return this._http.get(_url, options);\r\n }\r\n\r\n\r\n openDocument(url) {\r\n this._subscriptions.push(this.openDoc(url).subscribe((res: any) => {\r\n const newBlob = new Blob([res], { type: 'application/pdf' });\r\n if (window.navigator && window.navigator['msSaveOrOpenBlob']) {\r\n window.navigator['msSaveOrOpenBlob'](newBlob);\r\n return;\r\n }\r\n const data = window.URL.createObjectURL(newBlob);\r\n localStorage.setItem('blob', data);\r\n return data;\r\n }, (error) => {\r\n this._errorService.openErrorPopup(error.message);\r\n }));\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ErrorService {\r\n\r\n public isErrorVisible: boolean;\r\n public errorMessage: string | null;\r\n\r\n constructor() {\r\n }\r\n\r\n openErrorPopup(errorMessage: string) {\r\n this.errorMessage = errorMessage;\r\n this.isErrorVisible = true;\r\n }\r\n\r\n closeErrorPopup() {\r\n\r\n //get element\r\n const el = document.getElementById(\"box\")!;\r\n //create event\r\n el.dispatchEvent(\r\n new CustomEvent('logoutAfterClose', {\r\n bubbles: true,\r\n detail: {\r\n name: \"logoutAfterClose\"\r\n }\r\n })\r\n );\r\n\r\n this.errorMessage = null; \r\n this.isErrorVisible = false;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { PayslipCalculationsService } from '../../../src/app/services/payslip-calculations.service';\r\nimport { RetirementState } from '../../../src/app/shared/models/retirement-state';\r\nimport { ErrorService } from '../../../src/app/services/error.service';\r\nimport { LoaderService } from '../../../src/app/services/loader.service';\r\nimport { GetOfferByIdModel } from './service_models/offer_models/get-offer-by-id.model';\r\nimport { PabeSelection } from '../shared/models/pabe-selection.model';\r\nimport { GetCandidateByIdModel } from './service_models/candidate-models/get-candidate-by-id.model';\r\nimport { Option } from '../../../src/app/services/service_models/offer_models/get-offer-by-id.model';\r\nimport { CandidateService } from './candidate.service';\r\nimport { GetCorporateById } from './service_models/corporate_models/get-corporate-by-id.model';\r\nimport { CorporateService } from './corporate.service';\r\nimport { StoreService } from './storeService';\r\nimport { environment } from '../../../src/environments/environment';\r\nimport { CandidateCacheService } from '../components/onboarding/candidate/candidate-cache.service';\r\nimport { insuranceOptions } from '../constants/insurances';\r\nimport { OfferService } from './offer.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExploreOfferService implements OnDestroy {\r\n\r\n private _subscriptions = new Array();\r\n\r\n offer: GetOfferByIdModel;\r\n candidate: GetCandidateByIdModel;\r\n corpSettings: GetCorporateById;\r\n selection: PabeSelection;\r\n hasExistingSavings: boolean;\r\n\r\n // TODO delete all below\r\n retirementOptions: number[];\r\n costToCompany: number;\r\n pensionableSalary: number;\r\n candidateAge: number;\r\n candidateGender: any;\r\n startingDate: Date;\r\n retirementContributionsDefault: number;\r\n retirementState: RetirementState;\r\n offerId: string;\r\n offersUrl: string;\r\n candidateUrl: string;\r\n corporateUrl: string;\r\n isPabeData: boolean = true;\r\n\r\n\r\n constructor(private _calcService: PayslipCalculationsService,\r\n private _candidateCache: CandidateCacheService,\r\n private _offerService: OfferService,\r\n private _candidateService: CandidateService,\r\n private _corpService: CorporateService,\r\n private _loader: LoaderService,\r\n private _errorService: ErrorService,\r\n private _storeService: StoreService) {\r\n\r\n this._configureEndpoints();\r\n\r\n //this._loader.start();\r\n this._subscriptions.push(this._candidateCache.dataCached.subscribe((hasCache) => {\r\n if (hasCache) {\r\n this.initialize();\r\n //this._loader.stop();\r\n }\r\n }));\r\n }\r\n\r\n private initialize() {\r\n this.offer = this._candidateCache.currentOffer;\r\n this.candidate = this._candidateCache.currentCandidate;\r\n this.corpSettings = this._candidateCache.currentCorporate;\r\n this.initSelection();\r\n // this._loader.start();\r\n // this._subscriptions.push(this._offerService.getPabeSelection(this.offer.id, this.isPabeData).subscribe((state) => {\r\n // if (state && state.pabeSelection) {\r\n // try {\r\n // this.selection = state.pabeSelection;\r\n // this.hasExistingSavings = state.pabeSelection.existingSavings ? true : false;\r\n // } catch {\r\n // this.initSelection();\r\n // }\r\n // } else {\r\n // this.initSelection();\r\n // }\r\n // this._loader.stop();\r\n // }, (error) => {\r\n // this.initSelection();\r\n // this._loader.stop();\r\n // this._errorService.openErrorPopup('Failed to get PABE state.');\r\n // }));\r\n\r\n }\r\n\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = environment.serverUrl;\r\n const endPoint = environment.endPoints;\r\n this.offersUrl = `${baseUrl}${endPoint.offersUrl}`;\r\n this.candidateUrl = `${baseUrl}${endPoint.candidatesUrl}`;\r\n this.offersUrl = `${baseUrl}${endPoint.offersUrl}`;\r\n this.corporateUrl = `${baseUrl}${endPoint.corporateUrl}`;\r\n }\r\n\r\n getCandidate() {\r\n // this._loader.start();\r\n this._subscriptions.push(this._candidateService.getById(this.offer.candidateId)\r\n .subscribe((candidate) => {\r\n this.candidate = candidate;\r\n // this._loader.stop();\r\n }, (error) => {\r\n // this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get candidate data.');\r\n }\r\n ));\r\n }\r\n\r\n getCorpSettings() {\r\n this._loader.start();\r\n const corpId = this._storeService.getStoredData().profile['CorporateId'];\r\n\r\n this._subscriptions.push(this._corpService.getGroupDetailsById(corpId).subscribe((corp) => {\r\n this.corpSettings = corp;\r\n this.initSelection();\r\n this._loader.stop();\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to get corporate settings.');\r\n }));\r\n }\r\n\r\n\r\n private initSelection() {\r\n if (this.offer && this.offer.offerData) {\r\n this.retirementOptions = this.offer.offerData.earnings[0].pensionPercentageOptions;\r\n\r\n this.selection = {\r\n pensionableSalaryPercentage: this.getDefaultPensionableSalaryPercent(),\r\n existingSavings: null,\r\n investmentsPercentage: 100,\r\n retirement: {\r\n memberContribution: this.getDefaultMemberContributionPercent(),\r\n voluntaryContribution: this.getDefaultVoluntaryContribution(),\r\n employerContribution: this.getEmployerContributionToMedicalAid()\r\n },\r\n medicalAid: {\r\n isGapCoverEnabled: false,\r\n gapCoverOption: null,\r\n isUsingMedicalAid: true,\r\n medicalPlan: this._mapMedicalPlan(this.getInitialMedicalAidPlan()),\r\n numberOfChildDependants: 0,\r\n numberOfAdultDependants: 0,\r\n employerContribution: this.getEmployerContributionToMedicalAid()\r\n },\r\n insurance: {\r\n doesRequireInsuranceForSpouse: false,\r\n memberInsurances: null,\r\n spouseInsurances: null\r\n }\r\n };\r\n\r\n this.initInsurance();\r\n }\r\n }\r\n\r\n getInitialGapCoverOption(): Option {\r\n if (this.offer &&\r\n this.offer.offerData &&\r\n this.offer.offerData.wellbeing &&\r\n this.offer.offerData.wellbeing.medicalAid &&\r\n this.offer.offerData.wellbeing.medicalAid.gapCover &&\r\n this.offer.offerData.wellbeing.medicalAid.gapCover.isEnabled &&\r\n this.offer.offerData.wellbeing.medicalAid.gapCover.options &&\r\n this.offer.offerData.wellbeing.medicalAid.gapCover.options.length > 0) {\r\n\r\n const enabledOptions = this.offer.offerData.wellbeing.medicalAid.gapCover.options\r\n .filter(x => x.isSelected == true);\r\n\r\n return {\r\n isSelected: true,\r\n providerName: enabledOptions[0].providerName,\r\n name: enabledOptions[0].name,\r\n amount: enabledOptions[0].amount\r\n };\r\n\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getInitialMedicalAidPlan(): Option {\r\n if (this.offer &&\r\n this.offer.offerData &&\r\n this.offer.offerData.wellbeing &&\r\n this.offer.offerData.wellbeing.medicalAid &&\r\n this.offer.offerData.wellbeing.medicalAid.planOptions) {\r\n\r\n const enabledOptions = this.offer.offerData.wellbeing.medicalAid.planOptions\r\n .filter(x => x.isSelected == true);\r\n\r\n return {\r\n isSelected: true,\r\n providerName: enabledOptions[0].providerName,\r\n name: enabledOptions[0].name,\r\n amount: enabledOptions[0].amount\r\n };\r\n\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n private _mapMedicalPlan(option: Option): { providerName: string, name: string, amount: number } {\r\n return {\r\n providerName: option.providerName,\r\n name: option.name,\r\n amount: option.amount\r\n };\r\n }\r\n\r\n calculateTotalDeductions(): number {\r\n return this._calcService.getTotalDeductions(this.offer, this.candidate, this.selection);\r\n }\r\n\r\n calculateTotalBenefits(): number {\r\n return this._calcService.getCompanyAdditionalBenefits(this.offer);\r\n }\r\n\r\n calculateTakeHomePay(): number {\r\n return this._calcService.getTakeHomePay(this.offer, this.candidate, this.selection);\r\n }\r\n\r\n calculateMontlyRetirementIncome(): number {\r\n return this._calcService.getMontlyRetirementIncome(this.offer, this.candidate, this.selection, this.retirementState);\r\n }\r\n\r\n private getDefaultPensionableSalaryPercent(): number {\r\n if (this.offer.offerData.earnings[0].pensionPercentageOptions.length == 1) {\r\n return this.offer.offerData.earnings[0].pensionPercentageOptions[0];\r\n } else if (this.offer.offerData.earnings[0].pensionPercentageOptions.length > 1) {\r\n const optionsCount = this.offer.offerData.earnings[0].pensionPercentageOptions.length;\r\n const midIndex = (optionsCount / 2).toFixed(0);\r\n return this.offer.offerData.earnings[0].pensionPercentageOptions[midIndex];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private getDefaultMemberContributionPercent(): number {\r\n if (this.offer.offerData.wellbeing.retirementPackages[0].hasMemberContribution &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].memberContributionPercentages &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].memberContributionPercentages.length > 0) {\r\n const optionsCount = this.offer.offerData.wellbeing.retirementPackages[0].memberContributionPercentages.length;\r\n const midIndex = Math.floor(optionsCount / 2);\r\n return this.offer.offerData.wellbeing.retirementPackages[0].memberContributionPercentages[midIndex];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n public getDefaultVoluntaryContribution(): number {\r\n if (this.offer.offerData.wellbeing.retirementPackages[0].hasAdditionalVoluntaryContribution &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].additionalVoluntaryContributionPercentages &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].additionalVoluntaryContributionPercentages.length > 0) {\r\n const optionsCount = this.offer.offerData.wellbeing.retirementPackages[0].additionalVoluntaryContributionPercentages.length;\r\n const midIndex = Math.floor(optionsCount / 2);\r\n return this.offer.offerData.wellbeing.retirementPackages[0].additionalVoluntaryContributionPercentages[midIndex];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n public getDefaultEmployerContribution(): number {\r\n if (this.offer.offerData.wellbeing.retirementPackages[0].hasEmployerContribution &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].employerContributionPercentages &&\r\n this.offer.offerData.wellbeing.retirementPackages[0].employerContributionPercentages.length > 0) {\r\n const optionsCount = this.offer.offerData.wellbeing.retirementPackages[0].employerContributionPercentages.length;\r\n const midIndex = Math.floor(optionsCount / 2);\r\n return this.offer.offerData.wellbeing.retirementPackages[0].additionalVoluntaryContributionPercentages[midIndex];\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private getEmployerContributionToMedicalAid(): number {\r\n try {\r\n return this.offer.offerData.wellbeing.retirementPackages[0].employerContributionPercentages[0];\r\n } catch {\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n private initInsurance() {\r\n try {\r\n this._calcService.setInsurancesAmounts(this.offer, this.selection);\r\n\r\n this.selection.insurance.memberInsurances = [];\r\n const pack = this.offer.offerData.wellbeing.riskPackage;\r\n const corpSettings = JSON.parse(this.corpSettings.riskData).packages.filter(x => x.name == pack.name)[0];\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.lifeCover.isEnabled &&\r\n corpSettings.options.lifeCover.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'life cover',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'life cover')[0].monthlyAmount,\r\n multipliedBy: pack.options.lifeCover.multiple ? pack.options.lifeCover.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.lifeCover.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.dreadDiseaseCover.isEnabled &&\r\n corpSettings.options.dreadDiseaseCover.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'dread disease cover',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'dread disease cover')[0].monthlyAmount,\r\n multipliedBy: pack.options.dreadDiseaseCover.multiple ? pack.options.dreadDiseaseCover.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.dreadDiseaseCover.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.disabilityLumpSum.isEnabled &&\r\n corpSettings.options.disabilityLumpSum.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'disability lump sum',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'disability lump sum')[0].monthlyAmount,\r\n multipliedBy: pack.options.disabilityLumpSum.multiple ? pack.options.disabilityLumpSum.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.disabilityLumpSum.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.disabilityIncomeProtection.isEnabled &&\r\n corpSettings.options.disabilityIncomeProtection.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'disability income protection',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'disability income protection')[0].monthlyAmount,\r\n multipliedBy: pack.options.disabilityIncomeProtection.multiple ? pack.options.disabilityIncomeProtection.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.disabilityIncomeProtection.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.temporaryTotalDisability.isEnabled &&\r\n corpSettings.options.temporaryTotalDisability.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'temporary total disability',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'temporary total disability')[0].monthlyAmount,\r\n multipliedBy: pack.options.temporaryTotalDisability.multiple ? pack.options.temporaryTotalDisability.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.temporaryTotalDisability.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.funeral.isEnabled &&\r\n corpSettings.options.funeral.details) {\r\n\r\n this.selection.insurance.memberInsurances.push({\r\n name: 'funeral',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'funeral')[0].monthlyAmount,\r\n multipliedBy: pack.options.funeral.multiple ? pack.options.funeral.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.funeral.details.isMember\r\n });\r\n }\r\n\r\n } catch {\r\n this.selection.insurance.memberInsurances = null;\r\n }\r\n }\r\n\r\n initSpouseInsurance() {\r\n try {\r\n this._calcService.setInsurancesAmounts(this.offer, this.selection);\r\n\r\n this.selection.insurance.spouseInsurances = [];\r\n const pack = this.offer.offerData.wellbeing.riskPackage;\r\n const corpSettings = JSON.parse(this.corpSettings.riskData).packages.filter(x => x.name == pack.name)[0];\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.spousalLifeCover.isEnabled &&\r\n corpSettings.options.spousalLifeCover.details) {\r\n\r\n this.selection.insurance.spouseInsurances.push({\r\n name: 'spousal life cover',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'spousal life cover')[0].monthlyAmount,\r\n multipliedBy: pack.options.spousalLifeCover.multiple ? pack.options.spousalLifeCover.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.spousalLifeCover.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.spousalDreadDiseaseCover.isEnabled &&\r\n corpSettings.options.spousalDreadDiseaseCover.details) {\r\n\r\n this.selection.insurance.spouseInsurances.push({\r\n name: 'spousal dread disease cover',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'spousal dread disease cover')[0].monthlyAmount,\r\n multipliedBy: pack.options.spousalDreadDiseaseCover.multiple ? pack.options.spousalDreadDiseaseCover.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.spousalDreadDiseaseCover.details.isMember\r\n });\r\n }\r\n\r\n if (this.offer.offerData.wellbeing.riskPackage.options.spousalDisabilityLumpSum.isEnabled &&\r\n corpSettings.options.spousalDisabilityLumpSum.details) {\r\n\r\n this.selection.insurance.spouseInsurances.push({\r\n name: 'spousal disability lump sum',\r\n amount: insuranceOptions.filter(i => i.name.toLocaleLowerCase() == 'spousal disability lump sum')[0].monthlyAmount,\r\n multipliedBy: pack.options.spousalDisabilityLumpSum.multiple ? pack.options.spousalDisabilityLumpSum.multiple[0] : 1,\r\n isCoveredByEmployer: !corpSettings.options.spousalDisabilityLumpSum.details.isMember\r\n });\r\n }\r\n } catch {\r\n this.selection.insurance.spouseInsurances = null;\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { HttpClient, HttpHeaders, HttpEvent, HttpParams, HttpRequest } from '@angular/common/http';\r\nimport appsettings from \"src/assets/appsettings.json\"\r\nimport { DocumentModel, CategoryDocumentModel } from '../shared/models/candidate.model';\r\nimport { StoreService } from './storeService';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n\r\nexport class FileUploadService {\r\n\r\n public uploadUrl: string;\r\n public userDocUploadUrl: string;\r\n public imageListCache = [];\r\n\r\n\r\n constructor(private http: HttpClient, private _storeService: StoreService) {\r\n this._configureEndpoints();\r\n }\r\n\r\n\r\n\r\n postFile(fileToUpload: DocumentModel): Observable | undefined {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n // .set('Content-Type', 'multipart/form-data')\r\n const options = { headers: headers };\r\n const url = `${this.uploadUrl}/upload`;\r\n\r\n\r\n const formData: FormData = new FormData();\r\n formData.append('File', fileToUpload.file, fileToUpload.file.name);\r\n formData.append('FileTypeId', (fileToUpload.fileTypeId).toString());\r\n return this.http.post(url, formData, options);\r\n }\r\n\r\n postCategoryFile(fileToUpload: CategoryDocumentModel): Observable {\r\n const url = `${this.userDocUploadUrl}/documents/upload`;\r\n const formData: FormData = new FormData();\r\n formData.append('file', fileToUpload.file, fileToUpload.file.name);\r\n formData.append('categoryId', (fileToUpload.categoryTypeId).toString());\r\n return this.http.post(url, formData);\r\n }\r\n\r\n listFiles(folder: string): Observable {\r\n return this.http.get(this.uploadUrl, { headers: { 'folder': folder } });\r\n }\r\n\r\n delete(filename: string): Observable {\r\n this.imageListCache = [];\r\n return this.http.delete(this.uploadUrl, { headers: { 'filename': filename } });\r\n }\r\n\r\n private _configureEndpoints() {\r\n const theUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.uploadUrl = `${theUrl}${endPoint.uploadFilesUrl}`;\r\n this.userDocUploadUrl = `${theUrl}${endPoint.usersUrl}`;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoPopupService {\r\n public infoPopupMessage: string | null;\r\n public isInfoPopupVisible: boolean;\r\n\r\n openInfoPopup(infoMessage: string) {\r\n this.infoPopupMessage = infoMessage;\r\n this.isInfoPopupVisible = true;\r\n }\r\n\r\n closeInfoPopup() {\r\n this.infoPopupMessage = null;\r\n this.isInfoPopupVisible = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n private _requestsCounter: number = 0;\r\n\r\n constructor(private _spinner: NgxSpinnerService) { }\r\n\r\n start(): void {\r\n this._requestsCounter++;\r\n this._spinner.show();\r\n window.scrollTo(0, 0);\r\n document.getElementsByTagName('body')[0].classList.add('locked');\r\n }\r\n\r\n stop(): void {\r\n this._requestsCounter--;\r\n if (this._requestsCounter <= 0) {\r\n this._spinner.hide();\r\n document.getElementsByTagName('body')[0].classList.remove('locked');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n\r\n constructor() { }\r\n\r\n public set(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n public get(key: string) {\r\n return localStorage.getItem(key)\r\n }\r\n public remove(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n public clear() {\r\n localStorage.clear();\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CandidateModel } from '../../../../src/app/shared/models/candidate.model';\r\nimport { ErrorService } from '../error.service';\r\nimport { UpdateCandidateModel } from '../service_models/candidate-models/update-candidate.model';\r\nimport { DecisionDetails } from '../../components/onboarding/candidate/candidate-decision-details/models/decision-details.model';\r\nimport { GetCandidateByIdModel } from '../service_models/candidate-models/get-candidate-by-id.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CandidateMapper {\r\n\r\n constructor(private _errorService: ErrorService) {}\r\n\r\n public mapUpdatePostModel(model: CandidateModel, candidateId: string): UpdateCandidateModel {\r\n let result: UpdateCandidateModel;\r\n\r\n try {\r\n result = {\r\n id: candidateId,\r\n corporateId: model.corporateId,\r\n firstname: model.firstname,\r\n lastname: model.lastname,\r\n email: model.email,\r\n cellPhone: model.cellPhone,\r\n dateOfBirth: model.dateOfBirth,\r\n currentRole: model.currentRole,\r\n currentCostToCompany: model.currentCTC,\r\n nationalityId: model.nationalityId,\r\n titleId: model.titleId,\r\n raceId: model.raceId,\r\n genderId: model.genderId,\r\n maritalStatus: model.maritalStatusId,\r\n statusId: model.statusId,\r\n identityTypeId: model.identityTypeId,\r\n identityValue: model.identityValue,\r\n disability: model.disability,\r\n maritalStatusId: model.maritalStatusId,\r\n idDocumentId: model.idDocumentId,\r\n cvDocumentId: model.cvDocumentId,\r\n userDocumentId: model.userDocumentId\r\n };\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Model mapping failed');\r\n }\r\n }\r\n\r\n public mapCreatePostModel(model: any, isDraft: boolean = false): CandidateModel {\r\n let result: CandidateModel;\r\n\r\n try {\r\n result = {\r\n isDraft: isDraft,\r\n firstname: model.firstname,\r\n lastname: model.lastname,\r\n dateOfBirth: model.dateOfBirth,\r\n nationalityId: model.nationalityId,\r\n identityValue: model.identityValue,\r\n disability: model.disability,\r\n email: model.email,\r\n cellPhone: model.cellPhone,\r\n currentRole: model.currentRole,\r\n currentCTC: model.currentCTC,\r\n corporateId: model.corporateId,\r\n titleId: model.titleId,\r\n genderId: model.genderId,\r\n raceId: model.raceId,\r\n identityTypeId: model.identityTypeId,\r\n maritalStatusId: model.maritalStatusId,\r\n cvDocumentId: model.cvDocument,\r\n idDocumentId: model.idDocument,\r\n userDocumentId: model.userDocumentId,\r\n statusId: model.statusId,\r\n };\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Model mapping failed');\r\n }\r\n }\r\n\r\n public mapCandidateProfile(model: GetCandidateByIdModel): DecisionDetails {\r\n let result: DecisionDetails;\r\n\r\n try {\r\n result = {\r\n contactDetails: {\r\n email: {\r\n id: model.candidateContactChannels.filter(x => x.type == 'Email')[0].id,\r\n value: model.candidateContactChannels.filter(x => x.type == 'Email')[0].value,\r\n },\r\n contactNumber: {\r\n id: model.candidateContactChannels.filter(x => x.type == 'Cellphone')[0].id,\r\n value: model.candidateContactChannels.filter(x => x.type == 'Cellphone')[0].value,\r\n }\r\n },\r\n personalDetails: {\r\n titleId: model.titleId,\r\n firstName: model.firstname,\r\n lastname: model.lastname,\r\n nationalityId: model.nationalityId,\r\n identityTypeId: model.identityTypeId,\r\n identityValue: model.identityValue,\r\n genderId: model.genderId,\r\n }\r\n };\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Model mapping failed');\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Corporate } from '../../components/onboarding/users/corporate/models/corporate.model';\r\nimport { ErrorService } from '../error.service';\r\nimport { CreateCorporateModel } from '../service_models/corporate_models/create-corporate.model';\r\nimport { GetCorporateById } from '../service_models/corporate_models/get-corporate-by-id.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CorporateMapper {\r\n\r\n constructor(private _errorService: ErrorService) { }\r\n\r\n public mapCreatePostModel(model: Corporate | undefined, isDraft: boolean = false): CreateCorporateModel | undefined {\r\n let result: CreateCorporateModel;\r\n\r\n try {\r\n if(model)\r\n {\r\n result = {\r\n isDraft: isDraft,\r\n parentId: model.parentId,\r\n basics: model.basics,\r\n retirement: model.retirement,\r\n risk: model.risk\r\n };\r\n\r\n return result;\r\n }\r\n \r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Model mapping failed');\r\n }\r\n }\r\n\r\n public mapFromGetByIdModel(model: GetCorporateById): Corporate | undefined{\r\n let result: Corporate;\r\n\r\n try {\r\n result = {\r\n basics: {\r\n id: model.id,\r\n name: model.name,\r\n payrollDay: model.payrollDay,\r\n industryId: model.industryId,\r\n companyTypeId: model.companyTypeId,\r\n primaryColour: model.primaryColour,\r\n headerLogo: model.headerLogo,\r\n headerLogoId: model.headerLogo ? model.headerLogo.id : null,\r\n locations: model.locations,\r\n createdDate: new Date(model.createdDate),\r\n statusId: model.statusId,\r\n headerLogoFileDoc: null,\r\n },\r\n retirement: JSON.parse(model.retirementData),\r\n risk: JSON.parse(model.riskData),\r\n users: model.users,\r\n isDraft: model.statusId == 1 ? true : false\r\n };\r\n\r\n if (model.parentCorporate && model.parentCorporate.id) {\r\n result.parentId = model.parentCorporate.id;\r\n }\r\n\r\n if (model.subGroups) {\r\n result.subGroups = model.subGroups;\r\n }\r\n\r\n if (model.retirementData) {\r\n const retirement = JSON.parse(model.retirementData);\r\n for (let i = 0; i < retirement.benefits.length; i++) {\r\n if (retirement.benefits[i].contribution.anniversaryDate) {\r\n const anniversaryDate = retirement.benefits[i].contribution.anniversaryDate;\r\n result.retirement.benefits[i].contribution.anniversaryDate = new Date(anniversaryDate);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Model mapping failed');\r\n }\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { ErrorService } from '../error.service';\r\nimport { GetOfferByIdModel } from '../service_models/offer_models/get-offer-by-id.model';\r\nimport { OfferModel } from '../../../../src/app/shared/models/offer';\r\nimport { OfferSummary } from '../../components/onboarding/candidate/review-offer/models/offer-summary.model';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfferMapper {\r\n\r\n constructor(private _errorService: ErrorService) { }\r\n\r\n public mapOfferInCreationToConfirmOfferModel(offer: OfferModel): GetOfferByIdModel {\r\n let result: GetOfferByIdModel;\r\n\r\n try {\r\n result = {\r\n id: null,\r\n candidateId: offer.candidateId,\r\n tempUserId: offer.tempUserId || null,\r\n statusId: 1,\r\n offerLetterId: null,\r\n division: offer.offerDetails.division,\r\n location: offer.offerDetails.location,\r\n department: offer.offerDetails.department,\r\n level: offer.offerDetails.level,\r\n costToCompany: offer.offerDetails.costToCompany,\r\n jobTitle: offer.offerDetails.jobTitle,\r\n hiringManagerName: offer.offerDetails.hiringManagerName,\r\n expiryDate: null,\r\n offerData: {\r\n earnings: offer.earnings,\r\n wellbeing: offer.wellbeing,\r\n perks: offer.perks,\r\n deductions: offer.deductions,\r\n },\r\n startDate: offer.offerDetails.startDate,\r\n offerLetter: null,\r\n signedDoc: null,\r\n offerNumber: null,\r\n createdDate: null,\r\n };\r\n\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Offer model mapping failed.');\r\n return null;\r\n }\r\n }\r\n\r\n\r\n public mapFromGetOfferByIdModelToOfferModel(offer: GetOfferByIdModel): OfferModel {\r\n let result: OfferModel;\r\n\r\n try {\r\n result = {\r\n id: offer.id,\r\n isDraft: offer.statusId == 1 ? true : false,\r\n candidateId: offer.candidateId,\r\n tempUserId: offer.tempUserId,\r\n offerDetails: {\r\n costToCompany: offer.costToCompany,\r\n startDate: offer.startDate,\r\n jobTitle: offer.jobTitle,\r\n level: offer.level,\r\n division: offer.division,\r\n department: offer.department,\r\n location: offer.location,\r\n hiringManagerName: offer.hiringManagerName,\r\n offerLetterId: null, // TODO\r\n },\r\n earnings: offer.offerData.earnings,\r\n deductions: offer.offerData.deductions,\r\n wellbeing: offer.offerData.wellbeing,\r\n perks: offer.offerData.perks,\r\n expiryDate: offer.expiryDate\r\n };\r\n\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Offer model mapping failed.');\r\n return null;\r\n }\r\n }\r\n\r\n public mapFromGetOfferByIdModelToOfferSummary(offer: GetOfferByIdModel): OfferSummary {\r\n let result: OfferSummary;\r\n\r\n try {\r\n result = {\r\n\r\n costToCompany: offer.costToCompany,\r\n signOnBonus: offer.offerData.earnings[0].signOnBonus,\r\n jobTitle: offer.jobTitle,\r\n yearlyLeaveEntitlement: null,\r\n startDate: offer.startDate,\r\n departmentDescription: offer.department,\r\n locationDescription: offer.location,\r\n division: offer.division,\r\n divisionDescription: null,\r\n };\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Offer model mapping failed.');\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ErrorService } from '../error.service';\r\nimport { GetCandidateByIdModel } from '../service_models/candidate-models/get-candidate-by-id.model';\r\nimport { CandidateUserProfile } from '../service_models/profile-models/user-profile.model';\r\nimport { UtilitiesService } from '../utilities.service';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileMapper {\r\n dob: string;\r\n identifierType: string;\r\n constructor(private _errorService: ErrorService, private _utils: UtilitiesService) { }\r\n\r\n public mapUserProfileFromCreation(candidate: GetCandidateByIdModel,\r\n accessCode: string,\r\n profileDetails: any): CandidateUserProfile {\r\n\r\n let result: CandidateUserProfile;\r\n\r\n this.dob = this._utils.convertDateShortDash(candidate.dateOfBirth);\r\n this.identifierType = candidate.identityTypeId == 4 ? 'identityNumber' : 'PassportNumber';\r\n\r\n try {\r\n result = {\r\n otp: accessCode,\r\n userName: profileDetails.username,\r\n password: profileDetails.confirmPassword,\r\n firstName: candidate.firstname,\r\n lastName: candidate.lastname,\r\n preferredChannel: 'mobile',\r\n mobile: candidate.candidateContactChannels.filter(x => x.type === 'Cellphone')[0].value,\r\n email: candidate.candidateContactChannels.filter(x => x.type === 'Email')[0].value,\r\n identifierType: this.identifierType,\r\n identityNumber: candidate.identityValue,\r\n dateOfBirth: this.dob,\r\n language: 'EN',\r\n registrationChannel: 'MemberOnboarding',\r\n candidateId: candidate.id\r\n };\r\n\r\n return result;\r\n\r\n } catch (ex) {\r\n this._errorService.openErrorPopup('Profile model mapping failed.');\r\n return null;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { ErrorService } from './error.service';\r\nimport { StoreService } from './storeService';\r\nimport { Observable } from 'rxjs';\r\nimport { Nominee } from '../components/onboarding/new-employees/retirement-contributions-information/dependants/dependants.component';\r\nimport { GetUserByIdModel } from './profile-models/profile.model';\r\nimport appsettings from \"../../assets/appsettings.json\"\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NomineeService {\r\n\r\n private _headers: HttpHeaders;\r\n userUrl: string;\r\n nomineeUrl: string;\r\n candidatesUrl: string;\r\n candidateUrl: string;\r\n userDetails: GetUserByIdModel;\r\n\r\n public constructor(private _http: HttpClient, private _errorService: ErrorService, private _storeService: StoreService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this._configureEndpoints();\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.userUrl = `${baseUrl}${endPoint.usersUrl}`;\r\n this.nomineeUrl = `${baseUrl}${endPoint.nomineeUrl}`;\r\n this.candidateUrl = `${baseUrl}${endPoint.candidateUrl}`;\r\n this.candidatesUrl = `${baseUrl}${endPoint.candidatesUrl}`;\r\n }\r\n\r\n public getNominees(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = this.nomineeUrl;\r\n return this._http.get(url, options);\r\n }\r\n\r\n public createNominees(nomineeModels: Nominee[]) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this.nomineeUrl}/save`;\r\n const collection = [];\r\n nomineeModels.forEach(element => {\r\n let nomineeToCreate;\r\n if (element.id) {\r\n nomineeToCreate = {\r\n 'nomineeId': element.id,\r\n 'titleId': element.titleId,\r\n 'genderId': element.genderId,\r\n 'identityTypeId': element.identityTypeId,\r\n 'relationshipId': element.relationshipId,\r\n 'nominieeTypeId': element.nominieeTypeId,\r\n 'identityValue': element.identityValue,\r\n 'dob': new Date(element.dob),\r\n 'firstname': element.firstname,\r\n 'lastname': element.lastname,\r\n 'savingsPercentage': element.savingsPercentage\r\n };\r\n } else {\r\n nomineeToCreate = {\r\n 'titleId': element.titleId,\r\n 'genderId': element.genderId,\r\n 'identityTypeId': element.identityTypeId,\r\n 'relationshipId': element.relationshipId,\r\n 'nominieeTypeId': element.nominieeTypeId,\r\n 'identityValue': element.identityValue,\r\n 'dob': new Date(element.dob),\r\n 'firstname': element.firstname,\r\n 'lastname': element.lastname,\r\n 'savingsPercentage': element.savingsPercentage\r\n };\r\n }\r\n\r\n collection.push(nomineeToCreate);\r\n });\r\n const json = { nominees: collection };\r\n const data = JSON.stringify(json);\r\n\r\n console.log(data)\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport appsettings from \"../../assets/appsettings.json\"\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n\r\n public isVisible: boolean;\r\n public message: string | null;\r\n public notificationsUrl: string;\r\n\r\n\r\n constructor(private _http: HttpClient) {\r\n this._configureEndpoints();\r\n }\r\n\r\n openNotification(message: string) {\r\n this.message = message;\r\n this.isVisible = true;\r\n\r\n setTimeout(() => {\r\n this.closeNotification();\r\n }, 7000);\r\n }\r\n\r\n closeNotification() {\r\n this.message = null;\r\n this.isVisible = false;\r\n }\r\n\r\n requestAsistance(Area: string, Notes: string) {\r\n const data = {\r\n assistanceArea: Area,\r\n notes: Notes\r\n };\r\n const headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.notificationsUrl}/requestassistance`;\r\n return this._http.post(url + '?AssistanceArea=' + Area + '&Notes=' + Notes, data);\r\n }\r\n\r\n private _configureEndpoints() {\r\n const theUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.notificationsUrl = `${theUrl}${endPoint.notificationsUrl}`;\r\n }\r\n}\r\n","//import { SelectedPortfolioOption } from \"./../components/new-employees/benefits/retirement-strategy/portfolio-options-accordion/portfolio-options-accordion.component\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport appsettings from \"src/assets/appsettings.json\"\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { ErrorService } from \"./error.service\";\r\nimport { OfferModel } from \"../shared/models/offer\";\r\nimport { GetOfferByIdModel } from \"./service_models/offer_models/get-offer-by-id.model\";\r\nimport { StoreService } from \"./storeService\";\r\nimport { Feedback } from \"./service_models/offer_models/get-feedback.model\";\r\nimport { PabeSelection } from \"../shared/models/pabe-selection.model\";\r\nimport { DefaultEmployeePortfolio } from \"./service_models/portfolio-models/default-employee-portfolio.model\";\r\nimport {\r\n PortfolioOptions,\r\n PortfolioDetail\r\n} from \"./service_models/portfolio-models/portfolio-options.model\";\r\n//import { SelectedPortfolioOption } from \"../components/onboarding/new-employees/benefits/retirement-strategy/portfolio-options-accordion/portfolio-options-accordion.component\";\r\n\r\n// Was defined in portfolio-options-accordion.component but decided to place it here. It is easier\r\nexport class SelectedPortfolioOption{\r\n id:number = 0;\r\n portfolioName: string = '';\r\n riskRating: string = '';\r\n management:string ='';\r\n allocationPercentage:number= 0;\r\n}\r\n\r\nexport class SignedOffer {\r\n id: string;\r\n signedDocId: string;\r\n comment: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class OfferService implements OnDestroy {\r\n private _subscriptions = new Array();\r\n private _headers: HttpHeaders;\r\n\r\n currentOffer: OfferModel;\r\n offersUrl: string;\r\n candidateUrl: string;\r\n candidatesUrl: string;\r\n documentsUrl: string;\r\n docDownloadUrl: string;\r\n updateOffer: SignedOffer;\r\n fileToUpload: File;\r\n portfoliosUrl: string;\r\n portfolioUrl: string;\r\n selectedPortfolioOptionsUrl: string;\r\n newJoinersUrl: string;\r\n\r\n public constructor(\r\n private _http: HttpClient,\r\n private _errorService: ErrorService,\r\n private _storeService: StoreService\r\n ) {\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n this._configureEndpoints();\r\n this.updateOffer = new SignedOffer();\r\n }\r\n\r\n getAllOffers() {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n getById(offerId: string): Observable {\r\n const url = `${this.offersUrl}/`;\r\n return this._http.get(url + offerId);\r\n }\r\n\r\n downloadOffer(id: string): Observable {\r\n const url = `${this.documentsUrl}/download/`;\r\n return this._http.get(url + id, { responseType: \"blob\" });\r\n }\r\n\r\n createOffer(isDraft: boolean): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/create`;\r\n\r\n const offerData = {\r\n earnings: this.currentOffer.earnings,\r\n deductions: this.currentOffer.deductions,\r\n wellbeing: this.currentOffer.wellbeing,\r\n perks: this.currentOffer.perks\r\n };\r\n\r\n const offerToCreate = {\r\n isDraft: isDraft,\r\n candidateId: this.currentOffer.candidateId,\r\n division: this.currentOffer.offerDetails.division,\r\n location: this.currentOffer.offerDetails.location,\r\n department: this.currentOffer.offerDetails.department,\r\n level: this.currentOffer.offerDetails.level,\r\n costToCompany: this.currentOffer.offerDetails.costToCompany,\r\n jobTitle: this.currentOffer.offerDetails.jobTitle,\r\n hiringManagerName: this.currentOffer.offerDetails.hiringManagerName,\r\n offerData: offerData,\r\n startDate: this.currentOffer.offerDetails.startDate,\r\n loggedInUser: this._storeService.getStoredData().profile.sub,\r\n corporateId: this._storeService.getStoredData().profile['CorporateId'],\r\n offerLetterId: this.currentOffer.offerDetails.offerLetterId\r\n };\r\n\r\n const data = JSON.stringify(offerToCreate);\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this.offersUrl = `${baseUrl}${endPoint.offersUrl}`;\r\n this.candidatesUrl = `${baseUrl}${endPoint.candidatesUrl}`;\r\n this.documentsUrl = `${baseUrl}${endPoint.documentsUrl}`;\r\n this.candidateUrl = `${baseUrl}${endPoint.candidateUrl}`;\r\n this.portfoliosUrl = `${baseUrl}${endPoint.portfolios}`;\r\n this.portfolioUrl = `${baseUrl}${endPoint.portfolioUrl}`;\r\n this.selectedPortfolioOptionsUrl = `${baseUrl}${endPoint.selectedPortfolioOptionsUrl}`;\r\n this.newJoinersUrl = `${baseUrl}${endPoint.newJoinersUrl}`;\r\n }\r\n\r\n openFile(offerDocumentId: string) {\r\n this._subscriptions.push(\r\n this.downloadOffer(offerDocumentId).subscribe(\r\n res => {\r\n const newBlob = new Blob([res], { type: \"application/pdf\" });\r\n\r\n // We are not supporting IE so this isn't need.\r\n // if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // window.navigator.msSaveOrOpenBlob(newBlob);\r\n // return;\r\n // }\r\n // For other browsers:\r\n // Create a link pointing to the ObjectURL containing the blob.\r\n const data = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = data;\r\n // link.download = this.currentOffer.offerDocFileName;\r\n link.download = this.currentOffer.offerDetails.offerLetterId;\r\n // this is necessary as link.click() does not work on the latest Firefox\r\n link.dispatchEvent(\r\n new MouseEvent(\"click\", {\r\n bubbles: true,\r\n cancelable: true,\r\n view: window\r\n })\r\n );\r\n\r\n setTimeout(function() {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(data);\r\n }, 100);\r\n },\r\n error => {\r\n this._errorService.openErrorPopup(\"An error occured!\");\r\n }\r\n )\r\n );\r\n }\r\n\r\n acceptOffer(): Observable {\r\n const data = {\r\n comments: sessionStorage.getItem(\"feedback\"),\r\n payslip: JSON.parse(sessionStorage.getItem(\"payslipOptions\"))\r\n };\r\n\r\n const url = `${this.candidateUrl}/offer/accept`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n queryOffer(): Observable {\r\n const data = {\r\n offerId: this._storeService.getStoredData().profile['OfferId'],\r\n comments: sessionStorage.getItem(\"newFeedback\")\r\n };\r\n\r\n const url = `${this.candidateUrl}/offer/query`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n updateExistingOffer(corpId: string, isDraft: boolean = false) {\r\n const templateData = {\r\n earnings: this.currentOffer.earnings,\r\n deductions: this.currentOffer.deductions,\r\n wellbeing: this.currentOffer.wellbeing,\r\n perks: this.currentOffer.perks\r\n };\r\n\r\n const offerToUpdate = {\r\n candidateId: this.currentOffer.candidateId,\r\n division: this.currentOffer.offerDetails.division,\r\n location: this.currentOffer.offerDetails.location,\r\n statusId: isDraft ? 1 : 3,\r\n department: this.currentOffer.offerDetails.department,\r\n level: this.currentOffer.offerDetails.level,\r\n costToCompany: this.currentOffer.offerDetails.costToCompany,\r\n jobTitle: this.currentOffer.offerDetails.jobTitle,\r\n hiringManagerName: this.currentOffer.offerDetails.hiringManagerName,\r\n templateData: JSON.stringify(templateData),\r\n startDate: this.currentOffer.offerDetails.startDate,\r\n expiryDate: this.currentOffer.expiryDate,\r\n corporateId: corpId,\r\n offerLetterId: this.currentOffer.offerDetails.offerLetterId\r\n };\r\n\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/${this.currentOffer.id}/update`;\r\n\r\n const data = JSON.stringify(offerToUpdate);\r\n return this._http.put(url, data, options);\r\n }\r\n\r\n updateOfferStatus(\r\n offerId: string,\r\n statusId: number,\r\n newExpDate: Date,\r\n reason: string\r\n ): Observable {\r\n const data = {\r\n statusId: statusId,\r\n id: offerId,\r\n comments: reason,\r\n loggedInUser: this._storeService.getStoredData().profile.sub,\r\n expiryDate: newExpDate\r\n };\r\n\r\n const url = `${this.offersUrl}/${offerId}/status/update`;\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const options = { headers: headers };\r\n return this._http.put(url, data, options);\r\n }\r\n\r\n signOffer(offerId: string, acceptedOfferFileId: string): Observable {\r\n const data = {\r\n offerId: offerId,\r\n signedDocId: acceptedOfferFileId\r\n };\r\n\r\n const url = `${this.candidateUrl}/offer/sign`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n setupDisplayOfferDetails(offerDetails: any) {\r\n if (offerDetails.candidateIdNumber) {\r\n offerDetails.candidateIdPassportLabel = \"Identity Number\";\r\n } else {\r\n offerDetails.candidateIdPassportLabel = \"Passport Number\";\r\n }\r\n\r\n offerDetails.candidateContactChannels.forEach(element => {\r\n if (element.type === \"email\") {\r\n offerDetails.candidateEmailAddress = element.value;\r\n } else {\r\n offerDetails.candidateCellPhone = element.value;\r\n }\r\n });\r\n return offerDetails;\r\n }\r\n\r\n getDummpyPDF(offerLetterId: string) {\r\n // TODO replace with real letter\r\n return \"https://www.tutorialspoint.com/angularjs/angularjs_tutorial.pdf\";\r\n }\r\n\r\n saveOfferAsDraft() {\r\n // TODO implement back-end call\r\n return new Observable(observer => {\r\n observer.next({});\r\n observer.complete();\r\n });\r\n }\r\n\r\n getAllFeedbackCorporate(corporateId: string) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/feedback/`;\r\n return this._http.get(url + corporateId, options);\r\n }\r\n\r\n getNotesAndQueries(offerId: string): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/${offerId}/feedback`;\r\n return this._http.get(url, options);\r\n }\r\n\r\n // TODO delete, not used anywhere\r\n getFeedback(feedbackId: string) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/feedback/get/`;\r\n return this._http.get(url + feedbackId, options);\r\n }\r\n\r\n sendFeedback(feedbackId: string) {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/feedback/get/`;\r\n return this._http.put(url + feedbackId, options);\r\n }\r\n\r\n sendFeedbackList(feedback: any) {\r\n const data = {\r\n feedback\r\n };\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/feedback/send`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n savePabeSelection(\r\n offerId: string,\r\n pabeSelection: PabeSelection,\r\n step: number,\r\n isPabeData: boolean\r\n ): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const data = {\r\n step: step,\r\n isPabeData: isPabeData,\r\n pabeSelection: pabeSelection\r\n };\r\n\r\n const options = { headers: headers };\r\n const url = `${this.candidateUrl}/offer/pabe`;\r\n\r\n return this._http.post(url, JSON.stringify(data), options);\r\n }\r\n\r\n getPabeSelection(\r\n offerId: string,\r\n isPabeData: boolean\r\n ): Observable<{ step: number; pabeSelection: PabeSelection }> {\r\n const url = `${this.candidateUrl}/offer/pabe?isPabeData=${isPabeData}`;\r\n return this._http.get(url);\r\n }\r\n\r\n getDefautltEmployeePortfolio(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = \"./assets/mock_data/default_employee_portfolio.json\";\r\n return this._http.get(url, options);\r\n }\r\n\r\n getDefautltPortfolioOptions(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set(\"Authorization\", `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.portfolioUrl}`;\r\n return this._http.get(url);\r\n }\r\n\r\n saveSelectedPortfolioOptions(\r\n offerId: string,\r\n selectedPortfolioOptions: SelectedPortfolioOption[]\r\n ): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const options = { headers: headers };\r\n const portfolios: any[] = [];\r\n\r\n selectedPortfolioOptions.forEach(element => {\r\n let selectedPortfolioOptionCreate;\r\n\r\n portfolios.push(\r\n (selectedPortfolioOptionCreate = {\r\n portfolioId: element.id,\r\n allocation: element.allocationPercentage,\r\n offerId: offerId\r\n })\r\n );\r\n });\r\n const data = { offerId, portfolios };\r\n console.log(JSON.stringify(data));\r\n const url = `${this.portfolioUrl}/save`;\r\n\r\n return this._http.post(url, JSON.stringify(data), options);\r\n }\r\n\r\n public getSelectedPortfolio(offerId: string): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Content-Type\", \"application/json\");\r\n\r\n const options = { headers: headers };\r\n const url = `${this.selectedPortfolioOptionsUrl}` + \"/\" + offerId;\r\n return this._http.get(url, options);\r\n }\r\n\r\n getNewJoiners( ): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n\r\n const url = `${this.newJoinersUrl}`;\r\n return this._http.get(url);\r\n }\r\n\r\n\r\n compltOMRJourney( offerId : string ): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.offersUrl}/${offerId}/completeOMRJourney`;\r\n\r\n console.log(url);\r\n return this._http.post(url, options);\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this._subscriptions) {\r\n this._subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n }\r\n}\r\n","import { Injectable, OnInit } from '@angular/core';\r\nimport { RetirementState } from '../shared/models/retirement-state';\r\nimport { mortalityTable } from '../constants/mortality-table';\r\nimport { GetOfferByIdModel } from './service_models/offer_models/get-offer-by-id.model';\r\nimport { PabeSelection } from '../shared/models/pabe-selection.model';\r\nimport { GetCandidateByIdModel } from './service_models/candidate-models/get-candidate-by-id.model';\r\nimport { ExistingSaving } from '../models/existing-savings.model';\r\nimport { medicalAidPlans } from '../constants/medicalAidPlans';\r\nimport { gapCovers } from '../constants/gapCovers';\r\nimport { salaryScales } from '../constants/salaryScales';\r\nimport { insuranceOptions } from '../constants/insurances';\r\nimport { benefitRates } from '../constants/benefitCosts';\r\nimport { taxRebates } from '../constants/taxRebates';\r\nimport { assumptions } from '../constants/assuptions';\r\nimport { ErrorService } from './error.service';\r\nimport { LoaderService } from './loader.service';\r\nimport { StoreService } from './storeService';\r\nimport { CorporateBenefitsService } from './corporate-benefits.service';\r\n\r\n\r\n@Injectable()\r\nexport class PayslipCalculationsService {\r\n\r\n private error;\r\n planCosts;\r\n gapCosts;\r\n\r\n constructor(\r\n private _errorService: ErrorService,\r\n private _loader: LoaderService,\r\n private _corporateBenefitService: CorporateBenefitsService,\r\n private _storeService: StoreService\r\n ) {\r\n\r\n setTimeout(() => {\r\n if (_storeService.getStoredData() && _storeService.getStoredData().profile && _storeService.getStoredData().profile['role'] === 'Candidate') {\r\n this.chooseMedicalAidDataSet();\r\n this.chooseGapCoverDataSet();\r\n }\r\n }, 12000);\r\n\r\n }\r\n //#region EARNINGS\r\n\r\n\r\nchooseMedicalAidDataSet() {\r\n this._loader.start();\r\n this._corporateBenefitService.getMedicalAidProvider().subscribe((resp) => {\r\n this._loader.stop();\r\n //check if medical aid providers exist and if they do exist then use new values\r\n if (Array.isArray(resp[0].selectedMAP) && resp[0].selectedMAP.length) {\r\n this.planCosts = resp;\r\n } else {\r\n //if no medical aid providers exist then use default values from constants page(medicalAidPlans.ts)\r\n this.planCosts = medicalAidPlans; \r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to retrieve medical aid options.');\r\n });\r\n}\r\n\r\nchooseGapCoverDataSet() {\r\n this._loader.start();\r\n this._corporateBenefitService.getGapCoverProvider().subscribe((resp) => {\r\n this._loader.stop();\r\n //check if medical aid providers exist and if they do exist then use new values\r\n if (Array.isArray(resp.gapCoverProviders) && resp.gapCoverProviders.length) {\r\n this.gapCosts = resp;\r\n } else {\r\n //if no medical aid providers exist then use default values from constants page(gapCoverPlans.ts)\r\n this.gapCosts = gapCovers; \r\n }\r\n }, (error) => {\r\n this._loader.stop();\r\n this._errorService.openErrorPopup('Failed to retrieve gap cover options.');\r\n });\r\n}\r\n /**\r\n * Returns monhtly cost to company as monthly earnings.\r\n */\r\n getEarnings(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const costToCompany = offer.costToCompany / 12;\r\n const companyWellbeing = this.getCompanyWellbeing(offer, selection);\r\n const companyAdditionalBenefits = this.getCompanyAdditionalBenefits(offer);\r\n return costToCompany; // - companyWellbeing - companyAdditionalBenefits;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getEarnings');\r\n return 0;\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region RETIREMENT\r\n\r\n /**\r\n * Returns monthly sum of retirement contribuitons (member, employer and additional voluntary contributions).\r\n */\r\n getTotalRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n let total = 0;\r\n const employerContribution = this.getEmployerRetirementContribution(offer, selection);\r\n const memberContribution = this.getMemberRetirementContribution(offer, selection);\r\n const voluntaryContribution = this.getVoluntaryRetirementContribution(offer, selection);\r\n\r\n total = memberContribution + voluntaryContribution + employerContribution;\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTotalRetirementContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly member contribution amount towards retirement.\r\n */\r\n getMemberRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const pensionableSalary = this._getPensionableSalary(offer, selection) / 12;\r\n\r\n const retirementContributionPercent = selection.retirement.memberContribution / 100;\r\n\r\n let total = retirementContributionPercent * pensionableSalary;\r\n\r\n if (offer.offerData.wellbeing.isRiskPaidFromRetirementContributions) {\r\n\r\n const insurance = this.getTotalInsuranceCost(selection);\r\n const totalInsurance = insurance.employerCost + insurance.memberCost;\r\n\r\n const employerContributionPercent = selection.retirement.employerContribution / 100;\r\n const employerTotal = employerContributionPercent * pensionableSalary;\r\n\r\n if (employerTotal <= totalInsurance) {\r\n const rest = totalInsurance - employerTotal;\r\n total -= rest;\r\n total = total > 0 ? total : 0;\r\n }\r\n\r\n }\r\n\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMemberRetirementContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly additional voluntary contribution amount towards retirement.\r\n */\r\n getVoluntaryRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const costToCompany = offer.costToCompany / 12;\r\n\r\n const retirementContributionPercent = selection.retirement.voluntaryContribution / 100;\r\n\r\n const total = retirementContributionPercent * costToCompany;\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getVoluntaryRetirementContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly employer contribution amount towards retirement\r\n */\r\n getEmployerRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const pensionableSalary = this._getPensionableSalary(offer, selection) / 12;\r\n\r\n const retirementContributionPercent = selection.retirement.employerContribution / 100;\r\n\r\n let total = retirementContributionPercent * pensionableSalary;\r\n\r\n if (offer.offerData.wellbeing.isRiskPaidFromRetirementContributions) {\r\n const insurance = this.getTotalInsuranceCost(selection);\r\n total -= (insurance.employerCost + insurance.memberCost);\r\n total = total > 0 ? total : 0;\r\n }\r\n\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getEmployerRetirementContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns monthly member contribution towards retirement (sum of member and additional voluntary).\r\n */\r\n getMyRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const costToCompany = offer.costToCompany / 12;\r\n const pensionableSalary = this._getPensionableSalary(offer, selection) / 12;\r\n\r\n const memberContribution = pensionableSalary * selection.retirement.memberContribution / 100;\r\n const voluntaryContribution = costToCompany * selection.retirement.voluntaryContribution / 100;\r\n\r\n const myRetirementContribution = memberContribution + voluntaryContribution;\r\n return myRetirementContribution;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMyRetirementContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly retirement contribution covered by the employer.\r\n */\r\n getCompanyRetirementContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const pensionableSalary = this._getPensionableSalary(offer, selection) / 12;\r\n const retirementContributionPercent = selection.retirement.employerContribution / 100;\r\n const employerRetirementContribution = retirementContributionPercent * pensionableSalary;\r\n return employerRetirementContribution;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getCompanyWellbeingContribution');\r\n return 0;\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region MEDICAL AID\r\n\r\n\r\n /**\r\n * Returns monthly total cost of medical aid (covered by both member and employer)\r\n */\r\n getMedicalAid(selection: PabeSelection): number {\r\n try {\r\n \r\n let medicalAid = 0;\r\n\r\n if (selection.medicalAid.isGapCoverEnabled && selection.medicalAid.gapCoverOption) {\r\n medicalAid += selection.medicalAid.gapCoverOption.amount;\r\n }\r\n\r\n if (selection.medicalAid.isUsingMedicalAid && selection.medicalAid.medicalPlan) {\r\n // this.chooseMedicalAidDataSet();\r\n medicalAid += selection.medicalAid.medicalPlan.amount;\r\n\r\n const numberOfChildren = selection.medicalAid.numberOfChildDependants;\r\n const numberOfAdults = selection.medicalAid.numberOfAdultDependants;\r\n const medicalPlanName = selection.medicalAid.medicalPlan.name.toLowerCase();\r\n for(let i = 0; i < this.planCosts[0].selectedMAP.length; i++) {\r\n for(let j = 0; j < this.planCosts[0].selectedMAP[i].options.length; j++) {\r\n const lenOfFiltered = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == medicalPlanName).length;\r\n if (lenOfFiltered ) { \r\n var plan = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == medicalPlanName)[0];\r\n }\r\n }\r\n }\r\n \r\n for (let i = 0; i < this.planCosts[0].selectedMAP.length; i++) {\r\n for (let j = 0; j < this.planCosts[0].selectedMAP[i].options.length; j++) {\r\n if (numberOfChildren > 0) {\r\n const costPerChild = plan.selectedMAP[i].options[j].childDependantAmount;\r\n medicalAid += numberOfChildren * costPerChild;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.planCosts[0].selectedMAP.length; i++) {\r\n for (let j = 0; j < this.planCosts[0].selectedMAP[i].options.length; j++) {\r\n if (numberOfAdults > 0) {\r\n const costPerAdult = plan.selectedMAP[i].options[j].adultDependantAmount;\r\n medicalAid += numberOfAdults * costPerAdult;\r\n }\r\n }\r\n }\r\n\r\n return medicalAid;\r\n\r\n } else {\r\n return 0;\r\n }\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMedicalAid');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly medical aid contribution covered by the employer as amount and percentage.\r\n */\r\n getMedicalAidCompanyContribution(offer: GetOfferByIdModel, selection: PabeSelection): { amount: number, percentage: number } {\r\n let contribution = { amount: 0, percentage: 0 };\r\n\r\n try {\r\n if (offer && offer.offerData && offer.offerData.wellbeing && offer.offerData.wellbeing.medicalAid &&\r\n offer.offerData.wellbeing.medicalAid.contribution && selection && selection.medicalAid &&\r\n selection.medicalAid.medicalPlan) {\r\n\r\n const planCost = selection.medicalAid.medicalPlan.amount;\r\n\r\n if (offer.offerData.wellbeing.medicalAid.contribution) {\r\n if (offer.offerData.wellbeing.medicalAid.contribution.isInCurrency) {\r\n const companyCover = offer.offerData.wellbeing.medicalAid.contribution.amount || 0;\r\n contribution = {\r\n amount: companyCover,\r\n percentage: (planCost / companyCover * 100) > 100 ? 100 : planCost / companyCover * 100\r\n };\r\n return contribution;\r\n\r\n } else {\r\n const companyCover = offer.offerData.wellbeing.medicalAid.contribution.percentage || 0;\r\n contribution = {\r\n amount: planCost * companyCover / 100,\r\n percentage: companyCover\r\n };\r\n return contribution;\r\n }\r\n } else {\r\n return contribution;\r\n }\r\n\r\n } else {\r\n return contribution;\r\n }\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMedicalAidCompanyContribution');\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns monthly medical aid contribution amount covered by the member (including medical aid for dependants).\r\n */\r\n getMedicalAidMemberContribution(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n if (offer.offerData.wellbeing.medicalAid &&\r\n selection.medicalAid.medicalPlan) {\r\n\r\n try {\r\n const selectedPlan = selection.medicalAid.medicalPlan;\r\n const planCost = selectedPlan.amount;\r\n const companyCover = this.getMedicalAidCompanyContribution(offer, selection).amount;\r\n\r\n const memberCost = planCost - companyCover < 0 ? 0 : planCost - companyCover;\r\n const dependantsCost = this.getMedicalAidCostForDependants(selection);\r\n\r\n return memberCost + dependantsCost;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMedicalAidMemberContribution');\r\n return 0;\r\n }\r\n\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n getMedicalAidCostForDependants(selection: PabeSelection): number {\r\n try {\r\n if (selection && selection.medicalAid) {\r\n const selectedPlan = selection.medicalAid.medicalPlan;\r\n let dependantsCost = 0;\r\n for (let i = 0; i < this.planCosts[0].selectedMAP.length; i++) {\r\n for (let j = 0; j < this.planCosts[0].selectedMAP[i].options.length; j++) {\r\n if (selection.medicalAid.numberOfAdultDependants > 0) {\r\n const lenOfFiltered = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == selectedPlan.name.toLowerCase()).length;\r\n if (lenOfFiltered ) { \r\n const costForAdultDependant = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == selectedPlan.name.toLowerCase())[0].selectedMAP[i].options[j].adultDependantAmount;\r\n const numberOfAdultDependants = selection.medicalAid.numberOfAdultDependants;\r\n dependantsCost += numberOfAdultDependants * costForAdultDependant;\r\n }\r\n }\r\n\r\n if (selection.medicalAid.numberOfChildDependants > 0) {\r\n const lenOfFiltered = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == selectedPlan.name.toLowerCase()).length;\r\n if (lenOfFiltered ) { \r\n const costForChildDependant = this.planCosts.filter(x => x.selectedMAP[i].options[j].optionName.toLowerCase() == selectedPlan.name.toLowerCase())[0].selectedMAP[i].options[j].childDependantAmount;\r\n const numberOfChildDependants = selection.medicalAid.numberOfChildDependants;\r\n dependantsCost += numberOfChildDependants * costForChildDependant;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return dependantsCost;\r\n } else {\r\n return 0;\r\n }\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMedicalAidCostForDependants');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly gap cover amount.\r\n */\r\n getGapCover(selection: PabeSelection): number {\r\n let gapCover = 0;\r\n\r\n try {\r\n if (selection && selection.medicalAid &&\r\n selection.medicalAid.gapCoverOption) {\r\n gapCover = selection.medicalAid.gapCoverOption.amount;\r\n }\r\n } catch (error) {\r\n this._handleFirstError(error, 'getGapCover');\r\n return 0;\r\n }\r\n\r\n return gapCover;\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region INSURANCE\r\n\r\n /**\r\n * Returns the monthly total insurance const for member and employer .\r\n */\r\n getTotalInsuranceCost(selection: PabeSelection): { memberCost: number, employerCost: number } {\r\n const cost = { memberCost: 0, employerCost: 0 };\r\n try {\r\n\r\n if (selection.insurance.memberInsurances) {\r\n selection.insurance.memberInsurances.forEach(insurance => {\r\n if (insurance.isCoveredByEmployer) {\r\n cost.employerCost += insurance.amount * (insurance.multipliedBy > 0 ? insurance.multipliedBy : 1);\r\n } else {\r\n cost.memberCost += insurance.amount * (insurance.multipliedBy > 0 ? insurance.multipliedBy : 1);\r\n }\r\n });\r\n }\r\n\r\n if (selection.insurance.spouseInsurances) {\r\n selection.insurance.spouseInsurances.forEach(insurance => {\r\n if (insurance.isCoveredByEmployer) {\r\n cost.employerCost += insurance.amount * (insurance.multipliedBy > 0 ? insurance.multipliedBy : 1);\r\n } else {\r\n cost.memberCost += insurance.amount * (insurance.multipliedBy > 0 ? insurance.multipliedBy : 1);\r\n }\r\n });\r\n }\r\n\r\n return cost;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTotalInsuranceCost');\r\n return cost;\r\n }\r\n\r\n }\r\n\r\n\r\n /**\r\n * Recalculates the insurances costs after change in the pensionable salary percentage. Returns the insurance.\r\n */\r\n recalculateInsurancesAmounts(offer: GetOfferByIdModel, selection: PabeSelection)\r\n : { doesRequireInsuranceForSpouse: boolean, memberInsurances: any[], spouseInsurances: any[] } {\r\n try {\r\n this.setInsurancesAmounts(offer, selection);\r\n\r\n if (selection && selection.insurance) {\r\n if (selection.insurance.memberInsurances) {\r\n for (let i = 0; i < selection.insurance.memberInsurances.length; i++) {\r\n const current = selection.insurance.memberInsurances[i];\r\n const amount = insuranceOptions\r\n .filter(x => x.name.toLowerCase() == current.name.toLowerCase())[0].monthlyAmount;\r\n\r\n selection.insurance.memberInsurances[i].amount = amount;\r\n }\r\n }\r\n\r\n if (selection.insurance.doesRequireInsuranceForSpouse && selection.insurance.spouseInsurances) {\r\n for (let i = 0; i < selection.insurance.spouseInsurances.length; i++) {\r\n const current = selection.insurance.spouseInsurances[i];\r\n const amount = insuranceOptions\r\n .filter(x => x.name.toLowerCase() == current.name.toLowerCase())[0].monthlyAmount;\r\n\r\n selection.insurance.spouseInsurances[i].amount = amount;\r\n }\r\n }\r\n }\r\n\r\n return selection.insurance;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'recalculateInsurancesAmounts');\r\n return selection.insurance;\r\n }\r\n }\r\n\r\n /**\r\n * Sets the initial insurances costs.\r\n */\r\n setInsurancesAmounts(offer: GetOfferByIdModel, selection: PabeSelection): void {\r\n try {\r\n const pensionableSalary = this._getPensionableSalary(offer, selection);\r\n // Life Cover\r\n insuranceOptions[0].monthlyAmount = pensionableSalary * this.getGLA(offer) / 12;\r\n\r\n // Dread Disease Cover\r\n insuranceOptions[1].monthlyAmount = pensionableSalary * benefitRates.dreadDiseaseProvidentFundRate / 12;\r\n\r\n // Disability Lump Sum'\r\n insuranceOptions[2].monthlyAmount = pensionableSalary * benefitRates.statedBenefitRate / 12;\r\n\r\n // Disability Income Protection\r\n insuranceOptions[3].monthlyAmount = pensionableSalary * benefitRates.phiRate / 12;\r\n\r\n // Temporary Total DisabilityLife Cover\r\n insuranceOptions[4].monthlyAmount = 100; // TODO\r\n\r\n // Funeral\r\n insuranceOptions[5].monthlyAmount = benefitRates.funeralCost;\r\n\r\n // Spousal Life Cover\r\n const spousalLifeCover = pensionableSalary * benefitRates.spouseCoverRate;\r\n const spousalMax = benefitRates.spouseCoverMax;\r\n insuranceOptions[6].monthlyAmount = spousalLifeCover > spousalMax ? spousalMax : spousalLifeCover;\r\n\r\n // Spousal Dread Disease Cover\r\n insuranceOptions[7].monthlyAmount = 100; // TODO\r\n\r\n // Spousal Disability Lump Sum\r\n insuranceOptions[8].monthlyAmount = 100; // TODO\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'setInsurancesAmounts');\r\n }\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n\r\n //#region ADDITIONAL BENEFITS\r\n\r\n /**\r\n * Returns monthly sum of all perks and additional benefits.\r\n */\r\n getCompanyAdditionalBenefits(offer: GetOfferByIdModel): number {\r\n try {\r\n let total = 0;\r\n\r\n if (offer.offerData.perks.financialPerks.hasFinancialPerks) {\r\n const financial = offer.offerData.perks.financialPerks.details;\r\n total += financial.buyShares ? financial.buyShares.amount : 0;\r\n total += financial.homeLoan ? financial.homeLoan.amount : 0;\r\n total += financial.savings ? financial.savings.amount : 0;\r\n }\r\n\r\n if (offer.offerData.perks.membershipPerks.hasMembershipPerks) {\r\n const membership = offer.offerData.perks.membershipPerks.details;\r\n total += membership.clubs ? membership.clubs.amount : 0;\r\n total += membership.gym ? membership.gym.amount : 0;\r\n total += membership.social ? membership.social.amount : 0;\r\n }\r\n\r\n if (offer.offerData.perks.communicationPerks.hasCommunicationPerks) {\r\n const communication = offer.offerData.perks.communicationPerks.details;\r\n total += communication.data ? communication.data.amount : 0;\r\n total += communication.cellphone ? communication.cellphone.amount : 0;\r\n }\r\n\r\n if (offer.offerData.perks.travelPerks.hasTravelPerks) {\r\n const travel = offer.offerData.perks.travelPerks.details;\r\n total += travel.vehicleAllowance ? travel.vehicleAllowance.amount : 0;\r\n total += travel.travelAllowance ? travel.travelAllowance.amount : 0;\r\n total += travel.companyAllowance ? travel.companyAllowance.amount : 0;\r\n total += travel.companyCar ? travel.companyCar.amount : 0;\r\n total += travel.parking ? travel.parking.amount : 0;\r\n }\r\n\r\n if (offer.offerData.perks.entertainmentPerks.hasEntertainmentPerks) {\r\n const entertainment = offer.offerData.perks.entertainmentPerks.details;\r\n total += entertainment.entertainment ? entertainment.entertainment.amount : 0;\r\n total += entertainment.meal ? entertainment.meal.amount : 0;\r\n }\r\n\r\n if (offer.offerData.perks.otherPerks.hasOtherPerks) {\r\n const other = offer.offerData.perks.otherPerks.details;\r\n total += other.childcare ? other.childcare.amount : 0;\r\n total += other.dangerPay ? other.dangerPay.amount : 0;\r\n total += other.charity ? other.charity.amount : 0;\r\n total += other.housing ? other.housing.amount : 0;\r\n total += other.study ? other.study.amount : 0;\r\n }\r\n\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getCompanyAdditionalBenefits');\r\n return 0;\r\n }\r\n\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region DEDUCTIONS\r\n\r\n /**\r\n * Returns monthly sum of all taxes and deductions.\r\n */\r\n getTotalDeductions(offer: GetOfferByIdModel, candidate: GetCandidateByIdModel, selection: PabeSelection): number {\r\n try {\r\n let PAYE = 0;\r\n let UIF = 0;\r\n let otherDeduction = 0;\r\n\r\n if (offer.offerData.deductions.taxPaye) {\r\n PAYE = this.getPayeTax(offer, selection, candidate);\r\n }\r\n\r\n if (offer.offerData.deductions.uif) {\r\n UIF = this.getUif(offer);\r\n }\r\n\r\n if (offer.offerData.deductions.hasSundries) {\r\n otherDeduction = this.getSundriesTotal(offer);\r\n }\r\n\r\n const AVCs = this.getVoluntaryRetirementContribution(offer, selection);\r\n let bonus13thCheque = 0;\r\n\r\n if (offer.offerData.earnings && offer.offerData.earnings[0] && offer.offerData.earnings[0].hasThirteenthCheque) {\r\n bonus13thCheque = offer.costToCompany * selection.pensionableSalaryPercentage / 100 / 12 / 12;\r\n }\r\n\r\n const total = PAYE + UIF + otherDeduction + AVCs + bonus13thCheque;\r\n\r\n return total;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTotalDeductions');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns monthly PAYE tax amount.\r\n */\r\n getPayeTax(offer: GetOfferByIdModel, selection: PabeSelection, candidate: GetCandidateByIdModel): number {\r\n try {\r\n\r\n let totalTax: number;\r\n let lessRebates: number;\r\n let lessMedicalTaxCredit: number;\r\n\r\n const costToCompany = offer.costToCompany;\r\n const age = this.getAge(candidate.dateOfBirth);\r\n const pensionableSalary = this._getPensionableSalary(offer, selection);\r\n\r\n const retirementContributions = this.getTotalRetirementContribution(offer, selection) * 12;\r\n\r\n let groupLifeCover = 0;\r\n if (offer.offerData.wellbeing.riskPackage.options.lifeCover.isEnabled) {\r\n let multiple = 1;\r\n let lifeCover;\r\n\r\n if (selection.insurance.memberInsurances) {\r\n lifeCover = selection.insurance.memberInsurances.filter(x => x.name.toLowerCase() == 'life cover')[0];\r\n\r\n if (lifeCover && lifeCover.multipliedBy) {\r\n multiple = lifeCover.multipliedBy;\r\n }\r\n } else if (selection.insurance.spouseInsurances) {\r\n lifeCover = selection.insurance.spouseInsurances.filter(x => x.name.toLowerCase() == 'life cover')[0];\r\n\r\n if (lifeCover && lifeCover.multipliedBy) {\r\n multiple = lifeCover.multipliedBy;\r\n }\r\n }\r\n\r\n groupLifeCover = insuranceOptions[0].monthlyAmount * multiple * 12;\r\n }\r\n\r\n const minPercentageTaxableIncome = assumptions.MinimumPercentageTaxableIncome;\r\n const minTaxableIncome = assumptions.MinimumTaxableIncome;\r\n const min1 = Math.min(retirementContributions + groupLifeCover, costToCompany * minPercentageTaxableIncome, minTaxableIncome);\r\n const retirementAnnuity = 0;\r\n const min2 = Math.min(retirementAnnuity, assumptions.RAAllowance);\r\n\r\n let travel = 0;\r\n if (offer.offerData.perks.travelPerks.details) {\r\n travel =\r\n offer.offerData.perks.travelPerks.details.hasTravelAllowance ? (offer.offerData.perks.travelPerks.details.travelAllowance.amount * 12 * 0.2) : 0;\r\n }\r\n\r\n const bonus =\r\n offer.offerData.earnings[0].hasThirteenthCheque ? (pensionableSalary / 12) : 0;\r\n\r\n const taxableIncome = costToCompany - min1 - min2 - travel - bonus;\r\n\r\n let incomeBracket: number;\r\n let marginalRate: number;\r\n let baseTax: number;\r\n\r\n if (taxableIncome >= 0 && taxableIncome < 195851) {\r\n incomeBracket = 0;\r\n marginalRate = 0.18;\r\n baseTax = 0;\r\n } else if (taxableIncome >= 195851 && taxableIncome < 305851) {\r\n incomeBracket = 195851;\r\n marginalRate = 0.26;\r\n baseTax = 35253;\r\n } else if (taxableIncome >= 305851 && taxableIncome < 423301) {\r\n incomeBracket = 305851;\r\n marginalRate = 0.31;\r\n baseTax = 63853;\r\n } else if (taxableIncome >= 423301 && taxableIncome < 555601) {\r\n incomeBracket = 423301;\r\n marginalRate = 0.36;\r\n baseTax = 100263;\r\n } else if (taxableIncome >= 555601 && taxableIncome < 708311) {\r\n incomeBracket = 555601;\r\n marginalRate = 0.39;\r\n baseTax = 147891;\r\n } else if (taxableIncome >= 708311 && taxableIncome < 1500001) {\r\n incomeBracket = 708311;\r\n marginalRate = 0.41;\r\n baseTax = 207448;\r\n } else if (taxableIncome >= 1500001) {\r\n incomeBracket = 1500001;\r\n marginalRate = 0.45;\r\n baseTax = 532041;\r\n }\r\n\r\n const additionalTax = (taxableIncome - incomeBracket) * marginalRate;\r\n totalTax = baseTax + additionalTax;\r\n\r\n const primaryRebate = taxRebates.primary.amount;\r\n const secondaryRebate = age >= taxRebates.secondary.age ? taxRebates.secondary.amount : 0;\r\n const tertiaryRebate = age >= taxRebates.tertiary.age ? taxRebates.tertiary.amount : 0;\r\n lessRebates = primaryRebate + secondaryRebate + tertiaryRebate;\r\n\r\n const numberOfdependants = selection.medicalAid.numberOfAdultDependants + selection.medicalAid.numberOfChildDependants;\r\n const member = assumptions.MedicalAidCreditTaxMember * 12;\r\n const firstDependant = numberOfdependants > 0 ? assumptions.MedicalAidTaxCreditFirstDependent * 12 : 0;\r\n const otherDependants = numberOfdependants > 1 ? (numberOfdependants - 1) * assumptions.MedicalAidTaxCreditAdditionalDependent * 12 : 0;\r\n lessMedicalTaxCredit = member + firstDependant + otherDependants;\r\n\r\n const incomeTax = totalTax - lessRebates - lessMedicalTaxCredit < 0 ? 0 : totalTax - lessRebates - lessMedicalTaxCredit;\r\n return incomeTax / 12;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getPayeTax');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns monthly amount for UIF.\r\n */\r\n getUif(offer: GetOfferByIdModel): number {\r\n try {\r\n const yearlyCostToCompany = offer.costToCompany;\r\n const max = assumptions.UIF.max;\r\n const contribution = assumptions.UIF.contribution;\r\n\r\n let uif = 0;\r\n\r\n if (yearlyCostToCompany > max) {\r\n uif = max * contribution;\r\n } else {\r\n uif = yearlyCostToCompany * contribution;\r\n }\r\n\r\n return uif / 12; // monthly amount\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getUif');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly sum of all sundries.\r\n */\r\n getSundriesTotal(offer: GetOfferByIdModel): number {\r\n try {\r\n let totalSundries = 0;\r\n\r\n if (offer.offerData.deductions.hasSundries &&\r\n offer.offerData.deductions.sundries &&\r\n offer.offerData.deductions.sundries.length > 0) {\r\n\r\n offer.offerData.deductions.sundries.forEach(sundry => {\r\n if (sundry.isInCurrency) {\r\n totalSundries += sundry.amount;\r\n } else {\r\n totalSundries += sundry.percentage * 1; // TODO when a sundry is in percentage, percentage of what?\r\n }\r\n });\r\n }\r\n\r\n return totalSundries;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getSundriesTotal');\r\n return 0;\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region SUMMARY\r\n\r\n /**\r\n * Returns monthly total well-being amount covered by employer.\r\n */\r\n getCompanyWellbeing(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const companyRetirementContribution = this.getEmployerRetirementContribution(offer, selection);\r\n const companyMedicalAidContribution = this.getMedicalAidCompanyContribution(offer, selection).amount;\r\n const companyInsuranceContribution = this.getTotalInsuranceCost(selection).employerCost;\r\n return companyRetirementContribution + companyMedicalAidContribution + companyInsuranceContribution;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getCompanyWellbeing');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns monthly total well-being amount covered by member.\r\n */\r\n getMyWellbeing(offer: GetOfferByIdModel, selection: PabeSelection) {\r\n try {\r\n const myRetirementContribution = this.getMyRetirementContribution(offer, selection);\r\n const myMedicalAidContribution = this.getMedicalAidMemberContribution(offer, selection);\r\n const myInsuranceContribution = this.getTotalInsuranceCost(selection).memberCost;\r\n const gapCover = this.getGapCover(selection);\r\n return myRetirementContribution + myMedicalAidContribution + myInsuranceContribution + gapCover;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMyWellbeing');\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Returns total well-being (monthly sum of retirement, medical aid and insurance covered by both member and employer).\r\n */\r\n getTotalWellbeingContributions(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const retirement = this.getTotalRetirementContribution(offer, selection);\r\n const medical = this.getMedicalAidMemberContribution(offer, selection);\r\n const insurance = this.getTotalInsuranceCost(selection);\r\n return retirement + medical + insurance.memberCost + insurance.employerCost;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMyContributions');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n\r\n //#region PROJECTION\r\n\r\n /**\r\n * Returns monthly take-home pay amount.\r\n */\r\n getTakeHomePay(offer: GetOfferByIdModel, candidate: GetCandidateByIdModel, selection: PabeSelection): number {\r\n try {\r\n const travelAllowance = this._getTravelAllowance(offer);\r\n const cashComponent = this._getCashComponent(offer, selection);\r\n const deductions = this.getTotalDeductions(offer, candidate, selection);\r\n const medicalAid = this.getMedicalAid(selection) - this.getGapCover(selection);\r\n\r\n return cashComponent - deductions - medicalAid + travelAllowance;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTakeHomePay');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns monthly retirement income.\r\n */\r\n getMontlyRetirementIncome(offer: GetOfferByIdModel, candidate: GetCandidateByIdModel, selection: PabeSelection, state: RetirementState): number {\r\n try {\r\n const gender = candidate.genderId == 1 ? 'Male' : 'Female';\r\n const hasSpouse = candidate.maritalStatusId == 2 ? true : false;\r\n\r\n const retirementAge = assumptions.RetirementAge;\r\n const assumedSpouseAge = assumptions.RetirementAge + assumptions.SpouseAgeDifference;\r\n\r\n let clientPricing = 0;\r\n let spousePricing = 0;\r\n let combinedPricing = 0;\r\n\r\n for (let i = 0; i < 70; i++) {\r\n if (assumedSpouseAge + i > 105) {\r\n break;\r\n }\r\n\r\n let npx = 0;\r\n let spouseNpx = 0;\r\n\r\n if (gender == 'Male') {\r\n if (retirementAge + i <= 105) {\r\n npx = mortalityTable.filter(c => c.AGE == retirementAge + i)[0].MNPX;\r\n }\r\n if (hasSpouse) {\r\n spouseNpx = mortalityTable.filter(s => s.AGE == assumedSpouseAge + i)[0].FNPX;\r\n }\r\n } else {\r\n if (retirementAge + i <= 105) {\r\n npx = mortalityTable.filter(c => c.AGE == retirementAge + i)[0].FNPX;\r\n }\r\n if (hasSpouse) {\r\n spouseNpx = mortalityTable.filter(s => s.AGE == assumedSpouseAge + i)[0].MNPX;\r\n }\r\n }\r\n npx = npx > 0 ? npx : 0;\r\n spouseNpx = spouseNpx > 0 ? spouseNpx : 0;\r\n\r\n const longBondYield = assumptions.LongBondYield;\r\n const longInflationYield = assumptions.LongInflationYield;\r\n const longYield = (1 + longBondYield) / (1 + longInflationYield);\r\n clientPricing += npx * Math.pow(longYield, -1 * (i + 1));\r\n\r\n if (hasSpouse) {\r\n const spouseReversion = assumptions.Reversion;\r\n spousePricing += spouseReversion * spouseNpx * Math.pow(longYield, -1 * (i + 1));\r\n combinedPricing += spouseReversion * spouseNpx * npx * Math.pow(longYield, -1 * (i + 1));\r\n }\r\n }\r\n\r\n const fundAtRetirement = this.increaseFund(offer, candidate, selection).fundAtRetirement;\r\n const pricing = clientPricing + spousePricing - combinedPricing;\r\n const pricingInclProfit = pricing * (1 + assumptions.ProfitMargin);\r\n const monthlyIncome = fundAtRetirement / pricingInclProfit / 12;\r\n\r\n const totalCostToCompany = state.salaryAtRetirement / 12;\r\n const nrr = monthlyIncome / totalCostToCompany;\r\n return offer.costToCompany / 12 * nrr;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getMontlyRetirementIncome');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns the age when retirement income will run out.\r\n */\r\n getRetirementRunOutAge(state: RetirementState): number {\r\n try {\r\n const drawdownMaxLimit = 0.175;\r\n const growthRate = 0.035;\r\n const inflation = assumptions.Inflation;\r\n\r\n let capital = state.fundAtRetirement;\r\n let amountToDraw = Math.min(state.salaryAtRetirement, state.fundAtRetirement * drawdownMaxLimit);\r\n let comulativeInflation = state.inflationAtRetirement;\r\n\r\n let drawdownPercentage = amountToDraw / capital;\r\n\r\n for (let age = assumptions.RetirementAge; age < 130; age++) {\r\n if (drawdownPercentage === drawdownMaxLimit) {\r\n return age;\r\n }\r\n capital = (capital - amountToDraw) + (capital * (inflation + growthRate));\r\n amountToDraw = Math.min(amountToDraw * (1 + inflation), capital * drawdownMaxLimit);\r\n comulativeInflation = comulativeInflation * (1 + inflation);\r\n drawdownPercentage = amountToDraw / capital;\r\n }\r\n } catch (error) {\r\n this._handleFirstError(error, 'getRetirementRunOutAge');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n\r\n //#region TRANSITION ASSIST\r\n\r\n getPayoutAfterTax(existingSavings: ExistingSaving[], percentage: number): number {\r\n try {\r\n const totalSavings = this.getSumOfExistingSavings(existingSavings);\r\n const cashOutAmount = totalSavings * (100 - percentage) / 100;\r\n const taxPayable = this.getTaxAmountPaid(existingSavings, percentage);\r\n const payoutAfterTax = cashOutAmount - taxPayable;\r\n return payoutAfterTax;\r\n } catch (error) {\r\n this._handleFirstError(error, 'getPayoutAfterTax');\r\n return 0;\r\n }\r\n }\r\n\r\n getTaxAmountPaid(existingSavings: ExistingSaving[], investmentPercentage: number): number {\r\n try {\r\n const percentage = investmentPercentage ? 100 - investmentPercentage : 100;\r\n\r\n const totalExistingSavings = this.getSumOfExistingSavings(existingSavings);\r\n\r\n const taxTable = [\r\n { incomeFrom: 0, marginalRate: 0.00, basicAmount: 0, incomeTo: 25000 },\r\n { incomeFrom: 25001, marginalRate: 0.18, basicAmount: 0, incomeTo: 660000 },\r\n { incomeFrom: 660001, marginalRate: 0.27, basicAmount: 114300, incomeTo: 990000 },\r\n { incomeFrom: 990001, marginalRate: 0.36, basicAmount: 203400, incomeTo: Number.MAX_VALUE }\r\n ];\r\n\r\n const withdrawalAmount = totalExistingSavings * percentage / 100;\r\n\r\n const taxBracket = taxTable.filter(x => x.incomeFrom <= withdrawalAmount && x.incomeTo >= withdrawalAmount)[0].incomeFrom;\r\n const taxRate = taxTable.filter(x => x.incomeFrom == taxBracket)[0].marginalRate;\r\n const baseTax = taxTable.filter(x => x.incomeFrom == taxBracket)[0].basicAmount;\r\n const addTax = (withdrawalAmount - taxBracket) * taxRate;\r\n\r\n const prevWithdrawalAmount = 0;\r\n const prevTaxBracket = taxTable.filter(x => x.incomeFrom <= prevWithdrawalAmount && x.incomeTo >= prevWithdrawalAmount)[0].incomeFrom;\r\n const prevTaxRate = taxTable.filter(x => x.incomeFrom == prevTaxBracket)[0].marginalRate;\r\n const prevBaseTax = taxTable.filter(x => x.incomeFrom == prevTaxBracket)[0].basicAmount;\r\n const prevAddTax = (withdrawalAmount - prevTaxBracket) * prevTaxRate;\r\n\r\n const totalTax = baseTax + addTax - prevBaseTax - prevAddTax;\r\n return totalTax > 0 ? totalTax : 0;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTaxAmountToPay');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n getValueOfSavingsAtRetirement(candidate: GetCandidateByIdModel, selection: PabeSelection, offer: GetOfferByIdModel): number {\r\n try {\r\n const retirementAge = 65;\r\n const inflation = 0.055;\r\n const returning = 0.04;\r\n const retirementAnnuity = 1000;\r\n\r\n const age = this.getAge(candidate.dateOfBirth);\r\n const yearsToRetirement = retirementAge - age;\r\n const existingSavings = this.getSumOfExistingSavings(selection.existingSavings);\r\n const investmentPercentage = selection.investmentsPercentage || 0;\r\n const startFundCredit = existingSavings + (existingSavings * investmentPercentage / 100);\r\n const pensionableSalaryPercentage = selection.pensionableSalaryPercentage;\r\n const memberContribution = selection.retirement.memberContribution || 0;\r\n const voluntaryContribution = selection.retirement.voluntaryContribution || 0;\r\n\r\n let endFundCredit = startFundCredit;\r\n let totalSalary = offer.costToCompany;\r\n\r\n let comulativeInflation = 1;\r\n let currentAge = age;\r\n const raContributions = retirementAnnuity * 12;\r\n\r\n for (let i = yearsToRetirement; i > 0; i--) {\r\n comulativeInflation *= (1 + inflation);\r\n if (i !== yearsToRetirement) {\r\n totalSalary *= 1 + inflation + salaryScales.filter(x => x.age === currentAge)[0].increase;\r\n }\r\n const contributions = totalSalary * (pensionableSalaryPercentage / 100) * ((memberContribution + voluntaryContribution) / 100);\r\n endFundCredit = (endFundCredit * (1 + inflation + returning)) + ((contributions + raContributions) * Math.pow(((1 + inflation + returning)), 0.5));\r\n currentAge++;\r\n }\r\n\r\n const fundCreditAtRetirementInRealTerms = endFundCredit / comulativeInflation;\r\n return fundCreditAtRetirementInRealTerms;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getValueOfSavingsAtRetirement');\r\n return 0;\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n //#region HELPERS AND PRIVATE METHODS\r\n\r\n /**\r\n * Returns annual pensionable salary.\r\n */\r\n private _getPensionableSalary(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const costToCompany = offer.costToCompany;\r\n const pensionableSalaryPercent = selection.pensionableSalaryPercentage / 100;\r\n const pensionableSalary = costToCompany * pensionableSalaryPercent;\r\n return pensionableSalary;\r\n } catch (error) {\r\n this._handleFirstError(error, '_getPensionableSalary');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Returns the candidate age based on his date of birth.\r\n */\r\n getAge(dateOfBirth: Date): number {\r\n const timeDiff = Math.abs(Date.now() - new Date(dateOfBirth).getTime());\r\n const age = Math.floor((timeDiff / (1000 * 3600 * 24)) / 365.25);\r\n return age;\r\n }\r\n\r\n\r\n /**\r\n * Returns the total sum of all savings.\r\n */\r\n getSumOfExistingSavings(savings: Array<{ value: number, sourceId: any, fund: string }>): number {\r\n if (savings && savings.length > 0) {\r\n let sum = 0;\r\n try {\r\n savings.forEach(item => {\r\n sum += item.value;\r\n });\r\n return sum;\r\n } catch (error) {\r\n this._handleFirstError(error, '_getSumOfExistingSavings');\r\n return sum;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n private _getTravelAllowance(offer): number {\r\n let travelAllowance = 0;\r\n try {\r\n if (offer && offer.offerData && offer.offerData.perks &&\r\n offer.offerData.perks.travelPerks && offer.offerData.perks.travelPerks.details &&\r\n offer.offerData.perks.travelPerks.details.travelAllowance) {\r\n travelAllowance = offer.offerData.perks.travelPerks.details.travelAllowance.amount;\r\n }\r\n } catch (error) {\r\n this._handleFirstError(error, 'getTravelAllowance');\r\n return 0;\r\n }\r\n return travelAllowance;\r\n }\r\n\r\n\r\n getGLA(offer: GetOfferByIdModel): number {\r\n const maxGLA = benefitRates.providentGLA;\r\n try {\r\n let maxMultiple = 1;\r\n\r\n if (offer &&\r\n offer.offerData &&\r\n offer.offerData.wellbeing &&\r\n offer.offerData.wellbeing.riskPackage &&\r\n offer.offerData.wellbeing.riskPackage.options &&\r\n offer.offerData.wellbeing.riskPackage.options.lifeCover &&\r\n offer.offerData.wellbeing.riskPackage.options.lifeCover.multiple) {\r\n maxMultiple = Math.max(...offer.offerData.wellbeing.riskPackage.options.lifeCover.multiple);\r\n }\r\n\r\n const GLA = maxGLA / maxMultiple;\r\n return GLA;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getGLA');\r\n return maxGLA;\r\n }\r\n }\r\n\r\n\r\n private _getCashComponent(offer: GetOfferByIdModel, selection: PabeSelection): number {\r\n try {\r\n const ctc = offer.costToCompany / 12;\r\n\r\n const retMemContr = this.getMemberRetirementContribution(offer, selection);\r\n const retEmplContr = this.getEmployerRetirementContribution(offer, selection);\r\n const retirementContribution = retMemContr + retEmplContr;\r\n const totalInsurance = this.getTotalInsuranceCost(selection);\r\n const gapCover = this.getGapCover(selection);\r\n const travelAllowance = this._getTravelAllowance(offer);\r\n\r\n let cashComponent = ctc - retirementContribution - gapCover - travelAllowance;\r\n\r\n if (!offer.offerData.wellbeing.isRiskPaidFromRetirementContributions) {\r\n const insuranceCost = totalInsurance.employerCost + totalInsurance.memberCost;\r\n cashComponent -= insuranceCost;\r\n }\r\n\r\n return cashComponent;\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'getCashComponent');\r\n return 0;\r\n }\r\n }\r\n\r\n\r\n increaseFund(offer: GetOfferByIdModel, candidate: GetCandidateByIdModel, selection: PabeSelection): RetirementState {\r\n if (offer && candidate && selection) {\r\n try {\r\n const age = this.getAge(new Date(candidate.dateOfBirth));\r\n const assumedRetirementAge = 65;\r\n const ctc = offer.costToCompany;\r\n let salary = ctc;\r\n const percentage = selection.investmentsPercentage || 0;\r\n let fund = (this.getSumOfExistingSavings(selection.existingSavings) * percentage / 100);\r\n let infl = 1 + 0.055;\r\n\r\n for (let year = age; year < assumedRetirementAge; year++) {\r\n const _inflation = 0.055;\r\n const _return = 0.04;\r\n const retirementContributionPercent = selection.retirement.employerContribution + selection.retirement.memberContribution + selection.retirement.voluntaryContribution;\r\n const yearlyContributions = selection.pensionableSalaryPercentage / 100 * salary * retirementContributionPercent / 100;\r\n const retirementAnnuityContribution = 1000 * 12;\r\n fund = fund * (1 + _inflation + _return) + ((yearlyContributions + retirementAnnuityContribution) * Math.pow(1 + _inflation + _return, 0.5));\r\n const salaryScale = (1 + _inflation + (salaryScales.filter(x => x.age == year + 1)[0].increase));\r\n\r\n if (year != assumedRetirementAge - 1) {\r\n salary = salary * salaryScale;\r\n }\r\n\r\n infl = infl * (1 + _inflation);\r\n }\r\n\r\n return {\r\n fundAtRetirement: fund,\r\n salaryAtRetirement: salary,\r\n inflationAtRetirement: infl\r\n };\r\n\r\n } catch (error) {\r\n this._handleFirstError(error, 'increaseFund');\r\n return new RetirementState();\r\n }\r\n } else {\r\n const error = {\r\n message: 'Null parameter passed to increaseFund(). PayslipCalculationsService line 544.'\r\n };\r\n this._handleFirstError(error, 'increaseFund');\r\n return new RetirementState();\r\n }\r\n\r\n }\r\n\r\n private _handleFirstError(error, methodName: string) {\r\n if (!this.error) {\r\n this.error = error;\r\n console.log(`CALCULATION ERROR: method: ${methodName} - ${this.error.message}`);\r\n throw (error);\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { GetUserByIdModel } from './service_models/profile-models/profile.model';\r\nimport { StoreService } from './storeService';\r\nimport { ErrorService } from './error.service';\r\nimport { environment } from '../../../src/environments/environment';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { CandidateUserProfile } from './profile-models/user-profile.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n private _headers: HttpHeaders;\r\n userUrl: string;\r\n candidatesUrl: string;\r\n candidateUrl: string;\r\n userDetails: GetUserByIdModel;\r\n\r\n public constructor(private _http: HttpClient, private _errorService: ErrorService, private _storeService: StoreService) {\r\n this._headers = new HttpHeaders().set('Content-Type', 'application/json');\r\n this._configureEndpoints();\r\n }\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = environment.serverUrl;\r\n const endPoint = environment.endPoints;\r\n this.userUrl = `${baseUrl}${endPoint.usersUrl}`;\r\n this.candidateUrl = `${baseUrl}${endPoint.candidateUrl}`;\r\n this.candidatesUrl = `${baseUrl}${endPoint.candidatesUrl}`;\r\n }\r\n\r\n getProfileUserDetails(partyId: string): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this.userUrl}/profile`;\r\n\r\n const data = {\r\n 'partyId': partyId\r\n };\r\n\r\n return this._http.post(url, data, options);\r\n\r\n }\r\n\r\n getUserDetails(): Observable {\r\n const token = this._storeService.getStoredData().access_token;\r\n const candidateId = this._storeService.getStoredData().profile['CandidateId'];\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n const url = `${this.candidatesUrl}/${candidateId}`;\r\n\r\n return this._http.get(url, options);\r\n }\r\n\r\n updateUserDetails(updatedUserDetails: GetUserByIdModel): Observable {\r\n if (!updatedUserDetails) {\r\n this._errorService.openErrorPopup('No user details are passed to the service!');\r\n return null;\r\n }\r\n\r\n const token = this._storeService.getStoredData().access_token;\r\n const candidateId = this._storeService.getStoredData().profile['CandidateId'];\r\n\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const url = `${this.candidatesUrl}/${candidateId}/update`;\r\n const data = updatedUserDetails;\r\n const options = { headers: headers };\r\n\r\n return this._http.put(url, data, options);\r\n }\r\n\r\n initRegistration(value, channel) {\r\n const data = {\r\n 'value': value,\r\n 'channel': channel\r\n };\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.userUrl}/register/initiate`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n completeRegistration(userProfile: CandidateUserProfile) {\r\n const data = JSON.stringify(userProfile);\r\n const url = `${this.userUrl}/register/complete`;\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n const options = { headers: headers };\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n resendAFOPin(username, channel) {\r\n const data = {\r\n 'username': username,\r\n 'channel': channel\r\n };\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.userUrl}/changepassword/initiate`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n completePasswordChange(username, otp, password) {\r\n const data = {\r\n 'username': username,\r\n 'otp': otp,\r\n 'password': password\r\n };\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.userUrl}/changepassword/complete`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n linkProfile(username, password) {\r\n const data = {\r\n 'username': username,\r\n 'password': password\r\n };\r\n const token = this._storeService.getStoredData().access_token;\r\n const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);\r\n const options = { headers: headers };\r\n const url = `${this.candidateUrl}/link`;\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { PlatformLocation } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RoutingService {\r\n providedIn:'root';\r\n constructor(private _router: Router, private _location: PlatformLocation) { }\r\n\r\n goBack() {\r\n this._location.back();\r\n }\r\n \r\n\r\n // place-holder method for navigating between AEM pages in the case where query parameters are not required\r\n navigateToUrl(url: string) {\r\n return this._router.navigate([url]);\r\n // return this._router.navigateByUrl(url);\r\n }\r\n\r\n // CAT Manager routes\r\n corporateDashboard() {\r\n const corporateDashboardUrl = '/corporate';\r\n return this._router.navigateByUrl(corporateDashboardUrl);\r\n }\r\n\r\n corporateCreate() {\r\n const corporateCreateUrl = '/corporate/create';\r\n return this._router.navigateByUrl(corporateCreateUrl);\r\n }\r\n BulkCorpImport() {\r\n const BulkCreateUrl = '/corporate/BulkCreate';\r\n return this._router.navigateByUrl(BulkCreateUrl);\r\n }\r\n BulkUsersImport() {\r\n const BulkCreateUrl = '/corporate/BulkCreate';\r\n return this._router.navigateByUrl(BulkCreateUrl);\r\n }\r\n\r\n createCorporate(parentId: string) {\r\n const corporateCreateUrl = '/corporate/create';\r\n return this._router.navigate(\r\n [corporateCreateUrl],\r\n {\r\n queryParams: {\r\n isSubgroup: 'true',\r\n parentId: parentId\r\n }\r\n }\r\n );\r\n }\r\n\r\n corporateViewGroup(id: string) {\r\n const corporateViewGroupUrl = '/corporate/view';\r\n return this._router.navigate([corporateViewGroupUrl],{queryParams:{id: id}});\r\n }\r\n\r\n\r\n // HR Admin routes\r\n resetPassword(email: string) {\r\n const resetPasswordUrl = '/onboarding/reset-password';\r\n const url = resetPasswordUrl + '/' + email;\r\n return this._router.navigateByUrl(url);\r\n }\r\n\r\n templatesDashboard() {\r\n const templatesDashboardUrl = '/digital/onboarding/corporate/template-dashboard';\r\n return this._router.navigateByUrl(templatesDashboardUrl);\r\n }\r\n\r\n\r\n createOfferTemplate() {\r\n const createOfferTemplateUrl = '/digital/onboarding/corporate/create-offer-template.html';\r\n return this._router.navigateByUrl(createOfferTemplateUrl);\r\n }\r\n\r\n viewTemplates() {\r\n const viewTemplatesUrl = '/digital/onboarding/corporate/view-templates.html';\r\n return this._router.navigateByUrl(viewTemplatesUrl);\r\n }\r\n\r\n viewSingleTemplate(id: string) {\r\n const viewSingleTemplateUrl = '/digital/onboarding/corporate/view-single-template.html';\r\n return this._router.navigate([viewSingleTemplateUrl],{queryParams:{id: id}});\r\n }\r\n\r\n\r\n\r\n editSingleTemplate(id: string) {\r\n const editSingleTemplateURL = '/digital/onboarding/corporate/edit-single-template.html';\r\n return this._router.navigate([editSingleTemplateURL],{queryParams:{id: id}});\r\n }\r\n\r\n rolesDashboard() {\r\n const rolesDashboardUrl = '/digital/onboarding/users/roles-dashboard';\r\n return this._router.navigateByUrl(rolesDashboardUrl);\r\n }\r\n\r\n\r\n createUser() {\r\n const createUserUrl = '/digital/onboarding/candidate/create-user';\r\n return this._router.navigateByUrl(createUserUrl);\r\n }\r\n\r\n\r\n\r\n editUser(userId: string, corporateId: string) {\r\n const editUserUrl = '/digital/onboarding/candidate/edit-user';\r\n return this._router.navigate(\r\n [editUserUrl],\r\n {\r\n queryParams: {\r\n userId: userId,\r\n corporateId: corporateId\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n // HR routes\r\n hrLogin() {\r\n return this._router.navigateByUrl('');\r\n }\r\n\r\n opsDashboard() {\r\n const dashboardUrl = \"/content/resignations/en/home/landing.html\";\r\n window.location.href = dashboardUrl;\r\n // return this._router.navigateByUrl(dashboardUrl);\r\n }\r\n dashboard() {\r\n const dashboardUrl = '/digital/onboarding/candidate';\r\n return this._router.navigateByUrl(dashboardUrl);\r\n }\r\n\r\n archive() {\r\n const archiveUrl = 'digital/onboarding/corporate/archive';\r\n return this._router.navigateByUrl(archiveUrl);\r\n }\r\n\r\n candidateProfile(id: string) {\r\n const candidateProfileUrl = '/digital/onboarding/candidate/viewprofile.html';\r\n return this._router.navigate([candidateProfileUrl],{queryParams:{id: id}});\r\n }\r\n\r\n viewOffer(offerId: string) {\r\n const viewOfferUrl = '/digital/onboarding/candidate/viewoffer.html';\r\n return this._router.navigate([viewOfferUrl],{queryParams:{id: offerId}});\r\n }\r\n\r\n confirmOffer() {\r\n const confirmOfferUrl = '/digital/onboarding/candidate/confirmoffer.html';\r\n return this._router.navigateByUrl(confirmOfferUrl);\r\n }\r\n\r\n confirmPABE() {\r\n const confirmPABEUrl = '/digital/onboarding/candidate/confirm-pabe.html';\r\n return this._router.navigateByUrl(confirmPABEUrl);\r\n }\r\n\r\n acceptedOffer(id: string) {\r\n const acceptedOfferUrl = '/digital/onboarding/candidate/accepted.html';\r\n return this._router.navigate([acceptedOfferUrl],{queryParams:{id: id}});\r\n }\r\n\r\n declinedOffer(id: string) {\r\n const declinedOfferUrl = '/digital/onboarding/candidate/declined.html';\r\n return this._router.navigate([declinedOfferUrl],{queryParams:{id: id}});\r\n }\r\n\r\n expiredOffer(id: string) {\r\n const expiredOfferUrl = '/digital/onboarding/candidate/expired.html';\r\n return this._router.navigate([expiredOfferUrl],{queryParams:{id: id}});\r\n }\r\n\r\n pendingOffer(id: string) {\r\n const pendingOfferUrl = '/digital/onboarding/candidate/pending.html';\r\n return this._router.navigate([pendingOfferUrl],{queryParams:{id: id}});\r\n }\r\n\r\n chooseTemplate(candidateId: string) {\r\n const chooseTemplateUrl = '/digital/onboarding/candidate/choosetemplate.html';\r\n return this._router.navigate([chooseTemplateUrl],{queryParams:{id: candidateId}});\r\n }\r\n\r\n createOffer(candidateId: string, templateId: string) {\r\n const createOfferUrl ='/digital/onboarding/candidate/createoffer.html';\r\n return this._router.navigate([createOfferUrl],{queryParams: { candidateId: candidateId, templateId: templateId } });\r\n }\r\n\r\n completeOffer(offerId: string) {\r\n const completeOfferUrl = '/digital/onboarding/candidate/confirm.html';\r\n return this._router.navigate([completeOfferUrl],{queryParams:{id: offerId}});\r\n }\r\n\r\n createCandidate() {\r\n const createCandidateUrl = '/digital/onboarding/candidate/create.html';\r\n return this._router.navigateByUrl(createCandidateUrl);\r\n }\r\n\r\n completeDraftCandidate(draftCandidateId: string) {\r\n const createCandidateUrl = '/digital/onboarding/candidate/create.html';\r\n return this._router.navigate([createCandidateUrl],{queryParams:{id: draftCandidateId}});\r\n }\r\n\r\n offerSent() {\r\n const offerSentUrl = '/digital/onboarding/candidate/offer-sent.html';\r\n return this._router.navigateByUrl(offerSentUrl);\r\n }\r\n error() {\r\n return this._router.navigateByUrl('/onboarding/invalid');\r\n\r\n }\r\n\r\n // HR shared\r\n myProfile() {\r\n const profileUrl = '/digital/onboarding/corporate/my-profile';\r\n return this._router.navigateByUrl(profileUrl);\r\n }\r\n\r\n // Candidate routes\r\n candidateLogin() {\r\n const candidateLoginUrl = '/digital/onboarding/candidate-login.html';\r\n return this._router.navigateByUrl(candidateLoginUrl);\r\n }\r\n\r\n candidateIntro() {\r\n const candidateIntroUrl = '/candidate/intro';\r\n return this._router.navigateByUrl(candidateIntroUrl);\r\n }\r\n\r\n candidateReviewOffer() {\r\n const candidateReviewOfferUrl = '/digital/onboarding/candidate/review-offer.html';\r\n return this._router.navigateByUrl(candidateReviewOfferUrl);\r\n }\r\n\r\n home() {\r\n const homeURL = '/content/memberonboarding/spa/home.html';\r\n return this._router.navigateByUrl(homeURL);\r\n }\r\n\r\n candidatePabeIntro() {\r\n const candidatePabeIntro = 'candidate/pabe-intro';\r\n return this._router.navigateByUrl(candidatePabeIntro);\r\n }\r\n\r\n candidateExploreOffer() {\r\n const candidateExploreOfferUrl = '/digital/onboarding/candidate/explore-offer.html';\r\n return this._router.navigateByUrl(candidateExploreOfferUrl);\r\n }\r\n\r\n candidateFinalise() {\r\n const candidateFinaliseUrl = '/digital/onboarding/candidate/candidate-finalise-offer.html';\r\n return this._router.navigateByUrl(candidateFinaliseUrl);\r\n }\r\n\r\n candidateDetailsAndAccept() {\r\n const candidateDetailsAndAcceptUrl = '/candidate/details-and-accept';\r\n return this._router.navigateByUrl(candidateDetailsAndAcceptUrl);\r\n }\r\n\r\n candidateOfferAccepted() {\r\n const candidateOfferAcceptedUrl = '/candidate/accepted-offer';\r\n return this._router.navigateByUrl(candidateOfferAcceptedUrl);\r\n }\r\n\r\n candidateOfferQueried() {\r\n const candidateOfferAcceptedUrl = '/candidate/accepted-offer';\r\n return this._router.navigateByUrl(candidateOfferAcceptedUrl);\r\n }\r\n\r\n candidateOfferExpired() {\r\n const candidateOfferExpiredUrl = '/candidate/expired-offer';\r\n return this._router.navigateByUrl(candidateOfferExpiredUrl);\r\n }\r\n\r\n candidateCreateProfile() {\r\n const candidateCreateProfileUrl = '/digital/onboarding/candidate/candidate-profile.html';\r\n return this._router.navigateByUrl(candidateCreateProfileUrl);\r\n }\r\n\r\n userLogin() {\r\n const userLoginUrl = '/digital/onboarding/candidate/candidate-welcome-login.html';\r\n return this._router.navigateByUrl(userLoginUrl);\r\n }\r\n\r\n userProfileLinking() {\r\n const userProfileLinkingUrl = '/digital/onboarding/candidate/candidate-profile-linking.html';\r\n return this._router.navigateByUrl(userProfileLinkingUrl);\r\n }\r\n\r\n candidateDecions() {\r\n const candidateDecionsUrl = '/digital/onboarding/candidate/candidate-decision-details.html';\r\n return this._router.navigateByUrl(candidateDecionsUrl);\r\n }\r\n\r\n // Transition Assist\r\n profileIntro() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/intro.html');\r\n }\r\n\r\n transitionAssistEditProfile() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/edit.html');\r\n }\r\n\r\n transitionAssistDocuments() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/documents.html');\r\n }\r\n\r\n transitionAssistBenefits() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/benefits.html');\r\n }\r\n\r\n transitionAssistOptimizeRetirement() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/benefits/optimize-retirement.html');\r\n }\r\n\r\n transitionAssistRetirementIntro() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/retirement-benefit/retirement-contributions.html');\r\n }\r\n\r\n transitionAssistInvestmentStrategy() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/retirement-benefit/retirement-strategy.html');\r\n }\r\n\r\n transitionAssistResignationGuide() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/resignation-guide.html');\r\n }\r\n\r\n transitionAssistTransferGuide() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/transfer-guide.html');\r\n }\r\n\r\n transitionAssistAllTasks() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/all-tasks.html');\r\n }\r\n\r\n transitionAssistInvesting() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/investing.html');\r\n }\r\n\r\n transitionAssistProtection() {\r\n return this._router.navigateByUrl('/digital/onboarding/new-employees/profile/protection.html');\r\n }\r\n\r\n unauthorized() {\r\n return this._router.navigateByUrl('/unauthorized');\r\n }\r\n\r\n //resignations module routes\r\n profileLandingPage() {\r\n //return this._router.navigateByUrl('/digital/resignations/savings/profile-landing.html');\r\n return this._router.navigate(['']);\r\n }\r\n moveSavings(moveWithdrawlFlag: number,fundCredit: number = 0,member:any={}) {\r\n //const moveSavingsUrl = '/digital/resignations/savings/move-savings.html';\r\n const moveSavingsUrl = '/member/move-withdraw';\r\n return this._router.navigate([moveSavingsUrl],{queryParams:{flag: moveWithdrawlFlag,sv: fundCredit}});\r\n }\r\n\r\n savingsDetails(moveWithdrawlFlag: number,fundCredit: number = 0,percent:number) {\r\n //return this._router.navigate(['/digital/resignations/savings/savings-details.html'],{queryParams:{flag: moveWithdrawlFlag,sv: fundCredit,pt: percent}});\r\n return this._router.navigate(['savings-details'],{queryParams:{flag: moveWithdrawlFlag,sv: fundCredit,pt: percent}});\r\n }\r\n\r\n confirmDetails() {\r\n this._router.navigate(['confirm-details']);\r\n }\r\n\r\n savingsSummary() {\r\n //return this._router.navigateByUrl('/digital/resignations/savings/savings-summary.html');\r\n return this._router.navigate(['savings-summary']);\r\n }\r\n}\r\n","export class GetCorporateById {\r\n id: string;\r\n parentCorporate: { id: string, name: string };\r\n statusId: number;\r\n industryId: number;\r\n companyTypeId: number;\r\n name: string;\r\n payrollDay: number;\r\n headerLogo: FileViewModel;\r\n headerLogoId: string;\r\n primaryColour: string;\r\n riskData: string;\r\n retirementData: any;\r\n createdDate: Date;\r\n modifiedDate: Date;\r\n locations: { id: number, name: string }[];\r\n users: Array;\r\n subGroups?: Subgroup[];\r\n}\r\n\r\n\r\nexport class FileViewModel {\r\n public id: string;\r\n public filename: string;\r\n public url: string;\r\n public fileType?: string;\r\n}\r\n\r\nexport class FileViewUserDocumentsModel {\r\n public id: string;\r\n public filename: string;\r\n public url: string;\r\n public fileType?: string;\r\n}[]\r\n\r\nexport interface CorporateUser {\r\n userId: string;\r\n username: string;\r\n firstname: string;\r\n lastname: string;\r\n email: string;\r\n cellNumber: string;\r\n workNo: string;\r\n roleId: number;\r\n isActive: boolean;\r\n}\r\n\r\nexport class Subgroup {\r\n public corporateId: string;\r\n public parentCorporateId: string;\r\n public statusId: number;\r\n public name: string;\r\n public createdDate: Date;\r\n public headerLogo: FileViewModel;\r\n public groupsCount: number;\r\n}","import appsettings from \"../../assets/appsettings.json\"\r\nimport {User} from \"oidc-client\";\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StoreService {\r\n\r\n getStoredData(): User {\r\n const data = JSON.parse(sessionStorage.getItem(`oidc.user:${appsettings.accessTokenApiUrl}:${appsettings.clientId}`) as string);\r\n return data;\r\n }\r\n\r\n isAuthenticated() {\r\n if (this.getStoredData()) {\r\n if (\r\n this.getStoredData().id_token &&\r\n this.getStoredData().profile['role']\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport appsettings from \"../../assets/appsettings.json\"\r\nimport { Observable } from 'rxjs';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { UserModel } from '../shared/models/user.model';\r\nimport { CorporateUserModel } from '../shared/models/corporateuser.model';\r\nimport { StoreService } from './storeService';\r\nimport { GetRolesSingleModel } from './service_models/roles-models/get-all-roles-single.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n private _headers: HttpHeaders;\r\n private _rolesUrl: string;\r\n currentUser: UserModel;\r\n corporateUser: CorporateUserModel;\r\n\r\n public constructor(private _http: HttpClient, private _storeService: StoreService) {\r\n this._configureEndpoints();\r\n this.currentUser = new UserModel();\r\n this.corporateUser = new CorporateUserModel();\r\n }\r\n\r\n public getAllUsers(corporateId: string): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/getall`;\r\n return this._http.get(url + '?CorporateId=' + corporateId + '&IsActive=true', options);\r\n }\r\n\r\n\r\n public getUserById(userId: string, corporateId: string | null = null): Observable {\r\n const corpId = corporateId || this._storeService.getStoredData().profile['CorporateId'];\r\n const url = `${this._rolesUrl}/get`;\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n return this._http.get(url + '?CorporateId=' + corpId + '&UserId=' + userId, options);\r\n }\r\n\r\n public createAdmin(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/createadmin`;\r\n\r\n const userToCreate = {\r\n 'firstname': this.currentUser.firstname,\r\n 'lastname': this.currentUser.lastName,\r\n 'email': this.currentUser.email,\r\n 'cellphone': this.currentUser.cellPhone,\r\n 'workNo': this.currentUser.workNo,\r\n 'roleId': this.currentUser.roleId,\r\n 'loggedInUser': this.currentUser.loggedInUser,\r\n };\r\n // const data = JSON.stringify(userToCreate);\r\n return this._http.post(url, userToCreate, options);\r\n }\r\n\r\n public createCorporateUser(): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/createcorporate`;\r\n\r\n const userToCreate = {\r\n 'userId': this.corporateUser.userId,\r\n 'firstname': this.corporateUser.firstname,\r\n 'lastname': this.corporateUser.lastName,\r\n 'email': this.corporateUser.email,\r\n 'cellphone': this.corporateUser.cellPhone,\r\n 'workNo': this.corporateUser.workNo,\r\n 'roleId': this.corporateUser.roleId,\r\n 'corporateId': this.corporateUser.corporateId,\r\n 'loggedInUser': this.corporateUser.loggedInUser,\r\n 'billGroups' : this.corporateUser.billGroups\r\n };\r\n // const data = JSON.stringify(userToCreate);\r\n return this._http.post(url, userToCreate, options);\r\n\r\n }\r\n\r\n\r\n updateProfile(profileToUpdate: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/updatecorporate`;\r\n // const data = JSON.stringify(profileToUpdate);\r\n return this._http.post(url, profileToUpdate, options);\r\n }\r\n\r\n updateAdminProfile(profileToUpdate: any): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/updateadmin`;\r\n // const data = JSON.stringify(profileToUpdate);\r\n return this._http.post(url, profileToUpdate, options);\r\n }\r\n\r\n addUsersToArchive(usersForArchiving: any[]) {\r\n const usersToBeArchived: any[] = [];\r\n usersForArchiving.forEach((user) => {\r\n usersToBeArchived.push(user.userId);\r\n });\r\n\r\n const usersToArchive = {\r\n 'userIdList': usersToBeArchived,\r\n 'corporateId': this._storeService.getStoredData().profile['CorporateId'],\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n\r\n const url = `${this._rolesUrl}/archive`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, usersToArchive, options);\r\n }\r\n\r\n reinstateUsers(usersForArchiving: any[]) {\r\n const usersToBeArchived: any[] = [];\r\n usersForArchiving.forEach((user) => {\r\n usersToBeArchived.push(user);\r\n });\r\n\r\n const usersToArchive = {\r\n 'userIdList': usersToBeArchived,\r\n 'corporateId': this._storeService.getStoredData().profile['CorporateId'],\r\n 'loggedInUser': this._storeService.getStoredData().profile.sub,\r\n };\r\n\r\n const url = `${this._rolesUrl}/archive`;\r\n const options = { headers: this._headers };\r\n return this._http.post(url, usersToArchive, options);\r\n }\r\n\r\n getCurrentUserProfileData(): Observable {\r\n const corporateId = this._storeService.getStoredData().profile['CorporateId'];\r\n const userId = this._storeService.getStoredData().profile.sub;\r\n const url = `${this._rolesUrl}/get`;\r\n \r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n return this._http.get(url + '?CorporateId=' + corporateId + '&UserId=' + userId, options);\r\n }\r\n\r\n disableUser(userId: string, disableUser: boolean): Observable {\r\n const token = this._storeService.getStoredData().id_token;\r\n const headers = new HttpHeaders()\r\n .set('Authorization', `Bearer ${token}`)\r\n .set('Content-Type', 'application/json');\r\n\r\n const options = { headers: headers };\r\n const url = `${this._rolesUrl}/enable`;\r\n const data = {\"userId\": userId, \"enabled\": disableUser}\r\n return this._http.post(url, data, options);\r\n }\r\n\r\n\r\n private _configureEndpoints() {\r\n const baseUrl = appsettings.serverUrl;\r\n const endPoint = appsettings.endPoints;\r\n this._rolesUrl = `${baseUrl}${endPoint.rolesUrl}`;\r\n }\r\n\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { FormControl, ValidatorFn } from \"@angular/forms\";\r\nimport { DatePipe } from \"@angular/common\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class UtilitiesService {\r\n constructor(private datePipe: DatePipe) {}\r\n\r\n static max(max: number): | any {\r\n return (control: FormControl): { [key: string]: boolean } | null => {\r\n const val: number = control.value;\r\n\r\n if (control.pristine || control.pristine) {\r\n return null;\r\n }\r\n if (val <= max) {\r\n return null;\r\n }\r\n return { max: true };\r\n };\r\n }\r\n\r\n //TODO: look into this ValidatorFn. It was giving type error without the \"| any\" fix\r\n static min(min: number): ValidatorFn | any {\r\n return (control: FormControl): { [key: string]: boolean } | null => {\r\n const val: number = control.value;\r\n\r\n if (control.pristine || control.pristine) {\r\n return null;\r\n }\r\n if (val >= min) {\r\n return null;\r\n }\r\n return { min: true };\r\n };\r\n }\r\n\r\n convertDate(strDate: any): any {\r\n if (strDate) {\r\n const d = new Date(strDate);\r\n return d;\r\n }\r\n }\r\n\r\n convertShortDate(strDate: any): string | null {\r\n if (strDate) {\r\n const d = new Date(Date.parse(strDate));\r\n return this.datePipe.transform(d, \"dd MMMM yyyy\");\r\n }\r\n\r\n return null;\r\n }\r\n\r\n convertDateShort(strDate: any): string | null{\r\n if (strDate) {\r\n const d = new Date(Date.parse(strDate));\r\n return this.datePipe.transform(d, \"dd/MM/yyyy\");\r\n }\r\n\r\n return null;\r\n }\r\n\r\n convertDateShortDash(strDate: any): string | null {\r\n if (strDate) {\r\n const d = new Date(Date.parse(strDate));\r\n return this.datePipe.transform(d, \"yyyy-MM-dd\");\r\n }\r\n\r\n return null;\r\n }\r\n\r\n addWorkDays(startDate: Date, days: any) {\r\n if (isNaN(days)) {\r\n return;\r\n }\r\n if (!(startDate instanceof Date)) {\r\n return;\r\n }\r\n // Get the day of the week as a number (0 = Sunday, 1 = Monday, .... 6 = Saturday)\r\n const dow = startDate.getDay();\r\n let daysToAdd = parseInt(days, 0);\r\n // If the current day is Sunday add one day\r\n if (dow === 0) {\r\n daysToAdd++;\r\n }\r\n // If the start date plus the additional days falls on or after the closest Saturday calculate weekends\r\n if (dow + daysToAdd >= 6) {\r\n // Subtract days in current working week from work days\r\n const remainingWorkDays = daysToAdd - (5 - dow);\r\n // Add current working week's weekend\r\n daysToAdd += 2;\r\n if (remainingWorkDays > 5) {\r\n // Add two days for each working week by calculating how many weeks are included\r\n daysToAdd += 2 * Math.floor(remainingWorkDays / 5);\r\n // Exclude final weekend if remainingWorkDays resolves to an exact number of weeks\r\n if (remainingWorkDays % 5 === 0) {\r\n daysToAdd -= 2;\r\n }\r\n }\r\n }\r\n startDate.setDate(startDate.getDate() + daysToAdd);\r\n return startDate;\r\n }\r\n\r\n roundToFifty(num: number): number {\r\n if (num % 50 >= 25) {\r\n return Math.round(num / 50) * 50;\r\n } else {\r\n return Math.floor(num / 50) * 50;\r\n }\r\n }\r\n\r\n roundNumber(num: number): number {\r\n return Math.floor(num);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport appsettings from \"../../assets/appsettings.json\"\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { forkJoin, throwError } from \"rxjs\";\r\nimport { map, catchError } from \"rxjs/operators\";\r\nimport { ErrorService } from \"./error.service\";\r\nimport { getErrorMessage } from \"../shared/common-functions\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidationService {\r\n private _headers: HttpHeaders;\r\n // tslint:disable-next-line:max-line-length\r\n dateOfBirthRegEx = new RegExp(\r\n \"^(([0-9])|([0-2][0-9])|([3][0-1])) (January|February|March|April|May|June|July|August|September|October|November|December) (([1][9][2-9][0-9])|([2][0][0][0-9]))$\"\r\n );\r\n // tslint:disable-next-line:max-line-length\r\n startDateRegEx = new RegExp(\r\n \"^(([0-9])|([0-2][0-9])|([3][0-1])) (January|February|March|April|May|June|July|August|September|October|November|December) (([2][0][1][9])|([2][0][2][0-9]))$\"\r\n );\r\n\r\n constructor(private _http: HttpClient, private errorService: ErrorService) {\r\n this._headers = new HttpHeaders().set(\"Content-Type\", \"application/json\");\r\n }\r\n\r\n validateSouthAfricanID(southAfricanId: string) {\r\n const url =\r\n appsettings.serverUrl +\r\n appsettings.endPoints.validateUrl +\r\n `?identityNumber=${southAfricanId}`;\r\n return this._http.get<{ valid: boolean; dateOfBirth: Date }>(url).pipe(\r\n map((responseData) => {\r\n let response: any = {};\r\n response = responseData;\r\n return response;\r\n }),\r\n catchError((errorRes) => {\r\n console.error(\"errorRes\", errorRes.statusText);\r\n let errorMessage = getErrorMessage(errorRes);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while validating ID Number - \" + errorMessage\r\n );\r\n return throwError(errorRes);\r\n })\r\n );\r\n }\r\n\r\n validateSouthAfricanIDs(southAfricanIds: string[]) {\r\n const observableArr: any[] = [];\r\n southAfricanIds.forEach((el) => {\r\n const url =\r\n appsettings.serverUrl +\r\n appsettings.endPoints.validateUrl +\r\n `?identityNumber=${el}`;\r\n observableArr.push(\r\n this._http.get<{ valid: boolean; dateOfBirth: Date }>(url).pipe(\r\n map((responseData) => {\r\n let response: any = {};\r\n response = responseData;\r\n return response;\r\n }),\r\n catchError((errorRes) => {\r\n let errorMessage = getErrorMessage(errorRes);\r\n this.errorService.openErrorPopup(\r\n \"Error occurred while validating ID Number - \" + errorMessage\r\n );\r\n return throwError(errorRes);\r\n })\r\n )\r\n );\r\n });\r\n\r\n return forkJoin(observableArr);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WizardHelperService {\r\n wizardIntroShow: boolean = false;\r\n}\r\n","export const getErrorMessage = (error: any) => {\r\n if (error.error && error.error.error && error.error.error.length > 0) {\r\n return error.status + \": \" + error.error.error[0];\r\n } else if (error.error && !error.error.error && error.statusText) {\r\n return error.status + \": \" + error.statusText;\r\n } else {\r\n return \"\";\r\n }\r\n};\r\n","// External\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { CardModule } from 'primeng/card';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\n\r\n// Internal\r\n// import { CompanyBenefitsComponent } from './company-benefits/company-benefits.component';\r\n// import { OfferSummaryComponent } from '../components/onboarding/candidate/review-offer/offer-summary/offer-summary.component';\r\n// import { OfferDetailsComponent } from './offer-details/offer-details.component';\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { AreYouSureDialogComponent } from './header/are-you-sure-dialog/are-you-sure-dialog.component';\r\n// import { SearchPipe } from './pipes/searchpipe.component';\r\n// import { TemplateCardComponent } from '../components/onboarding/users/all-templates/view-templates/template-card/template-card.component';\r\n// import { GenericCardComponent } from './generic-card/generic-card.component';\r\n// import { RetirementComponent } from '../components/onboarding/users/all-templates/create-offer-template/wellbeing-tab/retirement/retirement.component';\r\n// import { MedicalAidComponent } from '../components/onboarding/users/all-templates/create-offer-template/wellbeing-tab/medical-aid/medical-aid.component';\r\n// import { RiskComponent } from '../components/onboarding/users/all-templates/create-offer-template/wellbeing-tab/risk/risk.component';\r\n// import { CheckIconComponent } from '../directives/check-icon/check-icon.component';\r\n// import { CheckIconDirective } from '../directives/check-icon/check-icon.directive';\r\n// import { CandidateMedicalAidComponent } from './medical-aid/medical-aid.component';\r\n// import { PackageSummaryComponent } from '../components/onboarding/candidate/explore-offer/package-summary/package-summary.component';\r\n// import { UnauthorizedComponent } from './unauthorized/unauthorized.component';\r\nimport { SuccessMessageComponent } from './success-message/success-message.component';\r\n// import { ErrorComponent } from './error/error.component';\r\n// import {ConfirmDetailsModule} from \"../components/resignations/confirm-details/confirm-details.module\";\r\n// import {ConfirmDetailsComponent} from \"../components/resignations/confirm-details/confirm-details.component\";\r\n// import {ContactDetailsComponent} from \"../components/shared-ui/contact-details/contact-details.component\";\r\n// import {PostalAddressComponent} from \"../components/shared-ui/postal-address/postal-address.component\";\r\nimport {AppHeaderModule} from \"../components/shared-ui/app-header/app-header.module\";\r\n import { MemberAddressComponent } from '../components/shared-ui/member-address/member-address.component';\r\n import { MemberTaxDetailsComponent } from '../components/shared-ui/member-tax-details/member-tax-details.component';\r\n// import { CheckboxComponent } from './checkbox/checkbox.component';\r\n// import { ClaimConfirmPopupComponent } from '../components/shared-ui/claim-confirm-popup/claim-confirm-popup.component';\r\nimport { HelpPopupComponent } from '../components/shared-ui/help-popup/help-popup.component';\r\nimport { ContinueWarningComponent } from '../components/shared-ui/continue-warning/continue-warning.component';\r\nimport { WizardStepComponent } from '../components/shared-ui/wizard-step/wizard-step.component';\r\nimport { ClaimConfirmPopupComponent } from '../components/shared-ui/claim-confirm-popup/claim-confirm-popup.component';\r\nimport { MemberPersonalDetailsComponent } from '../components/shared-ui/personal-details/personal-details.component';\r\nimport { TabsComponent } from '../components/resignations/savings/savings-details/shared';\r\nimport { IdentificationDetailsComponent } from '../components/shared-ui/identification-details/identification-details.component';\r\nimport { ContactDetailsComponent } from '../components/resignations/savings/profile-landing-page/contact-details/contact-details.component';\r\nimport { PostalAddressComponent } from '../components/resignations/savings/profile-landing-page/postal-address/postal-address.component';\r\nimport { DependantsComponent } from '../components/onboarding/new-employees/retirement-contributions-information/dependants/dependants.component';\r\nimport { PopiComponent } from '../components/shared-ui/popi/popi.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n InputSwitchModule,\r\n CardModule,\r\n DropdownModule,\r\n CalendarModule,\r\n RadioButtonModule,\r\n CheckboxModule,\r\n InputTextModule,\r\n FileUploadModule,\r\n ConfirmDialogModule,\r\n ReactiveFormsModule,\r\n AppHeaderModule\r\n ],\r\n declarations: [\r\n HeaderComponent,\r\n AreYouSureDialogComponent,\r\n // SearchPipe,\r\n // OfferDetailsComponent,\r\n // OfferSummaryComponent,\r\n // TemplateCardComponent,\r\n // CompanyBenefitsComponent,\r\n // GenericCardComponent,\r\n // CheckIconComponent,\r\n // CheckIconDirective,\r\n // RetirementComponent,\r\n // MedicalAidComponent,\r\n // CandidateMedicalAidComponent,\r\n // PackageSummaryComponent,\r\n // RiskComponent,\r\n // UnauthorizedComponent,\r\n SuccessMessageComponent,\r\n // ErrorComponent,\r\n WizardStepComponent,\r\n MemberPersonalDetailsComponent,\r\n IdentificationDetailsComponent,\r\n // ConfirmDetailsComponent,\r\n ContactDetailsComponent,\r\n PostalAddressComponent,\r\n DependantsComponent,\r\n PopiComponent,\r\n MemberAddressComponent,\r\n MemberTaxDetailsComponent,\r\n // CheckboxComponent,\r\n ClaimConfirmPopupComponent,\r\n TabsComponent,\r\n ContinueWarningComponent,\r\n HelpPopupComponent\r\n ],\r\n exports: [\r\n HeaderComponent,\r\n AreYouSureDialogComponent,\r\n // SearchPipe,\r\n // OfferDetailsComponent,\r\n // OfferSummaryComponent,\r\n // TemplateCardComponent,\r\n // MedicalAidComponent,\r\n // CompanyBenefitsComponent,\r\n // GenericCardComponent,\r\n // CheckIconDirective,\r\n // RetirementComponent,\r\n // CandidateMedicalAidComponent,\r\n // PackageSummaryComponent,\r\n // RiskComponent,\r\n SuccessMessageComponent,\r\n WizardStepComponent,\r\n MemberPersonalDetailsComponent,\r\n MemberAddressComponent,\r\n MemberTaxDetailsComponent,\r\n // CheckboxComponent,\r\n ClaimConfirmPopupComponent,\r\n TabsComponent,\r\n // PostalAddressComponent,\r\n ContinueWarningComponent,\r\n HelpPopupComponent\r\n ],\r\n //entryComponents: [ CheckIconComponent ]\r\n})\r\nexport class CustomSharedModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ErrorService } from '../../services/error.service';\r\n\r\n@Component({\r\n selector: 'app-error-popup',\r\n templateUrl: './error-popup.component.html',\r\n styleUrls: ['./error-popup.component.scss']\r\n})\r\nexport class ErrorPopupComponent implements OnInit {\r\n\r\n public showError = this.errorService.isErrorVisible;\r\n public errorMessage = this.errorService.errorMessage;\r\n\r\n constructor(public errorService: ErrorService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n\r\n","
\r\n\r\n \r\n\r\n
\r\n

\r\n {{ errorService.errorMessage }}\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n","import { Component, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-are-you-sure-dialog',\r\n templateUrl: './are-you-sure-dialog.component.html',\r\n styleUrls: [\r\n '../../error-popup/error-popup.component.scss',\r\n './are-you-sure-dialog.component.scss'\r\n ]\r\n})\r\nexport class AreYouSureDialogComponent {\r\n\r\n @Output() close = new EventEmitter();\r\n @Output() logout = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n onClose() {\r\n this.close.emit();\r\n }\r\n\r\n onLogout() {\r\n this.logout.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

\r\n Are you sure you want to log out ?\r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { StoreService } from '../../services/storeService';\r\n\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent {\r\n\r\n isDialogOpen: boolean;\r\n\r\n constructor(private authService: AuthService, private router: Router, private _storeService: StoreService) { }\r\n\r\n isAuthenticated() {\r\n const storage = this._storeService.getStoredData();\r\n\r\n if (storage) {\r\n if (storage.profile['role'] === 'HR Admin' && storage.id_token !== undefined) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n onSignOut() {\r\n this.isDialogOpen = false;\r\n this.authService.logout();\r\n this.router.navigate(['']);\r\n }\r\n\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n","export class CandidateModel {\r\n public isDraft: boolean;\r\n public firstname: string;\r\n public lastname: string;\r\n public dateOfBirth: Date;\r\n public nationalityId: number;\r\n public identityValue: string;\r\n public disability: string;\r\n public email: string;\r\n public cellPhone: string;\r\n public currentRole: string;\r\n public currentCTC: number;\r\n public corporateId: string;\r\n public titleId: number;\r\n public genderId: number;\r\n public raceId: number;\r\n public identityTypeId: number;\r\n public maritalStatusId: number;\r\n public cvDocumentId: string;\r\n public idDocumentId: string;\r\n public userDocumentId: string;\r\n public statusId: number;\r\n\r\n}\r\n\r\nexport class DocumentModel {\r\n public fileTypeId: number;\r\n public file: File;\r\n public id: string;\r\n public overwrite: boolean;\r\n}\r\n\r\nexport class userDocumentModel {\r\n public fileTypeId: number;\r\n public file: File;\r\n public id: string;\r\n public overwrite: boolean;\r\n}[]\r\n\r\nexport class CategoryDocumentModel {\r\n public categoryTypeId: number;\r\n public file: File;\r\n public id: string;\r\n public overwrite: boolean;\r\n}\r\n\r\n","export class CorporateUserModel {\r\n public userId: string;\r\n public firstname: string;\r\n public lastName: string;\r\n public email: string;\r\n public cellPhone: string;\r\n public workNo: string;\r\n public roleId: number;\r\n public corporateId: string;\r\n public loggedInUser: string;\r\n public billGroups?: any;\r\n}\r\n","export class CustomTrackBy {\r\n customTrackBy(index: number, obj: any) {\r\n return index;\r\n }\r\n}\r\n","export abstract class ScrollBlocker {\r\n\r\n protected _requestsCount: number = 0;\r\n\r\n protected _blockScroll() {\r\n this._requestsCount++;\r\n window.scrollTo(0, 0);\r\n document.getElementsByTagName('body')[0].classList.add('blocked');\r\n }\r\n\r\n protected _unblockScroll() {\r\n this._requestsCount--;\r\n if (this._requestsCount <= 0) {\r\n document.getElementsByTagName('body')[0].classList.remove('blocked');\r\n }\r\n }\r\n}\r\n","import { OfferDetails } from './offerDetails.model';\r\nimport { TemplatePerks } from './perks.model';\r\n\r\nexport class OfferModel {\r\n public id?: string;\r\n public templateId?: any;\r\n public candidateId: string;\r\n public tempUserId?: string;\r\n public offerDetails: OfferDetails;\r\n public earnings: Array;\r\n public deductions: OfferDeductions;\r\n public wellbeing: OfferWellbeing;\r\n public perks: TemplatePerks;\r\n public expiryDate?: Date;\r\n public isDraft?: boolean;\r\n}\r\n\r\n\r\nexport class OfferSingleEarning {\r\n hasPensionableSalary: boolean;\r\n pensionPercentageOptions: number[];\r\n hasSignOnBonus: boolean;\r\n signOnBonus: number;\r\n hasThirteenthCheque: boolean;\r\n hasPerformanceBonus: boolean;\r\n performanceBonusNotes: string;\r\n hasShares: boolean;\r\n shares: OfferBenefit;\r\n hasCommission: boolean;\r\n commissionNotes: string;\r\n hasProfitShare: boolean;\r\n profitShareNotes: string;\r\n currency: any;\r\n}\r\n\r\n\r\nexport class OfferBenefit {\r\n isInCurrency: boolean;\r\n amount: number;\r\n percentage: number;\r\n notes?: string;\r\n}\r\n\r\n\r\nexport class OfferDeductions {\r\n uif: boolean;\r\n taxPaye: boolean;\r\n hasSundries: boolean;\r\n sundries: Array;\r\n}\r\n\r\n\r\nexport class OfferWellbeing {\r\n retirementPackages: any; // must be array of single item!\r\n medicalAid: any;\r\n riskPackage: any;\r\n isRiskPaidFromRetirementContributions: boolean;\r\n}\r\n\r\n","export class PayslipOptions {\r\n\r\n earnings: number;\r\n\r\n savings: number;\r\n\r\n contributions: {\r\n retirement: number,\r\n medicalAid: {\r\n isUsingMedicalAid: boolean,\r\n medicalAidValue: number,\r\n isAddingFamilyMembers: boolean,\r\n additionalFamilyMembers: number,\r\n familyMedicalValue: number,\r\n preferredPlan: {\r\n value: number,\r\n label: string\r\n }\r\n };\r\n\r\n additionalBenefits: {\r\n hasSpouse: boolean,\r\n spouseCover: number,\r\n lifeCover: number,\r\n diseaseCover: number,\r\n disabilityProtection: number,\r\n statedBenefits: number\r\n funeralCover: number\r\n }\r\n };\r\n\r\n deductions: {\r\n incomeTaxes: number,\r\n unemployment: number\r\n };\r\n\r\n}\r\n","export class RetirementState {\r\n fundAtRetirement: number;\r\n salaryAtRetirement: number;\r\n inflationAtRetirement: number;\r\n}\r\n","export class UserModel {\r\n public userId: string;\r\n public firstname: string;\r\n public lastName: string;\r\n public email: string;\r\n public cellPhone: string;\r\n public workNo: string;\r\n public roleId: number;\r\n public corporateId: string;\r\n public loggedInUser: string;\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NotificationService } from '../../services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-success-message',\r\n templateUrl: './success-message.component.html',\r\n styleUrls: ['./success-message.component.scss']\r\n})\r\nexport class SuccessMessageComponent {\r\n\r\n constructor(public notificationService: NotificationService) { }\r\n\r\n}\r\n","
\r\n {{ notificationService.message }}\r\n \r\n
","export default {\r\n 'npm_package_version': '1.0.0',\r\n appVersion: '2.4.0'\r\n};\r\n","import env from \"./.env\";\r\n\r\nexport const environment = {\r\n production: false,\r\n envName: \"dev\",\r\n appVersion: env.appVersion,\r\n version: env.npm_package_version + \"-dev\",\r\n signoutCallback: \"/auth/logout.html\",\r\n //serverUrl: \"https://localhost:44345\",\r\n serverUrl: \"https://app-afazr-api-dev-001.azurewebsites.net\",\r\n //digitalMemberServicesUrl: \"https://dev.app.digital.alexanderforbes.co.za/Digital.Member.Services\",\r\n digitalMemberServicesUrl: \" https://localhost:44308\",\r\n //digitalHRAssisServicesUrl: 'https://dev.app.digital.alexanderforbes.co.za/Digital.HrAssist.Services',\r\n digitalHRAssisServicesUrl: 'https://localhost:44378',\r\n //digitalClaimsService: 'https://dev.app.digital.alexanderforbes.co.za/Digital.Claim.Services',\r\n digitalClaimsService: 'https://localhost:44313',\r\n commonServicesUrl:'https://dev.app.digital.alexanderforbes.co.za',\r\n //accessTokenApiUrl: \"https://localhost:44370/\",\r\n accessTokenApiUrl: \"https://app-afazr-accesstokenapi-dev-001.azurewebsites.net\",\r\n calculatorServiceUrl: \" https://calculatorservice-func-calculator-dev-001.azurewebsites.net\",\r\n //redirect_uri: \"/auth/login-redirect.html\",\r\n redirect_uri: \"/auth/login-redirect.html\",\r\n post_logout_redirect_uri: \"/auth/logout.html\",\r\n silent_redirect_uri: \"/auth/silent-renew.html\",\r\n clientRoot: \"http://localhost:4200\",\r\n state: 'CfDJ8GgZ4tOyLT9HvSm5G60PhtSUu9lVicixvIo0efzR7s7U9-8VYZT8sAR_ksc-BfXHe_kiDQW0PZbkFq3-fkJjf46MR-WMo9Kvp9PYr8VpsCgnOFRsaQ9nYBcH9OTcTgwBaxHh4zzakZnzULDRjYxGHdqEVa_WdOTkEgJDF2xdeLkSFyGRrcvRt3lnofchY_gVijUorgtv1XfRGwLaKih_mwdAJN5tsf_TtTzjHETkQlV-Nl9Lu6eDgU35GU4O39BRc5qvVkffV3MjmIyMeG5eDNi7tAg-3K7GCBv0NyQp3Qqfg5jaq7xIrb_kSRDYoU-Y1GWA-0iqM0RFcGvcRDAVb9SJ8Sd8N-9CPwdNQp9CAfX9_2zYgxOlfrQyX0gYwEUeZ172E0g7Nmb0bp5NwyKH10clxNwsA8MJ1-4dBe8bSimfB1zHWN-mUpFfpUwiWnWgJvoWbWFbVtCkLqD5hPmd0y_IcKAsg-Z_oXcsIWgl95YqJCW_1PeGGr-1-t75ZF6A4hLUvgzfTyxYqKKxTSiO2QS8-gIbEspSdGn-RCJgHG7J',\r\n clientId: \"ng-dev\",\r\n clientScope: \"openid profile mob-api\",\r\n defaultLanguage: \"en-US\",\r\n supportedLanguages: [\"en-US\", \"fr-FR\"],\r\n appInsightsKey: \"edff2f6c-16fa-4922-a01b-56e575ceeeea\",\r\n SelfServiceURL : \"https://dev.id.alexforbes.com/self-service?Channel=DERC&RedirectUrl=https:%2f%2fdev.memberexits.digital.alexanderforbes.co.za\",\r\n RegisterURL :\"https://dev.id.alexforbes.com/register?Channel=DERC&RedirectUrl=https:%2f%2fdev.memberexits.digital.alexanderforbes.co.za\",\r\n endPoints: {\r\n validateTaxNumber:\"/validate/za/tax\",\r\n additionalCover:\"/api/v1/Advisor/Request/Cover\",\r\n payslipDetailUrl: \"/api/payslip\",\r\n memberSearch: \"/api/v1/Search/Members\",\r\n updateMemberUrl: '/api/v1/Employees',\r\n userMemberStatusUrl: 'api/v1/Employees/Member/Status',\r\n exitEmployee: '/api/v1/Employees/exit',\r\n confirmDetailsUpdate: '/api/v1/Employees/Employee',\r\n claimWidthrawal: '/api/v1/Claims/Withdrawal',\r\n countryLookups: '/api/v1/Lookups/Countries',\r\n memberValuesSearch: \"/api/v1/Search/Members\",\r\n memberFundValues: \"/api/v1/Member/FundMembership\",\r\n memberDetails: \"/api/v1/Employees/Member\",\r\n nomineeUrl: \"/api/nominees\",\r\n dashboardUrl: \"/api/dashboard\",\r\n candidateUrl: \"/api/candidate\",\r\n candidatesUrl: \"/api/candidates\",\r\n offersUrl: \"/api/offers\",\r\n documentsUrl: \"/api/documents\",\r\n lookupsUrl: \"/api/content/lookups\",\r\n billGroupsUrl: \"/api/billgroups\",\r\n lookupsRolesUrl: \"/api/content/roles\",\r\n validateUrl: \"/api/validation/said\",\r\n templatesUrl: \"/api/templates\",\r\n rolesUrl: \"/api/roles\",\r\n corporateUrl: \"/api/corporates\",\r\n uploadFilesUrl: \"/api/files\",\r\n stylesUrl: \"/api/content/Css/corporate\",\r\n profileUrl: \"/api/profile\",\r\n usersUrl: \"/api/user\",\r\n notificationsUrl: \"/api/notifications/mail\",\r\n portfolios: \"/api/Content/portfolio\",\r\n portfolioDetails: \"/api/Content\",\r\n portfolioUrl: \"/api/Portfolio\",\r\n selectedPortfolioOptionsUrl: \"/api/Portfolio/Offer\",\r\n newJoinersUrl : \"/api/newjoiner\",\r\n advisorRequest: \"/api/v1/Advisor/Request\",\r\n claimStatus: \"/api/v1/Claims/Status\",\r\n employeeStatus: \"/api/v1/Employees\",\r\n retirementProjection: \"/api/v1/Employees/retirement/projection\",\r\n validateBankingDetails: \"/api/v1/Validation/ValidateBankingDetails\",\r\n withdrawalAmountProjection: \"/api/v1/Employees/retirement\",\r\n bankLookups: '/api/v1/Lookup/Bank',\r\n memberDocuments: '/api/v1/Documents/Document',\r\n claimdetails: \"/api/v1/Claims/Withdrawal\",\r\n connectAdviceAfris:\"/api/v1/Advisor/Request/Afris\",\r\n productTypeLookup: '/api/v1/Lookup/ProductType',\r\n fundCreditProjection: \"/api/retirement/fundcredit/projection\",\r\n memberRetirementProjection:\"/api/retirement/projection\"\r\n }\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport appsettings from \"./assets/appsettings.json\"\r\n\r\nif (appsettings.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":["EventEmitter","FormBuilder","FormControl","Validators","CandidateProfile","RoutingService","StoreService","i0","CandidateProfileDetailsComponent","constructor","formBuilder","_routingService","_storeService","Array","profileDetails","ngOnInit","model","onCreateProfileDetailsForm","onCheckPasswordFields","passwordField","profileDetailsForm","value","password","confirmPasswordField","confirmPassword","length","passwordLength","isConfirmPasswordFails","group","username","required","minLength","maxLength","pattern","onCreateProfile","get","create","emit","localStorage","setItem","existingProfile","userProfileLinking","selectors","inputs","outputs","decls","vars","consts","template","ctx","ProfileService","NotificationService","ErrorService","Location","LoaderService","CandidateProfileLinkingComponent","_profileService","_notificationService","errorService","_location","_loader","linkProfile","start","_subscriptions","push","subscribe","resp","stop","openNotification","userLogin","openErrorPopup","error","gotocreateProfilePage","candidateCreateProfile","ngOnDestroy","forEach","subscription","unsubscribe","CorporateBenefitsService","CompanyMedicalAidProvider","CompanyGapCoverProvider","ActiveTab","Router","map","take","CorporateBenefitsComponent","corporateBenefitsService","loader","storeService","notificationService","router","companyMedicalAidProvider","companyGapCoverProvider","getMedicalAid","getGapCover","getRiskData","saveChanges","companyBenefitProvider","providerData","corporateId","getStoredData","profile","createProvider","currentPage","location","href","setInterval","window","reload","getMedicalAidProvider","data","showExistingMedicalProviders","active","getGapCoverProvider","showExistingGapProviders","medicalProviderChanged","gapProviderChanged","medicalProviderDeleted","index","selectedMAP","gapProviderDeleted","gapCoverProviders","isActive","optionDeleted","event","options","indexOption","optionGapDeleted","gapCoverOptions","riskDataInput$","getPackageOptions","pipe","updateRiskPackages","riskPackageData","postPackageOptions","_","onBack","navigate"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}