{"version":3,"file":"main.js","mappings":"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","sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/_common/auth/auth.guard.ts","./src/app/_common/auth/auth.service.ts","./src/app/_common/custom-controls/multiselect-dropdown/multiselect-dropdown.component.ts","./src/app/_common/custom-controls/single-dropdown-select/single-dropdown-select.component.ts","./src/app/_common/custom-controls/tree-modal-dropdown/tree-modal-dropdown.component.ts","./src/app/_common/custom-controls/tree-multiselect/tree-multiselect.component.ts","./src/app/_common/custom-controls/tree-multiselect/tree-view-model.ts","./src/app/_common/custom-controls/tree-select/tree-select.component.ts","./src/app/_common/custom-controls/tree-select/tree-select.module.ts","./src/app/_common/input-directives/allow-date.directive.ts","./src/app/_common/input-directives/base-validation.ts","./src/app/_common/input-directives/index.ts","./src/app/_common/input-directives/input-validation.directive.ts","./src/app/_common/input-directives/phone.directive.ts","./src/app/_common/input-directives/ssn.directive.ts","./src/app/_common/interceptors/middlewareAPI.interceptor.ts","./src/app/_common/modules/angular-material.module.ts","./src/app/_common/modules/custom-controls.module.ts","./src/app/_common/modules/input-directives.module.ts","./src/app/_common/modules/ngxbootstrap.module.ts","./src/app/_common/modules/shared.module.ts","./src/app/_common/pipeline/AsyncEmployeeSource.ts","./src/app/_common/pipeline/employee-id-card-grid.pipeline.ts","./src/app/_common/pipeline/employee-roster-grid.pipeline.ts","./src/app/_common/pipeline/pipe.functions.ts","./src/app/_common/pipeline/pipes/filter-pipe.ts","./src/app/_common/pipeline/pipes/pagination-pipe.ts","./src/app/_common/pipeline/pipes/search-pipe.ts","./src/app/_common/pipeline/pipes/sort-pipe.ts","./src/app/_common/resolvers/dashboard-data.resolver.ts","./src/app/_common/resolvers/member-profile-data.resolver.ts","./src/app/_common/resolvers/saved-employee-data.resolver.ts","./src/app/_common/resolvers/sitecore-item.resolver.ts","./src/app/_common/services/date.service.ts","./src/app/_common/services/gender.service.ts","./src/app/_common/services/modal-service/modal.constants.ts","./src/app/_common/services/modal-service/modal.helpers.ts","./src/app/_common/services/modal-service/modal.service.module.ts","./src/app/_common/services/modal-service/modal.service.ts","./src/app/_common/services/modal-service/modals/injectable-components/injectable-components.module.ts","./src/app/_common/services/modal-service/modals/injectable-components/modal-builder-target/modal-builder-target.component.ts","./src/app/_common/services/modal-service/modals/injectable-components/token-expiration-countdown/token-expiration-countdown.component.ts","./src/app/_common/services/modal-service/modals/injectable-components/tree-select-modal-component/tree-select-modal.component.ts","./src/app/_common/services/modal-service/modals/injectable-components/tree-select-modal-component/tree-select-modal.module.ts","./src/app/_common/services/modal-service/modals/option-select-modal/dynamic-option-select-modal/dynamic-option-select-modal.component.ts","./src/app/_common/services/modal-service/modals/option-select-modal/option-select-modal-base.component.ts","./src/app/_common/services/modal-service/span-text-element.component.ts","./src/app/_common/services/overlay.service.ts","./src/app/_common/services/spinner.service.ts","./src/app/_common/services/toaster-alert-service/toaster-alert.service.ts","./src/app/_common/services/toaster-service/toaster.service.ts","./src/app/_common/services/token-expire-notifier/token-expire-notifier.service.ts","./src/app/_common/services/user-activity.service.ts","./src/app/_common/shared/app.constants.ts","./src/app/_common/shared/cached-observable.ts","./src/app/_common/shared/components/no-results-found/no-results-found.component.ts","./src/app/_common/shared/components/sitecore/card-with-button/card-with-button.component.ts","./src/app/_common/shared/components/sitecore/card/card.component.ts","./src/app/_common/shared/components/sitecore/collection/collection.component.ts","./src/app/_common/shared/components/sitecore/header-with-sub-text/header-with-sub-text.component.ts","./src/app/_common/shared/components/sitecore/id-card-search-form/id-card-search-form.component.ts","./src/app/_common/shared/components/sitecore/image-with-caption/image-with-caption.component.ts","./src/app/_common/shared/components/sitecore/rich-text/rich-text.component.ts","./src/app/_common/shared/components/sitecore/roster-search-form/roster-search-form.component.ts","./src/app/_common/shared/components/sitecore/sitecore-outlet/sitecore-outlet.component.ts","./src/app/_common/shared/components/sitecore/sitecore.module.ts","./src/app/_common/shared/components/toaster-message/toaster-message.component.ts","./src/app/_common/shared/helper.functions.ts","./src/app/_common/shared/html.functions.ts","./src/app/_common/shared/observables-functions/observable.functions.ts","./src/app/_common/shared/siteCoreMessages.constants.ts","./src/app/_common/type-safe-reactive-forms/factories/type-safe-form-control.factory.ts","./src/app/_common/type-safe-reactive-forms/reactive-form-wrappers/form-control.builder.ts","./src/app/_common/type-safe-reactive-forms/type-guards.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-control/index.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-control/type-safe-control-build.config.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-control/type-safe-form-control.builder.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-control/type-safe-form-control.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-group/index.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-group/type-safe-form-group-config.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-group/type-safe-form-group.builder.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-group/type-safe-form-group.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-helpers.functions.ts","./src/app/_common/type-safe-reactive-forms/type-safe-form-reactant/abstract-form-reactant.ts","./src/app/_common/type-safe-reactive-forms/type-safe-reactive-forms.module.ts","./src/app/_models/sitecore/sitecore-component-model.ts","./src/app/_services/app-okta-api-service/app-okta-api.service.ts","./src/app/_services/browser-service/browser.service.ts","./src/app/_services/employer-account-service/employer-account-api.service.ts","./src/app/_services/employer-account-service/employer-account.service.ts","./src/app/_services/navigation-content-service/navigationContent.service.ts","./src/app/_services/sitecore-content-service/sitecore-content.service.ts","./src/app/_services/user-info-service/userInfo.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/benefit-documents/benefit-books/benefit-book-documents-gridview/benefit-book-documents-gridview.component.ts","./src/app/health-and-wellness/nurseOnCall/nurse-on-call.component.ts","./src/app/landingpage/access-denied/access-denied.component.ts","./src/app/landingpage/activity-reports-card/activity-reports-card.component.ts","./src/app/landingpage/add-new-employee-card/add-new-employee-card.component.ts","./src/app/landingpage/base-card/base-card.component.ts","./src/app/landingpage/dashboard-card/dashboard-card.component.ts","./src/app/landingpage/dashboard/dashboard.component.ts","./src/app/landingpage/landingpage.module.ts","./src/app/landingpage/order-id-card/order-id-card.component.ts","./src/app/landingpage/pay-bill-card/pay-bill-card.component.ts","./src/app/landingpage/view-statement-card/view-statement-card.component.ts","./src/app/landingpage/welcome/user-welcome.service.ts","./src/app/landingpage/welcome/welcome-modal/welcome-modal.component.ts","./src/app/landingpage/welcome/welcome.component.ts","./src/app/layout/debugging/debugging.component.ts","./src/app/layout/debugging/debugging.service.ts","./src/app/layout/footer/footer.component.ts","./src/app/layout/header/header.component.ts","./src/app/layout/home/home.component.ts","./src/app/layout/layout.module.ts","./src/app/layout/navigation/navigation.component.ts","./src/app/layout/print-target/print-target.component.ts","./src/app/layout/progress-spinner/progress-spinner.component.ts","./src/app/manage-my-group/_common/services/manage-my-group-dropdown.service.ts","./src/app/manage-my-group/_common/services/plan-service/plans-api.service.ts","./src/app/manage-my-group/_common/services/plan-service/plans.service.ts","./src/app/manage-my-group/add-employee/standard-application/_common/services/employee-form-api.service.ts","./src/app/manage-my-group/add-employee/standard-application/_common/services/employee-form.service.ts","./src/app/manage-my-group/add-employee/standard-application/employee-enrollment/application-review/employee-info-content.service.ts","./src/app/manage-my-group/employee-roster/_common/directives/print.directive.ts","./src/app/manage-my-group/employee-roster/_common/models/benefit-selection.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/contact-information.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/dependent.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/employee.functions.ts","./src/app/manage-my-group/employee-roster/_common/models/employee.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/index.ts","./src/app/manage-my-group/employee-roster/_common/models/phone-number.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/plan-selection.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/roster-filters.interface.ts","./src/app/manage-my-group/employee-roster/_common/models/subscriber-info.interface.ts","./src/app/manage-my-group/employee-roster/_common/services/employee-roster-filter-service/employee-roster-filter.service.ts","./src/app/manage-my-group/employee-roster/_common/services/employee-roster-service/employee-roster-api-service.ts","./src/app/manage-my-group/employee-roster/_common/services/employee-roster-service/employee-roster-service.ts","./src/app/manage-my-group/id-card/_common/services/order-id-card-api.service.ts","./src/app/manage-my-group/member-profile/_common/models/benefit-selection.ts","./src/app/manage-my-group/member-profile/_common/models/cancel-coverage.ts","./src/app/manage-my-group/member-profile/_common/models/contact-info.ts","./src/app/manage-my-group/member-profile/_common/models/dependent-info.ts","./src/app/manage-my-group/member-profile/_common/models/employee-info.ts","./src/app/manage-my-group/member-profile/_common/models/employer-subscriber-form.ts","./src/app/manage-my-group/member-profile/_common/models/index.ts","./src/app/manage-my-group/member-profile/_common/models/other-health-plan-coverage.ts","./src/app/manage-my-group/member-profile/_common/models/plan-selection.ts","./src/app/manage-my-group/member-profile/_common/models/subscriber.ts","./src/app/manage-my-group/member-profile/_common/models/terminate-coverage.ts","./src/app/manage-my-group/member-profile/_common/services/member-profile-selector/member-profile.selector.ts","./src/app/manage-my-group/member-profile/_common/services/subscriber-api.service.ts","./src/app/manage-my-group/saved-applications/_common/services/saved-applications-content.service.ts","./src/app/manage-my-group/saved-applications/_common/services/saved-applications.service.ts","./src/app/manage-my-group/saved-applications/_common/services/savedApplicationsService/saved-applications-api.service.ts","./src/app/tealeaf/tealeaf.component.ts","./src/environments/environment.ts","./src/main.ts","./src/app/_common/custom-controls/multiselect-dropdown/multiselect-dropdown.component.html","./src/app/_common/custom-controls/single-dropdown-select/single-dropdown-select.component.html","./src/app/_common/custom-controls/tree-modal-dropdown/tree-modal-dropdown.component.html","./src/app/_common/custom-controls/tree-multiselect/tree-multiselect.component.html","./src/app/_common/custom-controls/tree-select/tree-select.component.html","./src/app/_common/services/modal-service/modals/injectable-components/modal-builder-target/modal-builder-target.component.html","./src/app/_common/services/modal-service/modals/injectable-components/token-expiration-countdown/token-expiration-countdown.component.html","./src/app/_common/services/modal-service/modals/injectable-components/tree-select-modal-component/tree-select-modal.component.html","./src/app/_common/services/modal-service/modals/option-select-modal/option-select-modal-base.component.html","./src/app/_common/shared/components/no-results-found/no-results-found.component.html","./src/app/_common/shared/components/sitecore/card-with-button/card-with-button.component.html","./src/app/_common/shared/components/sitecore/card/card.component.html","./src/app/_common/shared/components/sitecore/collection/collection.component.html","./src/app/_common/shared/components/sitecore/header-with-sub-text/header-with-sub-text.component.html","./src/app/_common/shared/components/sitecore/id-card-search-form/id-card-search-form.component.html","./src/app/_common/shared/components/sitecore/image-with-caption/image-with-caption.component.html","./src/app/_common/shared/components/sitecore/rich-text/rich-text.component.html","./src/app/_common/shared/components/sitecore/roster-search-form/roster-search-form.component.html","./src/app/_common/shared/components/sitecore/sitecore-outlet/sitecore-outlet.component.html","./src/app/_common/shared/components/toaster-message/toaster-message.component.html","./src/app/app.component.html","./src/app/benefit-documents/benefit-books/benefit-book-documents-gridview/benefit-book-documents-gridview.component.html","./src/app/health-and-wellness/nurseOnCall/nurse-on-call.component.html","./src/app/landingpage/access-denied/access-denied.component.html","./src/app/landingpage/activity-reports-card/activity-reports-card.component.html","./src/app/landingpage/add-new-employee-card/add-new-employee-card.component.html","./src/app/landingpage/dashboard-card/dashboard-card.component.html","./src/app/landingpage/dashboard/dashboard.component.html","./src/app/landingpage/order-id-card/order-id-card.component.html","./src/app/landingpage/pay-bill-card/pay-bill-card.component.html","./src/app/landingpage/view-statement-card/view-statement-card.component.html","./src/app/landingpage/welcome/welcome-modal/welcome-modal.component.html","./src/app/landingpage/welcome/welcome.component.html","./src/app/layout/debugging/debugging.component.html","./src/app/layout/footer/footer.component.html","./src/app/layout/header/header.component.html","./src/app/layout/home/home.component.html","./src/app/layout/navigation/navigation.component.html","./src/app/layout/print-target/print-target.component.html","./src/app/layout/progress-spinner/progress-spinner.component.html","./src/app/tealeaf/tealeaf.component.html"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","/*\r\n * Copyright (c) 2017-Present, Okta, Inc. and/or its affiliates. All rights reserved.\r\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\r\n *\r\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n *\r\n * See the License for the specific language governing permissions and limitations under the License.\r\n */\r\n\r\nimport { Injectable, Injector } from '@angular/core';\r\nimport { CanActivate, Router, RouterStateSnapshot, ActivatedRouteSnapshot, NavigationStart, CanActivateChild } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { AuthState } from '@okta/okta-auth-js';\r\nimport { OktaAuthService } from '@okta/okta-angular';\r\nimport { AuthRequiredFunction } from '@okta/okta-angular/src/okta/models/okta.config';\r\nimport { AppConstants } from '../shared/app.constants';\r\nimport { UserActivityService } from '../services/user-activity.service';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild {\r\n route: ActivatedRouteSnapshot;\r\n state: RouterStateSnapshot;\r\n expectedRole: string[];\r\n userGroups: string[];\r\n\r\n private userRoleList = [\r\n 'Employer_OfficeManager',\r\n 'Employer_BillPay',\r\n 'Employer_ViewOnly',\r\n 'Employer_MemberManagement',\r\n 'Employer_GBA',\r\n 'Employer_AZBeacon'\r\n ];\r\n\r\n constructor(private oktaAuthService: OktaAuthService,\r\n private injector: Injector,\r\n private router: Router,\r\n private authService: AuthService,\r\n private userActivityService: UserActivityService) {\r\n router.events.pipe(\r\n filter(event => event instanceof NavigationStart && this.state && this.state.url !== event.url)\r\n ).subscribe(() => {\r\n this.oktaAuthService.authStateManager.unsubscribe(this.updateAuthStateListener);\r\n });\r\n }\r\n\r\n/*\r\n * Gateway for protected route. Returns true if there is a valid accessToken,\r\n * otherwise it will cache the route and start the login flow.\r\n */\r\n async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n this.route = route;\r\n this.state = state;\r\n this.oktaAuthService.authStateManager.subscribe(this.updateAuthStateListener);\r\n const isUserActive = this.userActivityService.isUserActive;\r\n let isAuthenticated = await this.oktaAuthService.session.exists();\r\n\r\n if (!isUserActive && isAuthenticated) {\r\n this.authService.logout();\r\n isAuthenticated = false;\r\n }\r\n\r\n if (isAuthenticated) {\r\n await this.checkUserPermissions(route);\r\n return true;\r\n }\r\n await this.handleLogin(state.url);\r\n return false;\r\n }\r\n\r\n async canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return this.canActivate(route, state);\r\n }\r\n\r\n updateAuthStateListener = (authState: AuthState) => {\r\n if (!authState.isAuthenticated) {\r\n this.handleLogin(this.state.url);\r\n }\r\n }\r\n\r\n async checkUserPermissions(route: ActivatedRouteSnapshot) {\r\n let isUserRoleSet = false;\r\n let isInProperGroup: boolean;\r\n this.expectedRole = route?.data?.expectedRole;\r\n const isAuthenticated = await this.oktaAuthService.session.exists();\r\n if (isAuthenticated) {\r\n await this.oktaAuthService?.token?.getUserInfo()\r\n .then((user) => {\r\n this.userGroups = user?.employerGroups;\r\n const azbeaconUser = this.getLocalStorageInfo(AppConstants.AZBEACON_COOKIE_KEY);\r\n if (azbeaconUser === 'true') {\r\n // add in group role logic to add Employer_AZBeacon\r\n this.userGroups = ['Employer_AZBeacon'];\r\n }\r\n localStorage.setItem(AppConstants.USER_INFO_DETAILS, JSON.stringify(user));\r\n }).catch((err) => { console.log(err); });\r\n }\r\n\r\n\r\n if (this.userGroups !== undefined && this.expectedRole !== undefined) {\r\n this.userGroups.forEach(userGroup => {\r\n this.expectedRole.forEach(neededGroup => {\r\n if (userGroup === neededGroup) {\r\n isInProperGroup = true;\r\n }\r\n });\r\n });\r\n\r\n const filteredUserRoles = this.userGroups?.filter((item: string) => {\r\n return this.userRoleList.includes(item);\r\n });\r\n\r\n if (filteredUserRoles && filteredUserRoles.length > 0) {\r\n isUserRoleSet = true;\r\n }\r\n }\r\n if (isAuthenticated && this.userGroups !== undefined && !isInProperGroup && isUserRoleSet) {\r\n await this.router.navigate(['/accessDenied']);\r\n }\r\n }\r\n\r\n private async handleLogin(fromUri: string): Promise {\r\n const onAuthRequired: AuthRequiredFunction = this.route.data['onAuthRequired'] || this.oktaAuthService.getOktaConfig().onAuthRequired;\r\n this.oktaAuthService.setOriginalUri(fromUri);\r\n if (onAuthRequired) {\r\n onAuthRequired(this.oktaAuthService, this.injector);\r\n } else {\r\n this.oktaAuthService.signInWithRedirect();\r\n }\r\n }\r\n\r\n public getCookie(name: string): string | null {\r\n const nameLenPlus = (name.length + 1);\r\n return document.cookie\r\n .split(';')\r\n .map(c => c.trim())\r\n .filter(cookie => {\r\n return cookie.substring(0, nameLenPlus) === `${name}=`;\r\n })\r\n .map(cookie => {\r\n return decodeURIComponent(cookie.substring(nameLenPlus));\r\n })[0] || null;\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppConstants } from '../shared/app.constants';\r\nimport { OktaAuthService } from '@okta/okta-angular';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { EmployerAccountService } from '../../_services/employer-account-service/employer-account.service';\r\nimport { SpinnerService } from '../services/spinner.service';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { UserActivityService } from '../services/user-activity.service';\r\nimport { UserWelcomeService } from 'src/app/landingpage/welcome/user-welcome.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n public isAuthenticated$ = new BehaviorSubject(false);\r\n\r\n constructor(private router: Router,\r\n private oktaAuthService: OktaAuthService,\r\n private userActivityService: UserActivityService,\r\n private employerAccountService: EmployerAccountService,\r\n private spinnerService: SpinnerService,\r\n private userWelcomeService: UserWelcomeService) { }\r\n\r\n async loginUser(username: string, password: string): Promise {\r\n try {\r\n this.spinnerService.showProgressSpinner();\r\n\r\n const transaction = await this.oktaAuthService.signInWithCredentials({ username, password });\r\n if (transaction?.status === 'SUCCESS') {\r\n const { sessionToken } = transaction;\r\n const res = await this.oktaAuthService.token.getWithoutPrompt({\r\n responseType: 'access_token',\r\n sessionToken\r\n });\r\n\r\n this.oktaAuthService.tokenManager.setTokens(res.tokens);\r\n this.isAuthenticated$.next(true);\r\n this.saveInfoToLocalStorage(AppConstants.USER_OKTA_TRANSACTION_INFO, transaction);\r\n\r\n this.router?.navigate(['/home']);\r\n }\r\n } finally {\r\n this.spinnerService.hideProgressSpinner();\r\n }\r\n }\r\n\r\n async redirectloginUser(): Promise {\r\n try {\r\n this.spinnerService.showProgressSpinner();\r\n const res = await this.oktaAuthService.token.getWithoutPrompt();\r\n this.oktaAuthService.tokenManager.setTokens(res.tokens);\r\n await this.checkAuthenticated().then(isAuthenticated => {\r\n if (isAuthenticated) {\r\n this.userActivityService.refreshUserActive();\r\n this.router?.navigate(['/home']);\r\n }\r\n });\r\n } finally {\r\n this.spinnerService.hideProgressSpinner();\r\n }\r\n }\r\n\r\n public getCookie(name: string): string | null {\r\n const nameLenPlus = (name.length + 1);\r\n return document.cookie\r\n .split(';')\r\n .map(c => c.trim())\r\n .filter(cookie => {\r\n return cookie.substring(0, nameLenPlus) === `${name}=`;\r\n })\r\n .map(cookie => {\r\n return decodeURIComponent(cookie.substring(nameLenPlus));\r\n })[0] || null;\r\n }\r\n\r\n async checkAuthenticated(): Promise {\r\n const authenticated = await this.oktaAuthService.session.exists();\r\n this.isAuthenticated$.next(authenticated);\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo) {\r\n this.employerAccountService.setAccountSummary(userInfo?.given_name, userInfo?.accounts);\r\n }\r\n return authenticated;\r\n }\r\n\r\n public populateAccountSummary(): Observable {\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo) {\r\n return this.employerAccountService.setAccountSummary(userInfo?.given_name, userInfo?.accounts);\r\n } else {\r\n throw new Error('User information not found.');\r\n }\r\n }\r\n\r\n async logout(): Promise {\r\n try {\r\n const isAuthenticated = await this.oktaAuthService.isAuthenticated();\r\n if (isAuthenticated) {\r\n this.isAuthenticated$.next(false);\r\n await this.oktaAuthService.signOut();\r\n }\r\n } catch (error) {\r\n console.error('Error logging out: ' + error);\r\n } finally {\r\n localStorage.clear();\r\n this.userWelcomeService.saveCount();\r\n }\r\n }\r\n\r\n saveInfoToLocalStorage(storageReferenceName: string, infoToSave: any): void {\r\n if (storageReferenceName && infoToSave) {\r\n localStorage.setItem(storageReferenceName, JSON.stringify(infoToSave));\r\n }\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnInit,\r\n HostListener,\r\n ElementRef,\r\n} from '@angular/core';\r\n\r\nexport interface IDropdownMultiselectItem {\r\n value: string;\r\n text: string;\r\n selected: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-multiselect-dropdown',\r\n templateUrl: './multiselect-dropdown.component.html',\r\n styleUrls: ['./multiselect-dropdown.component.scss'],\r\n})\r\nexport class MultiselectDropdownComponent implements OnInit {\r\n @Input('dropdownItems')\r\n public set setDropdownItems(dropdown: Array) {\r\n this.dropdownItems = dropdown;\r\n this.displayedDropdownItems = this.dropdownItems;\r\n this.resetOptions();\r\n this.setLabel();\r\n }\r\n\r\n private readonly DEFAULT_SINGLE_SELECT_LABEL = 'Select One';\r\n private readonly DEFAULT_MULTI_SELECT_LABEL = 'Select';\r\n\r\n @Input()\r\n public id = 'DEFAULT';\r\n\r\n @Input()\r\n public disabled = false;\r\n\r\n @Input()\r\n public multiSelect = false;\r\n\r\n @Input()\r\n public enableSearch = false;\r\n\r\n @Output()\r\n public selectedItemChange: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public selectedItemsChange: EventEmitter<\r\n Array\r\n > = new EventEmitter();\r\n\r\n dropdownItems: Array = [];\r\n\r\n displayedDropdownItems: Array = [];\r\n\r\n selectedItem: IDropdownMultiselectItem;\r\n selectedOptions: Array;\r\n\r\n public label: string;\r\n\r\n public showDropdown = false;\r\n\r\n filterValue = '';\r\n\r\n constructor(private eRef: ElementRef) {}\r\n\r\n ngOnInit() {\r\n this.label = this.multiSelect\r\n ? this.DEFAULT_MULTI_SELECT_LABEL\r\n : this.DEFAULT_SINGLE_SELECT_LABEL;\r\n }\r\n\r\n public toggleDropdown() {\r\n this.showDropdown = !this.showDropdown;\r\n }\r\n\r\n public onChange(item: IDropdownMultiselectItem): void {\r\n const newState: boolean = !item.selected;\r\n if (this.multiSelect) {\r\n item.selected = newState;\r\n this.multiSelectOption(item);\r\n } else {\r\n this.resetOptions();\r\n item.selected = newState;\r\n this.selectOption(item);\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n public blur(event) {\r\n if (!this.eRef.nativeElement.contains(event.target)) {\r\n this.showDropdown = false;\r\n }\r\n }\r\n\r\n private selectOption(selection: IDropdownMultiselectItem) {\r\n const updatedItemIndex = this.dropdownItems.findIndex(\r\n (item) => item.value === selection.value\r\n );\r\n // update its value.\r\n this.dropdownItems[updatedItemIndex].selected = selection.selected;\r\n this.selectedItem = selection;\r\n\r\n if (selection.selected) {\r\n this.selectedItemChange.emit(this.dropdownItems[updatedItemIndex]);\r\n } else {\r\n this.selectedItem = null;\r\n this.selectedItemChange.emit();\r\n }\r\n\r\n this.setLabel();\r\n }\r\n\r\n private multiSelectOption(selectedItem: IDropdownMultiselectItem) {\r\n // find he option in the original list\r\n const updatedItemIndex = this.dropdownItems.findIndex(\r\n (item) => item.value === selectedItem.value\r\n );\r\n\r\n // update its value.\r\n this.dropdownItems[updatedItemIndex].selected = selectedItem.selected;\r\n\r\n // selected all option togged as true.\r\n this.selectedOptions = this.dropdownItems.filter(\r\n (item) => item.selected === true\r\n );\r\n\r\n if (this.selectedOptions.length === 0) {\r\n this.selectedOptions = [];\r\n }\r\n\r\n // emit those options\r\n this.selectedItemsChange.emit(this.selectedOptions);\r\n this.setLabel();\r\n }\r\n\r\n private setLabel() {\r\n if (this.multiSelect) {\r\n this.label =\r\n this.selectedOptions && this.selectedOptions.length > 0\r\n ? this.selectedOptions.map((item) => item.text).join(',')\r\n : this.DEFAULT_MULTI_SELECT_LABEL;\r\n } else {\r\n this.label = this.selectedItem\r\n ? this.selectedItem.text\r\n : this.DEFAULT_SINGLE_SELECT_LABEL;\r\n }\r\n }\r\n\r\n public resetOptions() {\r\n this.selectedOptions = [];\r\n this.selectedItem = null;\r\n this.dropdownItems.forEach((item) => {\r\n item.selected = false;\r\n });\r\n this.displayedDropdownItems.forEach((item) => {\r\n item.selected = false;\r\n });\r\n }\r\n\r\n public filterOptions() {\r\n if (this.filterValue.length > 0) {\r\n this.displayedDropdownItems = this.dropdownItems.filter(\r\n (dropdownItem: IDropdownMultiselectItem) =>\r\n dropdownItem.text\r\n .toLowerCase()\r\n .includes(this.filterValue.toLowerCase())\r\n );\r\n } else {\r\n this.displayedDropdownItems = this.dropdownItems;\r\n }\r\n }\r\n\r\n public clearOptions() {\r\n this.resetOptions();\r\n this.setLabel();\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewEncapsulation, ViewChild, ElementRef,\r\n ViewChildren, QueryList, AfterViewInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport interface ISingleDropdownItem {\r\n value: string;\r\n text: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-single-dropdown-select',\r\n templateUrl: './single-dropdown-select.component.html',\r\n styleUrls: [],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SingleDropdownSelectComponent implements AfterViewInit, OnDestroy {\r\n @Input()\r\n public dropdownItems: Array;\r\n @Input()\r\n public id: string;\r\n @Input()\r\n public disabled = false;\r\n @Input()\r\n public position: string;\r\n @Input()\r\n public defaultVerbiage: string;\r\n @Input()\r\n selectedItem: ISingleDropdownItem;\r\n\r\n @Output()\r\n public selectedItemChange: EventEmitter = new EventEmitter();\r\n @Output()\r\n public blurEvent: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('dropdown')\r\n dropdown: BsDropdownDirective;\r\n @ViewChild('dropdownElement')\r\n dropdownElement: ElementRef;\r\n @ViewChildren('option')\r\n optionElements: QueryList>;\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n ngAfterViewInit(): void {\r\n this.subscriptions.push(this.optionElements.changes.subscribe(this.focusSelectedItem.bind(this)));\r\n }\r\n\r\n focusSelectedItem() {\r\n if (!!this.optionElements?.length) {\r\n const selectedItem = this.optionElements.find(el => el.nativeElement?.parentElement?.classList?.contains('selected'));\r\n selectedItem?.nativeElement?.focus();\r\n }\r\n }\r\n\r\n public onChange(value: ISingleDropdownItem): void {\r\n this.selectedItem = value;\r\n this.selectedItemChange.emit(value);\r\n this.dropdown.hide();\r\n // Hiding the dropdown removes the option elements and returns focus to the body tag.\r\n // Shift tabbing at that point would refocus and open the dropdown. Focus the dropdown now instead.\r\n this.dropdownElement.nativeElement.focus();\r\n }\r\n\r\n hoverItem(event: Event): void {\r\n const target = event.target as HTMLElement;\r\n target.focus();\r\n }\r\n\r\n public onBlur(event): void {\r\n // Don't hide the dropdown if we're losing focus to one of our options\r\n if (!this.dropdownElement.nativeElement.contains(event.relatedTarget)) {\r\n this.dropdown.hide();\r\n if (this.blurEvent) {\r\n this.blurEvent.emit();\r\n }\r\n }\r\n }\r\n\r\n public onFocus(event): void {\r\n // Don't focus an option if we are receiving focus from inside the dropdown\r\n if (!this.dropdownElement.nativeElement.contains(event.relatedTarget)) {\r\n this.openDropdown();\r\n }\r\n }\r\n\r\n public openDropdown(): void {\r\n this.dropdown.show();\r\n this.focusSelectedItem();\r\n }\r\n\r\n @HostListener('keydown.arrowdown', ['$event'])\r\n @HostListener('keydown.arrowup', ['$event'])\r\n preventScroll(event: KeyboardEvent): void {\r\n event.preventDefault();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { TreeSelectModalComponent } from 'src/app/_common/services/modal-service/modals/injectable-components/tree-select-modal-component/tree-select-modal.component';\r\nimport { createButtonOptionStructures } from '../../services/modal-service/modal.helpers';\r\nimport { ModalService } from '../../services/modal-service/modal.service';\r\nimport { FlatTreeNode, MultiSelectTreeViewModel, SingleSelectTreeViewModel, TreeViewModel } from '../tree-multiselect/tree-view-model';\r\nimport { ISingleDropdownItem } from '../single-dropdown-select/single-dropdown-select.component';\r\nimport { TreeViewNode } from '../tree-select/tree-view.model';\r\n\r\n@Component({\r\n selector: 'app-tree-modal-dropdown',\r\n templateUrl: './tree-modal-dropdown.component.html',\r\n styleUrls: ['./tree-modal-dropdown.component.scss']\r\n})\r\nexport class TreeModalDropdownComponent {\r\n @Input() multiselect = false;\r\n @Input() id: string;\r\n @Input() disabled: boolean;\r\n @Input() defaultVerbiage: string;\r\n @Input() modalInstructions: string;\r\n @Input() modalHeaderText: string;\r\n @Input() selectedItem: TreeViewNode | TreeViewNode[];\r\n @Input() treeModel: TreeViewNode[] = [];\r\n @Input() oktaSubaccountTreeViewNodeArray: TreeViewNode[];\r\n rememberSelectedItems: FlatTreeNode[];\r\n dialogRef: MatDialogRef;\r\n\r\n @Output()\r\n public selectedItemChange: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public selectedItemsChange: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public blurEvent: EventEmitter = new EventEmitter();\r\n\r\n private treeViewModel: TreeViewModel;\r\n\r\n constructor(\r\n public _modalService: ModalService\r\n ) { }\r\n\r\n onFocus() {\r\n if (!this.disabled) {\r\n this.openModal();\r\n }\r\n }\r\n\r\n openModal() {\r\n this.treeViewModel = this.treeViewModel\r\n || (this.multiselect\r\n ? new MultiSelectTreeViewModel(this.treeModel)\r\n : new SingleSelectTreeViewModel(this.treeModel));\r\n\r\n let modalComponent: TreeSelectModalComponent;\r\n this.dialogRef = this._modalService.createDynamicOptionsModal({\r\n showCloseButton: true,\r\n componentType: TreeSelectModalComponent,\r\n onComponentCreate: (component: TreeSelectModalComponent) => {\r\n component.id = `${this.id}_Modal`;\r\n component.instructions = this.modalInstructions;\r\n component.multiselect = this.multiselect;\r\n component.treeModel = this.treeModel;\r\n component.selectedItem = this.oktaSubaccountTreeViewNodeArray ?? this.selectedItem;\r\n this.rememberSelectedItems = this.treeViewModel.selectedItems || [];\r\n component.treeViewModel = this.treeViewModel;\r\n\r\n modalComponent = component;\r\n },\r\n bodyContainer: {\r\n title: {\r\n text: this.modalHeaderText\r\n }\r\n },\r\n buttonContainer: {\r\n buttons: createButtonOptionStructures()\r\n .addCancelButton('Cancel', matDialogRef => {\r\n this.treeViewModel.copySelectionItemsFromTreeViewModel(this.rememberSelectedItems), matDialogRef.close(false); } )\r\n .addPrimaryButton('Select',\r\n matDialogRef => matDialogRef.close(this.multiselect ? modalComponent.treeViewModel.selectedItems : modalComponent.selectedItem))\r\n .build()\r\n }\r\n },\r\n {\r\n width: '950px',\r\n panelClass: ['tree-select-modal-container']\r\n });\r\n\r\n const subscription = this.dialogRef.afterClosed().subscribe(value => {\r\n if (!!value) {\r\n this.selectedItem = value;\r\n if (this.multiselect) {\r\n this.selectedItemsChange.emit(value);\r\n } else {\r\n this.selectedItemChange.emit(value);\r\n }\r\n } else {\r\n this.treeViewModel.copySelectionItemsFromTreeViewModel(this.rememberSelectedItems);\r\n }\r\n\r\n this.blurEvent?.emit();\r\n subscription.unsubscribe();\r\n this.dialogRef = null;\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { TreeViewModel, TreeViewNode } from './tree-view-model';\r\n\r\n@Component({\r\n selector: 'app-tree-multiselect',\r\n templateUrl: './tree-multiselect.component.html',\r\n styleUrls: ['./tree-multiselect.component.scss']\r\n})\r\nexport class TreeMultiselectComponent {\r\n @Input() public id: string;\r\n @Input() public disabled: boolean;\r\n @Input() public treeViewModel: TreeViewModel;\r\n @Input() public selectedItems: TreeViewNode | TreeViewNode[];\r\n\r\n @Output() public selectedItemsChange: EventEmitter = new EventEmitter();\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport {\r\n MatTreeFlatDataSource,\r\n MatTreeFlattener\r\n} from '@angular/material/tree';\r\n\r\n\r\nexport interface FlatTreeNode {\r\n expandable: boolean;\r\n text: string;\r\n value: any;\r\n treeNode: TreeViewNode;\r\n level: number;\r\n}\r\n\r\nexport class TreeViewNode {\r\n id: string;\r\n text: string;\r\n value: any;\r\n children?: TreeViewNode[];\r\n isSelected?: boolean;\r\n}\r\n\r\nexport abstract class TreeViewModel {\r\n public onlyLeaves: FlatTreeNode[] = [];\r\n public selectedItems: FlatTreeNode[];\r\n public readonly selectedItemChange: EventEmitter = new EventEmitter();\r\n\r\n protected readonly treeControl = new FlatTreeControl(\r\n node => node.level,\r\n node => node.expandable\r\n );\r\n\r\n private readonly treeFlattener = new MatTreeFlattener(\r\n (node: TreeViewNode, level: number) => this._transformer(node, level),\r\n node => node.level,\r\n node => node.expandable,\r\n node => node.children\r\n );\r\n\r\n private readonly treeFlatDataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n constructor(\r\n treeModel: TreeViewNode[],\r\n protected readonly listSelection: SelectionModel\r\n ) {\r\n this.treeFlatDataSource.data = treeModel;\r\n this.treeControl.expandAll();\r\n }\r\n\r\n private _transformer(node: TreeViewNode, level: number): FlatTreeNode {\r\n const result = {\r\n expandable: !!node.children && node.children.length > 0,\r\n text: node.text,\r\n value: node.value,\r\n treeNode: node,\r\n level: level\r\n };\r\n if (node.isSelected) {\r\n this.listSelection.select(result);\r\n }\r\n if (!result.expandable) {\r\n this.onlyLeaves.push(result);\r\n }\r\n return result;\r\n }\r\n\r\n public abstract handleChange(item: FlatTreeNode): void;\r\n public abstract setSelectAll(checkboxChange: MatCheckboxChange): void;\r\n\r\n public hasChildren(_: number, node: FlatTreeNode): boolean { return node.expandable; }\r\n\r\n public isSelected(node: FlatTreeNode): boolean { return this.listSelection.isSelected(node); }\r\n\r\n public isAllSelected(): boolean { return this.onlyLeaves.every(node => this.isSelected(node)); }\r\n\r\n public childrenAllSelected(node: FlatTreeNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result =\r\n descendants.length > 0 &&\r\n descendants.every(child => this.isSelected(child));\r\n return result;\r\n }\r\n\r\n public childrenPartiallySelected(node: FlatTreeNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const selectedCount = descendants.filter(child => this.isSelected(child)).length;\r\n const result = 0 < selectedCount && selectedCount < descendants.length;\r\n return result;\r\n }\r\n\r\n public copySelectionItemsFromTreeViewModel(other: FlatTreeNode[]) {\r\n if (!!other) {\r\n this.listSelection.clear();\r\n this.listSelection.select(...other);\r\n this.selectedItems = other;\r\n }\r\n }\r\n}\r\n\r\nexport class SingleSelectTreeViewModel extends TreeViewModel {\r\n constructor(treeModel: TreeViewNode[]) {\r\n super(treeModel, new SelectionModel(false));\r\n }\r\n\r\n public handleChange(item: FlatTreeNode): void {\r\n this.selectedItems = [item];\r\n this.selectedItemChange?.emit(this.selectedItems);\r\n }\r\n\r\n public setSelectAll(checkboxChange: MatCheckboxChange): void { throw new Error('Single select tree cannot select multiple items.'); }\r\n}\r\n\r\nexport class MultiSelectTreeViewModel extends TreeViewModel {\r\n constructor(treeModel: TreeViewNode[]) {\r\n super(treeModel, new SelectionModel(true));\r\n this.emitChange();\r\n }\r\n\r\n public setSelectAll(checkboxChange: MatCheckboxChange): void {\r\n this.listSelection.clear();\r\n if (checkboxChange.checked) {\r\n this.listSelection.select(...this.onlyLeaves);\r\n }\r\n\r\n this.emitChange();\r\n }\r\n\r\n handleChange(item: FlatTreeNode): void {\r\n const descendants = this.treeControl.getDescendants(item);\r\n\r\n if (!descendants?.length) {\r\n this.listSelection.toggle(item);\r\n } else if (this.childrenAllSelected(item)) {\r\n descendants.forEach(descendant => this.listSelection.deselect(descendant));\r\n } else {\r\n descendants.forEach(descendant => this.listSelection.select(descendant));\r\n }\r\n\r\n this.emitChange();\r\n }\r\n\r\n private emitChange() {\r\n this.selectedItems = this.listSelection.selected.map(o => o);\r\n this.selectedItemChange?.emit(this.selectedItems);\r\n }\r\n}\r\n","import { FlatTreeControl } from '@angular/cdk/tree';\r\nimport {\r\n MatTreeFlatDataSource,\r\n MatTreeFlattener\r\n} from '@angular/material/tree';\r\n\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TreeViewNode } from './tree-view.model';\r\nimport { TreeViewModel } from '../tree-multiselect/tree-view-model';\r\n\r\ninterface FlatTreeNode {\r\n expandable: boolean;\r\n text: string;\r\n value: any;\r\n treeNode: TreeViewNode;\r\n level: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-tree-select',\r\n templateUrl: './tree-select.component.html',\r\n styleUrls: ['./tree-select.component.scss']\r\n})\r\nexport class TreeSelectComponent implements OnInit {\r\n @Input() public id: string;\r\n @Input() public treeModel: TreeViewNode[] = [];\r\n @Input() public selectedItem: TreeViewNode;\r\n @Input() public treeViewModel: TreeViewModel;\r\n\r\n @Output() public selectedItemChange: EventEmitter = new EventEmitter();\r\n\r\n treeControl = new FlatTreeControl(\r\n node => node.level,\r\n node => node.expandable\r\n );\r\n\r\n treeFlattener = new MatTreeFlattener(\r\n this._transformer,\r\n node => node.level,\r\n node => node.expandable,\r\n node => node.children\r\n );\r\n\r\n dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n private _transformer (node: TreeViewNode, level: number): FlatTreeNode {\r\n return {\r\n expandable: !!node.children && node.children.length > 0,\r\n text: node.text,\r\n value: node.value,\r\n treeNode: node,\r\n level: level\r\n };\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n hasChild (_: number, node: FlatTreeNode) { return node.expandable; }\r\n\r\n handleChange(item: TreeViewNode): void {\r\n this.selectedItem = item;\r\n this.selectedItemChange?.emit(item);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.dataSource.data = this.treeModel;\r\n this.treeControl.expandAll();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { AngularMaterialModule } from 'src/app/_common/modules/angular-material.module';\r\nimport { TreeMultiselectComponent } from '../tree-multiselect/tree-multiselect.component';\r\nimport { TreeSelectComponent } from './tree-select.component';\r\n\r\n@NgModule({\r\n exports: [\r\n TreeSelectComponent,\r\n TreeMultiselectComponent\r\n ],\r\n imports: [\r\n AngularMaterialModule,\r\n MatIconModule\r\n ],\r\n declarations: [\r\n TreeSelectComponent,\r\n TreeMultiselectComponent\r\n ]\r\n})\r\nexport class TreeSelectModule {}\r\n","import { Directive, HostListener } from '@angular/core';\r\nimport { BaseValidation } from './base-validation';\r\n\r\n@Directive({\r\n selector: '[appAllowDate]'\r\n})\r\nexport class AllowDateDirective extends BaseValidation {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n public onKeyDown(event: any): void {\r\n this.autocompleteInput(event);\r\n }\r\n\r\n public enforceValidation(event: any): void {\r\n }\r\n\r\n public autocompleteInput(event: any): void {\r\n if (!this.isNumericInput(event) && event.key !== '/' && !this.isModifierKey(event)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n\r\n","import { AbstractControl } from '@angular/forms';\r\n\r\nexport abstract class BaseValidation {\r\n protected alphabet: Array = [];\r\n\r\n constructor() {\r\n if (this.alphabet.length === 0) {\r\n for (let i = 65; i <= 90; i++) {\r\n this.alphabet.push(i);\r\n }\r\n }\r\n }\r\n\r\n public isModifierKey(event: any): boolean {\r\n const key: number = event.keyCode;\r\n return (key === 35 || key === 36) || // Allow Home, End\r\n (key === 8 || key === 9 || key === 13 || key === 46) || // Allow Backspace, Tab, Enter, Delete\r\n (key > 36 && key < 41) || // Allow left, up, right, down\r\n (\r\n // Allow Ctrl/Command + A,C,V,X,Z\r\n (event.ctrlKey === true || event.metaKey === true) &&\r\n (key === 65 || key === 67 || key === 86 || key === 88 || key === 90)\r\n );\r\n }\r\n\r\n public isNumericInput(event: any): boolean {\r\n const key: number = event.keyCode;\r\n return ((event.shiftKey === false && key >= 48 && key <= 57) || // Allow number line\r\n (key >= 96 && key <= 105) // Allow number pad\r\n );\r\n }\r\n\r\n public abstract enforceValidation(event: any): void;\r\n\r\n protected formatInput(event: any, regex: RegExp, appInput: AbstractControl = null): void {\r\n const target: any = event.target;\r\n const clipboard: any = event.clipboardData.getData('text/plain');\r\n let input: string = clipboard.replace(regex, '');\r\n\r\n const maxLength: number = target.maxLength;\r\n if (maxLength && maxLength > 0) {\r\n input = input.substring(0, maxLength);\r\n }\r\n this.setInputValue(event, input, appInput);\r\n }\r\n\r\n protected setInputValue(event: any, value: any, appInput: AbstractControl = null, delay: number = 100): void {\r\n setTimeout(function (): void {\r\n appInput.setValue(value);\r\n }, delay);\r\n }\r\n\r\n public onKeyDown(event: any): void {\r\n this.enforceValidation(event);\r\n }\r\n\r\n public isAlphaInput(event: any): boolean {\r\n const charCode = event.keyCode;\r\n return (charCode > 64 && charCode < 91);\r\n }\r\n\r\n public isAlphaNumberInput(event: any): boolean {\r\n return (this.isNumericInput(event) || this.isAlphaInput(event));\r\n }\r\n}\r\n","export * from './ssn.directive';\r\nexport * from './phone.directive';\r\nexport * from './allow-date.directive';\r\nexport * from './base-validation';\r\nexport * from './input-validation.directive';\r\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\nimport { BaseValidation } from './base-validation';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appInputValidation]'\r\n})\r\nexport class InputValidationDirective extends BaseValidation {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input('appInputValidation') validatorName: string;\r\n @Input() appInput: AbstractControl;\r\n\r\n @HostListener('keydown', ['$event'])\r\n public onKeyDown(event: any): void {\r\n super.onKeyDown(event);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n public onFocus(event: any): void {\r\n this.appInput.markAsUntouched({ onlySelf: true });\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n public onPaste(event: any): void {\r\n let regex: RegExp = null;\r\n switch (this.validatorName) {\r\n case 'alphaNumber':\r\n regex = /[^0-9A-Za-z]/g;\r\n break;\r\n case 'alphaNumberAndSpace':\r\n regex = /[^0-9A-Za-z ]/g;\r\n break;\r\n case 'alphaAndSpace':\r\n regex = /[^A-Za-z ]/g;\r\n break;\r\n case 'alphaOnly':\r\n regex = /[^A-Za-z]/g;\r\n break;\r\n case 'numberOnly':\r\n regex = /\\D/g;\r\n break;\r\n }\r\n this.formatInput(event, regex, this.appInput);\r\n }\r\n\r\n public enforceValidation(event: any): void {\r\n\r\n let isPreventDefaultRequired = false;\r\n\r\n switch (this.validatorName) {\r\n case 'alphaNumber':\r\n isPreventDefaultRequired = (!this.isAlphaNumberInput(event) && !this.isModifierKey(event));\r\n break;\r\n case 'alphaNumberAndSpace':\r\n isPreventDefaultRequired = (!this.isAlphaNumberInput(event) && event.keyCode !== 32 && !this.isModifierKey(event));\r\n break;\r\n case 'alphaAndSpace':\r\n isPreventDefaultRequired = (!this.isAlphaInput(event) && event.keyCode !== 32 && !this.isModifierKey(event));\r\n break;\r\n case 'alphaOnly':\r\n isPreventDefaultRequired = (!this.isAlphaInput(event) && !this.isModifierKey(event));\r\n break;\r\n case 'numberOnly':\r\n isPreventDefaultRequired = (!this.isNumericInput(event) && !this.isModifierKey(event));\r\n break;\r\n }\r\n if (isPreventDefaultRequired) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, Directive, HostListener, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, NgControl } from '@angular/forms';\r\nimport { BaseValidation } from './base-validation';\r\n\r\n@Directive({\r\n selector: '[appPhoneDirective]',\r\n})\r\nexport class PhoneDirective extends BaseValidation implements OnInit, AfterViewInit {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input() appInput: AbstractControl;\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n super.setInputValue(null, this.formatPhoneNumber(this.appInput.value), this.appInput, 0);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n public onKeyDown(event: any): void {\r\n super.onKeyDown(event);\r\n }\r\n\r\n public enforceValidation(event: any): void {\r\n this.enforceFormat(event);\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onKeyUp(event: any): void {\r\n this.formatPhone(event);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n public onFocus(event: any): void {\r\n this.appInput.markAsUntouched({ onlySelf: true });\r\n }\r\n\r\n private enforceFormat = (event: any) => {\r\n if (!this.isNumericInput(event)\r\n && event.keyCode !== 189 // Dash\r\n && event.keyCode !== 173 // Dash in firefox\r\n && event.keyCode !== 32 // Space\r\n && event.keyCode !== 57 // (\r\n && event.keyCode !== 58 // )\r\n && !this.isModifierKey(event)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n public formatPhone = (event: any) => {\r\n const input: any = event.target.value;\r\n if (input === undefined || input === null || input === '') {\r\n return;\r\n }\r\n\r\n super.setInputValue(event, this.formatPhoneNumber(input), this.appInput, 0);\r\n }\r\n\r\n public formatPhoneNumber(input: string): string {\r\n if (input === undefined || input === null || input === '') {\r\n return;\r\n }\r\n const phoneNumber = input.replace(/-|\\(|\\)|\\W|\\D/g, '');\r\n const length = phoneNumber.length;\r\n let formattedPhoneNumber = (length > 3) ? '(' + phoneNumber.substr(0, 3) + ') '\r\n + phoneNumber.substr(3, 3) : phoneNumber.substr(0, 3);\r\n formattedPhoneNumber += (length > 6) ? '-' + phoneNumber.substr(6, 4) : '';\r\n\r\n return formattedPhoneNumber;\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\nimport { BaseValidation } from './base-validation';\r\n\r\n@Directive({\r\n selector: '[appSSNDirective]',\r\n})\r\nexport class SSNDirective extends BaseValidation {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @Input() appInput: AbstractControl;\r\n\r\n @HostListener('keydown', ['$event'])\r\n public onKeyDown(event: any): void {\r\n super.onKeyDown(event);\r\n }\r\n\r\n @HostListener('keyup', ['$event'])\r\n public onPaste(event: any): void {\r\n return this.formatSSN(event);\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n public onFocus(event: any): void {\r\n this.appInput.markAsUntouched({ onlySelf: true });\r\n }\r\n\r\n public enforceValidation(event: any): void {\r\n this.enforceFormat(event);\r\n }\r\n\r\n private enforceFormat = (event: any) => {\r\n if (!this.isNumericInput(event) && event.keyCode !== 189 && !this.isModifierKey(event)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n public formatSSN = (event: any) => {\r\n const input: any = event.target.value;\r\n if (input === undefined || input === null || input === '') {\r\n return;\r\n }\r\n const ssn = input.replace(/-|\\D/g, '');\r\n const length = ssn.length;\r\n let output = ssn.substr(0, 3);\r\n output += (length > 3) ? '-' + ssn.substr(3, 2) : '';\r\n output += (length > 5) ? '-' + ssn.substr(5, 4) : '';\r\n super.setInputValue(event, output, this.appInput, 0);\r\n }\r\n}\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, from } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { OktaAuthService } from '@okta/okta-angular';\r\n\r\n@Injectable()\r\nexport class MiddlewareAPIInterceptor implements HttpInterceptor {\r\n\r\n constructor(private oktaAuth: OktaAuthService) { }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return from(this.handleAccess(request, next));\r\n }\r\n\r\n private async handleAccess(request: HttpRequest, next: HttpHandler): Promise> {\r\n const accessToken = this.oktaAuth.getAccessToken();\r\n request = request.clone({\r\n setHeaders: { Authorization: `Bearer ${accessToken}` },\r\n });\r\n\r\n return next.handle(request).toPromise();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\n\r\n@NgModule({\r\n exports: [\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatInputModule,\r\n MatRippleModule,\r\n MatNativeDateModule,\r\n MatTreeModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatFormFieldModule,\r\n MatCheckboxModule,\r\n MatProgressSpinnerModule,\r\n MatTabsModule,\r\n MatListModule,\r\n MatDialogModule,\r\n ]\r\n})\r\nexport class AngularMaterialModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { SingleDropdownSelectComponent } from '../custom-controls/single-dropdown-select/single-dropdown-select.component';\r\nimport { TreeModalDropdownComponent } from '../custom-controls/tree-modal-dropdown/tree-modal-dropdown.component';\r\nimport { NgxBootStrapModule } from './ngxbootstrap.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n SingleDropdownSelectComponent,\r\n TreeModalDropdownComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n NgxBootStrapModule\r\n ],\r\n exports: [\r\n SingleDropdownSelectComponent,\r\n TreeModalDropdownComponent\r\n ]\r\n})\r\nexport class CustomControlsModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { AllowDateDirective, InputValidationDirective, PhoneDirective, SSNDirective } from '../input-directives';\r\n\r\n@NgModule({\r\n exports: [\r\n SSNDirective,\r\n AllowDateDirective,\r\n InputValidationDirective,\r\n PhoneDirective\r\n ],\r\n declarations: [\r\n SSNDirective,\r\n AllowDateDirective,\r\n InputValidationDirective,\r\n PhoneDirective\r\n ],\r\n providers: [\r\n SSNDirective,\r\n AllowDateDirective,\r\n InputValidationDirective,\r\n PhoneDirective\r\n ]\r\n})\r\nexport class InputDirectivesModule {\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\n\r\n@NgModule({\r\n imports: [BsDropdownModule.forRoot()],\r\n exports: [\r\n BsDropdownModule\r\n ]\r\n})\r\nexport class NgxBootStrapModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MultiselectDropdownComponent } from '../custom-controls/multiselect-dropdown/multiselect-dropdown.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NoResultsFoundComponent } from '../shared/components/no-results-found/no-results-found.component';\r\nimport { ToasterMessageComponent } from '../shared/components/toaster-message/toaster-message.component';\r\nimport { AngularMaterialModule } from './angular-material.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { PrintDirective } from 'src/app/manage-my-group/employee-roster/_common/directives/print.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n MultiselectDropdownComponent,\r\n NoResultsFoundComponent,\r\n ToasterMessageComponent,\r\n PrintDirective,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n ReactiveFormsModule,\r\n AngularMaterialModule, MatIconModule,\r\n ],\r\n exports: [\r\n MultiselectDropdownComponent,\r\n NoResultsFoundComponent,\r\n ToasterMessageComponent,\r\n FormsModule,\r\n NgbModule,\r\n ReactiveFormsModule,\r\n PrintDirective,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import { IEmployee } from 'src/app/manage-my-group/employee-roster/_common/models';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\r\nimport { IAsyncPipeSource } from './pipe.interface';\r\nimport { EmployerRosterApiService } from 'src/app/manage-my-group/employee-roster/_common/services/employee-roster-service/employee-roster-api-service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeAsyncSource implements IAsyncPipeSource>, OnDestroy {\r\n private subscriptions: Subscription[] = [];\r\n private _result$: Subject> = new BehaviorSubject>(null);\r\n public get result$(): Observable { return this._result$; }\r\n\r\n constructor(\r\n private employeeRosterApiService: EmployerRosterApiService\r\n ) {\r\n this.subscriptions.push(this.employeeRosterApiService.rosterData$.subscribe(employees => {\r\n this._result$.next(employees);\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n}\r\n","import { IEmployee } from 'src/app/manage-my-group/employee-roster/_common/models';\r\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\r\nimport { SearchConfig } from './pipes/search-config';\r\nimport { SearchResults } from './search-results.interface';\r\nimport { Functions } from './pipe.functions';\r\nimport { EmployeeAsyncSource } from './AsyncEmployeeSource';\r\nimport { EmployeeIDCardGridSortStructure, EmployeeIDCardGridSearchStructure, EmployeeIDCardGridFilterStructure } from './employee-id-card-grid.structure';\r\nimport { Injectable } from '@angular/core';\r\nimport { SortConfig } from './pipes/sort-config';\r\nimport { FilterConfig } from './pipes/filter-config';\r\nimport { SearchPipe } from './pipes/search-pipe';\r\nimport { FilterPipe } from './pipes/filter-pipe';\r\nimport { SortPipe } from './pipes/sort-pipe';\r\nimport { PaginationPipe } from './pipes/pagination-pipe';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport { Employee } from 'src/app/manage-my-group/employee-roster/_common/models/employee.functions';\r\nimport { TreeViewNode } from '../custom-controls/tree-multiselect/tree-view-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeIDGridPipeline {\r\n private _results$: Observable>;\r\n private _searchPipe: SearchPipe;\r\n private _filterPipe: FilterPipe;\r\n private _sortPipe: SortPipe;\r\n private _paginationPipe: PaginationPipe;\r\n\r\n public get results$(): Observable> { return this._results$; }\r\n public get searchPipe(): SearchPipe { return this._searchPipe; }\r\n public get filterPipe(): FilterPipe { return this._filterPipe; }\r\n public get sortPipe(): SortPipe { return this._sortPipe; }\r\n public get paginationPipe(): PaginationPipe { return this._paginationPipe; }\r\n\r\n constructor(employeeSource: EmployeeAsyncSource) {\r\n const filterConfig: FilterConfig = this.createFilterConfig();\r\n const sortConfig: SortConfig = this.createSortConfig();\r\n const searchConfig: SearchConfig = this.createSearchConfig();\r\n\r\n this.buildPipeline(searchConfig, filterConfig, sortConfig, employeeSource);\r\n }\r\n\r\n private createSearchConfig(): SearchConfig {\r\n return {\r\n name: {\r\n stringifier: Employee.nameStringifier,\r\n },\r\n dentalId: {\r\n stringifier: Functions.stringifierForKey('dentalId')\r\n },\r\n medicalId: {\r\n stringifier: Functions.stringifierForKey('medicalId')\r\n },\r\n hccSubscriberId: {\r\n stringifier: Functions.stringifierForKey('hccSubscriberId')\r\n },\r\n socialSecurityNumber: {\r\n stringifier: Functions.stringifierForKey('socialSecurityNumber')\r\n },\r\n completeName: {\r\n stringifier: Employee.completeName\r\n }\r\n };\r\n }\r\n\r\n private createSortConfig(): SortConfig {\r\n return {\r\n name: {\r\n getter: Employee.nameStringifier,\r\n comparetor: Functions.defaultSortComparetor()\r\n }\r\n };\r\n }\r\n\r\n private createFilterConfig(): FilterConfig {\r\n return {\r\n eligibilityDate: {\r\n matcher: Employee.eligibilityDateMatcher\r\n },\r\n subAccounts: {\r\n matcher: (item: IEmployee, filterValue: TreeViewNode[]) =>\r\n Employee.subAccountMatcher(item, filterValue.map(treeNode => treeNode.value))\r\n }\r\n };\r\n }\r\n\r\n private buildPipeline(\r\n searchConfig: SearchConfig,\r\n filterConfig: FilterConfig,\r\n sortConfig: SortConfig,\r\n employeeSource: EmployeeAsyncSource) {\r\n const debouncedDirtyNotifier = new Subject();\r\n const immediateDirtyNotifier = new Subject();\r\n\r\n this._searchPipe = new SearchPipe(debouncedDirtyNotifier, searchConfig);\r\n this._filterPipe = new FilterPipe(debouncedDirtyNotifier, filterConfig);\r\n this._sortPipe = new SortPipe(debouncedDirtyNotifier, sortConfig);\r\n this._paginationPipe = new PaginationPipe(immediateDirtyNotifier);\r\n\r\n this._results$ = combineLatest([\r\n merge(\r\n of(true),\r\n immediateDirtyNotifier,\r\n debouncedDirtyNotifier.pipe(debounceTime(500))\r\n ),\r\n employeeSource.result$\r\n ]).pipe(\r\n map(([_, result]) => result),\r\n map(input => this.searchPipe.process(input)),\r\n map(input => this.filterPipe.process(input)),\r\n map(input => this.sortPipe.process(input)),\r\n map(input => {\r\n return {\r\n results: this.paginationPipe.process(input),\r\n count: input.length,\r\n searchText: this.searchPipe.searchText\r\n };\r\n })\r\n );\r\n }\r\n\r\n clearFilters(): void {\r\n this.searchPipe.clear();\r\n this.filterPipe.filterValues.clear();\r\n this.sortPipe.clear();\r\n this.paginationPipe.clear();\r\n }\r\n}\r\n","import { IEmployee } from 'src/app/manage-my-group/employee-roster/_common/models';\r\nimport { combineLatest, merge, Observable, of, Subject } from 'rxjs';\r\nimport { SearchConfig } from './pipes/search-config';\r\nimport { SearchResults } from './search-results.interface';\r\nimport { Functions } from './pipe.functions';\r\nimport { EmployeeAsyncSource } from './AsyncEmployeeSource';\r\nimport { EmployeeRosterGridSortStructure, EmployeeRosterGridSearchStructure, EmployeeRosterGridFilterStructure } from './employee-roster-grid.structure';\r\nimport { Injectable } from '@angular/core';\r\nimport { SortConfig } from './pipes/sort-config';\r\nimport { FilterConfig } from './pipes/filter-config';\r\nimport { SearchPipe } from './pipes/search-pipe';\r\nimport { FilterPipe } from './pipes/filter-pipe';\r\nimport { SortPipe } from './pipes/sort-pipe';\r\nimport { PaginationPipe } from './pipes/pagination-pipe';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport { Employee } from 'src/app/manage-my-group/employee-roster/_common/models/employee.functions';\r\nimport { TreeViewNode } from '../custom-controls/tree-multiselect/tree-view-model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeRosterGridPipeline {\r\n private _results$: Observable>;\r\n private _searchPipe: SearchPipe;\r\n private _filterPipe: FilterPipe;\r\n private _sortPipe: SortPipe;\r\n private _paginationPipe: PaginationPipe;\r\n\r\n public get results$(): Observable> { return this._results$; }\r\n public get searchPipe(): SearchPipe { return this._searchPipe; }\r\n public get filterPipe(): FilterPipe { return this._filterPipe; }\r\n public get sortPipe(): SortPipe { return this._sortPipe; }\r\n public get paginationPipe(): PaginationPipe { return this._paginationPipe; }\r\n\r\n constructor(employeeSource: EmployeeAsyncSource) {\r\n const filterConfig: FilterConfig = this.createFilterConfig();\r\n const sortConfig: SortConfig = this.createSortConfig();\r\n const searchConfig: SearchConfig = this.createSearchConfig();\r\n\r\n this.buildPipeline(searchConfig, filterConfig, sortConfig, employeeSource);\r\n }\r\n\r\n public clearFilters(): void {\r\n this.searchPipe.clear();\r\n this.filterPipe.filterValues.clear();\r\n this.sortPipe.clear();\r\n this.paginationPipe.clear();\r\n }\r\n\r\n private createSearchConfig(): SearchConfig {\r\n return {\r\n name: {\r\n stringifier: Employee.nameStringifier,\r\n },\r\n dentalId: {\r\n stringifier: Functions.stringifierForKey('dentalId')\r\n },\r\n medicalId: {\r\n stringifier: Functions.stringifierForKey('medicalId')\r\n },\r\n hccSubscriberId: {\r\n stringifier: Functions.stringifierForKey('hccSubscriberId')\r\n },\r\n completeName: {\r\n stringifier: Employee.completeName,\r\n }\r\n };\r\n }\r\n\r\n private createSortConfig(): SortConfig {\r\n return {\r\n name: {\r\n getter: Employee.nameStringifier,\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n dateOfBirth: {\r\n getter: Functions.getterForKey('dateOfBirth'),\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n effectiveDate: {\r\n getter: Functions.getterForKey('effectiveDate'),\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n medicalId: {\r\n getter: Functions.getterForKey('medicalId'),\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n dentalId: {\r\n getter: Functions.getterForKey('dentalId'),\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n employeeStatus: {\r\n getter: Functions.getterForKey('employeeStatus'),\r\n comparetor: Functions.defaultSortComparetor()\r\n },\r\n };\r\n }\r\n\r\n private createFilterConfig(): FilterConfig {\r\n return {\r\n eligibilityDate: {\r\n matcher: Employee.eligibilityDateMatcher\r\n },\r\n subAccounts: {\r\n matcher: (item: IEmployee, filterValue: TreeViewNode[]) =>\r\n // treeNode.value: IAccountSummary\r\n Employee.subAccountMatcher(item, filterValue.map(treeNode => treeNode.value))\r\n },\r\n employeeStatus: {\r\n matcher: Employee.statusMatcher\r\n }\r\n };\r\n }\r\n\r\n private buildPipeline(\r\n searchConfig: SearchConfig,\r\n filterConfig: FilterConfig,\r\n sortConfig: SortConfig,\r\n employeeSource: EmployeeAsyncSource) {\r\n const debouncedDirtyNotifier = new Subject();\r\n const immediateDirtyNotifier = new Subject();\r\n\r\n this._searchPipe = new SearchPipe(debouncedDirtyNotifier, searchConfig);\r\n this._filterPipe = new FilterPipe(debouncedDirtyNotifier, filterConfig);\r\n this._sortPipe = new SortPipe(debouncedDirtyNotifier, sortConfig);\r\n this._paginationPipe = new PaginationPipe(immediateDirtyNotifier);\r\n\r\n this._results$ = combineLatest([\r\n merge(\r\n of(true),\r\n immediateDirtyNotifier,\r\n debouncedDirtyNotifier.pipe(debounceTime(500))\r\n ),\r\n employeeSource.result$\r\n ]).pipe(\r\n map(([_, result]) => result),\r\n map(input => this.searchPipe.process(input)),\r\n map(input => this.filterPipe.process(input)),\r\n map(input => this.sortPipe.process(input)),\r\n map(input => {\r\n return {\r\n results: this.paginationPipe.process(input),\r\n count: input.length,\r\n searchText: this.searchPipe.searchText\r\n };\r\n })\r\n );\r\n }\r\n}\r\n","\r\nexport class Functions {\r\n public static stringifierForKey(key: P): (obj: T) => string {\r\n return obj => {\r\n const result = obj[key as keyof T]?.toString().toLowerCase() || '';\r\n return result;\r\n };\r\n }\r\n\r\n public static defaultSortComparetor(): (a: T, b: T) => number {\r\n return (v1, v2) => v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n }\r\n\r\n public static strictEqualityMatcher(): (a: T, b: T) => boolean {\r\n return (a: T, b: T) => a === b;\r\n }\r\n\r\n public static stringIncludesMatcher(stringifier: (obj: T) => string): (a: T, b: string) => boolean {\r\n return (obj: T, text: string) => stringifier(obj).includes(text);\r\n }\r\n\r\n public static getterForKey(key: P): (obj: T) => T[P] {\r\n return obj => obj[key];\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { FilterMap, FilterConfig } from './filter-config';\r\nimport { IPipe } from '../pipe.interface';\r\nimport { Functions } from '../pipe.functions';\r\n\r\n\r\nexport class FilterPipe implements IPipe> {\r\n private _filterMaps: FilterMap[];\r\n private _filterValues: K;\r\n\r\n constructor(\r\n private dirtyNotifier: Subject,\r\n private matchers: FilterConfig\r\n ) { }\r\n\r\n get filterValues() {\r\n const result = {\r\n patch: (value: Partial) => this.setFilterValues({\r\n ...this._filterValues,\r\n ...value\r\n }),\r\n get: () => this._filterValues,\r\n set: (value: K) => this.setFilterValues(value),\r\n clear: () => result.set(null)\r\n };\r\n return result;\r\n }\r\n\r\n public process(input: T[]): T[] {\r\n if (!this._filterValues) {\r\n return input;\r\n }\r\n\r\n const result = input.filter(item => {\r\n return this._filterMaps.every(({ matcher, value }) => {\r\n return matcher(item, value);\r\n });\r\n });\r\n return result;\r\n }\r\n\r\n private setFilterValues(filterValues: K) {\r\n if (filterValues === null) {\r\n this._filterMaps = null;\r\n this._filterValues = null;\r\n this.dirtyNotifier.next(true);\r\n return;\r\n }\r\n\r\n Object.keys(filterValues).forEach(key =>\r\n (filterValues[key] === undefined || filterValues[key] === null) && delete filterValues[key]\r\n );\r\n const keys = Object.keys(filterValues);\r\n if (keys.length === 0) {\r\n this._filterMaps = null;\r\n filterValues = null;\r\n } else {\r\n this._filterMaps = keys.map(key => {\r\n return {\r\n matcher: this.matchers[key as keyof K].matcher,\r\n // Using parameter here as this._filterValues has not been set yet\r\n value: filterValues[key]\r\n };\r\n });\r\n }\r\n\r\n this._filterValues = filterValues;\r\n this.dirtyNotifier.next(true);\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { IPipe } from '../pipe.interface';\r\n\r\nconst DEFAULT_PAGE = 1;\r\nconst DEFAULT_PAGE_SIZE = 10;\r\nexport class PaginationPipe implements IPipe> {\r\n private _page = DEFAULT_PAGE;\r\n private _pageSize = DEFAULT_PAGE_SIZE;\r\n public get page() { return this._page; }\r\n public set page(value: number) {\r\n this._page = value;\r\n this.dirtyNotifier.next(true);\r\n }\r\n public get pageSize() { return this._pageSize; }\r\n public set pageSize(value: number) { this._pageSize = value; this.dirtyNotifier.next(true); }\r\n\r\n constructor(\r\n private dirtyNotifier: Subject\r\n ) { }\r\n\r\n public clear(): void {\r\n this.page = DEFAULT_PAGE;\r\n this.pageSize = DEFAULT_PAGE_SIZE;\r\n }\r\n\r\n public process(input: T[]): T[] {\r\n if (input.length < this.pageSize) {\r\n return input;\r\n }\r\n\r\n const count = input.length;\r\n // Don't slice past the end of the array\r\n // TODO: Update page if there's not as many results as there were when page was selected?\r\n // But how do we guarantee there isn't an infinite loop?\r\n const start = (this.page - 1) * this.pageSize;\r\n const end = start + this.pageSize;\r\n\r\n const result = input.slice(start, end);\r\n return result;\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { SearchConfig } from './search-config';\r\nimport { IPipe } from '../pipe.interface';\r\n\r\n\r\nexport class SearchPipe implements IPipe> {\r\n private _searchText = '';\r\n private stringifiers: ((obj: T) => string)[];\r\n get searchText() { return this._searchText; }\r\n set searchText(searchText: string) { this._searchText = !!searchText ? searchText : ''; this.dirtyNotifier.next(true); }\r\n\r\n constructor(\r\n private readonly dirtyNotifier: Subject,\r\n private readonly searchConfig: SearchConfig\r\n ) {\r\n this.stringifiers = Object.keys(this.searchConfig).map(key => this.searchConfig[key as keyof K].stringifier);\r\n }\r\n\r\n public process(input: T[]): T[] {\r\n if (!this.searchText) {\r\n return input;\r\n }\r\n\r\n const lowerSearchText = this.searchText.toLowerCase();\r\n const result = input.filter(item => {\r\n return this.stringifiers.some(stringifier => {\r\n return stringifier(item).includes(lowerSearchText);\r\n });\r\n });\r\n return result;\r\n }\r\n\r\n public clear(): void { this.searchText = null; }\r\n}\r\n","import { SortDirection } from 'src/app/manage-my-group/employee-roster/_common/directives/sortable.directive';\r\nimport { Subject } from 'rxjs';\r\nimport { SortConfig } from './sort-config';\r\nimport { IPipe } from '../pipe.interface';\r\n\r\ninterface SortState {\r\n column: keyof T;\r\n direction: SortDirection;\r\n}\r\n\r\nexport class SortPipe implements IPipe> {\r\n private sortState: SortState;\r\n\r\n constructor(\r\n private dirtyNotifier: Subject,\r\n private config: SortConfig\r\n ) { }\r\n\r\n public setState(sortState: SortState): void {\r\n this.sortState = !!sortState?.direction ? sortState : null;\r\n this.dirtyNotifier.next(true);\r\n }\r\n\r\n public clear(): void { this.setState(null); }\r\n\r\n public process(input: T[]): T[] {\r\n if (!this.sortState) {\r\n return input;\r\n }\r\n\r\n const fieldConfig = this.config[this.sortState.column];\r\n const getter = fieldConfig.getter;\r\n const dir = this.sortState.direction === 'asc' ? 1 : -1;\r\n const sortLambda = (a: T, b: T) => dir * fieldConfig.comparetor(getter(a), getter(b));\r\n\r\n // Sort, do not mutate source array\r\n return [...input].sort(sortLambda);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { EMPTY, forkJoin, Observable, of } from 'rxjs';\r\nimport { catchError } from 'rxjs/internal/operators/catchError';\r\nimport { filter, finalize, map, mergeMap, take } from 'rxjs/operators';\r\nimport { NavigationContentService } from 'src/app/_services/navigation-content-service/navigationContent.service';\r\nimport { UserInfoService } from 'src/app/_services/user-info-service/userInfo.service';\r\nimport { AuthService } from '../auth/auth.service';\r\nimport { SpinnerService } from '../services/spinner.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardDataResolver implements Resolve {\r\n constructor(private spinnerService: SpinnerService,\r\n private navigationContentService: NavigationContentService,\r\n private authService: AuthService,\r\n private router: Router,\r\n private userInfoService: UserInfoService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n return forkJoin([\r\n this.addPipe(this.navigationContentService.updateNavigationBarContent(), false),\r\n this.addPipe(this.navigationContentService.getFooterContent(), false),\r\n this.addPipe(this.navigationContentService.getMyAccountDropdown(), false),\r\n this.addPipe(this.userInfoService.updateOktaUserInfo().pipe(\r\n mergeMap(_ => {\r\n return this.authService.populateAccountSummary();\r\n })\r\n ), true)\r\n ]).pipe(\r\n mergeMap(bools => {\r\n if (bools.every(bool => bool)) {\r\n return of(true);\r\n } else {\r\n console.error('Error while populating dashboard data.');\r\n // Navigate to log-in (or error) page to prevent user from seeing a\r\n // blank screen when navigating straight to an internal url while the API is down\r\n this.router?.navigate(['/log-in']);\r\n\r\n // EMPTY (no value emitted before completion) observables will cause route resolution to cancel\r\n return EMPTY;\r\n }\r\n }),\r\n finalize(() => {\r\n this.spinnerService.hideProgressSpinner();\r\n })\r\n );\r\n }\r\n\r\n addPipe(observable: Observable, fatal: boolean): Observable {\r\n return observable.pipe(\r\n filter(data => !!data),\r\n take(1),\r\n map(_ => true),\r\n catchError(_ => of(!fatal))\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { EMPTY, Observable, throwError } from 'rxjs';\r\nimport { catchError, finalize, switchMap } from 'rxjs/operators';\r\nimport { SpinnerService } from '../services/spinner.service';\r\nimport { MemberProfileSelector } from 'src/app/manage-my-group/member-profile/_common/services/member-profile-selector/member-profile.selector';\r\nimport { SubscriberApiService } from 'src/app/manage-my-group/member-profile/_common/services/subscriber-api.service';\r\nimport { ToasterService } from '../services/toaster-service/toaster.service';\r\nimport { mailto } from '../shared/helper.functions';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { ISubscriber } from 'src/app/manage-my-group/member-profile/_common/models';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class MemberProfileDataResolver implements Resolve {\r\n constructor(\r\n private router: Router,\r\n private formService: SubscriberApiService,\r\n private memberProfileSelector: MemberProfileSelector,\r\n private spinnerService: SpinnerService,\r\n private toasterService: ToasterService,\r\n private sitecoreContentService: SitecoreContentService\r\n ) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, routerStateSnapshot: RouterStateSnapshot): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n try {\r\n if (!this.memberProfileSelector.selectedEmployee) {\r\n // If user refreshes or navigates directly to URL then bounce to roster\r\n this.router.navigate(['/employeeRoster']);\r\n return EMPTY;\r\n }\r\n let getMemberData$: Observable;\r\n return this.sitecoreContentService.getSiteCoreToggle('MemberProfile_UseGetMemberDataWithPolicyCoverage')\r\n .pipe(\r\n switchMap((data: boolean) => {\r\n if (!data) {\r\n getMemberData$ = this.formService.getMemberData(this.memberProfileSelector.selectedEmployee.hccSubscriberId);\r\n } else {\r\n getMemberData$ = this.formService.getMemberDataV2(this.memberProfileSelector.selectedEmployee.hccSubscriberId,\r\n this.memberProfileSelector.selectedEmployee.dentalId ?? '');\r\n }\r\n return getMemberData$.pipe(\r\n catchError(err => {\r\n this.router.navigate(['/employeeRoster']);\r\n this.handleError(err);\r\n return EMPTY;\r\n }),\r\n finalize(() => this.spinnerService.hideProgressSpinner())\r\n );\r\n }));\r\n } catch (err) {\r\n this.router.navigate(['/employeeRoster']);\r\n this.handleError(err);\r\n this.spinnerService.hideProgressSpinner();\r\n return EMPTY;\r\n }\r\n }\r\n\r\n private handleError(error: any): Observable {\r\n this.toasterService.pushToastMessage({\r\n title: 'Sorry, something went wrong.',\r\n message: `
There was an error retrieving your information. Please try again after some time. If you\\'ve attempted multiple times report to\r\n ${mailto({\r\n message: {\r\n address: 'eSolutions@azblue.com',\r\n subject: 'Member profile load error',\r\n body: null\r\n },\r\n tag: {\r\n innerHtml: 'technical support'\r\n }\r\n })}.`,\r\n icon: 'red-x-mark',\r\n bodyClass: { 'card-body-error': true, 'container-margin': true },\r\n showCloseButton: true,\r\n shouldScrollToToaster: true\r\n });\r\n window.scrollTo(0, 0);\r\n // Return throwError so error gets logged properly\r\n return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { forkJoin, Observable } from 'rxjs';\r\nimport { finalize, map } from 'rxjs/operators';\r\nimport { IEmployeeForm } from 'src/app/manage-my-group/add-employee/standard-application/_common/models';\r\nimport { EmployeeFormService } from 'src/app/manage-my-group/add-employee/standard-application/_common/services/employee-form.service';\r\nimport { ISavedEmployeeApplication } from 'src/app/manage-my-group/saved-applications/_common/models/saved-applications.interface';\r\nimport { SavedApplicationsApiService } from 'src/app/manage-my-group/saved-applications/_common/services/savedApplicationsService/saved-applications-api.service';\r\nimport { ManageMyGroupDropdownService } from 'src/app/manage-my-group/_common/services/manage-my-group-dropdown.service';\r\nimport { SpinnerService } from 'src/app/_common/services/spinner.service';\r\nimport { AppConstants } from '../shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SavedEmployeeDataResolver {\r\n private employeeForm: IEmployeeForm = null;\r\n constructor(\r\n private savedApplicationsApiService: SavedApplicationsApiService,\r\n private spinnerService: SpinnerService,\r\n private employeeFormService: EmployeeFormService,\r\n public dropdownService: ManageMyGroupDropdownService,\r\n ) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n try {\r\n const employeeData = JSON.parse(localStorage.getItem(AppConstants.SAVED_APP_CURRENT_EMPLOYEE));\r\n if (!!employeeData) {\r\n return forkJoin([\r\n this.savedApplicationsApiService.getSavedEmployeeApplicationById(employeeData?.id).pipe(\r\n map((employee: ISavedEmployeeApplication[]) => {\r\n if (!!employee) {\r\n const applicationJson = employee.shift()?.applicationJson;\r\n this.employeeForm = this.parseToEmployeeForm(applicationJson);\r\n }})\r\n ),\r\n this.dropdownService.getHealthPlans(\r\n employeeData?.accountNumber,\r\n this.employeeForm?.employeeInfo?.effectiveDateOfCoverage ?? new Date())\r\n ]).pipe(\r\n finalize(() => {\r\n this.employeeFormService.resumeSavedEmployee(this.employeeForm);\r\n this.spinnerService.hideProgressSpinner();\r\n })\r\n );\r\n }\r\n } catch {\r\n this.spinnerService.hideProgressSpinner();\r\n }\r\n }\r\n\r\n public parseToEmployeeForm(applicationJson: string): IEmployeeForm {\r\n if (applicationJson) {\r\n return JSON.parse(applicationJson) as IEmployeeForm;\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\r\nimport { EMPTY, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SitecoreItemResolver implements Resolve {\r\n constructor(private sitecoreContentService: SitecoreContentService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable {\r\n if (route?.data?.sitecoreItem?.name) {\r\n return this.sitecoreContentService.getAngularComponents(route.data.sitecoreItem.name).pipe(\r\n map((children: any[]) => this.mapChildrenToOutletNames(children)),\r\n map(childrenMappedToOutlets => ({ outlets: childrenMappedToOutlets }))\r\n );\r\n }\r\n return EMPTY;\r\n }\r\n\r\n /*\r\n Example:\r\n {\r\n outlets: {\r\n top: [\r\n {\r\n componentName: 'collection',\r\n outlets: {\r\n top: [\r\n {\r\n componentName: 'card',\r\n outlets: {\r\n top: [\r\n {\r\n componentName: 'headerWithSubtext'\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n }\r\n }\r\n */\r\n mapChildrenToOutletNames(children: any[]) {\r\n return children.reduce((aggregate, item) => {\r\n const keyname = item['OutletName'] || 'top';\r\n const keyvalue = (aggregate[keyname] || []);\r\n const result = {\r\n ...item,\r\n outlets: !!item.Children ? this.mapChildrenToOutletNames(item.Children) : null\r\n };\r\n keyvalue.push(result);\r\n return {\r\n ...aggregate,\r\n [keyname]: keyvalue\r\n };\r\n }, () => {});\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\n\r\nexport class DateService {\r\n public static getDate(value: string): Date {\r\n const date = new Date(value);\r\n const dateUTC = value ? new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate()) : null;\r\n\r\n return dateUTC;\r\n }\r\n\r\n public static getDateFormat(date: Date | string, format: string): string {\r\n const dateFormated = date ? formatDate(date, format, 'en-US') : '';\r\n return dateFormated;\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 GenderService {\r\n public gender: Array = [{ name: 'Male', alpha: 'M' }, { name: 'Female', alpha: 'F' }];\r\n\r\n public getValidGender(value: string): IGender {\r\n return this.gender.find((g: IGender) => g.name.toLowerCase() === value.toLowerCase()\r\n || g.alpha.toLowerCase() === value.toLowerCase());\r\n }\r\n}\r\n\r\nexport interface IGender {\r\n name: string;\r\n alpha: string;\r\n}\r\n","\r\nexport class ModalConstants {\r\n public static readonly primaryButtonTheme = ['btn', 'btn-primary', 'ml-5'];\r\n public static readonly cancelButtonTheme = ['btn', 'primary-button', 'button-dismissive', 'cancel-btn', 'ml-5'];\r\n public static readonly warning_icon = '../../../../assets/icons/icon-warning.svg';\r\n}\r\n","import { MatDialogRef } from '@angular/material/dialog';\r\nimport { IComponentCreationOptions } from './component-creation-options.interface';\r\nimport { SpanTextElementComponent, ITextElementConfig } from './span-text-element.component';\r\nimport { ModalConstants } from './modal.constants';\r\nimport { IButtonOptions } from './modals/option-select-modal/models/button-options';\r\n\r\n\r\nexport function createTextComponentStructures() {\r\n const components: IComponentCreationOptions[] = [];\r\n const textBuilder = {\r\n addText: (text: string) => { components.push(createTextElementConfig({ text })); return textBuilder; },\r\n addBold: (text: string) => { components.push(createTextElementConfig({ text, style: 'font-weight: bold;' })); return textBuilder; },\r\n build: () => components\r\n };\r\n return textBuilder;\r\n}\r\n\r\nfunction createTextElementConfig(config: ITextElementConfig): IComponentCreationOptions {\r\n return {\r\n componentType: SpanTextElementComponent,\r\n onComponentCreate: (component: SpanTextElementComponent) => {\r\n component.config = config;\r\n }\r\n };\r\n}\r\n\r\nexport function createButtonOptionStructures() {\r\n const result: IButtonOptions[] = [];\r\n const buttonBuilder = {\r\n addPrimaryButton: (text: string, onClick: (MatDialogRef: any) => void = null) => {\r\n result.push({\r\n text,\r\n ngClass: ModalConstants.primaryButtonTheme,\r\n onClick: onClick || ((md: MatDialogRef) => md.close(true))\r\n });\r\n return buttonBuilder;\r\n },\r\n addCancelButton: (text: string = 'Cancel', onClick: (MatDialogRef: any) => void = null) => {\r\n result.push({\r\n text,\r\n ngClass: ModalConstants.cancelButtonTheme,\r\n onClick: onClick || ((md: MatDialogRef) => md.close(false))\r\n });\r\n return buttonBuilder;\r\n },\r\n addCustomButton: (buttonOptions: IButtonOptions) => {\r\n result.push(buttonOptions);\r\n return buttonBuilder;\r\n },\r\n build: () => result\r\n };\r\n\r\n return buttonBuilder;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule} from '@angular/common';\r\nimport { OptionSelectModalBaseComponent } from './modals/option-select-modal/option-select-modal-base.component';\r\nimport { DynamicContentOptionSelectModalComponent } from './modals/option-select-modal/dynamic-option-select-modal/dynamic-option-select-modal.component';\r\nimport { ModalBuilderTargetComponent } from './modals/injectable-components/modal-builder-target/modal-builder-target.component';\r\nimport { InjectableComponentsModule } from './modals/injectable-components/injectable-components.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n OptionSelectModalBaseComponent,\r\n DynamicContentOptionSelectModalComponent,\r\n ModalBuilderTargetComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n InjectableComponentsModule\r\n ],\r\n providers: [\r\n ],\r\n entryComponents: [\r\n OptionSelectModalBaseComponent\r\n ],\r\n})\r\nexport class ModalServiceModule { }\r\n","import { Component, Injectable, Type } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { IButtonOptions } from './modals/option-select-modal/models/button-options';\r\nimport { DynamicContentOptionSelectModalComponent, IDynamicContentOptionSelectDialogData } from './modals/option-select-modal/dynamic-option-select-modal/dynamic-option-select-modal.component';\r\nimport deepCopy from '../../shared/helper.functions';\r\nimport { ModalConstants } from './modal.constants';\r\nimport { ModalBuilderTargetComponent } from './modals/injectable-components/modal-builder-target/modal-builder-target.component';\r\nimport { ComponentBuilderConfig } from './modals/injectable-components/modal-builder-target/component-builder.config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n private readonly matDialogConfig: MatDialogConfig = {\r\n minWidth: '550px',\r\n minHeight: '311px',\r\n disableClose: true,\r\n panelClass: ['option-select-dialog-container']\r\n };\r\n\r\n private readonly defaultButtonContainer = {\r\n buttons: [],\r\n style: 'justify-content: flex-end; margin-top: 29px'\r\n };\r\n private readonly dialogDataDefault: IDynamicContentOptionSelectDialogData = {\r\n bodyContainer: {\r\n iconPath: '',\r\n title: { text: '' },\r\n style: 'text-align: left, font-family: Roboto-Regular, font-size: 23px, line-height: 32px, color: #2a2a2a, margin: 12px 76px 20px 76px'\r\n },\r\n buttonContainer: this.defaultButtonContainer,\r\n componentType: ParagraphComponent,\r\n onComponentCreate: (component: ParagraphComponent) => {\r\n component.text = '';\r\n component.style = '';\r\n },\r\n showCloseButton: false,\r\n };\r\n\r\n // #### Component Builder defaults #### //\r\n defaultDialogConfig: MatDialogConfig = {\r\n minWidth: '550px',\r\n minHeight: '284px',\r\n disableClose: false,\r\n panelClass: ['modal-builder-dialog-container']\r\n };\r\n defaultBuilderConfig: ComponentBuilderConfig = {\r\n closeOptions: {\r\n showCloseButton: true\r\n },\r\n bodyContainer: {\r\n icon: { path: ModalConstants.warning_icon },\r\n title: {\r\n ngStyle: {\r\n 'text-align': 'left',\r\n 'font-family': 'Roboto-Regular',\r\n 'font-size': '23px',\r\n 'line-height': '27px',\r\n 'color': '#2a2a2a',\r\n 'margin': '12px 76px 20px 76px'\r\n }\r\n },\r\n paragraph: {\r\n ngStyle: {\r\n 'text-align': 'center',\r\n 'font-family': 'Roboto-Regular',\r\n 'font-size': '16px',\r\n 'line-height': '24px',\r\n 'color': '#555555',\r\n 'margin': '12px 76px 20px 76px'\r\n },\r\n components: []\r\n }\r\n },\r\n buttonContainer: {\r\n ngStyle: {\r\n 'justify-content': 'space-around',\r\n 'margin': '29px 76px 0px 76px'\r\n },\r\n buttons: []\r\n }\r\n };\r\n\r\n constructor(private matDialog: MatDialog) { }\r\n\r\n public createCustomModal(config: ComponentBuilderConfig, dialogConfig?: MatDialogConfig) {\r\n const dialogStuff = {\r\n ...deepCopy(this.defaultDialogConfig, dialogConfig),\r\n data: { ...deepCopy(this.defaultBuilderConfig, config) }\r\n };\r\n return this.matDialog.open(\r\n ModalBuilderTargetComponent,\r\n dialogStuff\r\n );\r\n }\r\n\r\n createDynamicConfirmationModal(title: string,\r\n component: Type,\r\n onComponentCreate: (c: T) => void,\r\n confirmButtonText: string = 'Yes',\r\n dismissButtonText: string = 'No') {\r\n const dialogData: IDynamicContentOptionSelectDialogData = {\r\n bodyContainer: {\r\n title: { text: title },\r\n },\r\n\r\n componentType: component,\r\n onComponentCreate: onComponentCreate,\r\n buttonContainer: {\r\n ...this.defaultButtonContainer,\r\n buttons: [\r\n this.createDefaultPrimaryButton(confirmButtonText),\r\n this.createDefaultCancelButton(dismissButtonText)\r\n ]\r\n }\r\n };\r\n\r\n return this.createDynamicOptionsModal(dialogData);\r\n }\r\n\r\n createTextConfirmationModal(title: string, content: string, confirmButtonText: string = 'Yes', dismissButtonText: string = 'No') {\r\n return this.createTextOptionsModal(title, content, [\r\n this.createDefaultCancelButton(dismissButtonText),\r\n this.createDefaultPrimaryButton(confirmButtonText)\r\n ]);\r\n }\r\n\r\n createTextOptionsModal(title: string, content: string, buttons: IButtonOptions[]) {\r\n const dialogData: IDynamicContentOptionSelectDialogData = {\r\n bodyContainer: {\r\n title: { text: title },\r\n },\r\n componentType: ParagraphComponent,\r\n onComponentCreate: (component: ParagraphComponent) => {\r\n component.text = content;\r\n component.style = 'text-align: center';\r\n },\r\n buttonContainer: {\r\n buttons\r\n }\r\n };\r\n return this.createDynamicOptionsModal(dialogData);\r\n }\r\n\r\n createParagraphOptionsModal(dialogData: IDynamicContentOptionSelectDialogData,\r\n paragraphOptions: IParagraphOptions = { text: '', style: '' },\r\n matDialogConfig: MatDialogConfig = this.matDialogConfig) {\r\n const dialogOptions = {\r\n ...dialogData,\r\n componentType: ParagraphComponent,\r\n onComponentCreate: (component: ParagraphComponent) => {\r\n component.text = paragraphOptions.text;\r\n component.style = paragraphOptions.style;\r\n }\r\n };\r\n return this.createDynamicOptionsModal(dialogOptions, matDialogConfig);\r\n }\r\n\r\n createDynamicOptionsModal(\r\n dialogData: IDynamicContentOptionSelectDialogData,\r\n matDialogConfig: MatDialogConfig = null\r\n ) {\r\n const mdc = !!matDialogConfig ? deepCopy(this.defaultDialogConfig, matDialogConfig) : this.defaultDialogConfig;\r\n const dialogDataOptions: IDynamicContentOptionSelectDialogData\r\n = deepCopy(this.dialogDataDefault, dialogData);\r\n return this.matDialog.open(DynamicContentOptionSelectModalComponent,\r\n {\r\n ...mdc,\r\n data: dialogDataOptions\r\n });\r\n }\r\n\r\n createDefaultPrimaryButton(text: string): IButtonOptions {\r\n return this.createPrimaryButton(text, (matDialogRef) => {\r\n matDialogRef.close(true);\r\n });\r\n }\r\n\r\n createPrimaryButton(text: string, onClickEvent: (mr: MatDialogRef) => void): IButtonOptions {\r\n return this.createButton(text, onClickEvent, ModalConstants.primaryButtonTheme);\r\n }\r\n\r\n createDefaultCancelButton(text: string): IButtonOptions {\r\n return this.createCancelButton(text, (matDialogRef) => {\r\n matDialogRef.close(false);\r\n });\r\n }\r\n\r\n createCancelButton(text: string, onClickEvent: (mr: MatDialogRef) => void): IButtonOptions {\r\n return this.createButton(text, onClickEvent, ModalConstants.cancelButtonTheme);\r\n }\r\n\r\n createCustomButton(text: string,\r\n ngClass: string | string[] | Set | { [klass: string]: any; }): IButtonOptions {\r\n return this.createButton(text, (matDialogRef) => { matDialogRef.close(true); }, ngClass);\r\n }\r\n\r\n createButton(text: string,\r\n onClickEvent: (mr: MatDialogRef) => void,\r\n ngClass: string | string[] | Set | { [klass: string]: any; }): IButtonOptions {\r\n return {\r\n text: text,\r\n onClick: onClickEvent,\r\n ngClass: ngClass\r\n };\r\n }\r\n}\r\n\r\n@Component({\r\n template: `

{{text}}

`\r\n})\r\nexport class ParagraphComponent {\r\n public text: string;\r\n public style: string;\r\n}\r\n\r\nexport interface ITitleOptions {\r\n text: string;\r\n ngStyle?: { [klass: string]: any; };\r\n}\r\n\r\nexport interface IParagraphOptions {\r\n text: string;\r\n style?: string;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { TreeSelectModalModule } from './tree-select-modal-component/tree-select-modal.module';\r\n\r\n@NgModule({\r\n imports: [\r\n TreeSelectModalModule\r\n ],\r\n declarations: [\r\n ]\r\n})\r\nexport class InjectableComponentsModule {}\r\n","import { AfterViewInit, Component, ComponentFactoryResolver, Inject, Input, Type, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { IButtonOptions } from '../../option-select-modal/models/button-options';\r\nimport { ComponentBuilderConfig } from './component-builder.config';\r\n\r\n@Component({\r\n selector: 'app-modal-builder-target',\r\n templateUrl: './modal-builder-target.component.html',\r\n styleUrls: ['./modal-builder-target.component.scss']\r\n})\r\nexport class ModalBuilderTargetComponent implements AfterViewInit {\r\n @ViewChild('title', { read: ViewContainerRef }) titleTemplate: ViewContainerRef;\r\n @ViewChild('content', { read: ViewContainerRef }) contentTemplate: ViewContainerRef;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n @Inject(MAT_DIALOG_DATA) public config: ComponentBuilderConfig\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n /*\r\n Paradox: You need a viewchild to inject a component, but viewchildren aren't initialized until ngAfterViewInit.\r\n BUT!!! If you update anything in ngAfterViewInit you get an error.\r\n Popular solution?\r\n setTimeout -.-\r\n */\r\n setTimeout(_ => {\r\n this.config.bodyContainer.title.components.forEach(creationOptions =>\r\n this.createComponent(this.titleTemplate, creationOptions)\r\n );\r\n this.config.bodyContainer.paragraph.components.forEach(creationOptions =>\r\n this.createComponent(this.contentTemplate, creationOptions)\r\n );\r\n });\r\n }\r\n\r\n onClickButton(button: IButtonOptions): void {\r\n if (button.onClick) {\r\n button.onClick(this.dialogRef);\r\n } else if (button.clickValue) {\r\n this.dialogRef.close(button.clickValue);\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n private createComponent(target: ViewContainerRef, creationOptions: IComponentCreationOptions) {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(creationOptions.componentType);\r\n const component = target.createComponent(componentFactory);\r\n if (creationOptions.onComponentCreate) {\r\n creationOptions.onComponentCreate(component.instance);\r\n }\r\n\r\n return component;\r\n }\r\n}\r\n\r\nexport interface IComponentCreationOptions {\r\n componentType: Type;\r\n onComponentCreate: (component: T) => void;\r\n}\r\n\r\n@Component({\r\n template: `{{config.text}}`\r\n})\r\nexport class SpanTextElementComponent {\r\n @Input() public config: ITextElementConfig;\r\n}\r\n\r\nexport interface ITextElementConfig {\r\n ngClass?: string | string[] | Set | { [klass: string]: any; };\r\n text: string;\r\n style?: string;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-token-expiration-countdown',\r\n templateUrl: './token-expiration-countdown.component.html',\r\n})\r\nexport class TokenExpirationCountdownComponent implements OnInit {\r\n private _countDownSeconds: number;\r\n\r\n public get countDownSeconds(): number {\r\n return this._countDownSeconds;\r\n }\r\n\r\n public set countDownSeconds(value) {\r\n this._countDownSeconds = Math.floor(value);\r\n }\r\n\r\n ngOnInit(): void {\r\n const interval = setInterval(() => {\r\n if (this.countDownSeconds === 0) {\r\n clearInterval(interval);\r\n } else {\r\n this.countDownSeconds--;\r\n }\r\n }, 1000);\r\n }\r\n\r\n getCountdownText() {\r\n const minuteSection = Math.floor(this.countDownSeconds / 60) + ':';\r\n const secondsModulo = ('00' + this.countDownSeconds % 60).slice(-2);\r\n\r\n return minuteSection + secondsModulo;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { TreeViewNode } from 'src/app/_common/custom-controls/tree-select/tree-view.model';\r\nimport { TreeViewModel } from 'src/app/_common/custom-controls/tree-multiselect/tree-view-model';\r\n\r\n@Component({\r\n selector: 'app-tree-select-modal',\r\n templateUrl: './tree-select-modal.component.html',\r\n styleUrls: ['./tree-select-modal.component.scss']\r\n})\r\nexport class TreeSelectModalComponent {\r\n public id: string;\r\n public disabled: boolean;\r\n public multiselect: boolean;\r\n public instructions: string;\r\n public treeViewModel: TreeViewModel;\r\n\r\n // TODO: Refactor single select tree view and remove these\r\n public selectedItem: TreeViewNode | TreeViewNode[];\r\n public treeModel: TreeViewNode[] = [];\r\n\r\n selectedItemChange(item: TreeViewNode) {\r\n this.selectedItem = item;\r\n }\r\n\r\n selectedItemsChange(items: TreeViewNode[]) {\r\n this.selectedItem = items;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {NgModule} from '@angular/core';\r\n\r\nimport { TreeSelectModule } from '../../../../../custom-controls/tree-select/tree-select.module';\r\nimport { TreeSelectModalComponent } from './tree-select-modal.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TreeSelectModule\r\n ],\r\n declarations: [\r\n TreeSelectModalComponent\r\n ]\r\n})\r\nexport class TreeSelectModalModule {}\r\n","import { Component, AfterViewInit, OnInit, Inject, ComponentFactoryResolver, Type } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { OptionSelectModalBaseComponent, IOptionSelectModalBaseDialogData } from '../option-select-modal-base.component';\r\n@Component({\r\n selector: 'app-text-content-option-select-modal',\r\n templateUrl: '../option-select-modal-base.component.html',\r\n styleUrls: ['../option-select-modal-base.component.scss']\r\n})\r\nexport class DynamicContentOptionSelectModalComponent\r\n extends OptionSelectModalBaseComponent implements AfterViewInit, OnInit {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n @Inject(MAT_DIALOG_DATA) public data: IDynamicContentOptionSelectDialogData) {\r\n super(dialogRef, data);\r\n }\r\n ngAfterViewInit(): void {\r\n /*\r\n Paradox: You need a viewchild to inject a component, but viewchildren aren't initialized until ngAfterViewInit.\r\n BUT!!! If you update anything in ngAfterViewInit you get an error.\r\n Popular solution?\r\n setTimeout -.-\r\n */\r\n setTimeout(_ => {\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.data.componentType);\r\n const component = this.contentSpan.createComponent(componentFactory);\r\n if (this.data.onComponentCreate) {\r\n this.data.onComponentCreate(component.instance);\r\n }\r\n });\r\n }\r\n}\r\nexport interface IDynamicContentOptionSelectDialogData extends IOptionSelectModalBaseDialogData {\r\n componentType?: Type;\r\n onComponentCreate?: (T) => void;\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { IButtonContainerOptions, IButtonOptions } from './models/button-options';\r\nimport { ITitleOptions } from '../../modal.service';\r\n\r\n@Component({\r\n templateUrl: './option-select-modal-base.component.html'\r\n })\r\nexport class OptionSelectModalBaseComponent implements OnInit, OnDestroy {\r\n subscriptions: Subscription[] = [];\r\n public buttonContainer: IButtonContainerOptions;\r\n public showCloseButton: boolean;\r\n public bodyContainer: IBodyContainerOptions;\r\n\r\n @ViewChild('content', {read: ViewContainerRef}) contentSpan: ViewContainerRef;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: IOptionSelectModalBaseDialogData) {\r\n this.buttonContainer = data.buttonContainer;\r\n this.showCloseButton = data.showCloseButton;\r\n this.bodyContainer = data.bodyContainer;\r\n }\r\n\r\n onClickButton(button: IButtonOptions): void {\r\n if (button.onClick) {\r\n button.onClick(this.dialogRef);\r\n } else if (button.clickValue) {\r\n this.dialogRef.close(button.clickValue);\r\n }\r\n }\r\n\r\n closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n}\r\n\r\nexport interface IOptionSelectModalBaseDialogData {\r\n bodyContainer?: IBodyContainerOptions;\r\n buttonContainer?: IButtonContainerOptions;\r\n showCloseButton?: boolean;\r\n}\r\n\r\nexport interface IBodyContainerOptions {\r\n iconPath?: string;\r\n title?: ITitleOptions;\r\n style?: string;\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n\r\n@Component({\r\n template: `{{config.text}}`\r\n})\r\nexport class SpanTextElementComponent {\r\n @Input() public config: ITextElementConfig;\r\n}\r\n\r\nexport interface ITextElementConfig {\r\n ngClass?: string | string[] | Set | { [klass: string]: any; };\r\n text: string;\r\n style?: string;\r\n}\r\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Overlay, OverlayConfig, OverlayRef, PositionStrategy } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppOverlayService {\r\n\r\n constructor(private overlay: Overlay) {\r\n }\r\n\r\n createOverlay(config: OverlayConfig): OverlayRef {\r\n return this.overlay.create(config);\r\n }\r\n\r\n attachTemplatePortal(overlayRef: OverlayRef, templateRef: TemplateRef, vcRef: ViewContainerRef) {\r\n const templatePortal = new TemplatePortal(templateRef, vcRef);\r\n overlayRef.attach(templatePortal);\r\n }\r\n\r\n positionGloballyCenter(): PositionStrategy {\r\n return this.overlay.position()\r\n .global()\r\n .centerHorizontally()\r\n .centerVertically();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SpinnerService {\r\n\r\n private _showSpinner: boolean;\r\n public ShowSpinner$: BehaviorSubject = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n this._showSpinner = false;\r\n }\r\n\r\n get showSpinner(): boolean {\r\n return this._showSpinner;\r\n }\r\n\r\n set showSpinner(value: boolean) {\r\n this._showSpinner = value;\r\n this.ShowSpinner$.next(value);\r\n }\r\n showProgressSpinner() {\r\n this.showSpinner = true;\r\n }\r\n\r\n hideProgressSpinner() {\r\n this.showSpinner = false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IToastMessage } from 'src/app/_models/toast-message.interface';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ToasterService } from '../toaster-service/toaster.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterAlertService {\r\n private readonly toasterTypes = {\r\n default: { },\r\n success: {\r\n icon: 'green-circle-check',\r\n bodyClass: { 'card-body-success': true }\r\n },\r\n error: {\r\n icon: 'orange-triangle-warning',\r\n bodyClass: { 'card-body-error': true }\r\n }\r\n };\r\n\r\n constructor(\r\n private sitecoreContentService: SitecoreContentService,\r\n toasterService: ToasterService\r\n ) {\r\n this.sitecoreContentService.getChildren(environment.sitecoreToasterAlertsName).subscribe(alerts => {\r\n const toasterMessages = this.mapSitecoreItemsToToasterMessages(alerts);\r\n toasterMessages.forEach(message => toasterService.pushToastMessage(message));\r\n });\r\n }\r\n\r\n private mapSitecoreItemsToToasterMessages(alerts: ISitecoreAlertItem[]) {\r\n const result = alerts.map(alert => {\r\n const toasterType = this.toasterTypes[alert.Type || 'default'];\r\n const toasterMessage: IToastMessage = {\r\n ...toasterType,\r\n title: alert.AlertTitle,\r\n message: alert.Message,\r\n shouldScrollToToaster: false,\r\n showCloseButton: true\r\n };\r\n return toasterMessage;\r\n });\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport interface ISitecoreAlertItem {\r\n AlertTitle?: string;\r\n Message?: string;\r\n Type?: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IToastMessage } from 'src/app/_models/toast-message.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n private readonly _toastMessage$: BehaviorSubject = new BehaviorSubject(null);\r\n private readonly _toastMessageInfo$: BehaviorSubject = new BehaviorSubject(null);\r\n private readonly _toastMessageDashboard$: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly toastMessage$ = this._toastMessage$.asObservable();\r\n public readonly toastMessageInfo$ = this._toastMessageInfo$.asObservable();\r\n public readonly toastMessageDashboard$ = this._toastMessageDashboard$.asObservable();\r\n\r\n public pushToastMessage(message: IToastMessage): void {\r\n this._toastMessage$.next(message);\r\n }\r\n\r\n public pushToastMessageInfo(messageInfo?: IToastMessage): void {\r\n this._toastMessageInfo$.next(messageInfo);\r\n }\r\n\r\n public pushToasterMessageDashboard(messageDashboard?: IToastMessage): void {\r\n this._toastMessageDashboard$.next(messageDashboard);\r\n }\r\n\r\n hideToasterMessage() {\r\n this._toastMessage$.next(null);\r\n this._toastMessageInfo$.next(null);\r\n this._toastMessageDashboard$.next(null);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { combineLatest, timer } from 'rxjs';\r\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { ModalService } from 'src/app/_common/services/modal-service/modal.service';\r\nimport { TokenExpirationCountdownComponent } from 'src/app/_common/services/modal-service/modals/injectable-components/token-expiration-countdown/token-expiration-countdown.component';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthService } from '../../auth/auth.service';\r\nimport { UserActivityService } from '../user-activity.service';\r\nimport { IDynamicContentOptionSelectDialogData } from '../modal-service/modals/option-select-modal/dynamic-option-select-modal/dynamic-option-select-modal.component';\r\nimport { ModalConstants } from '../modal-service/modal.constants';\r\nimport { skipUntil } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenExpireNotifierService {\r\n public readonly warningSeconds = environment?.tokenExpireWarnSeconds || 120;\r\n private matDialogRef: MatDialogRef;\r\n\r\n constructor(private modalService: ModalService,\r\n private userActivityService: UserActivityService,\r\n private authService: AuthService) {\r\n combineLatest([\r\n this.authService.isAuthenticated$.pipe(distinctUntilChanged()),\r\n this.userActivityService.isUserActive$\r\n ]).pipe(\r\n // Skip the first ten seconds of activity so all variables can load.\r\n // This prevents the service from saying the user is not active while the auth guard is checking canActivate on app load.\r\n skipUntil(timer(10000)),\r\n filter(([isAuthenticatedValue, isUserActiveValue]) => !this.matDialogRef\r\n && isAuthenticatedValue === true\r\n && isUserActiveValue === false),\r\n map(_ => Date.now() + this.warningSeconds * 1000)\r\n ).subscribe(this.displayModal.bind(this));\r\n }\r\n\r\n private displayModal(expiresAt: number) {\r\n const dialogData: IDynamicContentOptionSelectDialogData = {\r\n bodyContainer: {\r\n iconPath: ModalConstants.warning_icon,\r\n title: { text: 'Your session is about to expire.', ngStyle: {\r\n 'text-align': 'center'}\r\n }\r\n },\r\n buttonContainer: {\r\n buttons: [\r\n this.modalService.createDefaultCancelButton('Log Out'),\r\n this.modalService.createDefaultPrimaryButton('Stay Logged In')\r\n ], style: 'justify-content: none !important; margin-left: 30px; margin-top: 28px;'\r\n },\r\n componentType: TokenExpirationCountdownComponent,\r\n onComponentCreate: (component) => {\r\n const millisecondsUntilExpire = expiresAt - Date.now();\r\n component.countDownSeconds = millisecondsUntilExpire / 1000;\r\n\r\n setTimeout(() => {\r\n this.matDialogRef?.close(false);\r\n }, millisecondsUntilExpire);\r\n }\r\n };\r\n\r\n this.matDialogRef = this.modalService.createDynamicOptionsModal(dialogData);\r\n this.matDialogRef.afterClosed().subscribe(this.handleDialogResult.bind(this));\r\n }\r\n\r\n private handleDialogResult(stayLoggedIn: boolean) {\r\n this.matDialogRef = undefined;\r\n if (stayLoggedIn) {\r\n // If the user somehow manages to click the \"stay logged in\" button without generating an event?\r\n this.userActivityService.refreshUserActive();\r\n } else {\r\n this.authService.logout();\r\n }\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, fromEvent, merge, Observable, Subscription, timer } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, skipUntil, throttleTime } from 'rxjs/operators';\r\nimport { AppConstants } from '../shared/app.constants';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserActivityService implements OnDestroy {\r\n subscriptions: Subscription[] = [];\r\n private readonly refreshSeconds = (environment?.userInactiveMinutes || 18) * 60;\r\n public readonly throttledUserActivity$: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly isUserActive$: Observable;\r\n private readonly isUserActiveNonDistinct$: BehaviorSubject = new BehaviorSubject(this.isUserActive);\r\n\r\n constructor(private router: Router) {\r\n this.isUserActive$ = this.isUserActiveNonDistinct$.pipe(distinctUntilChanged());\r\n this.subscriptions.push(merge(\r\n fromEvent(document, 'mousemove'),\r\n fromEvent(document, 'mousedown'), fromEvent(document, 'mouseup'),\r\n fromEvent(document, 'keydown'), fromEvent(document, 'keyup'),\r\n this.router.events.pipe(filter(routerEvent => routerEvent instanceof NavigationStart))\r\n ).pipe(\r\n // Skip the first second of activity.\r\n // This prevents the service from saying the user is active while the auth guard is checking canActivate\r\n skipUntil(timer(1000)),\r\n throttleTime(1000),\r\n ).subscribe(this.refreshUserActive.bind(this)));\r\n\r\n this.subscriptions.push(this.throttledUserActivity$.pipe(\r\n debounceTime(this.refreshSeconds * 1000)\r\n ).subscribe(_ => this.isUserActiveNonDistinct$.next(false)));\r\n }\r\n\r\n get isUserActive(): boolean {\r\n const localStoreObject = this.getLocalStoreObject();\r\n const lastActivityTime = new Date(localStoreObject.lastActivityTime).getTime();\r\n const timeSinceLastActivity = Date.now() - lastActivityTime;\r\n\r\n return timeSinceLastActivity < this.refreshSeconds * 1000;\r\n }\r\n\r\n refreshUserActive() {\r\n const storage = this.getLocalStoreObject();\r\n storage.lastActivityTime = new Date().toLocaleString();\r\n\r\n this.setLocalStoreObject(storage);\r\n this.throttledUserActivity$.next(null);\r\n this.isUserActiveNonDistinct$.next(true);\r\n }\r\n\r\n getLocalStoreObject(): IUserActivityLocalStore {\r\n return (JSON.parse(localStorage.getItem(AppConstants.USER_ACTIVITY_DETAILS)) || {}) as IUserActivityLocalStore;\r\n }\r\n\r\n setLocalStoreObject(storage: IUserActivityLocalStore) {\r\n localStorage.setItem(AppConstants.USER_ACTIVITY_DETAILS, JSON.stringify(storage));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscr) => { subscr.unsubscribe(); });\r\n }\r\n}\r\n\r\ninterface IUserActivityLocalStore {\r\n lastActivityTime?: string;\r\n}\r\n","export class AppConstants {\r\n public static USER_LOGIN_INFO = 'loginInfo';\r\n public static USER_OKTA_TRANSACTION_INFO = 'oktaTransactionInfo';\r\n public static USER_INFO_DETAILS = 'userInfo';\r\n public static USER_ACTIVITY_DETAILS = 'USER_ACTIVITY_DETAILS';\r\n public static USER_ACCESS_TOKEN = 'userAccessToken';\r\n public static USER_FIRSTNAME = 'userFirstName';\r\n public static USER_ACCOUNTS = 'userAccounts';\r\n public static SAVED_APP_CURRENT_EMPLOYEE = 'currentSavedEmployee';\r\n public static USER_OKTA_ASSIGNED_SUBACCOUNTS = 'userAssignedSubAccounts';\r\n public static AZBEACON_COOKIE_KEY = 'AZBeacon';\r\n public static EARLY_ACCESS_AZBEACON_KEY = 'Early_Access_AZBeacon';\r\n public static EARLY_ACCESS_HRP_KEY = 'Early_Access_HRP';\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n/**\r\n * Encapsulates an Observable and stores its emitted values.\r\n */\r\nexport class CachedObservable {\r\n public get value(): T { return this._value; }\r\n public get value$(): Observable { return this._obs.pipe(tap(val => this._value = val)); }\r\n constructor(private _value: T, private _obs: Observable) { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-results-found',\r\n templateUrl: './no-results-found.component.html',\r\n styleUrls: ['./no-results-found.component.scss']\r\n})\r\nexport class NoResultsFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CardWithButtonModel } from './card-with-button.model';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\n\r\n@Component({\r\n selector: 'app-card-with-button',\r\n templateUrl: './card-with-button.component.html',\r\n styleUrls: ['./card-with-button.component.scss']\r\n})\r\nexport class CardWithButtonComponent extends SitecoreComponentModel {\r\n\r\n public model: CardWithButtonModel;\r\n\r\n public setModel(newModel: any) {\r\n this.model = newModel;\r\n }\r\n\r\n onClickSameTabRedirect() {\r\n window.open(this.model?.ExternalURLSameTabRedirect, '_self');\r\n }\r\n onClickNewTabRedirect() {\r\n window.open(this.model?.ExternalURLNewTabRedirect, '_blank');\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { CardModel } from './card.component.model';\r\n\r\n@Component({\r\n selector: 'app-card',\r\n templateUrl: './card.component.html',\r\n styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent extends SitecoreComponentModel {\r\n model: CardModel;\r\n public setModel(model: any) {\r\n this.model = model;\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit } from '@angular/core';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { HTML } from '../../../html.functions';\r\nimport { CollectionModel } from './collection.model';\r\n\r\n@Component({\r\n selector: 'app-collection',\r\n templateUrl: './collection.component.html',\r\n styleUrls: ['./collection.component.scss']\r\n})\r\nexport class CollectionComponent extends SitecoreComponentModel implements OnInit {\r\n public model: CollectionModel;\r\n\r\n public constructor(private element: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.model.Style) {\r\n HTML.createStyleTag(this.model.Style, this.element);\r\n }\r\n }\r\n\r\n public setModel(newModel: any) {\r\n this.model = newModel;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { HeaderWithSubTextModel } from 'src/app/_models/sitecore/header-with-sub-text-model';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\n\r\n@Component({\r\n selector: 'app-header-with-sub-text',\r\n templateUrl: './header-with-sub-text.component.html',\r\n styleUrls: ['./header-with-sub-text.component.scss']\r\n})\r\nexport class HeaderWithSubTextComponent extends SitecoreComponentModel {\r\n\r\n public model: HeaderWithSubTextModel;\r\n\r\n public setModel(newModel: any) {\r\n this.model = newModel;\r\n }\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { EmployeeIDGridPipeline } from 'src/app/_common/pipeline/employee-id-card-grid.pipeline';\r\nimport { TypeSafeFormGroup, TypeSafeFormGroupBuilder } from 'src/app/_common/type-safe-reactive-forms/type-safe-form-group';\r\nimport { TypeSafeFormGroupConfig } from 'src/app/_common/type-safe-reactive-forms/type-safe-form-group/type-safe-form-group-config';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { IDCardSearchFormStructure } from './id-card-search-form.structure';\r\n\r\n@Component({\r\n selector: 'app-id-card-search-form',\r\n templateUrl: './id-card-search-form.component.html',\r\n styleUrls: ['./id-card-search-form.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class IdCardSearchFormComponent extends SitecoreComponentModel implements OnInit {\r\n\r\n private safeForm: TypeSafeFormGroup;\r\n public form: FormGroup;\r\n\r\n constructor(\r\n private safeFormBuilder: TypeSafeFormGroupBuilder,\r\n private router: Router,\r\n public employeeIDGridPipeline: EmployeeIDGridPipeline\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n }\r\n\r\n createForm(): void {\r\n const structure: TypeSafeFormGroupConfig = {\r\n searchText: [null, {\r\n valueChanges: searchText => this.employeeIDGridPipeline.searchPipe.searchText = searchText\r\n }]\r\n };\r\n\r\n this.safeForm = this.safeFormBuilder.group(structure);\r\n this.form = this.safeForm.form;\r\n }\r\n\r\n searchEmployees(): void {\r\n const formvalues = this.safeForm.form.getRawValue() as IDCardSearchFormStructure;\r\n this.employeeIDGridPipeline.searchPipe.searchText = formvalues.searchText;\r\n this.router.navigate(['/IDCard']);\r\n }\r\n\r\n public setModel(model: any) {\r\n // intentionally left blank\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { ImageWithCaptionModel } from './image-with-caption.model';\r\n\r\n@Component({\r\n selector: 'app-image-with-caption',\r\n templateUrl: './image-with-caption.component.html',\r\n styleUrls: ['./image-with-caption.component.scss']\r\n})\r\nexport class ImageWithCaptionComponent extends SitecoreComponentModel {\r\n public model: ImageWithCaptionModel;\r\n public setModel(newModel: any) {\r\n this.model = newModel;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { HTML } from '../../../html.functions';\r\nimport { RichTextModel } from './rich-text.model';\r\n@Component({\r\n selector: 'app-rich-text',\r\n templateUrl: './rich-text.component.html',\r\n styleUrls: ['./rich-text.component.scss']\r\n})\r\nexport class RichTextComponent extends SitecoreComponentModel implements OnInit {\r\n public model: RichTextModel;\r\n public constructor(private element: ElementRef) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n if (this.model.Style) {\r\n HTML.createStyleTag(this.model.Style, this.element);\r\n }\r\n }\r\n public setModel(newModel: any) {\r\n this.model = newModel;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { EmployeeRosterGridPipeline } from 'src/app/_common/pipeline/employee-roster-grid.pipeline';\r\nimport { TypeSafeFormGroup, TypeSafeFormGroupBuilder } from 'src/app/_common/type-safe-reactive-forms/type-safe-form-group';\r\nimport { TypeSafeFormGroupConfig } from 'src/app/_common/type-safe-reactive-forms/type-safe-form-group/type-safe-form-group-config';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { RosterSearchFormStructure } from './roster-search-form.structure';\r\n\r\n@Component({\r\n selector: 'app-roster-search-form',\r\n templateUrl: './roster-search-form.component.html',\r\n styleUrls: ['./roster-search-form.component.scss']\r\n})\r\nexport class RosterSearchFormComponent extends SitecoreComponentModel implements OnInit {\r\n private safeForm: TypeSafeFormGroup;\r\n public form: FormGroup;\r\n\r\n constructor(\r\n private safeFormBuilder: TypeSafeFormGroupBuilder,\r\n private router: Router,\r\n public employeeRosterGridPipeline: EmployeeRosterGridPipeline\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.createForm();\r\n }\r\n\r\n createForm(): void {\r\n const rosterSearchStructure: TypeSafeFormGroupConfig = {\r\n searchText: [null, { valueChanges: searchText => this.employeeRosterGridPipeline.searchPipe.searchText = searchText }]\r\n };\r\n this.safeForm = this.safeFormBuilder.group(rosterSearchStructure);\r\n this.form = this.safeForm.form;\r\n }\r\n\r\n searchEmployee(): void {\r\n const formValues = this.safeForm.form.getRawValue() as RosterSearchFormStructure;\r\n this.employeeRosterGridPipeline.searchPipe.searchText = formValues.searchText;\r\n this.router.navigate(['/employeeRoster']);\r\n }\r\n\r\n public setModel(model: any) {\r\n // intentionally empty\r\n }\r\n}\r\n","import { AfterViewInit, Component, ComponentFactory, ComponentFactoryResolver, Input, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { arrayify } from 'src/app/_common/type-safe-reactive-forms/type-safe-form-helpers.functions';\r\nimport { SitecoreComponentModel } from 'src/app/_models/sitecore/sitecore-component-model';\r\nimport { SitecoreAngularComponentResponse } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { CardWithButtonComponent } from '../card-with-button/card-with-button.component';\r\nimport { CardComponent } from '../card/card.component';\r\nimport { CollectionComponent } from '../collection/collection.component';\r\nimport { HeaderWithSubTextComponent } from '../header-with-sub-text/header-with-sub-text.component';\r\nimport { IdCardSearchFormComponent } from '../id-card-search-form/id-card-search-form.component';\r\nimport { ImageWithCaptionComponent } from '../image-with-caption/image-with-caption.component';\r\nimport { RichTextComponent } from '../rich-text/rich-text.component';\r\nimport { RosterSearchFormComponent } from '../roster-search-form/roster-search-form.component';\r\n\r\n@Component({\r\n selector: 'app-sitecore-outlet',\r\n templateUrl: './sitecore-outlet.component.html',\r\n styleUrls: ['./sitecore-outlet.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class SitecoreOutletComponent implements AfterViewInit {\r\n @Input() public path: string;\r\n @Input() public outletName = 'top';\r\n @Input() public index: number = null;\r\n @ViewChild('container', { read: ViewContainerRef }) private container: ViewContainerRef;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private componentFactoryResolver: ComponentFactoryResolver\r\n ) { }\r\n\r\n clearContent(): void {\r\n this.container.clear();\r\n }\r\n\r\n injectComponent(componentInfo: SitecoreAngularComponentResponse, path: string): void {\r\n const componentType = componentMap[componentInfo.ComponentName];\r\n if (componentType != null) {\r\n const componentFactory: ComponentFactory\r\n = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n const componentRef = this.container.createComponent(componentFactory);\r\n componentRef.instance.path = path;\r\n componentRef.instance.setModel(componentInfo);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n let level = this.activatedRoute.snapshot.data.sitecoreItem;\r\n\r\n // null >= 0 is true. !!0 is false. undefined === null is false. This is how I'm checking for numbers including 0. Deal with it.\r\n const indexPopulated = this.index > 0 || this.index === 0;\r\n const fullPath: string =\r\n (!!this.path ? this.path + '.' : '')\r\n + 'outlets.' + this.outletName\r\n + (indexPopulated ? '.' + this.index : '');\r\n\r\n // Only checking for undefined as null is expected, however, undefined indicates a bug may be occuring\r\n if (this.index === undefined) {\r\n console.warn(`Index is undefined for ${fullPath}, this may be due to an error with client component.`);\r\n }\r\n\r\n const segments = fullPath?.split('.');\r\n segments?.forEach(segment => level = level[segment]);\r\n\r\n arrayify(level)?.forEach((item: SitecoreAngularComponentResponse, i: number) =>\r\n // If index is populated, only handle the item at the end\r\n this.injectComponent(item, fullPath + (indexPopulated ? '' : '.' + i))\r\n );\r\n }, 0);\r\n }\r\n}\r\n\r\nexport const componentMap = {\r\n richText: RichTextComponent,\r\n headerWithSubText: HeaderWithSubTextComponent,\r\n collection: CollectionComponent,\r\n cardWithButton: CardWithButtonComponent,\r\n card: CardComponent,\r\n imageWithCaption: ImageWithCaptionComponent,\r\n // FORMS\r\n rosterSearch: RosterSearchFormComponent,\r\n orderIdCardSearch: IdCardSearchFormComponent\r\n};\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from 'src/app/_common/modules/shared.module';\r\nimport { InputDirectivesModule } from 'src/app/_common/modules/input-directives.module';\r\nimport { AngularMaterialModule } from 'src/app/_common/modules/angular-material.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TypeSafeReactiveFormsModule } from 'src/app/_common/type-safe-reactive-forms/type-safe-reactive-forms.module';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CollectionComponent } from './collection/collection.component';\r\nimport { CardWithButtonComponent } from './card-with-button/card-with-button.component';\r\nimport { HeaderWithSubTextComponent } from './header-with-sub-text/header-with-sub-text.component';\r\nimport { SitecoreOutletComponent } from './sitecore-outlet/sitecore-outlet.component';\r\nimport { RichTextComponent } from './rich-text/rich-text.component';\r\nimport { CardComponent } from './card/card.component';\r\nimport { ImageWithCaptionComponent } from './image-with-caption/image-with-caption.component';\r\nimport { RosterSearchFormComponent } from './roster-search-form/roster-search-form.component';\r\nimport { IdCardSearchFormComponent } from './id-card-search-form/id-card-search-form.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n CardWithButtonComponent,\r\n HeaderWithSubTextComponent,\r\n SitecoreOutletComponent,\r\n CollectionComponent,\r\n RichTextComponent,\r\n CardComponent,\r\n ImageWithCaptionComponent,\r\n RosterSearchFormComponent,\r\n IdCardSearchFormComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n RouterModule,\r\n InputDirectivesModule,\r\n AngularMaterialModule, MatIconModule,\r\n TypeSafeReactiveFormsModule\r\n ],\r\n exports: [\r\n CardWithButtonComponent,\r\n HeaderWithSubTextComponent,\r\n SitecoreOutletComponent\r\n ]\r\n})\r\nexport class SitecoreModule { }\r\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { IToastMessage } from '../../../../_models/toast-message.interface';\r\nimport { scrollToElement } from '../../helper.functions';\r\n\r\n@Component({\r\n selector: 'app-toaster-message',\r\n templateUrl: './toaster-message.component.html',\r\n styleUrls: ['./toaster-message.component.scss']\r\n})\r\nexport class ToasterMessageComponent implements OnInit {\r\n @Input() toast$: Observable = new Observable(null);\r\n public toasterMessage: IToastMessage = null;\r\n\r\n constructor(private element: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.toast$.subscribe((data: IToastMessage) => {\r\n this.toasterMessage = data;\r\n if (data?.shouldScrollToToaster) {\r\n scrollToElement(this.element.nativeElement);\r\n }\r\n });\r\n }\r\n\r\n close(): void {\r\n this.toasterMessage = null as IToastMessage;\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { TypeGuards } from '../type-safe-reactive-forms/type-guards';\r\n\r\nexport function switchMapBlobToDataURL(observable: Observable): Observable {\r\n return observable.pipe(\r\n switchMap((blob: Blob) => new Observable(observer => {\r\n const reader = new FileReader();\r\n reader.onload = _ => {\r\n observer.next(reader.result.toString());\r\n observer.complete();\r\n };\r\n reader.readAsDataURL(blob);\r\n }))\r\n );\r\n}\r\n\r\n/**\r\n * Wrap a function in a try-catch block. When that function throws an exception, prepend its message and rethrow it to retain call stack.\r\n * @param message the message to prepend all exception messages with\r\n * @param func the function to wrap in a try-catch block\r\n */\r\n export function prependExceptionsWithMessage any>(message: string, func: T): T {\r\n return ((params) => {\r\n try {\r\n return func(...params);\r\n } catch (e) {\r\n e.message = message + e;\r\n throw e;\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Merge two objects which may have sub objects that must also have their fields combined.\r\n * @param target\r\n * @param source\r\n * @returns\r\n */\r\nexport default function deepCopy(\r\n target: any,\r\n source: any\r\n) {\r\n const output = Object.assign({}, target);\r\n if (TypeGuards.isObject(target) && TypeGuards.isObject(source)) {\r\n Object.keys(source).forEach(key => {\r\n if (TypeGuards.isObject(source[key])) {\r\n if (!(key in target)) {\r\n Object.assign(output, { [key]: source[key] });\r\n } else {\r\n output[key] = deepCopy(target[key], source[key]);\r\n }\r\n } else {\r\n Object.assign(output, { [key]: source[key] });\r\n }\r\n });\r\n }\r\n return output;\r\n}\r\n\r\nexport function pluralize(noun: string, count: number, pluralForm: string = null) {\r\n if (!pluralForm) {\r\n pluralForm = noun + 's';\r\n }\r\n\r\n return count > 1 ? pluralForm : noun;\r\n}\r\n\r\nexport function mailto(config: {\r\n message: {\r\n address: string,\r\n subject: string,\r\n body: string\r\n },\r\n tag: {\r\n innerHtml: string\r\n }\r\n}): string {\r\n return `${config.tag.innerHtml}`;\r\n}\r\n\r\nexport function scrollToElement(element: Element): void {\r\n if (element) {\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\r\n\r\nexport class HTML {\r\n public static createStyleTag(content: string, element: ElementRef): void {\r\n const styleElement = document.createElement('style');\r\n styleElement.appendChild(document.createTextNode(content));\r\n element.nativeElement.prepend(styleElement);\r\n }\r\n}\r\n","import { merge, Observable, Subject, Subscription } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\nimport { TypeSafeFormControl } from '../../type-safe-reactive-forms/type-safe-form-control';\r\nimport { TypeSafeFormGroup } from '../../type-safe-reactive-forms/type-safe-form-group';\r\nimport { TypedControlGroup } from '../../type-safe-reactive-forms/type-safe-form-group/type-safe-form-group-config';\r\nimport { arrayify } from '../../type-safe-reactive-forms/type-safe-form-helpers.functions';\r\n/**\r\n * Waits for an observable to complete, and when it does merges into an array of sources. When any one of those sources emit a value the map\r\n * function will be called and its return value will be emitted by the final observable.\r\n * @param whenComplete The observable that, once complete, will be merged into the sources\r\n * @param getSources An array of observables, when any one of these emit, the subscriber will be notified\r\n * @param mapFunction A function which will be called when any of the sources emit\r\n */\r\nexport function mergeWhenComplete(\r\n getSources: () => (Observable[] | Observable),\r\n mapFunction: (_: tSource) => tMapOutput\r\n): (whenComplete: Observable) => Observable {\r\n return (whenComplete: Observable) => {\r\n const result = new Observable(subscriber => {\r\n let innerSubscription: Subscription;\r\n const outerSubscription = whenComplete.subscribe({\r\n next(_) { },\r\n complete() {\r\n innerSubscription = merge(...arrayify(getSources())).pipe(\r\n map(mapFunction)\r\n ).subscribe(value => subscriber.next(value));\r\n },\r\n });\r\n return () => {\r\n outerSubscription.unsubscribe();\r\n innerSubscription?.unsubscribe();\r\n };\r\n });\r\n return result;\r\n };\r\n}\r\nexport type GetFieldsReturn =\r\n (TypeSafeFormControl | TypeSafeFormControl[] | TypeSafeFormControl[]);\r\nexport type OnMonad = (\r\n getFields: (children: TypedControlGroup) => GetFieldsReturn,\r\n predicate: (_: tControlValue) => boolean\r\n) => Observable;\r\n/**\r\n * Wrap the boilerplate of calling mergeWhenComplete() into a monad. Returns a function that can be called to bind form controls to a\r\n * mapping function.\r\n * @param buildingForm The observable which is complete when the form is done building\r\n * @param getSafeForm A lambda which returns a safe form\r\n * @returns A generic function whose type parameter is the type of control we are dependent on. This function has the following properties:\r\n * @param getFields A lambda which takes in the children property of the safe form and returns the fields which we should subscribe to\r\n * @param map A lambda which takes in the value of whichever field emitted last and returns a boolean\r\n */\r\nexport function createOnMonad(\r\n buildingForm: Observable,\r\n getSafeForm: () => TypeSafeFormGroup\r\n): OnMonad {\r\n return (\r\n getFields: (children: TypedControlGroup) => GetFieldsReturn,\r\n predicate: (_: tControlValue) => boolean\r\n ) => {\r\n return buildingForm.pipe(\r\n mergeWhenComplete(\r\n () => arrayify(getFields(getSafeForm()?.children)).map(field => field.valueChanges$.pipe(startWith(field.value))),\r\n predicate\r\n )\r\n );\r\n };\r\n}\r\n/**\r\n * Encapsulates the process of creating an OnMonad and resolving it.\r\n */\r\nexport class OnMonadContext {\r\n private buildingForm: Subject = new Subject();\r\n private result?: TypeSafeFormGroup;\r\n private getResult(): TypeSafeFormGroup { return this.result; }\r\n public resolve(result: TypeSafeFormGroup) {\r\n this.result = result;\r\n this.buildingForm.complete();\r\n }\r\n public createOnMonad(): OnMonad {\r\n if (this.buildingForm.isStopped) {\r\n throw new Error('cannot create OnMonad after resolve has been called');\r\n }\r\n return createOnMonad(this.buildingForm, this.getResult.bind(this));\r\n }\r\n}\r\n","export class SiteCoreMessagesConstants {\r\n public static EMPLOYER_HOME_PAGE_MESSAGE = 'EmployerHomePageMessage';\r\n public static EMPLOYER_HOME_PAGE_INFORMATION_MESSAGE = 'EmployerHomePageInformationMessage';\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { TypeSafeFormControl } from '../type-safe-form-control/type-safe-form-control';\r\nimport { ReactantEnabledProperty } from '../type-safe-form-group';\r\n\r\nexport abstract class AbstractTSFormControlFactory {\r\n abstract createTSFormControl(\r\n name: string,\r\n formControl: FormControl,\r\n validators?: ValidatorFn[],\r\n validationErrors?: CachedObservable,\r\n valueChanges?: (value: T) => void,\r\n enabledProperty?: ReactantEnabledProperty): TypeSafeFormControl;\r\n}\r\n\r\nexport class DefaultTSFormControlFactory extends AbstractTSFormControlFactory {\r\n createTSFormControl(\r\n name: string,\r\n formControl: FormControl,\r\n validators?: ValidatorFn[],\r\n validationErrors?: CachedObservable,\r\n valueChanges?: (value: T) => void,\r\n enabledProperty?: ReactantEnabledProperty): TypeSafeFormControl {\r\n return new TypeSafeFormControl(\r\n name,\r\n formControl,\r\n validators,\r\n validationErrors,\r\n valueChanges,\r\n enabledProperty\r\n );\r\n }\r\n}\r\n","import { AbstractControlOptions, AsyncValidatorFn, FormControl, ValidatorFn } from '@angular/forms';\r\n\r\n\r\nexport abstract class AbstractFormControlFactory {\r\n abstract buildFormControl(\r\n formState?: any,\r\n validatorOrOpts?: AbstractControlOptions | ValidatorFn | ValidatorFn[],\r\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[]\r\n ): FormControl;\r\n}\r\n\r\nexport class DefaultFormControlFactory extends AbstractFormControlFactory {\r\n buildFormControl(\r\n formState?: any,\r\n validatorOrOpts?: AbstractControlOptions | ValidatorFn | ValidatorFn[],\r\n asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[]\r\n ): FormControl {\r\n return new FormControl(formState, validatorOrOpts, asyncValidator);\r\n }\r\n}\r\n","import { AbstractControlOptions } from '@angular/forms';\r\nimport { ITypeSafeControlConfig } from './type-safe-form-group/type-safe-form-group-config';\r\n\r\n\r\nexport class TypeGuards {\r\n public static isFunction(item: any): item is Function {\r\n return typeof (item) === 'function';\r\n }\r\n\r\n public static isObject(item: any) {\r\n return (item && typeof item === 'object' && !Array.isArray(item));\r\n }\r\n\r\n public static isAbstractControlOptions(obj: any): obj is AbstractControlOptions {\r\n return this.hasKey(obj, 'validators')\r\n || this.hasKey(obj, 'asyncValidators');\r\n }\r\n\r\n public static isTypeSafeControlConfig(obj: any): obj is ITypeSafeControlConfig {\r\n return this.hasKey>(obj, 'validators')\r\n || this.hasKey>(obj, 'asyncValidators')\r\n || this.hasKey>(obj, 'enabled')\r\n || this.hasKey>(obj, 'valueChanges');\r\n }\r\n\r\n public static hasKey(obj: any, key: (keyof T)): boolean {\r\n return !!obj?.hasOwnProperty(key);\r\n }\r\n}\r\n","export * from './type-safe-form-control.builder';\r\nexport * from './type-safe-form-control';\r\nexport * from './type-safe-control-build.config';\r\n","import { AsyncValidatorFn, FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { ReactantEnabledProperty } from '../type-safe-form-group';\r\n\r\n\r\nexport interface ITypeSafeControlBuildConfig {\r\n name?: string;\r\n formControl?: FormControl;\r\n validators?: ValidatorFn[];\r\n validationErrors?: CachedObservable;\r\n asyncValidators?: AsyncValidatorFn[];\r\n enabled?: ReactantEnabledProperty;\r\n valueChanges?: (value: T) => void;\r\n updateOn?: 'change' | 'blur' | 'submit';\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AsyncValidatorFn, ValidationErrors } from '@angular/forms';\r\nimport { combineLatest, merge } from 'rxjs';\r\nimport { switchMap, map as rxJsMap } from 'rxjs/operators';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { AbstractTSFormControlFactory } from '../factories/type-safe-form-control.factory';\r\nimport { AbstractFormControlFactory } from '../reactive-form-wrappers/form-control.builder';\r\nimport { TypeGuards } from '../type-guards';\r\nimport { AsyncValidatorConfig, ITypeSafeControlConfig, NonObjectTuple } from '../type-safe-form-group';\r\nimport { arrayify } from '../type-safe-form-helpers.functions';\r\nimport { ITypeSafeControlBuildConfig } from './type-safe-control-build.config';\r\nimport { TypeSafeFormControl } from './type-safe-form-control';\r\n\r\n@Injectable()\r\nexport class TypeSafeFormControlBuilder {\r\n constructor(\r\n private formControlFactory: AbstractFormControlFactory,\r\n private tsControlFactory: AbstractTSFormControlFactory\r\n ) { }\r\n\r\n public buildTSFormControl(name: string, config: NonObjectTuple): TypeSafeFormControl {\r\n const resultConfig: ITypeSafeControlBuildConfig = { name };\r\n this.populateValidators(resultConfig, config);\r\n this.populateFormControl(resultConfig, config);\r\n this.populateValidationErrors(resultConfig, config);\r\n\r\n const result: TypeSafeFormControl = this.tsControlFactory.createTSFormControl(\r\n resultConfig.name,\r\n resultConfig.formControl,\r\n resultConfig.validators,\r\n resultConfig.validationErrors,\r\n resultConfig.valueChanges,\r\n resultConfig.enabled\r\n );\r\n\r\n return result;\r\n }\r\n\r\n private populateFormControl(resultConfig: ITypeSafeControlBuildConfig, config: NonObjectTuple) {\r\n this.populateUpdateOn(resultConfig, config);\r\n resultConfig.formControl = this.formControlFactory.buildFormControl(config[0],\r\n {\r\n validators: resultConfig.validators,\r\n asyncValidators: resultConfig.asyncValidators,\r\n updateOn: resultConfig.updateOn\r\n });\r\n }\r\n\r\n private populateUpdateOn(resultConfig: ITypeSafeControlBuildConfig, config: NonObjectTuple) {\r\n if (config.length > 1) {\r\n const validatorOptions = config[1];\r\n if (TypeGuards.isAbstractControlOptions(validatorOptions)) {\r\n resultConfig.updateOn = validatorOptions.updateOn;\r\n }\r\n }\r\n }\r\n\r\n private populateValidationErrors(resultConfig: ITypeSafeControlBuildConfig, config: NonObjectTuple) {\r\n // Merge the async validator configurations from the third tuple item and the control config (if present)\r\n const asyncValidators: (AsyncValidatorFn | AsyncValidatorConfig)[] = [];\r\n if (config.length > 2) {\r\n asyncValidators.push(...arrayify(config[2]));\r\n }\r\n if (TypeGuards.isTypeSafeControlConfig(config[1]) && !!config[1].asyncValidators) {\r\n asyncValidators.push(...arrayify(config[1].asyncValidators));\r\n }\r\n\r\n if (asyncValidators.length > 0) {\r\n resultConfig.validationErrors = new CachedObservable(null,\r\n combineLatest(\r\n asyncValidators.map(validator => {\r\n if (TypeGuards.isFunction(validator)) {\r\n return resultConfig.formControl.valueChanges.pipe(\r\n switchMap(_ => validator(resultConfig.formControl))\r\n );\r\n } else {\r\n return merge(\r\n arrayify(validator.dependencies)\r\n ).pipe(\r\n switchMap(_ => validator.asyncValidator(resultConfig.formControl))\r\n );\r\n }\r\n })\r\n ).pipe(\r\n rxJsMap(errs => errs\r\n .filter(err => !!err)\r\n .reduce((aggregate, errors) => ({ ...aggregate, ...errors }), null)\r\n )\r\n )\r\n );\r\n }\r\n }\r\n\r\n private populateValidators(resultConfig: ITypeSafeControlBuildConfig, config: NonObjectTuple) {\r\n if (config.length > 1) {\r\n const validatorOptions = config[1];\r\n if (!validatorOptions) {\r\n resultConfig.validators = [];\r\n } else if (Array.isArray(validatorOptions)) {\r\n // Nested if instead of && to give type system confidence it is not an array in later checks\r\n if (validatorOptions.length > 0) {\r\n resultConfig.validators = validatorOptions;\r\n }\r\n } else {\r\n if (TypeGuards.isFunction(validatorOptions)) {\r\n resultConfig.validators = [validatorOptions];\r\n } else {\r\n if (TypeGuards.isTypeSafeControlConfig(validatorOptions)) {\r\n this.populateEnabledAndValueChanges(resultConfig, validatorOptions);\r\n }\r\n resultConfig.validators = arrayify(validatorOptions.validators);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private populateEnabledAndValueChanges(resultConfig: ITypeSafeControlBuildConfig, validatorOptions: ITypeSafeControlConfig) {\r\n resultConfig.enabled = !validatorOptions.enabled\r\n ? null\r\n : TypeGuards.isFunction(validatorOptions.enabled)\r\n ? validatorOptions.enabled\r\n : new CachedObservable(false, validatorOptions.enabled);\r\n resultConfig.valueChanges = validatorOptions.valueChanges;\r\n }\r\n}\r\n","import { FormControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { ReactantEnabledProperty } from '../type-safe-form-group';\r\nimport { AbstractFormReactant } from '../type-safe-form-reactant/abstract-form-reactant';\r\n\r\nexport class TypeSafeFormControl extends AbstractFormReactant {\r\n private readonly subscriptions: Subscription[] = [];\r\n public get valueChanges$(): Observable { return this.formControl.valueChanges; }\r\n private wasEnabled: boolean;\r\n private matErrors: ValidationErrors;\r\n private multiselectClicked: boolean;\r\n constructor(\r\n public name: string,\r\n public readonly formControl: FormControl,\r\n public validators?: ValidatorFn[],\r\n private validationErrors?: CachedObservable,\r\n private valueChanges?: (value: T) => void,\r\n enabledProperty?: ReactantEnabledProperty\r\n ) {\r\n super(enabledProperty);\r\n if (!!this.valueChanges) {\r\n this.subscriptions.push(this.formControl.valueChanges.subscribe(this.valueChanges));\r\n }\r\n if (!!this.validationErrors) {\r\n this.subscriptions.push(validationErrors.value$.subscribe(_ => this.getErrors()));\r\n }\r\n }\r\n\r\n public getErrors(): ValidationErrors {\r\n const nowEnabled = this.enabled();\r\n let result = null;\r\n if (nowEnabled) {\r\n const validationErrors = this.runValidators();\r\n if (this.wasEnabled) {\r\n this.matErrors = this.getMatErrors();\r\n }\r\n result = this.mergeErrors(validationErrors, this.matErrors);\r\n result = !!this.validationErrors ? this.mergeErrors(result, this.validationErrors.value) : result;\r\n } else if (this.wasEnabled) {\r\n this.matErrors = this.getMatErrors();\r\n }\r\n\r\n this.formControl.setErrors(result);\r\n this.wasEnabled = nowEnabled;\r\n\r\n return result;\r\n }\r\n\r\n public patchValue(value: T | null) {\r\n this.formControl.patchValue(value);\r\n }\r\n\r\n public updateValue(value: T | null) {\r\n this.formControl.setValue(value);\r\n this.markAsUpdated();\r\n }\r\n\r\n\r\n get value(): T {\r\n return this.formControl.value;\r\n }\r\n\r\n get hasErrors(): boolean {\r\n return !!(this.formControl.errors && this.formControl.touched);\r\n }\r\n\r\n public getPath(): string {\r\n return this.Parent?.getPath() + `.${this.name}`;\r\n }\r\n\r\n public destroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n public markAsUpdated() {\r\n this.formControl.markAsTouched();\r\n this.formControl.markAsDirty();\r\n }\r\n\r\n markMultiselectAsUpdated() {\r\n if (this.multiselectClicked) {\r\n this.multiselectClicked = false;\r\n this.markAsUpdated();\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated use markAsChanged() instead\r\n */\r\n public blurEvents() {\r\n this.formControl.markAsTouched();\r\n this.formControl.markAsDirty();\r\n }\r\n\r\n private runValidators(): ValidationErrors {\r\n try {\r\n const result = this.validators?.reduce((aggregate, validator) => {\r\n const errors = validator(this.formControl);\r\n if (errors != null) {\r\n return {\r\n ...aggregate,\r\n ...errors\r\n };\r\n } else {\r\n return aggregate;\r\n }\r\n }, null);\r\n\r\n return result;\r\n } catch (err) {\r\n console.error(`Error while running validators for ${this.getPath()}`);\r\n throw err;\r\n }\r\n }\r\n\r\n private getMatErrors(): ValidationErrors {\r\n const result = this.formControl?.errors ? Object.entries(this.formControl.errors)\r\n .filter(([key]) => key.startsWith('mat'))\r\n .map(([key, value]) => ({ [key]: value }))\r\n .reduce((a, b) => ({ ...a, ...b }), {}) : null;\r\n\r\n return result;\r\n }\r\n\r\n private mergeErrors(first: ValidationErrors, second: ValidationErrors) {\r\n if (!!first && Object.keys(first).length > 0) {\r\n return { ...second, ...first };\r\n } else if (!!second && Object.keys(second).length > 0) {\r\n return second;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public hasError(name: string): boolean {\r\n return this.hasErrors && !!this.formControl.errors[name];\r\n }\r\n}\r\n","export * from './type-safe-form-group-config';\r\nexport * from './type-safe-form-group.builder';\r\nexport * from './type-safe-form-group';\r\n","import { AbstractControlOptions, AsyncValidatorFn, ValidatorFn } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { ISingleDropdownItem } from '../../custom-controls/single-dropdown-select/single-dropdown-select.component';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { TypeSafeFormControl } from '../type-safe-form-control';\r\nimport { TypeSafeFormGroup } from './type-safe-form-group';\r\n\r\n/**\r\n * The enabled property of either a control or a group.\r\n */\r\n export type ReactantEnabledProperty = (() => boolean) | CachedObservable;\r\n\r\n/**\r\n * Used to configure a form group, containing one or more controls under it.\r\n * ```typescript\r\n * export interface exampleStructure {\r\n * subGroup: {\r\n * control: string;\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport type TypeSafeFormGroupConfig = {\r\n [P in keyof T]: IsObjectNotCustomFormType extends true ? TypeSafeFormGroup : NonObjectTuple\r\n};\r\n\r\n/**\r\n * Used to reveal the shape of a form and the types of its controls while accessing a group's children.\r\n * Similar to the structure used to create a form, but used after creation to reveal functionality.\r\n * ``` typescript\r\n * this.safeForm.children.example.value\r\n * ```\r\n */\r\nexport type TypedControlGroup = {\r\n [P in keyof T]: IsObjectNotCustomFormType extends true ? TypedControlGroup : TypeSafeFormControl;\r\n};\r\n\r\nexport interface AsyncValidatorConfig {\r\n asyncValidator?: AsyncValidatorFn;\r\n /**\r\n * Used to define dependencies which should trigger the async validator.\r\n * Note: the attached control will not by default trigger the async validator on value change.\r\n * TODO: Is it even possible to add the control's valueChange event to its dependencies? Since configuration occurs prior to creation.\r\n */\r\n dependencies: Observable | Observable[];\r\n}\r\n\r\n/**\r\n * Custom type to define a form control which has no children.\r\n * If a field is an object with sub-fields then it is described by the group type.\r\n */\r\nexport type NonObjectTuple = [\r\n T,\r\n (ITypeSafeControlConfig | AbstractControlOptions | ValidatorFn | ValidatorFn[])?,\r\n (AsyncValidatorFn | (AsyncValidatorFn | AsyncValidatorConfig)[])?\r\n];\r\n\r\n/**\r\n * Parrelels (@link AbstractControlOptions) in that it provides options for validators and asyncValidators,\r\n * but it provides additional functionality with enabledLambda and valueChanges.\r\n */\r\nexport interface ITypeSafeControlConfig {\r\n validators?: ValidatorFn | ValidatorFn[] | null;\r\n asyncValidators?: (AsyncValidatorFn | (AsyncValidatorFn | AsyncValidatorConfig)[]);\r\n /**\r\n * Configures if a control or group is enabled at the time of calling.\r\n * A control will not populate validation errors if it or one of it's parents is disabled.\r\n * Can be used when a control should be hidden under certain circumstances and should not invalidate the form.\r\n */\r\n enabled?: (() => boolean) | Observable;\r\n /**\r\n * Called when the control, or a child of a group, has it's value changed\r\n */\r\n valueChanges?: (value: T) => void;\r\n}\r\n\r\n/**\r\n * Helper type used by TSRF to determine if a type should be configured as a control (NonObjectTuple)\r\n * or as a group (TypeSafeFormGroupConfig).\r\n */\r\ntype IsObjectNotCustomFormType = T extends infer R ? R extends string\r\n? false\r\n: T extends Date\r\n? false\r\n: T extends Array\r\n? false\r\n: T extends number\r\n? false\r\n: T extends boolean\r\n? false\r\n: T extends undefined\r\n? false\r\n: T extends {[P in keyof ISingleDropdownItem]: ISingleDropdownItem[P]}\r\n? false\r\n: T extends CustomFormType\r\n? false\r\n: true : false;\r\n\r\n/**\r\n * Can be extended by types which should not be considered a form group.\r\n * As an example: dropdown item objects should not have their value and text fields turned into individual controls,\r\n * instead the whole object should be considered the value of the dropdown control.\r\n */\r\nexport class CustomFormType { private DO_NOT_REMOVE: undefined; }\r\n\r\n// TODO: implement specialised control which has DropdownItem as its type and provides additional functionality.\r\nexport class DropdownItem extends CustomFormType {\r\n text: string;\r\n value: T;\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { ReactantEnabledProperty, TypeSafeFormGroupConfig } from './type-safe-form-group-config';\r\nimport { TypeSafeFormGroup } from './type-safe-form-group';\r\nimport { Subscription } from 'rxjs';\r\nimport { TypeSafeFormControlBuilder } from '../type-safe-form-control/type-safe-form-control.builder';\r\nimport { OnMonad, OnMonadContext } from '../../shared/observables-functions/observable.functions';\r\nimport { ITypeSafeFormReactant } from '../type-safe-form-reactant/type-safe-form-reactant.interface';\r\n\r\n@Injectable()\r\nexport class TypeSafeFormGroupBuilder implements OnDestroy {\r\n private monadContext: OnMonadContext;\r\n private readonly subscriptions: Subscription[] = [];\r\n private readonly createdGroups: TypeSafeFormGroup[] = [];\r\n constructor(\r\n public formBuilder: FormBuilder,\r\n private tsFormControlBuilder: TypeSafeFormControlBuilder\r\n ) { }\r\n public createOnMonad(): OnMonad {\r\n if (!this.monadContext) {\r\n this.monadContext = new OnMonadContext();\r\n }\r\n return this.monadContext.createOnMonad();\r\n }\r\n public group(controlsConfig: TypeSafeFormGroupConfig): TypeSafeFormGroup {\r\n const result = this.subgroup(controlsConfig);\r\n result.name = 'root';\r\n this.finalizeRoot(result);\r\n return result;\r\n }\r\n public subgroup(typeSafeConfig: TypeSafeFormGroupConfig, enabledConfig: ReactantEnabledProperty = null): TypeSafeFormGroup {\r\n const reactiveGroupConfig: TypeSafeFormGroupConfig = {} as TypeSafeFormGroupConfig;\r\n const children: Map = new Map();\r\n (Object.keys(typeSafeConfig) as (keyof K)[])\r\n .map(key => ({ key, value: typeSafeConfig[key.toString()] })).forEach(({ key, value }) => {\r\n if (value instanceof TypeSafeFormGroup) {\r\n value.name = key.toString();\r\n reactiveGroupConfig[key.toString()] = value.form;\r\n children.set(key, value);\r\n } else {\r\n const tsFormControl = this.tsFormControlBuilder.buildTSFormControl(key.toString(), value);\r\n children.set(key, tsFormControl);\r\n reactiveGroupConfig[key.toString()] = tsFormControl.formControl;\r\n }\r\n });\r\n const result = new TypeSafeFormGroup(\r\n this.formBuilder.group(reactiveGroupConfig),\r\n children,\r\n enabledConfig\r\n );\r\n return result;\r\n }\r\n public ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n this.createdGroups.forEach(g => g.destroy());\r\n }\r\n private finalizeRoot(result: TypeSafeFormGroup) {\r\n this.subscriptions.push(result.form.valueChanges.subscribe(_ => result.getErrors()));\r\n this.resolveBuildingContext(result);\r\n this.createdGroups.push(result);\r\n }\r\n private resolveBuildingContext(result: TypeSafeFormGroup): void {\r\n this.monadContext?.resolve(result);\r\n this.monadContext = null;\r\n }\r\n}\r\n","import { FormGroup, ValidationErrors } from '@angular/forms';\r\nimport { TypeSafeFormControl } from '../type-safe-form-control';\r\nimport { AbstractFormReactant } from '../type-safe-form-reactant/abstract-form-reactant';\r\nimport { ITypeSafeFormReactant } from '../type-safe-form-reactant/type-safe-form-reactant.interface';\r\nimport { ReactantEnabledProperty, TypedControlGroup } from './type-safe-form-group-config';\r\n\r\nexport class TypeSafeFormGroup extends AbstractFormReactant {\r\n public name: string;\r\n private _children: TypedControlGroup = null;\r\n constructor(\r\n public readonly form: FormGroup,\r\n private readonly childMap: Map,\r\n enabledProperty?: ReactantEnabledProperty\r\n ) {\r\n super(enabledProperty);\r\n this.childMap?.forEach(child => child.Parent = this);\r\n }\r\n\r\n get children(): TypedControlGroup {\r\n // Cache children because this function will get called in the HTML\r\n // WARNING: we can only do this because childMap is readonly\r\n this._children = this._children || this.destructureChildren();\r\n return this._children;\r\n }\r\n\r\n getPath(): string {\r\n return !!this.Parent\r\n ? this.Parent.getPath() + `.${this.name}`\r\n : this.name;\r\n }\r\n\r\n public patchValue(value: Partial): void {\r\n Object.keys(value).forEach(key => {\r\n const child = this.childMap.get(key as keyof T);\r\n if (child instanceof TypeSafeFormGroup || child instanceof TypeSafeFormControl) {\r\n const childPatch = value[key.toString()];\r\n child.patchValue(childPatch);\r\n }\r\n });\r\n }\r\n\r\n get Value(): T {\r\n return this.form.getRawValue() as T;\r\n }\r\n\r\n get valid(): boolean {\r\n return this.form.valid;\r\n }\r\n\r\n public getErrors(): ValidationErrors {\r\n let result: ValidationErrors = null;\r\n this.childMap.forEach((child, key) => {\r\n const errors = child.getErrors();\r\n if (errors != null) {\r\n result = {\r\n ...result,\r\n [key]: errors\r\n };\r\n }\r\n });\r\n\r\n // Checking this after getting children errors allows them to update their FormControls and make a similar check\r\n if (!this.enabled()) {\r\n result = null;\r\n }\r\n this.form.setErrors(result);\r\n\r\n return result;\r\n }\r\n\r\n public destroy(): void {\r\n Object.keys(this.children)\r\n .map(key => this.children[key])\r\n .forEach(child => child.destroy());\r\n }\r\n\r\n private destructureChildren(): TypedControlGroup {\r\n const result = {};\r\n this.childMap.forEach((child, key) => {\r\n if (child instanceof TypeSafeFormGroup) {\r\n result[key.toString()] = child.children;\r\n } else if (child instanceof TypeSafeFormControl) {\r\n result[key.toString()] = child;\r\n }\r\n });\r\n return >result;\r\n }\r\n}\r\n","import { from, Observable } from 'rxjs';\r\n\r\n/**\r\n * Disambiguate a parameter which may either be a promise or observable\r\n * @param obj\r\n * @returns either the original observable, or a new observable wrapping a promise\r\n */\r\nexport function observify(obj: Promise | Observable): Observable {\r\n if (obj instanceof Promise) {\r\n return from(obj);\r\n } else {\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Disambiguate a parameter which may either be a single object or an array\r\n * @param obj\r\n * @returns either the original passed in parameter or an array containing it\r\n * ```typescript\r\n * arrayify( 5 ) === arrayify( [5] ) === [5] // True\r\n * ```\r\n */\r\nexport function arrayify(obj: T | T[]): (T[] | null) {\r\n let result = null;\r\n if (obj !== null && obj !== undefined) {\r\n if (Array.isArray(obj)) {\r\n result = obj;\r\n } else {\r\n result = [obj];\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n","import { ValidationErrors } from '@angular/forms';\r\nimport { BehaviorSubject, combineLatest, Observable, of, throwError } from 'rxjs';\r\nimport { map, mergeMap, startWith } from 'rxjs/operators';\r\nimport { CachedObservable } from '../../shared/cached-observable';\r\nimport { TypeGuards } from '../type-guards';\r\nimport { ReactantEnabledProperty } from '../type-safe-form-group';\r\nimport { ITypeSafeFormReactant } from './type-safe-form-reactant.interface';\r\n\r\nexport abstract class AbstractFormReactant implements ITypeSafeFormReactant {\r\n private _parent$: BehaviorSubject = new BehaviorSubject(null);\r\n public readonly enabled$: Observable;\r\n public get Parent(): ITypeSafeFormReactant { return this._parent$.value; }\r\n public set Parent(newValue: ITypeSafeFormReactant) { this._parent$.next(newValue); }\r\n constructor(\r\n private readonly enabledProperty?: ReactantEnabledProperty\r\n ) {\r\n this.enabled$ = this.calculateEnabled$(enabledProperty);\r\n }\r\n public enabled(): boolean {\r\n return (!this.enabledProperty\r\n || (TypeGuards.isFunction(this.enabledProperty) ? this.enabledProperty() : this.enabledProperty.value)\r\n )\r\n && (!this.Parent || this.Parent.enabled());\r\n }\r\n public abstract getPath(): string;\r\n public abstract getErrors(): ValidationErrors;\r\n public abstract destroy(): void;\r\n\r\n private calculateEnabled$(enabledProperty: ReactantEnabledProperty): Observable {\r\n if (!enabledProperty) {\r\n return this._parent$.pipe(mergeMap(parent => parent?.enabled$ ?? of(true)));\r\n }\r\n\r\n // Only throw an error if someone tries to subscribe to the enabled$ of a field which is not using async validation\r\n if (!(enabledProperty instanceof CachedObservable)) {\r\n return throwError(`Error getting enabled$ for ${this.getPath()}: enabledConfig is not of type Observable`);\r\n }\r\n\r\n return combineLatest([\r\n this._parent$.pipe(mergeMap(parent => parent?.enabled$ ?? of(true))),\r\n enabledProperty.value$.pipe(\r\n // CachedObservable is not guaranteed to emit\r\n startWith(enabledProperty.value)\r\n )\r\n ]).pipe(\r\n map(([parentEnabled, thisEnabled]) => parentEnabled && thisEnabled)\r\n );\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { AbstractTSFormControlFactory, DefaultTSFormControlFactory } from './factories/type-safe-form-control.factory';\r\nimport { DefaultFormControlFactory, AbstractFormControlFactory } from './reactive-form-wrappers/form-control.builder';\r\nimport { TypeSafeFormControlBuilder } from './type-safe-form-control';\r\nimport { TypeSafeFormGroupBuilder } from './type-safe-form-group';\r\n\r\n@NgModule({\r\n exports: [\r\n TypeSafeFormGroupBuilder,\r\n TypeSafeFormControlBuilder,\r\n DefaultFormControlFactory\r\n ],\r\n providers: [\r\n TypeSafeFormGroupBuilder,\r\n TypeSafeFormControlBuilder,\r\n { provide: AbstractFormControlFactory, useClass: DefaultFormControlFactory },\r\n { provide: AbstractTSFormControlFactory, useClass: DefaultTSFormControlFactory }\r\n ]\r\n})\r\nexport class TypeSafeReactiveFormsModule { }\r\n","\r\nexport abstract class SitecoreComponentModel {\r\n public path: string;\r\n public children: SitecoreComponentModel[];\r\n public abstract setModel(model);\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { throwError as observableThrowError } from 'rxjs';\r\nimport { UserSessionInformation } from '../../_models/userSessionInformation.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppOktaApiService {\r\n protected headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n constructor(\r\n private http: HttpClient) {\r\n }\r\n\r\n public handleError(error: any) {\r\n const errMsg = (error.message) ? error.message :\r\n error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n return observableThrowError(errMsg);\r\n }\r\n\r\n updateAccountInOkta(username: string): Observable {\r\n return this.http.get(\r\n `api/EmployerAccount/${username}/UpdateOktaAccountIdList`,\r\n { headers: this.headers })\r\n .pipe(map((result: boolean) => result), catchError(this.handleError));\r\n }\r\n\r\n updateEmployerUserRole(username: string): Observable {\r\n return this.http.get(\r\n `api/EmployerPermissions/${username}/UpdateEmployerUserRole`,\r\n { headers: this.headers })\r\n .pipe(map((result: boolean) => result), catchError(this.handleError));\r\n }\r\n\r\n updateGroupInOkta(username: string): Observable {\r\n return this.http.get(\r\n `api/EmployerPermissions/${username}/UpdateOktaUserGroup`,\r\n { headers: this.headers })\r\n .pipe(map((result: boolean) => result), catchError(this.handleError));\r\n }\r\n\r\n updateOrganizationIdInOkta(accountNumber: string, username: string): Observable {\r\n return this.http.get(\r\n `api/EmployerAccount/${accountNumber}/${username}/UpdateOrganizationIdInOkta`,\r\n { headers: this.headers })\r\n .pipe(map((result: boolean) => result), catchError(this.handleError));\r\n }\r\n\r\n getOktaSessionBySID(sessionId: string): Observable {\r\n return this.http.get(\r\n `api/EmployerPermissions/${sessionId}/GetOktaSessionBySID`,\r\n { headers: this.headers })\r\n .pipe(map((result: UserSessionInformation) => result), catchError(this.handleError));\r\n }\r\n}\r\n","import { Injectable, Renderer2, RendererFactory2, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BrowserService {\r\n private renderer: Renderer2;\r\n\r\n constructor(rendererFactory: RendererFactory2, @Inject(DOCUMENT) private document: Document) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n public loadScript(filePath: string, appendToTopOfBody: boolean = false): any {\r\n const script: any = this.renderer.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = filePath;\r\n if (appendToTopOfBody) {\r\n this.renderer.insertBefore(this.document.body, script, this.document.body.firstChild);\r\n } else {\r\n this.renderer.appendChild(this.document.body, script);\r\n }\r\n return script;\r\n }\r\n\r\n public loadScripts(filePaths: Array, appendToTopOfBody: boolean = false): void {\r\n filePaths.forEach((filePath: string) => {\r\n this.loadScript(filePath, appendToTopOfBody);\r\n });\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { throwError } from 'rxjs';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployerAccountApiService {\r\n private readonly THIRTY = 30;\r\n private readonly TERMINATED = 'Terminated';\r\n public accountSummary$: BehaviorSubject = new BehaviorSubject(null);\r\n public oktaUserSubAccountSummary$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public getAccountSummary(accountId: string, removeTerminated: boolean = true): Observable {\r\n const accountSummaryUrl = `api/EmployerAccount/${accountId}/Summary`;\r\n const accounts$ = this.http.get(accountSummaryUrl);\r\n const subaccountsList$ = this.getSubaccountsFromOkta();\r\n\r\n return combineLatest([accounts$, subaccountsList$]).pipe(\r\n map(([accntSummaryData, subaccountsList]) => {\r\n localStorage.setItem(AppConstants.USER_OKTA_ASSIGNED_SUBACCOUNTS, subaccountsList);\r\n if (accntSummaryData.accountStatus !== this.TERMINATED && removeTerminated) {\r\n accntSummaryData.subAccounts = this.checkForTerminatedAccountsInSummary(accntSummaryData.subAccounts);\r\n }\r\n this.accountSummary$.next(accntSummaryData);\r\n this.oktaUserSubAccountSummary$.next(this.updateSubAccountSummaryForUser(accntSummaryData, subaccountsList));\r\n return accntSummaryData;\r\n }, catchError(this.handleError)));\r\n }\r\n\r\n public checkForTerminatedAccountsInSummary(subAccounts: IAccountSummary[]): IAccountSummary[] {\r\n const result: IAccountSummary[] = [];\r\n if (subAccounts?.length > 0) {\r\n subAccounts.forEach(sa => {\r\n if (sa.accountStatus !== this.TERMINATED) {\r\n if (sa?.subAccounts?.length > 0) {\r\n sa.subAccounts = this.checkForTerminatedAccountsInSummary(sa.subAccounts);\r\n }\r\n result.push(sa);\r\n } else { // check/add terminated accounts within 30 days\r\n const today = new Date();\r\n const thirtyDaysAgo = formatDate((today.setDate(today.getDate() - this.THIRTY)), 'yyyy-MM-dd', 'en');\r\n if (sa?.accountTermedDate && Date.parse(sa.accountTermedDate) >= Date.parse(thirtyDaysAgo)) {\r\n result.push(sa);\r\n }\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n public getSubaccountsFromOkta(): Observable {\r\n const username = JSON.parse(localStorage.getItem(AppConstants.USER_INFO_DETAILS))?.preferred_username;\r\n const subaccountsUrl = `api/OfficeUser/${username}/GetUserSubaccounts`;\r\n return this.http.get(subaccountsUrl, { responseType: 'text'}).pipe(catchError(this.handleError));\r\n }\r\n\r\n public updateSubAccountSummaryForUser(accountSummary: IAccountSummary, subaccountsList: string): IAccountSummary {\r\n if (!subaccountsList) {\r\n return accountSummary;\r\n }\r\n const revisedSubaccounts = this.revisedSubaccountSummaryTree(accountSummary?.subAccounts, subaccountsList?.split(','));\r\n return this.generateNewIAccountSummary(accountSummary, revisedSubaccounts);\r\n }\r\n\r\n public revisedSubaccountSummaryTree(subaccountsTree: Array, subAccountsArray: Array): Array {\r\n const revisedSubaccountsTree: Array = [];\r\n subaccountsTree?.forEach(\r\n (accountSummary: IAccountSummary) => {\r\n const accntSummaryAccountId: string = accountSummary?.accountId;\r\n subAccountsArray?.forEach(\r\n (subaccountId: string) => {\r\n if (accntSummaryAccountId.includes(subaccountId) && accntSummaryAccountId.length === subaccountId.length\r\n && !revisedSubaccountsTree.some( function(element) { return element.accountId === accntSummaryAccountId; })) {\r\n revisedSubaccountsTree.push(accountSummary);\r\n } else if (accountSummary.subAccounts?.length > 0) {\r\n const updatedSubsubaccountsTree = this.revisedSubaccountSummaryTree(accountSummary.subAccounts, subAccountsArray);\r\n if (updatedSubsubaccountsTree?.length > 0\r\n && !revisedSubaccountsTree.some(function(element) { return element.accountId === accntSummaryAccountId; }) ) {\r\n const subaccountSummary: IAccountSummary = this.generateNewIAccountSummary(accountSummary, updatedSubsubaccountsTree);\r\n if (!revisedSubaccountsTree.includes(subaccountSummary)) {\r\n revisedSubaccountsTree.push(subaccountSummary);\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n );\r\n return revisedSubaccountsTree.length > 0 ? revisedSubaccountsTree : null;\r\n }\r\n\r\n private generateNewIAccountSummary(accountSummary: IAccountSummary, subaccountsSummary: IAccountSummary[]): IAccountSummary {\r\n return {\r\n accountName: accountSummary.accountName,\r\n accountId: accountSummary.accountId,\r\n shortAccountId: accountSummary.shortAccountId,\r\n subAccounts: subaccountsSummary\r\n } as IAccountSummary;\r\n }\r\n\r\n private handleError(error: any): Observable {\r\n const errMsg = (error.message) ? error.message :\r\n error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n return throwError(errMsg);\r\n }\r\n}\r\n\r\nexport enum ViewState {\r\n addNewUser = 0,\r\n editUser,\r\n viewUser\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { IAccount, IAccounts, IAccountSummary } from 'src/app/_models';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { EmployerAccountApiService } from './employer-account-api.service';\r\nimport { filter, tap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EmployerAccountService implements OnDestroy {\r\n private readonly SIX: number = 6;\r\n accounts: IAccounts = { userFirstName: '', userLastName: '', accounts: [] };\r\n public parentAccountName$: BehaviorSubject = new BehaviorSubject(null);\r\n public accounts$: BehaviorSubject = new BehaviorSubject(this.accounts);\r\n public subAccounts$: BehaviorSubject = new BehaviorSubject(null);\r\n public accountStatus$: BehaviorSubject = new BehaviorSubject(null);\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private employerAccountApiService: EmployerAccountApiService) { }\r\n\r\n public setAccountSummary(firstName: string, accountId: string): Observable {\r\n return this.employerAccountApiService.getAccountSummary(accountId).pipe(\r\n filter(data => !!data ),\r\n tap((summaryData: IAccountSummary) => {\r\n if (summaryData) {\r\n this.parentAccountName$.next(summaryData?.accountName);\r\n this.accountStatus$.next(summaryData?.accountStatus);\r\n this.setAccountDetails(firstName, summaryData);\r\n this.setSubAccountSummary(firstName);\r\n }\r\n })\r\n );\r\n }\r\n\r\n public getOktaUserSubAccountSummary(): Observable {\r\n return this.employerAccountApiService.oktaUserSubAccountSummary$;\r\n }\r\n\r\n public setSubAccountSummary(firstName: string): void {\r\n this.subscriptions.push(this.employerAccountApiService.oktaUserSubAccountSummary$.subscribe(\r\n (subAccountSummary: IAccountSummary) => {\r\n const subAccountsAsIAccountArray: IAccount[] = this.convertToAccounts(subAccountSummary);\r\n const result: IAccounts = {\r\n userFirstName: firstName,\r\n userLastName: '',\r\n accounts: subAccountsAsIAccountArray\r\n };\r\n this.subAccounts$.next(result);\r\n }\r\n ));\r\n }\r\n\r\n public setAccountDetails(firstName: string, accountSummary: IAccountSummary): void {\r\n const convertedAccounts: IAccount[] = this.convertToAccounts(accountSummary);\r\n\r\n const result: IAccounts = {\r\n userFirstName: firstName,\r\n userLastName: '',\r\n accounts: convertedAccounts\r\n };\r\n this.accounts = result;\r\n this.accounts$.next(this.accounts);\r\n }\r\n\r\n private convertToAccounts(accountSummary: IAccountSummary): IAccount[] {\r\n const result: IAccount[] = [];\r\n let hasMultiTopAccounts = false;\r\n let charsCountToRemove = 0;\r\n\r\n if (accountSummary?.subAccounts.length > 0) {\r\n hasMultiTopAccounts = this.checkIf_MultipleTopAccounts(accountSummary);\r\n if (hasMultiTopAccounts) {\r\n charsCountToRemove = (accountSummary.accountId.length) + 1; // plus dash character\r\n }\r\n }\r\n if (hasMultiTopAccounts) {\r\n accountSummary.subAccounts.forEach((subAccnt) => {\r\n const topAccountId = subAccnt.accountId.slice(charsCountToRemove);\r\n const subAccounts = subAccnt?.subAccounts != null && subAccnt.subAccounts.length > 0 ? subAccnt.subAccounts : [];\r\n\r\n const topAccount = this.convertSingleAccount(subAccounts, topAccountId, charsCountToRemove);\r\n result.push(topAccount);\r\n });\r\n } else {\r\n const topAccountId = accountSummary.accountId;\r\n const subAccounts = accountSummary.subAccounts != null && accountSummary.subAccounts.length > 0 ? accountSummary.subAccounts : [];\r\n const topAccount = this.convertSingleAccount(subAccounts, topAccountId, charsCountToRemove);\r\n result.push(topAccount);\r\n }\r\n return result;\r\n }\r\n\r\n private convertSingleAccount(subAccounts: IAccountSummary[], accountId: string, charsCountToRemove: number): IAccount {\r\n const topAccount: IAccount = {\r\n account: accountId,\r\n subAccounts: []\r\n };\r\n if (subAccounts.length > 0) {\r\n subAccounts.forEach((subAccnt) => {\r\n topAccount.subAccounts.push(subAccnt);\r\n });\r\n }\r\n return topAccount;\r\n }\r\n\r\n private checkIf_MultipleTopAccounts(accountSummary: IAccountSummary): boolean {\r\n const accountIdStringArray: string[] = accountSummary.subAccounts[0].accountId.split('-');\r\n const hasMultipleTopAccounts = accountIdStringArray\r\n && accountIdStringArray.length > 1\r\n && accountIdStringArray[1].trim().length === this.SIX;\r\n return hasMultipleTopAccounts;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { INavigationHeaderItem } from '../../_models';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { UserInfoService } from '../user-info-service/userInfo.service';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigationContentService {\r\n constructor(\r\n private http: HttpClient,\r\n private userInfoService: UserInfoService\r\n ) { }\r\n\r\n public navigationHeaderContent$ = new BehaviorSubject>(null);\r\n public footerContent$ = new BehaviorSubject>(null);\r\n public myAccountDropdownitems$ = new BehaviorSubject>(null);\r\n\r\n updateNavigationBarContent(): Observable {\r\n const azbeaconUser = this.getLocalStorageInfo(AppConstants.AZBEACON_COOKIE_KEY);\r\n const roles = azbeaconUser !== 'true' ? this.userInfoService.getUserRole() : ['Employer_AZBeacon'];\r\n return this.http.post(`api/navigationitem/NavBar`, roles).pipe(\r\n tap(data => this.navigationHeaderContent$.next(data))\r\n );\r\n }\r\n\r\n public getMyAccountDropdown(): Observable> {\r\n return this.http.get>(`api/navigationitem/myAccountDropdown`)\r\n .pipe(\r\n tap(data => this.myAccountDropdownitems$.next(data))\r\n );\r\n }\r\n\r\n public getFooterContent(): Observable> {\r\n return this.http.get>(`api/navigationitem/footer`).pipe(\r\n tap(data => this.footerContent$.next(data))\r\n );\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { UserInfoService } from '../user-info-service/userInfo.service';\r\nimport { ISitecorePageContentItem } from 'src/app/_models/sitecore/sitecore-page-content-item.interface';\r\nimport { tap } from 'rxjs/operators';\r\nimport { IDashboardCard } from 'src/app/landingpage/common/models/dashboard-card.interface';\r\nimport { AlertMessageModel } from 'src/app/_models/sitecore/sitecoreAlertMessage.model';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\nimport { SitecorePageAlert } from 'src/app/_models/sitecore/sitecore-page-alert.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SitecoreContentService {\r\n public noIdCardPageContent$ = new BehaviorSubject>(null);\r\n constructor(private http: HttpClient, private userInfoService: UserInfoService) {}\r\n\r\n public getNoIdCardSitecoreContent(): Observable> {\r\n const roles = this.userInfoService.getUserRole();\r\n return this.http\r\n .post(`api/SitecoreItem/NoIdCard`, roles)\r\n .pipe(tap((data) => this.noIdCardPageContent$.next(data)));\r\n }\r\n\r\n public getAngularComponents(contentItemName: string): Observable {\r\n return this.getChildren(contentItemName);\r\n }\r\n\r\n public getChildren(contentItemName: string): Observable {\r\n const azbeaconUser = this.getLocalStorageInfo(AppConstants.AZBEACON_COOKIE_KEY);\r\n const roles = azbeaconUser !== 'true' ? this.userInfoService.getUserRole() : ['Employer_AZBeacon'];\r\n return this.http.get(`api/SitecoreItem/${contentItemName}/GetChildren`, {\r\n params: { roles } // TODO: get roles on the API\r\n });\r\n }\r\n\r\n // TODO: Maybe Get rid of this ? Is not even called for dashboard cards...\r\n public getDashboardCards(): Observable {\r\n const roles = this.userInfoService.getUserRole();\r\n return this.http.post(`api/SitecoreItem/DashboardCards`, roles);\r\n }\r\n\r\n public getSiteCoreToggle(toggleName: string): Observable {\r\n return this.http.get(`api/SitecoreItem/${toggleName}`);\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n\r\n public getSiteCoreToggleMessage(toggleName: string): Observable {\r\n return this.http.get(`api/SitecoreItem/AlertMessage/${toggleName}`);\r\n }\r\n\r\n public getSiteCoreMessages(itemName: string): Observable {\r\n return this.http.get(`api/SitecoreItem/EmployerPageAlerts/${itemName}`);\r\n }\r\n}\r\n\r\nexport interface SitecoreAngularComponentResponse {\r\n ItemName: string;\r\n ComponentName: string;\r\n OutletName: string;\r\n Children: SitecoreAngularComponentResponse[];\r\n}\r\n","import { IUserInformation } from 'src/app/_models/userInformation.interface';\r\nimport { Injectable } from '@angular/core';\r\nimport { AppConstants } from '../../_common/shared/app.constants';\r\nimport { OktaAuthService } from '@okta/okta-angular';\r\nimport { AppOktaApiService } from '../app-okta-api-service/app-okta-api.service';\r\nimport { forkJoin, from, Observable, of } from 'rxjs';\r\nimport { map, mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserInfoService {\r\n private userRoles: Array = [];\r\n\r\n private userRoleList = [\r\n 'Employer_OfficeManager',\r\n 'Employer_BillPay',\r\n 'Employer_ViewOnly',\r\n 'Employer_MemberManagement',\r\n 'Employer_GBA',\r\n 'Broker Portal Group', // TODO: Make this better for team elevate; MLG 20230125\r\n 'Employer_AZBeacon'\r\n ];\r\n\r\n public oumAccessRoleList = [\r\n 'Employer_OfficeManager',\r\n 'Employer_GBA'\r\n ];\r\n\r\n constructor(\r\n private oktaAuthService: OktaAuthService,\r\n private bcbsazOktaApiService: AppOktaApiService\r\n ) { }\r\n\r\n public async setUserInfoLocalStorage(): Promise {\r\n const isAuthenticated = await this.oktaAuthService.session.exists();\r\n if (isAuthenticated) {\r\n await this.oktaAuthService?.token?.getUserInfo()\r\n .then((user) => {\r\n localStorage.setItem(AppConstants.USER_INFO_DETAILS, JSON.stringify(user));\r\n }).catch((err) => {\r\n console.log(err);\r\n });\r\n }\r\n }\r\n\r\n public updateOktaUserInfo(): Observable {\r\n let userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo) {\r\n return forkJoin([\r\n this.updateOktaUserGroup(userInfo?.preferred_username),\r\n this.updateOktaAccount(userInfo?.preferred_username).pipe(\r\n mergeMap(_ => {\r\n return from(this.setUserInfoLocalStorage()).pipe(map(__ => true))\r\n .pipe(\r\n mergeMap(___ => {\r\n userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n return this.updateUserOrganizationIdInOkta(userInfo?.accounts, userInfo?.preferred_username);\r\n })\r\n );\r\n }))\r\n ]).pipe(\r\n mergeMap(bools => {\r\n if (bools.every(bool => bool)) {\r\n return from(this.setUserInfoLocalStorage()).pipe(map(_ => true));\r\n } else {\r\n return of(false);\r\n }\r\n }));\r\n } else {\r\n return of(false);\r\n }\r\n }\r\n\r\n updateOktaUserGroup(username: string): Observable {\r\n const roles = this.getUserRole();\r\n if (!roles?.length) {\r\n if (roles.find(role => role === 'Broker Portal Group')) {\r\n return of(true);\r\n }\r\n return this.bcbsazOktaApiService.updateGroupInOkta(username);\r\n } else {\r\n return this.bcbsazOktaApiService.updateEmployerUserRole(username);\r\n }\r\n }\r\n\r\n updateOktaAccount(username: string): Observable {\r\n const accounts = this.getUserAccount();\r\n if (!accounts || accounts === '') {\r\n return this.bcbsazOktaApiService.updateAccountInOkta(username);\r\n } else {\r\n return of(true);\r\n }\r\n }\r\n\r\n updateUserOrganizationIdInOkta(accountNumber: string, username: string): Observable {\r\n const organizationId = this.getUserOrganizationId();\r\n if ((!organizationId || organizationId === '') && (accountNumber && username)) {\r\n return this.bcbsazOktaApiService.updateOrganizationIdInOkta(accountNumber, username);\r\n } else {\r\n return of(true);\r\n }\r\n }\r\n\r\n getUserRole(): Array {\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo) {\r\n this.userRoles = [];\r\n\r\n const filteredUserRoles = userInfo?.employerGroups?.filter((item: string) => {\r\n return this.userRoleList.includes(item);\r\n });\r\n\r\n if (filteredUserRoles && filteredUserRoles.length > 0) {\r\n filteredUserRoles.forEach(role => this.userRoles.push(role));\r\n }\r\n }\r\n return this.userRoles;\r\n }\r\n\r\n getUserAccount(): string {\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo) {\r\n return userInfo?.accounts;\r\n }\r\n return '';\r\n }\r\n\r\n getUserOrganizationId(): string {\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo && userInfo?.organizationId) {\r\n return userInfo?.organizationId;\r\n }\r\n return '';\r\n }\r\n\r\n getLoggedInUserId(): string {\r\n const userInfo = this.getLocalStorageInfo(AppConstants.USER_INFO_DETAILS);\r\n if (userInfo && userInfo?.preferred_username) {\r\n return userInfo?.preferred_username;\r\n }\r\n return '';\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): IUserInformation {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Router, RouterModule, Routes } from '@angular/router';\r\nimport { DashBoardComponent } from './landingpage/dashboard/dashboard.component';\r\nimport { DebuggingComponent } from './layout/debugging/debugging.component';\r\nimport { AccessDeniedComponent } from './landingpage/access-denied/access-denied.component';\r\nimport { AuthGuard } from './_common/auth/auth.guard';\r\nimport { HomeComponent } from './layout/home/home.component';\r\nimport { AppComponent } from './app.component';\r\nimport { OktaCallbackComponent } from '@okta/okta-angular';\r\nimport { DashboardDataResolver } from './_common/resolvers/dashboard-data.resolver';\r\nimport { SitecoreItemResolver } from './_common/resolvers/sitecore-item.resolver';\r\nimport { MemberProfileDataResolver } from './_common/resolvers/member-profile-data.resolver';\r\nimport { NurseOnCallComponent } from './health-and-wellness/nurseOnCall/nurse-on-call.component';\r\nimport { SavedEmployeeDataResolver } from './_common/resolvers/saved-employee-data.resolver';\r\n\r\nexport const RESTRICTED_ROUTES: Routes = [\r\n {\r\n path: 'home',\r\n component: DashBoardComponent,\r\n canActivate: [AuthGuard],\r\n resolve: { sitecoreItem: SitecoreItemResolver },\r\n data: {\r\n sitecoreItem: { name: 'Dashboard' },\r\n onAuthRequired: onAuthRequired,\r\n expectedRole: ['Employer_ViewOnly', 'Employer_MemberManagement', 'Employer_OfficeManager', 'Employer_GBA', 'Employer_BillPay', 'Broker Portal Group', 'Employer_AZBeacon']\r\n }\r\n },\r\n {\r\n path: 'home/session',\r\n component: DashBoardComponent,\r\n canActivate: [AuthGuard],\r\n resolve: { sitecoreItem: SitecoreItemResolver },\r\n data: {\r\n sitecoreItem: { name: 'Dashboard' },\r\n expectedRole: ['Employer_ViewOnly', 'Employer_MemberManagement', 'Employer_OfficeManager', 'Employer_GBA', 'Employer_BillPay', 'Broker Portal Group', 'Employer_AZBeacon']\r\n }\r\n },\r\n { path: 'accessDenied', component: AccessDeniedComponent },\r\n {\r\n path: 'debug', component: DebuggingComponent,\r\n data: { expectedRole: ['Employer_ViewOnly', 'Employer_MemberManagement', 'Employer_OfficeManager', 'Employer_GBA', 'Employer_BillPay', 'Broker Portal Group', 'Employer_AZBeacon'] }\r\n },\r\n {\r\n path: 'employeeRoster',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group'] },\r\n loadChildren: () => import('./manage-my-group/employee-roster/employee-roster.module').then(m => m.EmployeeRosterModule)\r\n },\r\n {\r\n path: 'addEmployee',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group'] },\r\n loadChildren: () => import('./manage-my-group/add-employee/add-employee.module').then(m => m.AddEmployeeModule),\r\n resolve: { savedEmployeeApp: SavedEmployeeDataResolver }\r\n },\r\n {\r\n path: 'IDCard',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group', 'Employer_AZBeacon'] },\r\n loadChildren: () => import('./manage-my-group/id-card/id-card.module').then(m => m.IDCardModule),\r\n },\r\n {\r\n path: 'memberProfile/:subscriberId',\r\n loadChildren: () => import('./manage-my-group/member-profile/member-profile.module').then(m => m.MemberProfileModule),\r\n resolve: { memberProfile: MemberProfileDataResolver},\r\n },\r\n {\r\n path: 'eligibilityBenefits',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group', 'Employer_AZBeacon'] },\r\n loadChildren: () => import('./manage-my-group/eligibility-benefits/eligibility-benefits.module').then(m => m.EligibilityBenefitsModule)\r\n },\r\n {\r\n path: 'nurseOnCall',\r\n component: NurseOnCallComponent,\r\n data: { expectedRole: ['Employer_ViewOnly', 'Employer_MemberManagement', 'Employer_OfficeManager', 'Employer_GBA', 'Employer_BillPay', 'Broker Portal Group', 'Employer_AZBeacon'] }\r\n },\r\n {\r\n path: 'manageOfficeUserAccess',\r\n loadChildren: () => import('./oum/office-user-management.module').then(m => m.OfficeUserManagementModule),\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_GBA', 'Employer_OfficeManager', 'Employer_AZBeacon'] },\r\n },\r\n { path: 'implicit/callback', component: OktaCallbackComponent },\r\n {\r\n path: 'activityReport',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group', 'Employer_AZBeacon'] },\r\n loadChildren: () => import('./activity-report/activity-report.module').then(m => m.ActivityReportModule)\r\n },\r\n {\r\n path: 'savedApplications',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_MemberManagement', 'Employer_OfficeManager', 'Employer_GBA', 'Broker Portal Group']},\r\n loadChildren: () => import('./manage-my-group/saved-applications/saved-applications.module').then(m => m.SavedApplicationsModule)\r\n },\r\n {\r\n path: 'benefitBooks',\r\n canActivate: [AuthGuard],\r\n data: { onAuthRequired: onAuthRequired, expectedRole: ['Employer_ViewOnly', 'Employer_GBA', 'Employer_MemberManagement', 'Employer_BillPay', 'Employer_OfficeManager', 'Broker Portal Group', 'Employer_AZBeacon']},\r\n loadChildren: () => import('./benefit-documents/benefit-books/benefit-books.module').then(m => m.BenefitBooksModule)\r\n },\r\n];\r\n\r\nexport function onAuthRequired(okatAuth, injector) {\r\n const router = injector.get(Router);\r\n router.navigate(['/log-in']);\r\n}\r\n\r\nexport const UNRESTRICTED_ROUTES: Routes = [\r\n { path: 'log-in', loadChildren: () => import('./log-in/log-in.module').then(m => m.LogInModule) },\r\n {\r\n path: 'redirect-log-in', loadChildren: () => import('./redirect-log-in/redirect-log-in-routing.module').then(\r\n m => m.RedirectLogInRoutingModule)\r\n },\r\n {\r\n path: 'redirect-log-in/azbeacon', loadChildren: () => import('./redirect-log-in/azbeacon/azbeacon-routing.module').then(\r\n m => m.AZBeaconRoutingModule)\r\n },\r\n {\r\n path: 'redirect-log-in/early-access-azbeacon', loadChildren: () => import('./redirect-log-in/early-access-azbeacon/early-access-azbeacon-routing.module').then(\r\n m => m.EarlyAccessAZBeaconRoutingModule)\r\n },\r\n {\r\n path: 'redirect-log-in/early-access-hrp', loadChildren: () => import('./redirect-log-in/early-access-hrp/early-access-hrp-routing.module').then(\r\n m => m.EarlyAccessHRPRoutingModule)\r\n }\r\n];\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: 'log-in', pathMatch: 'full' },\r\n {\r\n path: '', component: HomeComponent, children: RESTRICTED_ROUTES,\r\n resolve: { dashboardData: DashboardDataResolver }\r\n },\r\n {\r\n path: '', component: AppComponent, children: UNRESTRICTED_ROUTES\r\n }\r\n];\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })\r\n ],\r\n exports: [\r\n RouterModule\r\n ],\r\n declarations: []\r\n})\r\n\r\nexport class AppRoutingModule {\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { AuthService } from './_common/auth/auth.service';\r\nimport { SpinnerService } from './_common/services/spinner.service';\r\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, RouterEvent, Event } from '@angular/router';\r\nimport { ToasterService } from './_common/services/toaster-service/toaster.service';\r\nimport { Userpilot } from 'userpilot';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html'\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'app';\r\n constructor(\r\n public spinnerService: SpinnerService,\r\n public toasterService: ToasterService,\r\n private router: Router,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n public authService: AuthService) {\r\n this.matIconRegistry.addSvgIcon(\r\n 'bcbsaz-calendar',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/calendar.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'edit-icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('/assets/icons/edit-icon.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'green-circle-check',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/icon-circle-check.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'gray-close-x',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/gray-close.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'orange-triangle-warning',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/icon-warning.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'red-x-mark',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/check-not-success.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'green-check-mark',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/check-success.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'eye',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/eye.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'eye-x',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/eye-x.svg')\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'information',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/information.svg')\r\n );\r\n\r\n this.router.events.subscribe((routerEvent: RouterEvent) => {\r\n\r\n // On NavigationStart, set showLoadingIndicator to ture\r\n if (routerEvent instanceof NavigationStart) {\r\n this.spinnerService.showProgressSpinner();\r\n }\r\n\r\n // On NavigationEnd or NavigationError or NavigationCancel\r\n // set showLoadingIndicator to false\r\n if (routerEvent instanceof NavigationEnd ||\r\n routerEvent instanceof NavigationError ||\r\n routerEvent instanceof NavigationCancel) {\r\n this.spinnerService.hideProgressSpinner();\r\n this.toasterService.hideToasterMessage();\r\n }\r\n\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.configureUserPilotDOMCaptureOnRouteChange();\r\n }\r\n private configureUserPilotDOMCaptureOnRouteChange(): void {\r\n // Subscribe to route change\r\n this.router.events.subscribe(\r\n (event: Event) => {\r\n if (event instanceof NavigationEnd) {\r\n Userpilot.reload();\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { AppComponent } from './app.component';\r\nimport { LandingPageModule } from './landingpage/landingpage.module';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { LayoutModule } from './layout/layout.module';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AngularMaterialModule } from './_common/modules/angular-material.module';\r\nimport { AuthGuard } from './_common/auth/auth.guard';\r\nimport { HomeComponent } from './layout/home/home.component';\r\nimport { OktaAuthModule } from '@okta/okta-angular';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport '@okta/okta-auth-js/polyfill';\r\nimport { CustomControlsModule } from './_common/modules/custom-controls.module';\r\nimport { AppOverlayService } from './_common/services/overlay.service';\r\nimport { SpinnerService } from './_common/services/spinner.service';\r\nimport { ProgressSpinnerComponent } from './layout/progress-spinner/progress-spinner.component';\r\nimport { ModalService } from './_common/services/modal-service/modal.service';\r\nimport { ModalServiceModule } from './_common/services/modal-service/modal.service.module';\r\nimport { MiddlewareAPIInterceptor } from './_common/interceptors/middlewareAPI.interceptor';\r\nimport { UserActivityService } from './_common/services/user-activity.service';\r\nimport { TokenExpireNotifierService } from './_common/services/token-expire-notifier/token-expire-notifier.service';\r\nimport { InputDirectivesModule } from './_common/modules/input-directives.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { PrintTargetComponent } from './layout/print-target/print-target.component';\r\nimport { ToasterService } from './_common/services/toaster-service/toaster.service';\r\nimport { SharedModule } from './_common/modules/shared.module';\r\nimport { TreeSelectModule } from './_common/custom-controls/tree-select/tree-select.module';\r\nimport { SitecoreModule } from './_common/shared/components/sitecore/sitecore.module';\r\nimport { TealeafComponent } from './tealeaf/tealeaf.component';\r\nimport { BenefitBookDocumentsGridviewComponent } from './benefit-documents/benefit-books/benefit-book-documents-gridview/benefit-book-documents-gridview.component';\r\nimport { Userpilot } from 'userpilot';\r\nimport { Config } from 'src/app/_models/config';\r\n\r\nfetch('./assets/config.json').then(async res => {\r\n const config = await res.json() as Config;\r\n // Initialize Userpilot\r\n Userpilot.initialize(config.userPilotInitializeToken);\r\n});\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n ProgressSpinnerComponent,\r\n PrintTargetComponent,\r\n TealeafComponent,\r\n BenefitBookDocumentsGridviewComponent\r\n ],\r\n exports: [\r\n ProgressSpinnerComponent,\r\n PrintTargetComponent\r\n ],\r\n imports: [\r\n BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),\r\n SitecoreModule,\r\n HttpClientModule,\r\n SharedModule,\r\n AppRoutingModule,\r\n LandingPageModule,\r\n LayoutModule,\r\n BrowserAnimationsModule,\r\n AngularMaterialModule,\r\n MatIconModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n OktaAuthModule,\r\n CustomControlsModule,\r\n ModalServiceModule,\r\n InputDirectivesModule,\r\n TreeSelectModule\r\n ],\r\n providers: [\r\n { provide: HTTP_INTERCEPTORS, useClass: MiddlewareAPIInterceptor, multi: true },\r\n AuthGuard,\r\n UserActivityService,\r\n AppOverlayService,\r\n SpinnerService,\r\n ModalService,\r\n ToasterService,\r\n { provide: APP_INITIALIZER, useFactory: _ => __ => {}, multi: true, deps: [UserActivityService, TokenExpireNotifierService] }\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-benefit-book-documents-gridview',\r\n templateUrl: './benefit-book-documents-gridview.component.html',\r\n styleUrls: ['./benefit-book-documents-gridview.component.scss']\r\n})\r\nexport class BenefitBookDocumentsGridviewComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-nurse-on-call',\r\n templateUrl: './nurse-on-call.component.html',\r\n styleUrls: ['./nurse-on-call.component.scss']\r\n})\r\nexport class NurseOnCallComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-access-denied',\r\n templateUrl: './access-denied.component.html',\r\n styleUrls: ['./access-denied.component.scss']\r\n})\r\nexport class AccessDeniedComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\n\r\n@Component({\r\n selector: 'app-activity-reports-card',\r\n templateUrl: './activity-reports-card.component.html',\r\n styleUrls: ['./activity-reports-card.component.scss']\r\n})\r\nexport class ActivityReportsCardComponent extends BaseCardComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\n\r\n@Component({\r\n selector: 'app-add-new-employee-card',\r\n templateUrl: './add-new-employee-card.component.html',\r\n styleUrls: ['./add-new-employee-card.component.scss']\r\n})\r\nexport class AddNewEmployeeCardComponent extends BaseCardComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IDashboardCard } from '../common/models/dashboard-card.interface';\r\n\r\n@Component({\r\n selector: 'app-base-card',\r\n template: '',\r\n styleUrls: ['./base-card.component.scss']\r\n})\r\nexport class BaseCardComponent implements OnInit {\r\n\r\n @Input() cardSize: string;\r\n @Input() cardData: IDashboardCard;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n get isLargeCard(): boolean {\r\n if (this.cardSize === 'L') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Component, ComponentFactory, ComponentFactoryResolver, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\nimport { ViewStatementCardComponent } from '../view-statement-card/view-statement-card.component';\r\nimport { PayBillCardComponent } from '../pay-bill-card/pay-bill-card.component';\r\nimport { AddNewEmployeeCardComponent } from '../add-new-employee-card/add-new-employee-card.component';\r\nimport { IDashboardCard } from '../common/models/dashboard-card.interface';\r\nimport { ActivityReportsCardComponent } from '../activity-reports-card/activity-reports-card.component';\r\nimport { OrderIdCardComponent } from '../order-id-card/order-id-card.component';\r\n\r\n@Component({\r\n selector: 'app-dashboard-card',\r\n templateUrl: './dashboard-card.component.html',\r\n styleUrls: ['./dashboard-card.component.scss']\r\n})\r\nexport class DashboardCardComponent implements OnInit {\r\n\r\n private readonly cardTemplates: any = {\r\n viewStatement: ViewStatementCardComponent,\r\n payBill: PayBillCardComponent,\r\n addNewEmployee: AddNewEmployeeCardComponent,\r\n activityReports: ActivityReportsCardComponent,\r\n orderIdCard: OrderIdCardComponent\r\n };\r\n\r\n @ViewChild('container', { read: ViewContainerRef }) private container: ViewContainerRef;\r\n @Input() cardSize: string;\r\n @Input() cardData: IDashboardCard;\r\n public componentRef: any;\r\n\r\n constructor(private componentFactoryResolver: ComponentFactoryResolver) {\r\n }\r\n\r\n ngOnInit(): void {\r\n setTimeout(() => {\r\n this.loadComponent();\r\n }, 100);\r\n }\r\n\r\n private getComponentForCardType(cardType: string): any {\r\n return this.cardTemplates[cardType];\r\n }\r\n\r\n loadComponent() {\r\n const componentType: any = this.getComponentForCardType(this.cardData.componentName);\r\n\r\n const componentFactory: ComponentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\r\n\r\n const viewContainerRef: ViewContainerRef = this.container;\r\n viewContainerRef.clear();\r\n this.componentRef = viewContainerRef.createComponent(componentFactory);\r\n this.componentRef.instance.cardSize = this.cardSize;\r\n this.componentRef.instance.cardData = this.cardData;\r\n }\r\n\r\n get isLargeCard(): boolean {\r\n if (this.cardSize === 'L') {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n get cardTitle(): string {\r\n return this.cardData.cardTitle;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { AuthService } from 'src/app/_common/auth/auth.service';\r\nimport { SitecoreAngularComponentResponse } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { ToasterAlertService } from 'src/app/_common/services/toaster-alert-service/toaster-alert.service';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss']\r\n})\r\nexport class DashBoardComponent implements OnInit, OnDestroy {\r\n\r\n public dashboardCards: Array;\r\n subscriptions: Subscription[] = [];\r\n isAuthenticated: boolean;\r\n userName: string;\r\n groups: string[];\r\n acccountsAsString: string;\r\n\r\n constructor(\r\n private toasterAlertService: ToasterAlertService,\r\n private activatedRoute: ActivatedRoute,\r\n private authService: AuthService,\r\n private router: Router) { }\r\n\r\n ngOnInit() {\r\n this.dashboardCards = this.activatedRoute?.snapshot?.data?.sitecoreItem?.outlets?.top;\r\n\r\n this.authService.checkAuthenticated()\r\n .then((authenticated) => {\r\n this.isAuthenticated = authenticated;\r\n });\r\n }\r\n\r\n getCardSize(index: number): string {\r\n let i = index;\r\n if (index % 2 !== 0) {\r\n i = (index + 1);\r\n }\r\n if (((i / 2) % 2) === 0) {\r\n return 'L';\r\n }\r\n return 'S';\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DashBoardComponent } from './dashboard/dashboard.component';\r\nimport { WelcomeComponent } from './welcome/welcome.component';\r\nimport { DashboardCardComponent } from './dashboard-card/dashboard-card.component';\r\nimport { ViewStatementCardComponent } from './view-statement-card/view-statement-card.component';\r\nimport { PayBillCardComponent } from './pay-bill-card/pay-bill-card.component';\r\nimport { OrderIdCardComponent } from './order-id-card/order-id-card.component';\r\nimport { BaseCardComponent } from './base-card/base-card.component';\r\nimport { AccessDeniedComponent } from './access-denied/access-denied.component';\r\nimport { AddNewEmployeeCardComponent } from './add-new-employee-card/add-new-employee-card.component';\r\nimport { ActivityReportsCardComponent } from './activity-reports-card/activity-reports-card.component';\r\nimport { SitecoreModule } from '../_common/shared/components/sitecore/sitecore.module';\r\nimport { WelcomeModalComponent } from './welcome/welcome-modal/welcome-modal.component';\r\nimport { AngularMaterialModule } from '../_common/modules/angular-material.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DashBoardComponent,\r\n WelcomeComponent,\r\n DashboardCardComponent,\r\n BaseCardComponent,\r\n AccessDeniedComponent,\r\n ViewStatementCardComponent,\r\n PayBillCardComponent,\r\n AddNewEmployeeCardComponent,\r\n ActivityReportsCardComponent,\r\n OrderIdCardComponent,\r\n WelcomeModalComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SitecoreModule,\r\n AngularMaterialModule, MatIconModule,\r\n ]\r\n})\r\nexport class LandingPageModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\n\r\n@Component({\r\n selector: 'app-order-id-card',\r\n templateUrl: './order-id-card.component.html',\r\n styleUrls: ['./order-id-card.component.scss']\r\n})\r\nexport class OrderIdCardComponent extends BaseCardComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\n\r\n@Component({\r\n selector: 'app-pay-bill-card',\r\n templateUrl: './pay-bill-card.component.html',\r\n styleUrls: ['./pay-bill-card.component.scss']\r\n})\r\nexport class PayBillCardComponent extends BaseCardComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseCardComponent } from '../base-card/base-card.component';\r\n\r\n@Component({\r\n selector: 'app-view-statement-card',\r\n templateUrl: './view-statement-card.component.html',\r\n styleUrls: ['./view-statement-card.component.scss']\r\n})\r\nexport class ViewStatementCardComponent extends BaseCardComponent implements OnInit {\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\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 UserWelcomeService {\r\n private readonly storageKeyName = 'UserWelcomeCount';\r\n public readonly maxCount = 1;\r\n private state: UserWelcomeState;\r\n\r\n constructor() {\r\n this.state = this.getStateFromStorage(this.storageKeyName);\r\n }\r\n\r\n public get loginCount() { return this.state.count; }\r\n\r\n public saveCount() {\r\n const json = JSON.stringify(this.state);\r\n localStorage.setItem(this.storageKeyName, json);\r\n }\r\n\r\n public incrementWelcomeCount() {\r\n this.state.count = Math.min(this.state.count + 1, this.maxCount);\r\n this.saveCount();\r\n }\r\n\r\n private getStateFromStorage(key: string): UserWelcomeState {\r\n const json = localStorage.getItem(key);\r\n const result = !!json\r\n ? JSON.parse(json) as UserWelcomeState\r\n : { count: 0 };\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport interface UserWelcomeState {\r\n count: number;\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-welcome-modal',\r\n templateUrl: './welcome-modal.component.html',\r\n styleUrls: ['./welcome-modal.component.scss']\r\n})\r\nexport class WelcomeModalComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { IUserAccountInfo, IAccounts, IAccount } from '../../_models';\r\nimport { EmployerAccountService } from '../../_services/employer-account-service/employer-account.service';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { UserWelcomeService } from './user-welcome.service';\r\nimport { ModalService } from 'src/app/_common/services/modal-service/modal.service';\r\nimport { WelcomeModalComponent } from './welcome-modal/welcome-modal.component';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\n\r\n@Component({\r\n selector: 'app-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.scss']\r\n})\r\nexport class WelcomeComponent implements OnInit, OnDestroy {\r\n private readonly THIRTEEN: number = 13;\r\n accountInfo: IUserAccountInfo = { userFirstName: '', accountNumber: '' };\r\n accountsWithSubAccounts: IAccount[];\r\n accountsToDisplay: string;\r\n accountsExtension = '...Show All';\r\n unsubscribe$: Subject = new Subject();\r\n\r\n constructor(\r\n private employerAccountService: EmployerAccountService,\r\n private userWelcomeService: UserWelcomeService,\r\n private modalService: ModalService,\r\n private sitecoreContentService: SitecoreContentService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.employerAccountService.accounts$.pipe(takeUntil(this.unsubscribe$)).subscribe(\r\n (accounts: IAccounts) => {\r\n if (accounts && accounts?.accounts !== this.accountsWithSubAccounts) {\r\n this.accountInfo.userFirstName = accounts?.userFirstName;\r\n this.setUserAccountInformation(accounts?.accounts);\r\n }\r\n }\r\n );\r\n this.getSiteCoreToggle();\r\n }\r\n\r\n getSiteCoreToggle(): void {\r\n this.sitecoreContentService.getSiteCoreToggle('EmployerPortal_Modal_Home_Toggle').subscribe(toggle => {\r\n if (toggle) {\r\n if (this.userWelcomeService.loginCount < this.userWelcomeService.maxCount) {\r\n this.userWelcomeService.incrementWelcomeCount();\r\n this.modalService.createDynamicOptionsModal({\r\n componentType: WelcomeModalComponent,\r\n buttonContainer: {\r\n buttons: [this.modalService.createDefaultPrimaryButton('Got it')]\r\n }\r\n }, {maxWidth: 580});\r\n }\r\n }\r\n });\r\n }\r\n\r\n setUserAccountInformation(accounts: IAccount[]) {\r\n this.accountsWithSubAccounts = accounts;\r\n const userAccounts: IAccount[] = accounts;\r\n const accountsStringArray: string[] = [];\r\n userAccounts.forEach(a => accountsStringArray.push(a.account));\r\n this.accountInfo.accountNumber = accountsStringArray.join(', ');\r\n this.accountsToDisplay = this.accountInfo?.accountNumber.length < this.THIRTEEN\r\n ? this.accountInfo?.accountNumber\r\n : this.accountInfo?.accountNumber.substring(0, this.THIRTEEN);\r\n }\r\n\r\n toggleAccountsView() {\r\n this.accountsExtension = this.accountsExtension === '...Show All' ? 'Show Less' : '...Show All';\r\n this.accountsToDisplay = this.accountsToDisplay === this.accountInfo?.accountNumber\r\n ? this.accountInfo?.accountNumber.substring(0, this.THIRTEEN)\r\n : this.accountInfo?.accountNumber;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { EmployeeRosterService } from 'src/app/manage-my-group/employee-roster/_common/services/employee-roster-service/employee-roster-service';\r\nimport { OrderIdCardApiService } from 'src/app/manage-my-group/id-card/_common/services/order-id-card-api.service';\r\nimport { DebuggingService } from './debugging.service';\r\n\r\n@Component({\r\n selector: 'app-debugging',\r\n templateUrl: './debugging.component.html',\r\n styleUrls: ['./debugging.component.scss']\r\n})\r\nexport class DebuggingComponent implements OnInit {\r\n private isTenOrLessRecord = false;\r\n public addressChangeFailure = false;\r\n\r\n constructor(protected employeeRosterService: EmployeeRosterService,\r\n protected orderIdCardApiService: OrderIdCardApiService,\r\n protected debuggingService: DebuggingService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isTenOrLessRecord = this.employeeRosterService.employeeListSize$.value;\r\n }\r\n\r\n employeeListSizeChange(): void {\r\n if (this.isTenOrLessRecord) {\r\n this.employeeRosterService.mockData = '../../../../../../assets/mockData/TEN_EmployeesRandomGenerated_V2.json';\r\n this.employeeRosterService.pageSize = 10;\r\n this.employeeRosterService.employeeListSize$.next(true);\r\n } else {\r\n this.employeeRosterService.mockData = '../../../../../../assets/mockData/HUNDRED_Employees_V2.json';\r\n this.employeeRosterService.employeeListSize$.next(false);\r\n }\r\n this.employeeRosterService.getEmployeeRosters();\r\n }\r\n\r\n addressChangeFailureChange(event: any): void {\r\n this.debuggingService.orderIdCard.addressChangeFailure = event.target.checked;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DebuggingService {\r\n public orderIdCard = {\r\n addressChangeFailure: false,\r\n mockImageCall: false,\r\n includedMockCards: {\r\n medical: false,\r\n dental: false\r\n },\r\n simulateOrderIdCardRequestFailure: false\r\n };\r\n\r\n public officeUserManagement = {\r\n addUser: {\r\n simulateApiCallFail: false,\r\n simulateInvalidEmail: false\r\n },\r\n editUser: {\r\n simulateApiCallFail: false\r\n },\r\n deleteUser: {\r\n simulateApiCallFail: false\r\n }\r\n };\r\n\r\n public eligibilityAndBenefits = {\r\n searchUser: {\r\n simulateApiCallFailInSearch: false\r\n }\r\n };\r\n\r\n public memberProfile = {\r\n submitMember: {\r\n simulateApiCallFail : false\r\n }\r\n };\r\n\r\n public standardApplication = {\r\n submitEmployee: {\r\n simulateApiCallFail : false\r\n },\r\n saveEmployeeApp: {\r\n simulateApiCallFail : false\r\n }\r\n };\r\n\r\n public savedApplications = {\r\n simulateNoSavedAppFound : false\r\n };\r\n\r\n public activityReport = {\r\n simulateNoEmployeeInfoFound : false\r\n };\r\n\r\n public employeeRoster = {\r\n noEmployeeFoundPage : false\r\n };\r\n\r\n public benefitBooks = {\r\n noBenefitBooksFoundPage : false\r\n };\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NavigationContentService } from '../../_services/navigation-content-service/navigationContent.service';\r\nimport { INavigationHeaderItem } from '../../_models';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit, OnDestroy {\r\n public footerItems: Array = [];\r\n public copyRightDisplayMessage: string;\r\n private _subscription: Subscription;\r\n\r\n constructor(private navigationContentService: NavigationContentService) { }\r\n\r\n ngOnInit() {\r\n this.getFooterItems();\r\n }\r\n\r\n private getFooterItems(): void {\r\n this._subscription = this.navigationContentService.footerContent$.subscribe(\r\n data => {\r\n this.footerItems = data;\r\n if (this.footerItems) {\r\n const copyRightMessage = this.footerItems[4]?.displayLink;\r\n const date = new Date().getFullYear();\r\n this.copyRightDisplayMessage = '© ' + date + ' ' + copyRightMessage;\r\n this.footerItems = this.footerItems.slice(0, 4);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { NavigationContentService } from '../../_services/navigation-content-service/navigationContent.service';\r\nimport { INavigationHeaderItem } from '../../_models';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AuthService } from 'src/app/_common/auth/auth.service';\r\nimport { EmployerAccountService } from '../../_services/employer-account-service/employer-account.service';\r\nimport { UserInfoService } from 'src/app/_services/user-info-service/userInfo.service';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit, OnDestroy {\r\n public myAccountItems: Array = [];\r\n public accountName = '';\r\n public unsubscribe$ = new Subject();\r\n private _subscription: Subscription;\r\n public showOUM = false;\r\n\r\n constructor(private navigationContentService: NavigationContentService,\r\n public authService: AuthService, public employerAccountService: EmployerAccountService, public userInfoService: UserInfoService) { }\r\n\r\n ngOnInit() {\r\n this.getMyAccountDropdownItemsFiltered();\r\n this.employerAccountService.parentAccountName$.pipe(takeUntil(this.unsubscribe$)).subscribe(\r\n (name: string) => {\r\n this.accountName = name;\r\n }\r\n );\r\n }\r\n\r\n private getMyAccountDropdownItemsFiltered(): void {\r\n const azbeaconUser = this.getLocalStorageInfo(AppConstants.AZBEACON_COOKIE_KEY);\r\n const userGroupRoles = azbeaconUser !== 'true' ? this.userInfoService.getUserRole() : ['Employer_AZBeacon'];\r\n const userRole = this.userInfoService.getUserRole();\r\n this._subscription = this.navigationContentService.myAccountDropdownitems$.subscribe(\r\n data => {\r\n data.forEach((item) => {\r\n const permissionListFiltered = item.permissionFilter.split(/;/).filter((role: string) => {\r\n if (item.componentName === 'manageOfficeUserAccess') {\r\n return (this.userInfoService.oumAccessRoleList.includes(userRole[0]) && userGroupRoles.includes(role));\r\n }\r\n return userGroupRoles.includes(role);\r\n });\r\n if (permissionListFiltered.length > 0) {\r\n this.myAccountItems.push(item);\r\n }\r\n });\r\n });\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n\r\n logOut() {\r\n this.authService.logout();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { ToasterService } from 'src/app/_common/services/toaster-service/toaster.service';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\nimport { mailto } from 'src/app/_common/shared/helper.functions';\r\nimport { SiteCoreMessagesConstants } from 'src/app/_common/shared/siteCoreMessages.constants';\r\nimport { SitecorePageAlert } from 'src/app/_models/sitecore/sitecore-page-alert.model';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { Userpilot } from 'userpilot';\r\nimport { IUserInformation } from 'src/app/_models/userInformation.interface';\r\nimport { EmployerAccountService } from '../../_services/employer-account-service/employer-account.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss']\r\n})\r\nexport class HomeComponent implements OnInit, OnDestroy {\r\n isHome = false;\r\n public title: string;\r\n public message: string;\r\n public messageType: string;\r\n public hasAccess = false;\r\n public isAzBeaconUser = false;\r\n public isEarlyAzBeaconUser = 'false';\r\n public titleInfomationMessage: string;\r\n public informationMessage: string;\r\n public messageInformationType: string;\r\n public emailContact: string;\r\n public subjectEmail: string;\r\n public unsubscribe$ = new Subject();\r\n public accountName = '';\r\n public accountStatus = '';\r\n private _subscription: Subscription;\r\n\r\n constructor(\r\n public toasterService: ToasterService,\r\n private router: Router,\r\n public sitecoreContentService: SitecoreContentService,\r\n public employerAccountService: EmployerAccountService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.getCurrentRole();\r\n this.employerAccountService.parentAccountName$.pipe(takeUntil(this.unsubscribe$)).subscribe(\r\n (name: string) => {\r\n this.accountName = name;\r\n }\r\n );\r\n this.employerAccountService.accountStatus$?.pipe(takeUntil(this.unsubscribe$)).subscribe(\r\n (accountStatus: string) => {\r\n this.accountStatus = accountStatus;\r\n }\r\n );\r\n this.addEmployerGroupAndUserInfoToUserPilot();\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n this.isHome = this.router.url === '/home' ? true : false;\r\n if (event.urlAfterRedirects === '/home' ) {\r\n if (this.hasAccess) {\r\n this.showToasterMessage();\r\n }\r\n if (!this.isAzBeaconUser || this.isEarlyAzBeaconUser === 'false') {\r\n this.showToasterMessageInfo();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.toasterService.hideToasterMessage();\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n private showToasterMessage(): void {\r\n this.toasterService.pushToasterMessageDashboard({\r\n title: this.title,\r\n message: this.message,\r\n icon: this.messageType,\r\n bodyClass: { 'card-body-information': true, 'container-margin-homepage': false },\r\n showCloseButton: false,\r\n shouldScrollToToaster: true\r\n });\r\n }\r\n\r\n private showToasterMessageInfo(): void {\r\n this.toasterService.pushToastMessageInfo({\r\n title: this.titleInfomationMessage,\r\n message: `${this.informationMessage}\r\n ${mailto({\r\n message: {\r\n address: this.emailContact,\r\n subject: this.subjectEmail,\r\n body: ''\r\n },\r\n tag: {\r\n innerHtml: this.emailContact\r\n }\r\n })}.`,\r\n icon: this.messageInformationType,\r\n bodyClass: { 'card-body-information': true, 'container-margin-homepage': false },\r\n showCloseButton: true,\r\n shouldScrollToToaster: true\r\n });\r\n }\r\n\r\n public getSiteCoreMessages(): void {\r\n this.sitecoreContentService.getSiteCoreMessages(SiteCoreMessagesConstants.EMPLOYER_HOME_PAGE_MESSAGE)\r\n .subscribe(\r\n (sitecoreItem: SitecorePageAlert) => {\r\n this.title = sitecoreItem.alertTitle;\r\n this.message = sitecoreItem.message;\r\n this.messageType = sitecoreItem.type;\r\n this.showToasterMessage();\r\n },\r\n (error: any) => {\r\n this.toasterService.hideToasterMessage();\r\n }\r\n );\r\n }\r\n\r\n public getSiteCoreInformationMessage(): void {\r\n this.sitecoreContentService.getSiteCoreMessages(SiteCoreMessagesConstants.EMPLOYER_HOME_PAGE_INFORMATION_MESSAGE)\r\n .subscribe(\r\n (sitecoreItem: SitecorePageAlert) => {\r\n const messageContent = sitecoreItem.message.split('|');\r\n this.titleInfomationMessage = sitecoreItem.alertTitle;\r\n this.informationMessage = messageContent[0];\r\n this.messageInformationType = sitecoreItem.type;\r\n this.emailContact = messageContent[1];\r\n this.subjectEmail = messageContent[2];\r\n this.showToasterMessageInfo();\r\n },\r\n (error: any) => {\r\n this.toasterService.hideToasterMessage();\r\n }\r\n );\r\n }\r\n\r\n private getCurrentRole(): void {\r\n const accessAZBeacon = this.getLocalStorageInfo(AppConstants.EARLY_ACCESS_AZBEACON_KEY);\r\n const accessHRP = this.getLocalStorageInfo(AppConstants.EARLY_ACCESS_HRP_KEY);\r\n this.isAzBeaconUser = this.getLocalStorageInfo(AppConstants.AZBEACON_COOKIE_KEY);\r\n this.isEarlyAzBeaconUser = accessAZBeacon;\r\n this.hasAccess = accessAZBeacon === 'true' || accessHRP === 'true';\r\n if (this.hasAccess) {\r\n this.getSiteCoreMessages();\r\n }\r\n if (!this.isAzBeaconUser || this.isEarlyAzBeaconUser === 'false') {\r\n this.getSiteCoreInformationMessage();\r\n }\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n\r\n private getUserInfoLocalStorage(): IUserInformation {\r\n return (JSON.parse(localStorage.getItem(AppConstants.USER_INFO_DETAILS)) || {}) as IUserInformation;\r\n }\r\n private addEmployerGroupAndUserInfoToUserPilot(): void {\r\n const userInfo = this.getUserInfoLocalStorage();\r\n Userpilot.identify(\r\n userInfo?.preferred_username,\r\n {\r\n name: userInfo?.given_name + ' ' + userInfo?.family_name, // Adds User Profile Name\r\n company: { // Needed for Company Searches in UserPilot\r\n id: userInfo?.accounts, // Required, used to identify the company\r\n name: this.accountName,\r\n groupStatus: this.accountStatus\r\n },\r\n // userpilot displays in alpha-order\r\n groupName: this.accountName,\r\n groupNumber: userInfo?.accounts,\r\n groupStatus: this.accountStatus,\r\n userFirstName: userInfo?.given_name,\r\n userLastName: userInfo?.family_name,\r\n userRole: userInfo?.employerGroups\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { HeaderComponent } from './header/header.component';\r\nimport { NavigationComponent } from './navigation/navigation.component';\r\nimport { FooterComponent } from './footer/footer.component';\r\nimport { NavigationContentService } from '../_services/navigation-content-service/navigationContent.service';\r\nimport { DebuggingComponent } from './debugging/debugging.component';\r\nimport { AngularMaterialModule } from '../_common/modules/angular-material.module';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { SharedModule } from '../_common/modules/shared.module';\r\nimport { TokenExpireNotifierService } from '../_common/services/token-expire-notifier/token-expire-notifier.service';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n HeaderComponent,\r\n NavigationComponent,\r\n FooterComponent,\r\n DebuggingComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n SharedModule,\r\n RouterModule,\r\n FormsModule,\r\n NgbModule,\r\n AngularMaterialModule, MatIconModule,\r\n ],\r\n exports: [\r\n HeaderComponent,\r\n NavigationComponent,\r\n FooterComponent\r\n ],\r\n providers: [\r\n NavigationContentService\r\n ]\r\n})\r\nexport class LayoutModule {\r\n // Potential fix for token modal bug\r\n // constructor(private startTokenServiceOnLogin: TokenExpireNotifierService) {}\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { NavigationContentService } from '../../_services/navigation-content-service/navigationContent.service';\r\nimport { INavigationHeaderItem, INavigationLink } from '../../_models';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { formatDate } from '@angular/common';\r\nimport { AlertMessageModel } from 'src/app/_models/sitecore/sitecoreAlertMessage.model';\r\n\r\n@Component({\r\n selector: 'app-navigation',\r\n templateUrl: './navigation.component.html',\r\n styleUrls: ['./navigation.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class NavigationComponent implements OnInit, OnDestroy {\r\n public navbarItems: Array = [];\r\n public isDashboardActive: boolean;\r\n public activatedRoute: string;\r\n public notificationToggle = false;\r\n public notificationAlertMessage: AlertMessageModel;\r\n public todayDate: string;\r\n public dropdownMenu: HTMLElement;\r\n public clicked = false;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor (private navigationContentService: NavigationContentService, private router: Router,\r\n private sitecoreContentService: SitecoreContentService\r\n ) {\r\n this.subscriptions.push(\r\n this.navigationContentService.navigationHeaderContent$.subscribe((data) => {\r\n this.activatedRoute = this.router.url.substring(1);\r\n this.navbarItems = data;\r\n this.findActiveMenu(this.activatedRoute);\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.todayDate = this.getFormatDate(new Date());\r\n this.getSitecoreTogglesData();\r\n this.dropdownMenu = document.querySelector('.notification-menu');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscriptions) {\r\n this.subscriptions.forEach((s) => s.unsubscribe());\r\n }\r\n }\r\n public getSitecoreTogglesData() {\r\n this.subscriptions.push(\r\n this.sitecoreContentService.getSiteCoreToggle('Employer_Alert_Messages').subscribe((toggle: boolean) => {\r\n this.notificationToggle = toggle;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.sitecoreContentService\r\n .getSiteCoreToggleMessage('Employer_Alert_Messages')\r\n .subscribe((toggleAlert: AlertMessageModel) => {\r\n this.notificationAlertMessage = toggleAlert;\r\n })\r\n );\r\n }\r\n\r\n public manageNavActiveClass(navItemHeader): void {\r\n this.isDashboardActive = navItemHeader === 'My Dashboard';\r\n this.navbarItems?.forEach((item: INavigationHeaderItem) => {\r\n item.isActive = !this.isDashboardActive && navItemHeader === item.header;\r\n });\r\n }\r\n\r\n public getDashboardActive(): boolean {\r\n return this.isDashboardActive;\r\n }\r\n\r\n public findActiveMenu(routeUrl: string): void {\r\n this.isDashboardActive = routeUrl === '' || routeUrl === '/' || routeUrl.startsWith('home');\r\n\r\n this.navbarItems.forEach((item: INavigationHeaderItem) => {\r\n item.isActive =\r\n !this.isDashboardActive && // Set all items to false if true\r\n !!item.subItems?.some((subItem: INavigationLink) => subItem.componentName?.split('/')[0] === routeUrl);\r\n });\r\n }\r\n\r\n public hoverShowMenu() {\r\n if (this.notificationToggle) {\r\n this.dropdownMenu.classList.add('show');\r\n }\r\n }\r\n\r\n public mouseOutHideMenu() {\r\n if (this.notificationToggle) {\r\n this.dropdownMenu.classList.remove('show');\r\n }\r\n }\r\n\r\n private getFormatDate(todayDate: Date): string {\r\n return formatDate(todayDate, 'dd/MM/yyyy hh:mm a', 'en-US');\r\n }\r\n }\r\n","import { Component, ComponentFactoryResolver, OnInit, Type, ViewChild, ViewContainerRef } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { delay } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-print-target',\r\n templateUrl: './print-target.component.html',\r\n styleUrls: ['./print-target.component.scss']\r\n})\r\nexport class PrintTargetComponent {\r\n // I don't like doing this, but I could not find a better way to access this instance from PrintService\r\n private static _instance: PrintTargetComponent;\r\n public readonly targetId = 'global-print-target';\r\n public static get instance(): PrintTargetComponent { return PrintTargetComponent._instance; }\r\n @ViewChild('content', { read: ViewContainerRef }) private contentTemplate: ViewContainerRef;\r\n\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver\r\n ) {\r\n PrintTargetComponent._instance = PrintTargetComponent._instance || this;\r\n }\r\n\r\n public createComponent(data: ComponentCreationOptions): Observable {\r\n this.contentTemplate.clear();\r\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(data.componentType);\r\n const component = this.contentTemplate.createComponent(componentFactory);\r\n if (data.onComponentCreate) {\r\n data.onComponentCreate(component.instance);\r\n }\r\n\r\n // TODO: Arbitrarily waiting for 100 so that the component has time to update\r\n return of(this.targetId).pipe(delay(100));\r\n }\r\n\r\n public clearContent(): void {\r\n this.contentTemplate.clear();\r\n }\r\n}\r\n\r\nexport interface ComponentCreationOptions {\r\n componentType: Type;\r\n onComponentCreate: (component: T) => void;\r\n}\r\n","import { Component, OnInit, DoCheck, TemplateRef, ViewChild, ViewContainerRef, Input, AfterViewInit } from '@angular/core';\r\nimport { OverlayRef } from '@angular/cdk/overlay';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\r\nimport { AppOverlayService } from '../../_common/services/overlay.service';\r\nimport { SpinnerService } from 'src/app/_common/services/spinner.service';\r\n\r\n@Component({\r\n selector: 'app-progress-spinner',\r\n templateUrl: './progress-spinner.component.html',\r\n styleUrls: ['./progress-spinner.component.scss']\r\n})\r\nexport class ProgressSpinnerComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() color?: ThemePalette = 'primary';\r\n @Input() diameter = 100;\r\n @Input() mode?: ProgressSpinnerMode = 'indeterminate';\r\n @Input() strokeWidth = 7;\r\n @Input() value = 100;\r\n backdropEnabled = true;\r\n positionGloballyCenter = true;\r\n @Input() displayProgressSpinner: boolean;\r\n\r\n @ViewChild('progressSpinnerRef')\r\n private progressSpinnerRef: TemplateRef;\r\n private overlayRef: OverlayRef;\r\n\r\n constructor(\r\n private vcRef: ViewContainerRef,\r\n private appOverlayService: AppOverlayService,\r\n private spinnerService: SpinnerService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n // Config for Overlay Service\r\n const progressSpinnerOverlayConfig = {\r\n hasBackdrop: this.backdropEnabled\r\n };\r\n if (this.positionGloballyCenter) {\r\n progressSpinnerOverlayConfig[\r\n 'positionStrategy'\r\n ] = this.appOverlayService.positionGloballyCenter();\r\n }\r\n // Create Overlay for progress spinner\r\n this.overlayRef = this.appOverlayService.createOverlay(\r\n progressSpinnerOverlayConfig\r\n );\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.spinnerService.ShowSpinner$.subscribe(showSpinner => {\r\n if (showSpinner && this.overlayRef && !this.overlayRef.hasAttached()) {\r\n this.appOverlayService.attachTemplatePortal(\r\n this.overlayRef,\r\n this.progressSpinnerRef,\r\n this.vcRef\r\n );\r\n } else if (!showSpinner && this.overlayRef && this.overlayRef.hasAttached()) {\r\n this.overlayRef.detach();\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { IPlanInfo } from '../models/plan-info';\r\nimport { Router } from '@angular/router';\r\nimport { ISingleDropdownItem } from 'src/app/_common/custom-controls/single-dropdown-select/single-dropdown-select.component';\r\nimport { PlansService } from './plan-service/plans.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ManageMyGroupDropdownService {\r\n public BenefitPlanItems$: BehaviorSubject> = new BehaviorSubject>(null);\r\n public DentalPlanItems$: BehaviorSubject> = new BehaviorSubject>(null);\r\n private plans: Array;\r\n\r\n private waiveCoverageItem: IPlanInfo = {\r\n planName: 'Waive Coverage',\r\n planType: 'Waive Coverage',\r\n planId: 'Waive Coverage',\r\n accountId: '',\r\n accountName: '',\r\n planDescription: 'Waive Coverage',\r\n productName: 'Waive Coverage',\r\n planStartDate: '',\r\n planEndDate: ''\r\n };\r\n\r\n private terminateCovergeItem: IPlanInfo = {\r\n planName: 'Terminate Coverage',\r\n planType: 'Terminate Coverage',\r\n planId: 'Terminate Coverage',\r\n accountId: '',\r\n accountName: '',\r\n planDescription: '',\r\n productName: '',\r\n planStartDate: '',\r\n planEndDate: ''\r\n };\r\n\r\n private readonly medicarePartA = {\r\n value: 'Part A',\r\n text: 'Part A'\r\n };\r\n\r\n private readonly medicarePartB = {\r\n value: 'Part B',\r\n text: 'Part B'\r\n };\r\n\r\n private readonly medicareBoth = {\r\n value: 'Both',\r\n text: 'Both'\r\n };\r\n\r\n constructor(\r\n private plansService: PlansService,\r\n private router: Router) {\r\n\r\n }\r\n\r\n public static createWaiveCoverageDropdownItem(): ISingleDropdownItem {\r\n return {\r\n value: 'Waive Coverage',\r\n text: 'Waive Coverage'\r\n };\r\n }\r\n\r\n public static createTerminateCoverageDropdownItem(): ISingleDropdownItem {\r\n return {\r\n value: 'Terminate Coverage',\r\n text: 'Terminate Coverage'\r\n };\r\n }\r\n\r\n public static createEnrolledPlan(planType: string): IPlanInfo {\r\n return {\r\n planId: 'Same as subscriber',\r\n planName: 'Same as subscriber',\r\n planType,\r\n accountId: '',\r\n accountName: '',\r\n planDescription: '',\r\n planEndDate: '',\r\n planStartDate: '',\r\n productName: ''\r\n };\r\n }\r\n\r\n public static createTerminateCoveragePlan(planType: string): IPlanInfo {\r\n return {\r\n planId: 'Terminate Coverage',\r\n planName: 'Terminate Coverage',\r\n planType,\r\n accountId: '',\r\n accountName: '',\r\n planDescription: '',\r\n planEndDate: '',\r\n planStartDate: '',\r\n productName: ''\r\n };\r\n }\r\n\r\n public static createSameAsSubscriberDropdownitem(): ISingleDropdownItem {\r\n return {\r\n text: 'Same as subscriber',\r\n value: 'Same as subscriber'\r\n };\r\n }\r\n\r\n get getWaiveCoverageItem(): IPlanInfo {\r\n return this.waiveCoverageItem;\r\n }\r\n\r\n get getTerminateCoverageItem(): IPlanInfo {\r\n return this.terminateCovergeItem;\r\n }\r\n\r\n public async getHealthPlans(accountNumber: string = null, effectiveDate: Date = null): Promise {\r\n const newEffectiveDate = new Date(effectiveDate);\r\n let isSuccessful = false;\r\n if (accountNumber && effectiveDate) {\r\n this.DentalPlanItems$.next(null);\r\n this.BenefitPlanItems$.next(null);\r\n try {\r\n this.plans = await this.plansService.getPlans(accountNumber, newEffectiveDate).toPromise();\r\n if (this.plans.length > 0) {\r\n this.DentalPlanItems$.next(this.getFilterPlans('dental'));\r\n this.BenefitPlanItems$.next(this.getFilterPlans('medical'));\r\n isSuccessful = true;\r\n }\r\n } catch (error) {\r\n if (error.status && error.status !== 404) {\r\n this.router.navigate(['/error']);\r\n }\r\n return isSuccessful;\r\n }\r\n }\r\n return isSuccessful;\r\n }\r\n\r\n getFilterPlans(planType: string): Array {\r\n const plansFiltered = this.plans.filter(p => p.planType.toLowerCase().includes(planType));\r\n return plansFiltered;\r\n }\r\n\r\n public getWhosCovered(): Array {\r\n return [\r\n {\r\n value: 'Employee',\r\n text: 'Employee'\r\n },\r\n {\r\n value: 'Employee/Spouse',\r\n text: 'Employee/Spouse'\r\n },\r\n {\r\n value: 'Employee/Family',\r\n text: 'Employee/Family'\r\n },\r\n {\r\n value: 'Employe/Child',\r\n text: 'Employee/Child'\r\n },\r\n {\r\n value: 'Employee/Children',\r\n text: 'Employee/Children'\r\n }\r\n ] as Array;\r\n }\r\n\r\n public getMedicareTypes(): Array {\r\n return [\r\n this.medicarePartA,\r\n this.medicarePartB,\r\n this.medicareBoth\r\n ] as Array;\r\n }\r\n\r\n public getMedicareTypeForPartEffectiveDates(partA: string, partB: string): ISingleDropdownItem {\r\n const isPartA = !!partA;\r\n const isPartB = !!partB;\r\n\r\n if (isPartA && isPartB) {\r\n return this.medicareBoth;\r\n } else if (isPartA) {\r\n return this.medicarePartA;\r\n } else if (isPartB) {\r\n return this.medicarePartB;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getRemovalReasons(): Array {\r\n return [\r\n {\r\n value: 'CobraTFNP',\r\n text: 'Cobra Termination for Non-payment'\r\n },\r\n {\r\n value: 'Deceased',\r\n text: 'Deceased'\r\n },\r\n {\r\n value: 'TOE',\r\n text: 'Termination of Employment'\r\n },\r\n {\r\n value: 'CobraE',\r\n text: 'Cobra Expired'\r\n },\r\n {\r\n value: 'MemberReq',\r\n text: 'Member’s Request'\r\n },\r\n {\r\n value: 'NeverEffective',\r\n text: 'Never Effective'\r\n }\r\n ] as Array;\r\n }\r\n\r\n public getMemberTerminationReasons(): Array {\r\n return [\r\n {\r\n value: 'Qualif Event-Member Term',\r\n text: 'Qualifying Event - Member Termination'\r\n },\r\n {\r\n value: 'Mbr No Longer Eligible',\r\n text: 'Member No Longer Eligible for Coverage'\r\n },\r\n {\r\n value: 'Death',\r\n text: 'Death'\r\n },\r\n {\r\n value: 'Termination of Benefits',\r\n text: 'Termination of Benefits'\r\n },\r\n {\r\n value: 'Voluntary Withdrawal',\r\n text: 'Voluntary Withdrawal'\r\n },\r\n {\r\n value: 'No Reason Given',\r\n text: 'No Reason Given'\r\n },\r\n {\r\n value: 'Never Effective',\r\n text: 'Never Effective'\r\n },\r\n {\r\n value: 'Subscriber newborn cancellation',\r\n text: 'Subscriber newborn cancellation'\r\n },\r\n {\r\n value: 'Fraud Cancel',\r\n text: 'Fraud Cancel'\r\n },\r\n {\r\n value: 'Fraud Term',\r\n text: 'Fraud Term'\r\n }\r\n ] as Array;\r\n }\r\n\r\n public getCoverageOptions() {\r\n return [\r\n {\r\n value: 'medicalPlanName',\r\n text: 'Medical'\r\n },\r\n {\r\n value: 'dentalPlanName',\r\n text: 'Dental'\r\n }\r\n ] as Array;\r\n }\r\n\r\n public getRaceOptions(): Array {\r\n return [\r\n {\r\n value: 'R5',\r\n text: 'White'\r\n },\r\n {\r\n value: 'R3',\r\n text: 'Black or African American'\r\n },\r\n {\r\n value: 'R1',\r\n text: 'American Indian or Alaska Native'\r\n },\r\n {\r\n value: 'R2.01',\r\n text: 'Asian Indian'\r\n },\r\n {\r\n value: 'R2.06',\r\n text: 'Chinese'\r\n },\r\n {\r\n value: 'R2.08',\r\n text: 'Filipino'\r\n },\r\n {\r\n value: 'R2.11',\r\n text: 'Japanese'\r\n },\r\n {\r\n value: 'R2.12',\r\n text: 'Korean'\r\n },\r\n {\r\n value: 'R2.19',\r\n text: 'Vietnamese'\r\n },\r\n {\r\n value: 'R2',\r\n text: 'Other Asian'\r\n },\r\n {\r\n value: 'R4.01.001',\r\n text: 'Native Hawaiian'\r\n },\r\n {\r\n value: 'R4.02.001',\r\n text: 'Guamanian or Chamorro'\r\n },\r\n {\r\n value: 'R4.01.002',\r\n text: 'Samoan'\r\n },\r\n {\r\n value: 'R4.04',\r\n text: 'Other Pacific Islander'\r\n }\r\n ];\r\n }\r\n\r\n public getEthnicityOptions(): Array {\r\n return [\r\n {\r\n value: 'E2',\r\n text: 'No, not of Hispanic, Latino/a, or Spanish Origin'\r\n },\r\n {\r\n value: 'E1.02',\r\n text: 'Yes, Mexican, Mexican American, Chicano/a'\r\n },\r\n {\r\n value: 'E1.06',\r\n text: 'Yes, Puerto Rican'\r\n },\r\n {\r\n value: 'E1.07',\r\n text: 'Yes, Cuban'\r\n },\r\n {\r\n value: 'E1',\r\n text: 'Yes, Another Hispanic, Latino/a, or Spanish Origin'\r\n }\r\n ];\r\n }\r\n\r\n getAvailableTermDates(): ISingleDropdownItem[] {\r\n const date_today = new Date();\r\n const termDatesAvaliable: ISingleDropdownItem[] = [];\r\n\r\n for (let i = 0; i < 4; i++) {\r\n termDatesAvaliable.push({\r\n value: new Date(date_today.getFullYear(), date_today.getMonth() + i, 1).toLocaleDateString(),\r\n text: new Date(date_today.getFullYear(), date_today.getMonth() + i, 1).toLocaleDateString()\r\n });\r\n }\r\n\r\n return termDatesAvaliable;\r\n }\r\n\r\n getAvailableFutureEffectiveTermDates(): ISingleDropdownItem[] {\r\n const date_today = new Date();\r\n const termDatesAvaliable: ISingleDropdownItem[] = [];\r\n for (let i = 1; i < 4; i++) {\r\n termDatesAvaliable.push({\r\n value: new Date(date_today.getFullYear(), date_today.getMonth() + i, 1).toLocaleDateString(),\r\n text: new Date(date_today.getFullYear(), date_today.getMonth() + i, 1).toLocaleDateString()\r\n });\r\n }\r\n return termDatesAvaliable;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, EMPTY, Observable } from 'rxjs';\r\nimport { IPlanInfo } from '../../models/plan-info';\r\nimport { ICdhPlanInfo } from '../../models/cdhp-plan-info.model';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PlansApiService {\r\n public cdhpPlanInfo$: BehaviorSubject> = new BehaviorSubject>([]);\r\n public earlyAccessHRP = 'false';\r\n constructor(private http: HttpClient) {}\r\n\r\n public getPlans(accountNumber: string = null, effectiveDate: Date = null): Observable> {\r\n if (accountNumber && effectiveDate) {\r\n this.earlyAccessHRP = this.getLocalStorageInfo(AppConstants.EARLY_ACCESS_HRP_KEY);\r\n if (this.earlyAccessHRP === 'true') {\r\n effectiveDate = new Date(effectiveDate.getFullYear(), effectiveDate.getMonth() + 1, 1);\r\n }\r\n const url = `api/Plans/${accountNumber}/${effectiveDate.toISOString().slice(0, 10)}/GetPlans`;\r\n return this.http.get>(url);\r\n }\r\n return EMPTY;\r\n }\r\n\r\n public getCdhPlans(\r\n accountNumber: string = null,\r\n effectiveDate: string = null,\r\n hrpId: string = null\r\n ): Observable {\r\n this.cdhpPlanInfo$.next([]);\r\n if (accountNumber && effectiveDate && hrpId) {\r\n const url = `/api/EmployerPlanCdhp/${accountNumber}/${effectiveDate}/${hrpId}/GetCdhpPlans`;\r\n return this.http.get(url).pipe(\r\n tap((cdhpPlan: ICdhPlanInfo[]) => {\r\n this.cdhpPlanInfo$.next(cdhpPlan);\r\n }),\r\n catchError((err) => {\r\n this.cdhpPlanInfo$.next([]);\r\n return EMPTY;\r\n })\r\n );\r\n }\r\n return EMPTY;\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, EMPTY, Observable } from 'rxjs';\r\nimport { IPlanInfo } from '../../models/plan-info';\r\nimport { PlansApiService } from './plans-api.service';\r\nimport { ICdhPlan } from '../../models/cdhp-plan.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PlansService {\r\n public cdhpInfo$: BehaviorSubject = new BehaviorSubject(null);\r\n constructor(private plansApiService: PlansApiService) {}\r\n\r\n public getPlans(accountNumber: string = null, effectiveDate: Date = null): Observable> {\r\n if (accountNumber && effectiveDate) {\r\n return this.plansApiService.getPlans(accountNumber, effectiveDate);\r\n }\r\n return EMPTY;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { IEmployeeDataInfo } from '../models/submit-to-api/employee-data-info';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeFormApiService {\r\n protected headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n public urlEmployee: string;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n\r\n public submitEmployeeInfo(employeeData: IEmployeeDataInfo): Observable {\r\n this.urlEmployee = `api/AddEmployee/SubmitAddEmployee`;\r\n return this.http.post(this.urlEmployee,\r\n JSON.stringify(employeeData, (key, value) => {if (value !== null) {return value; }}),\r\n { headers: this.headers })\r\n .pipe(\r\n map((result: string) => JSON.stringify({ isSuccessful: result, statusCode: '200', message: 'success' })\r\n ),\r\n catchError((error, caught) => {\r\n return of(JSON.stringify({ isSuccessful: false, statusCode: error.status, message: error.error }));\r\n })\r\n );\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { IEmployeeForm } from '../models/employee-form';\r\nimport { IContactInfo, IDependentInfo, IEmployeeInfo, IBenefitSelection } from '../models';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { SpinnerService } from 'src/app/_common/services/spinner.service';\r\nimport { finalize, map } from 'rxjs/operators';\r\nimport { throwError as observableThrowError } from 'rxjs';\r\nimport { EmployeeFormApiService } from './employee-form-api.service';\r\nimport { IOUMGeneralResponse } from 'src/app/oum/_common/models/oum-general-response.interface';\r\nimport { DebuggingService } from 'src/app/layout/debugging/debugging.service';\r\nimport { Router } from '@angular/router';\r\nimport { IEmployeeDataInfo } from '../models/submit-to-api/employee-data-info';\r\nimport { EmployeeInfoContentService } from '../../employee-enrollment/application-review/employee-info-content.service';\r\nimport { SavedApplicationsService } from 'src/app/manage-my-group/saved-applications/_common/services/saved-applications.service';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeFormService {\r\n private _employeeFormValues: IEmployeeForm = {};\r\n employeeFormValues$ = new BehaviorSubject(this._employeeFormValues);\r\n employeeInfoValues$ = new BehaviorSubject(this._employeeFormValues.employeeInfo);\r\n private generalResponse: IOUMGeneralResponse;\r\n protected headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n private idSavedEmployee: number;\r\n isFormSectionSaved$ = new BehaviorSubject(false);\r\n public newDependentForm = false;\r\n employeeFormValuesCopy$ = new BehaviorSubject(this._employeeFormValues);\r\n constructor(\r\n public spinnerService: SpinnerService,\r\n private employeeFormApiService: EmployeeFormApiService,\r\n private debuggingService: DebuggingService,\r\n private router: Router,\r\n private employeeInfoContent: EmployeeInfoContentService,\r\n private savedApplicationsService: SavedApplicationsService\r\n ) { }\r\n\r\n saveContactInfo(contactInfo: IContactInfo): void {\r\n this._employeeFormValues = {\r\n ...this.employeeFormValues$.getValue(),\r\n contactInfo: contactInfo\r\n };\r\n this.employeeFormValues$.next(this._employeeFormValues);\r\n this.updateFormSection(true);\r\n }\r\n\r\n saveDependentsInfo(dependentsInfo: IDependentInfo[]): void {\r\n this._employeeFormValues = {\r\n ...this.employeeFormValues$.getValue(),\r\n dependentsInfo: dependentsInfo\r\n };\r\n this.employeeFormValues$.next(this._employeeFormValues);\r\n }\r\n\r\n saveEmployeeInfo(employeeInfo: IEmployeeInfo): void {\r\n this._employeeFormValues = {\r\n ...this.employeeFormValues$.getValue(),\r\n employeeInfo: employeeInfo\r\n };\r\n this.employeeInfoValues$.next(employeeInfo);\r\n this.employeeFormValues$.next(this._employeeFormValues);\r\n this.updateFormSection(true);\r\n }\r\n\r\n saveBenefitSelection(benefitSelection: IBenefitSelection): void {\r\n this._employeeFormValues = {\r\n ...this.employeeFormValues$.getValue(),\r\n benefitSelection: benefitSelection\r\n };\r\n this._employeeFormValues.benefitSelection = benefitSelection;\r\n this.updateFormSection(true);\r\n this.employeeFormValues$.next(this._employeeFormValues);\r\n }\r\n\r\n public handleError(error: any): Observable {\r\n const errMsg = (error.message) ? error.message :\r\n error.status ? `${error.status} - ${error.statusText}` : 'Server error';\r\n return observableThrowError(errMsg);\r\n }\r\n\r\n postEmployeeForm(values: IEmployeeForm): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n return this.employeeFormApiService.submitEmployeeInfo(this.createEmployeeDataInfo(values))\r\n .pipe(\r\n map((response: string) => {\r\n return response;\r\n }),\r\n finalize(() => {\r\n this.spinnerService.hideProgressSpinner();\r\n })\r\n );\r\n }\r\n\r\n submit(): void { // Final Review New Standard App Submission\r\n if (this.debuggingService.standardApplication.submitEmployee.simulateApiCallFail) {\r\n this.router.navigate(['/addEmployee/standardApplication/review/submit-error']);\r\n } else {\r\n this.postEmployeeForm(this.employeeFormValues$.getValue()).subscribe(result => {\r\n this.generalResponse = JSON.parse(result);\r\n if (this.generalResponse.message === 'success') {\r\n this.softDeleteSavedApplication();\r\n this.newApplication();\r\n this.router.navigate(['/addEmployee/standardApplication/review/submit-success']);\r\n } else {\r\n this.newApplication();\r\n this.router.navigate(['/addEmployee/standardApplication/review/submit-error']);\r\n }\r\n });\r\n }\r\n }\r\n\r\n saveEmployeeApplication(): void {\r\n this.updateFormSection(false);\r\n if (!this.debuggingService.standardApplication.saveEmployeeApp.simulateApiCallFail) {\r\n this.idSavedEmployee = this.getIdEmployeeLocalStorage();\r\n if (!!this.idSavedEmployee) {\r\n this.updateSavedEmployeeApplication();\r\n } else {\r\n this.saveNewEmployeeApplication();\r\n }\r\n } else {\r\n this.router.navigate(['/addEmployee/standardApplication/review/submit-error']);\r\n }\r\n }\r\n\r\n saveNewEmployeeApplication(): void {\r\n this.savedApplicationsService.saveEmployeeApplication(\r\n this.employeeFormValues$.getValue())\r\n .subscribe(result => {\r\n this.generalResponse = JSON.parse(result);\r\n this.generalResponse.message === 'success'\r\n ? this.router.navigate(['/savedApplications'])\r\n : this.router.navigate(['/addEmployee/standardApplication/review/submit-error']);\r\n });\r\n }\r\n\r\n updateSavedEmployeeApplication(): void {\r\n this.savedApplicationsService.updateSavedEmployeeApplication(\r\n this.employeeFormValues$.getValue(),\r\n this.idSavedEmployee)\r\n .subscribe(result => {\r\n this.generalResponse = JSON.parse(result);\r\n this.generalResponse.message === 'success'\r\n ? this.router.navigate(['/savedApplications'])\r\n : this.router.navigate(['/addEmployee/standardApplication/review/submit-error']);\r\n });\r\n }\r\n\r\n public createEmployeeDataInfo(employeeData: IEmployeeForm): IEmployeeDataInfo {\r\n return this.employeeInfoContent.parseToEmployeeDataInfo(employeeData);\r\n }\r\n\r\n public softDeleteSavedApplication(): any {\r\n this.idSavedEmployee = this.getIdEmployeeLocalStorage();\r\n if (!!this.idSavedEmployee) {\r\n this.savedApplicationsService.deleteSelectedEmployee(this.idSavedEmployee).\r\n subscribe(success => success);\r\n }\r\n }\r\n\r\n newApplication(): void {\r\n this._employeeFormValues = {};\r\n this.employeeFormValues$.next(this._employeeFormValues);\r\n this.employeeInfoValues$.next(this._employeeFormValues?.employeeInfo);\r\n localStorage.removeItem(AppConstants.SAVED_APP_CURRENT_EMPLOYEE);\r\n }\r\n\r\n async resumeSavedEmployee(employeeForm: IEmployeeForm): Promise {\r\n let savedSuccess = false;\r\n if (!!employeeForm) {\r\n this.employeeInfoValues$.next(employeeForm?.employeeInfo);\r\n this.employeeFormValues$.next(employeeForm);\r\n savedSuccess = true;\r\n }\r\n return savedSuccess;\r\n }\r\n\r\n getIdEmployeeLocalStorage() {\r\n return JSON.parse(localStorage.getItem(AppConstants.SAVED_APP_CURRENT_EMPLOYEE))?.id;\r\n }\r\n\r\n updateFormSection(isSaved: boolean) {\r\n this.isFormSectionSaved$.next(isSaved);\r\n }\r\n\r\n copyEmployee(): void {\r\n const employeeCopy: IEmployeeForm = {...this.employeeFormValues$.getValue()};\r\n this.employeeFormValuesCopy$.next(employeeCopy);\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { combineLatest, race, Subscription } from 'rxjs';\r\nimport { ManageMyGroupDropdownService } from 'src/app/manage-my-group/_common/services/manage-my-group-dropdown.service';\r\nimport { UserInfoService } from 'src/app/_services/user-info-service/userInfo.service';\r\nimport {\r\n IBenefitSelection,\r\n IContactInfo,\r\n IEmployeeForm, IEmployeeInfo as EmployeeDataForm, IPlanInfo, MedicareCoverage,\r\n IDependentInfo\r\n} from '../../_common/models';\r\nimport { IAddressInfo } from '../../_common/models/submit-to-api/address-info';\r\nimport { IContactDataInfo } from '../../_common/models/submit-to-api/contact-info';\r\nimport { IEmployeeDataInfo } from '../../_common/models/submit-to-api/employee-data-info';\r\nimport { IEmployeeInfo } from '../../_common/models/submit-to-api/employee-info';\r\nimport { IMedicareDataInfo } from '../../_common/models/submit-to-api/medicare-Info';\r\nimport { IPhoneNumberDataInfo } from '../../_common/models/submit-to-api/phone-number-info';\r\nimport { IProductDataInfo } from '../../_common/models/submit-to-api/products-info';\r\nimport { ISubscriberDataInfo, ISubscriberDataInfoRel } from '../../_common/models/submit-to-api/subscriber-info';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport { GenderService } from 'src/app/_common/services/gender.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeInfoContentService implements OnDestroy {\r\n private subscriptions: Subscription[] = [];\r\n private accountId: string;\r\n private today: Date = new Date();\r\n private effectiveDateOfCoverage: Date;\r\n private healthPlansFromService: IPlanInfo[] = [];\r\n private dentalPlansFromService: IPlanInfo[] = [];\r\n private healthPlanId: string;\r\n private dentalPlanId: string;\r\n private cdhpToggle: boolean;\r\n private raceEthnicityToggle: boolean;\r\n\r\n constructor(\r\n private dropdownService: ManageMyGroupDropdownService,\r\n public userInfoService: UserInfoService,\r\n private sitecoreContentService: SitecoreContentService,\r\n private genderService: GenderService,\r\n ) {\r\n combineLatest([\r\n this.sitecoreContentService.getSiteCoreToggle('CdhpToggle'),\r\n this.sitecoreContentService.getSiteCoreToggle('EmployerPortal_AddRaceEthnicity_Toggle')\r\n ]).subscribe(([cdhpToggle, raceEthnicityToggle]) => {\r\n this.cdhpToggle = cdhpToggle;\r\n this.raceEthnicityToggle = raceEthnicityToggle;\r\n });\r\n }\r\n\r\n public parseToEmployeeDataInfo(employeeData: IEmployeeForm): IEmployeeDataInfo {\r\n this.getPlansFromService();\r\n\r\n const numberOfPeople = 1;\r\n this.accountId = employeeData?.employeeInfo?.subAccount;\r\n this.effectiveDateOfCoverage = new Date(employeeData.employeeInfo.effectiveDateOfCoverage);\r\n\r\n const employeeContent: IEmployeeDataInfo = {\r\n subscriber: this.raceEthnicityToggle ? this.parseToSubscriberRel(employeeData) : this.parseToSubscriber(employeeData),\r\n dependents: employeeData.dependentsInfo !== undefined\r\n ? this.raceEthnicityToggle ? this.parseToDependentInfoRel(employeeData) : this.parseToDependentInfo(employeeData)\r\n : null,\r\n employee: this.parseToBasicEmployeeInfo(employeeData.employeeInfo),\r\n contact: this.parseToContactInfo(employeeData?.contactInfo),\r\n receivedDate: this.today.toISOString().slice(0, 10),\r\n totalNumberOfPeople: employeeData.dependentsInfo !== undefined\r\n ? numberOfPeople + employeeData.dependentsInfo.length\r\n : numberOfPeople\r\n } as IEmployeeDataInfo;\r\n return employeeContent;\r\n }\r\n\r\n private getPlansFromService(): void {\r\n this.subscriptions.push(\r\n this.dropdownService.BenefitPlanItems$.\r\n subscribe((plans) => {\r\n if (plans) {\r\n this.healthPlansFromService = plans;\r\n }\r\n })\r\n );\r\n this.subscriptions.push(\r\n this.dropdownService.DentalPlanItems$.\r\n subscribe((plans) => {\r\n if (plans) {\r\n this.dentalPlansFromService = plans;\r\n }\r\n })\r\n );\r\n }\r\n\r\n private getPlanID(healthPlanName: string, dentalPlanName: string): void {\r\n this.healthPlanId = this.healthPlansFromService\r\n .filter(plan => plan.planDescription === healthPlanName)\r\n .map((data) => {\r\n return data.planId;\r\n })[0];\r\n\r\n this.dentalPlanId = this.dentalPlansFromService\r\n .filter(plan => plan.planDescription === dentalPlanName)\r\n .map((data) => {\r\n return data.planId;\r\n })[0];\r\n }\r\n\r\n public parseToContactInfo(contactInfo: IContactInfo): IContactDataInfo {\r\n const phoneNumbers: IPhoneNumberDataInfo[] = [];\r\n if (contactInfo?.primaryPhone !== undefined) {\r\n phoneNumbers.push({\r\n phoneType: 'Primary',\r\n number: contactInfo?.primaryPhone\r\n });\r\n }\r\n\r\n if (contactInfo?.secondaryPhone !== undefined) {\r\n phoneNumbers.push({\r\n phoneType: 'Secondary',\r\n number: contactInfo?.secondaryPhone\r\n });\r\n }\r\n\r\n return {\r\n addresses: [{\r\n addressType: 'Primary',\r\n address1: contactInfo?.address,\r\n address2: contactInfo?.addressTwo,\r\n city: contactInfo?.city,\r\n state: contactInfo?.state,\r\n zip: contactInfo?.zipCode,\r\n } as IAddressInfo],\r\n phoneNumbers: phoneNumbers.length > 0 ? phoneNumbers : null,\r\n email: contactInfo?.email\r\n } as IContactDataInfo;\r\n }\r\n\r\n public parseToMedicareInformationOfDependent(medicareCoverage: MedicareCoverage): IMedicareDataInfo {\r\n return {\r\n isEligible: medicareCoverage.hasMedicareCoverage,\r\n medicareNumber: medicareCoverage.medicareCardNumber,\r\n partAEffectiveDate: medicareCoverage?.partAEffectiveDate ?? '',\r\n partBEffectiveDate: medicareCoverage?.partBEffectiveDate ?? '',\r\n } as IMedicareDataInfo;\r\n }\r\n\r\n public parseToProductsOfDependent(\r\n subscriberBenefitSelection: IBenefitSelection,\r\n benefitSelection: IBenefitSelection): IProductDataInfo[] {\r\n this.getPlanID(subscriberBenefitSelection.healthPlan, subscriberBenefitSelection?.dentalPlan);\r\n const products: IProductDataInfo[] = [];\r\n if (!!benefitSelection?.healthPlan && benefitSelection?.healthPlan !== 'Waive Coverage' &&\r\n (benefitSelection?.healthPlan === 'Same as subscriber' && subscriberBenefitSelection?.healthPlan !== 'Waive Coverage')) {\r\n products.push({\r\n effectiveDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n contractType: 'MED',\r\n product: this.healthPlanId,\r\n accountId: this.accountId,\r\n requiredStartDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10)\r\n });\r\n }\r\n if (!!benefitSelection?.dentalPlan && benefitSelection?.dentalPlan !== 'Waive Coverage' &&\r\n (benefitSelection?.dentalPlan === 'Same as subscriber' && subscriberBenefitSelection?.dentalPlan !== 'Waive Coverage')) {\r\n products.push({\r\n effectiveDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n contractType: 'DEN',\r\n product: this.dentalPlanId,\r\n accountId: this.accountId,\r\n requiredStartDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10)\r\n });\r\n }\r\n return products.length > 0 ? products : null;\r\n }\r\n\r\n public parseToMedicareInformationFromForm(benefitSelection: IBenefitSelection): IMedicareDataInfo {\r\n return {\r\n isEligible: benefitSelection.medicareCoverage.hasMedicareCoverage,\r\n medicareNumber: benefitSelection?.medicareCoverage?.medicareCardNumber,\r\n partAEffectiveDate: benefitSelection?.medicareCoverage?.partAEffectiveDate !== null\r\n ? new Date(benefitSelection?.medicareCoverage?.partAEffectiveDate).toISOString().slice(0, 10)\r\n : '',\r\n partBEffectiveDate: benefitSelection?.medicareCoverage?.partBEffectiveDate !== null\r\n ? new Date(benefitSelection?.medicareCoverage?.partBEffectiveDate).toISOString().slice(0, 10)\r\n : '',\r\n } as IMedicareDataInfo;\r\n }\r\n\r\n public parseToProductsFromForm(benefitSelection: IBenefitSelection): IProductDataInfo[] {\r\n this.getPlanID(benefitSelection?.healthPlan, benefitSelection?.dentalPlan);\r\n const products: IProductDataInfo[] = [];\r\n\r\n if (!!benefitSelection?.healthPlan && benefitSelection?.healthPlan !== 'Waive Coverage') {\r\n products.push({\r\n effectiveDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n contractType: 'MED',\r\n product: this.healthPlanId,\r\n cdhProduct: this.cdhpToggle ? benefitSelection.cdhProduct : '',\r\n accountId: this.accountId,\r\n requiredStartDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n });\r\n }\r\n if (!!benefitSelection?.dentalPlan && benefitSelection?.dentalPlan !== 'Waive Coverage') {\r\n products.push({\r\n effectiveDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n contractType: 'DEN',\r\n product: this.dentalPlanId,\r\n accountId: this.accountId,\r\n requiredStartDate: this.effectiveDateOfCoverage.toISOString().slice(0, 10),\r\n });\r\n }\r\n return products.length > 0 ? products : null;\r\n }\r\n\r\n private parseToBasicEmployeeInfo(employeeData: EmployeeDataForm): IEmployeeInfo {\r\n return {\r\n groupNumber: employeeData.accountNumber,\r\n sectionNumber: employeeData.subAccount,\r\n employeeId: employeeData.employeeID,\r\n employmentLocation: employeeData.employeeLocation,\r\n isMarried: employeeData?.maritalStatus === 'Married' ? true : false,\r\n marriageDate: !!employeeData?.dateOfMarriage\r\n ? new Date(employeeData?.dateOfMarriage).toISOString().slice(0, 10)\r\n : null\r\n } as IEmployeeInfo;\r\n }\r\n\r\n private parseToSubscriber(employeeData: IEmployeeForm): ISubscriberDataInfo {\r\n const subscriberDataInfo = {\r\n isDependent: false,\r\n lastName: employeeData.employeeInfo?.lastName,\r\n middleName: employeeData.employeeInfo?.middleName ?? '',\r\n firstName: employeeData.employeeInfo?.firstName,\r\n dateOfBirth: new Date(employeeData.employeeInfo.dateOfBirth).toISOString().slice(0, 10),\r\n ssn: employeeData.employeeInfo?.socialSecurityNumber.replace(/-/g, ''),\r\n gender: this.getValidGender(employeeData.employeeInfo?.gender),\r\n medicareInformation: employeeData?.benefitSelection?.medicareCoverage?.hasMedicareCoverage === true\r\n ? this.parseToMedicareInformationFromForm(employeeData.benefitSelection)\r\n : null,\r\n products: this.parseToProductsFromForm(employeeData.benefitSelection),\r\n maritalStatus: employeeData?.employeeInfo?.maritalStatus ?? null,\r\n dependent: false,\r\n loggedInUserId: this.userInfoService.getLoggedInUserId(),\r\n accountNumber: employeeData.employeeInfo?.accountNumber,\r\n subaccountNumber: employeeData.employeeInfo?.subAccount\r\n } as ISubscriberDataInfo;\r\n\r\n return subscriberDataInfo;\r\n }\r\n\r\n private parseToSubscriberRel(employeeData: IEmployeeForm): ISubscriberDataInfoRel {\r\n const subscriberDataInfo = {\r\n isDependent: false,\r\n lastName: employeeData.employeeInfo?.lastName,\r\n middleName: employeeData.employeeInfo?.middleName ?? '',\r\n firstName: employeeData.employeeInfo?.firstName,\r\n dateOfBirth: new Date(employeeData.employeeInfo.dateOfBirth).toISOString().slice(0, 10),\r\n ssn: employeeData.employeeInfo?.socialSecurityNumber.replace(/-/g, ''),\r\n gender: this.getValidGender(employeeData.employeeInfo?.gender),\r\n medicareInformation: employeeData?.benefitSelection?.medicareCoverage?.hasMedicareCoverage === true\r\n ? this.parseToMedicareInformationFromForm(employeeData.benefitSelection)\r\n : null,\r\n products: this.parseToProductsFromForm(employeeData.benefitSelection),\r\n maritalStatus: employeeData?.employeeInfo?.maritalStatus ?? null,\r\n dependent: false,\r\n loggedInUserId: this.userInfoService.getLoggedInUserId(),\r\n accountNumber: employeeData.employeeInfo?.accountNumber,\r\n subaccountNumber: employeeData.employeeInfo?.subAccount\r\n } as ISubscriberDataInfoRel;\r\n\r\n if (this.raceEthnicityToggle) {\r\n subscriberDataInfo.raceOrEthnicity = this.parseRaceEthnicity(employeeData.employeeInfo?.race, employeeData.employeeInfo?.ethnicity);\r\n }\r\n\r\n return subscriberDataInfo;\r\n }\r\n\r\n public parseToDependentInfo(employeeData: IEmployeeForm): ISubscriberDataInfo[] {\r\n const dependentDataInfo: ISubscriberDataInfo[] = employeeData.dependentsInfo.map((dependent: IDependentInfo) => ({\r\n isDependent: true,\r\n dependentType: dependent.relation ?? null,\r\n lastName: dependent.lastName,\r\n middleName: dependent?.middleName ?? null,\r\n firstName: dependent.firstName,\r\n dateOfBirth: new Date(dependent?.dateOfBirth).toISOString().slice(0, 10),\r\n ssn: dependent?.ssn?.replace(/-/g, ''),\r\n gender: this.getValidGender(dependent?.gender),\r\n medicareInformation: dependent.benefitSelection.medicareCoverage.hasMedicareCoverage\r\n ? this.parseToMedicareInformationOfDependent(dependent.benefitSelection.medicareCoverage)\r\n : null,\r\n products: this.parseToProductsOfDependent(employeeData.benefitSelection, dependent.benefitSelection),\r\n maritalStatus: dependent?.relation === 'Spouse' ? 'Married' : 'Single',\r\n dependent: true\r\n }));\r\n\r\n return dependentDataInfo;\r\n }\r\n\r\n public parseToDependentInfoRel(employeeData: IEmployeeForm): ISubscriberDataInfoRel[] {\r\n const dependentDataInfo: ISubscriberDataInfoRel[] = employeeData.dependentsInfo.map((dependent: IDependentInfo) => ({\r\n isDependent: true,\r\n dependentType: dependent.relation ?? null,\r\n lastName: dependent.lastName,\r\n middleName: dependent?.middleName ?? null,\r\n firstName: dependent.firstName,\r\n dateOfBirth: new Date(dependent?.dateOfBirth).toISOString().slice(0, 10),\r\n ssn: dependent?.ssn?.replace(/-/g, ''),\r\n gender: this.getValidGender(dependent?.gender),\r\n raceOrEthnicity: this.parseRaceEthnicity(dependent.race, dependent.ethnicity),\r\n medicareInformation: dependent.benefitSelection.medicareCoverage.hasMedicareCoverage\r\n ? this.parseToMedicareInformationOfDependent(dependent.benefitSelection.medicareCoverage)\r\n : null,\r\n products: this.parseToProductsOfDependent(employeeData.benefitSelection, dependent.benefitSelection),\r\n maritalStatus: dependent?.relation === 'Spouse' ? 'Married' : 'Single',\r\n dependent: true\r\n }));\r\n\r\n return dependentDataInfo;\r\n }\r\n\r\n parseRaceEthnicity(races: string[], ethnicities: string[]): string[] {\r\n const raceEthnicity: string[] = [];\r\n const hasRaceValue = races && races.length > 0;\r\n const hasEthnicityValue = ethnicities && ethnicities.length > 0;\r\n\r\n if (!hasRaceValue && !hasEthnicityValue) {\r\n raceEthnicity.push('7');\r\n }\r\n\r\n if (hasRaceValue) {\r\n raceEthnicity.push(...races.filter(x => x.startsWith('R')));\r\n }\r\n\r\n if (hasEthnicityValue) {\r\n raceEthnicity.push(...ethnicities.filter(x => x.startsWith('E')));\r\n }\r\n\r\n return raceEthnicity;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n getValidGender(currentGender: string): string {\r\n const gender = this.genderService.getValidGender(currentGender.trim());\r\n return gender.name;\r\n }\r\n}\r\n","import {Directive, EventEmitter, HostListener, Output, ViewContainerRef} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appPrint]',\r\n})\r\nexport class PrintDirective {\r\n @Output() printEvent: EventEmitter = new EventEmitter();\r\n\r\n constructor(public viewContainerRef: ViewContainerRef) {\r\n }\r\n\r\n @HostListener('window:keydown.control.p', ['$event'])\r\n showPinned(event: KeyboardEvent) {\r\n this.printEvent.emit(null);\r\n event.preventDefault();\r\n }\r\n}\r\n\r\n","import { IPlanSelection } from './plan-selection.interface';\r\n\r\nexport interface IBenefitSelection {\r\n planSelection: IPlanSelection[];\r\n flexibleSpendingSelection: number;\r\n lifeInsuranceBenefit: string;\r\n}\r\n","import { IPhoneNumber } from './phone-number.interface';\r\n\r\n\r\nexport interface IAddressInformation {\r\n address: string;\r\n address2: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n emailAddress: string;\r\n phoneNumbers: IPhoneNumber[];\r\n}\r\n","import { IBenefitSelection } from './benefit-selection.interface';\r\n\r\nexport interface IDependent {\r\n firstName: string;\r\n middleName: string;\r\n lastName: string;\r\n dependentType: string;\r\n dateOfBirth: string;\r\n effectiveDate?: string;\r\n ssn: string;\r\n gender: string;\r\n memberId: string;\r\n cancelDate: string;\r\n eligibleForMedicare: boolean;\r\n benefitSelection: IBenefitSelection;\r\n removalReason: string;\r\n}\r\n","import { IContactAddress, ISubscriber } from 'src/app/manage-my-group/member-profile/_common/models';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { IEmployee } from '.';\r\nimport { ISavedEmployeeApplication } from 'src/app/manage-my-group/saved-applications/_common/models/saved-applications.interface';\r\nimport { BenefitBooks } from 'src/app/benefit-documents/benefit-books/_common/models/benefit-books.model';\r\nimport { DateService } from 'src/app/_common/services/date.service';\r\n\r\nexport class Employee {\r\n public static getAddress(employee: ISubscriber, addressType: AddressType): IContactAddress {\r\n return (employee?.contactInformation?.contactAddresses || []).find(address => address.addressType.toLowerCase() === addressType);\r\n }\r\n\r\n public static get nameStringifier(): (obj: IEmployee) => string {\r\n return emp => (emp.lastName + ' ' + emp.firstName + ' ')?.toLowerCase() || '';\r\n }\r\n\r\n public static get completeName(): (obj: IEmployee) => string {\r\n return emp => (emp.firstName + ' ' + emp.lastName + ' ')?.toLowerCase() || '';\r\n }\r\n\r\n public static get eligibilityDateMatcher(): (item: IEmployee, filterValue: Date) => boolean {\r\n return (emp, eligibilityDate) => {\r\n return (emp.effectiveDate !== null && new Date(emp.effectiveDate) <= eligibilityDate)\r\n && (emp.cancelDate === null || new Date(emp.cancelDate) > eligibilityDate);\r\n };\r\n }\r\n\r\n public static get statusMatcher(): (item: IEmployee, filterValue: string[]) => boolean {\r\n return (emp, employeeStatus) => employeeStatus.some(status => status === emp.employeeStatus);\r\n }\r\n\r\n public static get subAccountMatcher(): (item: IEmployee, filterValue: IAccountSummary[]) => boolean {\r\n return (item: IEmployee, filterValue: IAccountSummary[]) => {\r\n return !filterValue?.length || filterValue.some(subAccount => subAccount.accountId === item.subAccountNumber);\r\n };\r\n }\r\n\r\n public static get savedAppDateMatcher(): (item: ISavedEmployeeApplication, filterValue: Date) => boolean {\r\n return (emp, savedDateTime) => {\r\n if (!!savedDateTime) {\r\n return (emp.savedDateTime !== null &&\r\n DateService.getDateFormat(emp.savedDateTime, 'MM/dd/yyyy') === DateService.getDateFormat(savedDateTime, 'MM/dd/yyyy'));\r\n } else {\r\n return (emp.savedDateTime !== null &&\r\n new Date(emp.savedDateTime) <= savedDateTime);\r\n }\r\n };\r\n }\r\n\r\n public static get benefitBooksEffectiveDateMatcher(): (item: BenefitBooks, filterValue: Date) => boolean {\r\n return (benefit, startDateTime) => {\r\n return (benefit !== null &&\r\n benefit.benefitDocuments.some(docs =>\r\n DateService.getDateFormat(docs?.effectiveDate, 'MM/dd/yyyy') === DateService.getDateFormat(startDateTime, 'MM/dd/yyyy')));\r\n };\r\n }\r\n}\r\n\r\nexport enum AddressType {\r\n Primary = 'primary',\r\n Mailing = 'mailing'\r\n}\r\n","import { ISubscriberInfo } from './subscriber-info.interface';\r\nimport { IAddressInformation } from './contact-information.interface';\r\nimport { IBenefitSelection } from './benefit-selection.interface';\r\nimport { IDependent } from './dependent.interface';\r\n\r\n\r\nexport interface IEmployee {\r\n hccSubscriberId: string;\r\n firstName: string;\r\n lastName: string;\r\n middleName: string;\r\n dateOfBirth: string;\r\n location: string;\r\n socialSecurityNumber: string;\r\n maritalStatus: string;\r\n gender: string;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n employeeStatus: string;\r\n effectiveDate: string;\r\n amountBilled: string;\r\n amountAdjusted: string;\r\n adjustedReason: string;\r\n memberId: string;\r\n cancelDate: string;\r\n planName: string;\r\n planType?: 'Medical' | 'Dental' | 'BOTH';\r\n network: string;\r\n employeeId: string;\r\n medicalId: string;\r\n dentalId: string;\r\n subscriberIds: ISubscriberInfo[];\r\n contactInformation: IAddressInformation;\r\n benefitSelection: IBenefitSelection;\r\n dependents: IDependent[];\r\n expanded: boolean;\r\n}\r\n","export * from './benefit-selection.interface';\r\nexport * from './contact-information.interface';\r\nexport * from './dependent.interface';\r\nexport * from './employee.interface';\r\nexport * from './phone-number.interface';\r\nexport * from './plan-selection.interface';\r\nexport * from './subscriber-info.interface';\r\nexport * from './roster-filters.interface';\r\n","export interface IPhoneNumber {\r\n phoneType: string;\r\n number: string;\r\n}\r\n","export interface IPlanSelection {\r\n planType: string;\r\n planName: string;\r\n benefit_Plan_Hcc_Id: string;\r\n deductible: string;\r\n copayment: string;\r\n coInsurance: string;\r\n retiree: boolean;\r\n cobra: boolean;\r\n}\r\n","\r\nexport interface RosterFilters {\r\n searchFilterValue: string;\r\n accountId: string[];\r\n subAccountNumbers: string[];\r\n status: string[];\r\n eligibilityDate: Date;\r\n}\r\n\r\nexport enum RosterStatuses {\r\n ALL = 'ALL',\r\n CURRENT = 'Current',\r\n HEALTHWELLNESSONLY = 'Health & Wellness Only',\r\n TERMINATED = 'Terminated',\r\n PROCESSING = 'Processing',\r\n PENDING = 'Pending',\r\n REPAIR = 'Repair',\r\n NOTSPECIFIED = 'Not Specified',\r\n REVIEW = 'Review',\r\n ACTIVE = 'Active'\r\n}\r\n","export interface ISubscriberInfo {\r\n subscriberId: string;\r\n accountType: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IEmployee, RosterFilters, RosterStatuses } from '../../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EmployeeRosterFilterService {\r\n private selectedFilters: RosterFilters = {\r\n searchFilterValue: '',\r\n accountId: [],\r\n subAccountNumbers: [],\r\n status: [],\r\n eligibilityDate: null\r\n };\r\n\r\n constructor() { }\r\n\r\n public get getSelectedRosterFilter(): RosterFilters {\r\n return this.selectedFilters;\r\n }\r\n\r\n public updateSelectedAccountIds(selectedAccountId: string[]): void {\r\n this.selectedFilters.accountId = selectedAccountId;\r\n }\r\n\r\n public updateSelectedSubAccountId(subAccts: string[]): void {\r\n this.selectedFilters.subAccountNumbers = subAccts;\r\n }\r\n\r\n public updateStatus(selectedStatus: string[]): void {\r\n this.selectedFilters.status = selectedStatus;\r\n }\r\n\r\n public updateFilterSearchValue(value: string): void {\r\n this.selectedFilters.searchFilterValue = value;\r\n }\r\n\r\n public updateSelectedEligibilityDate(eligibilityDate: Date): void {\r\n this.selectedFilters.eligibilityDate = eligibilityDate;\r\n }\r\n\r\n public clearAllSelections(): void {\r\n this.selectedFilters = {\r\n searchFilterValue: '',\r\n accountId: [],\r\n subAccountNumbers: [],\r\n status: [],\r\n eligibilityDate: null\r\n };\r\n }\r\n\r\n public filterByOptionsSelected(roster: IEmployee[]): IEmployee[] {\r\n let result = roster;\r\n const eligibilityDate = this.selectedFilters?.eligibilityDate;\r\n const status = this.getStatusList();\r\n if (eligibilityDate) {\r\n result = result.filter(\r\n emp => {\r\n return (emp.effectiveDate !== null && new Date(emp.effectiveDate) <= eligibilityDate)\r\n && (emp.cancelDate === null || new Date(emp.cancelDate) > eligibilityDate);\r\n }\r\n );\r\n }\r\n if (status && status.length > 0) {\r\n const statusList = status.map(s => s.toLowerCase());\r\n result = result.filter(\r\n emp => {\r\n return (emp.employeeStatus && statusList.includes(emp.employeeStatus.toLowerCase()));\r\n }\r\n );\r\n\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getStatusList(): string [] {\r\n const statusList: string[] = [];\r\n this.selectedFilters?.status.forEach((status) => {\r\n switch (status) {\r\n case RosterStatuses.CURRENT:\r\n statusList.push(RosterStatuses.ACTIVE);\r\n break;\r\n case RosterStatuses.PROCESSING:\r\n statusList.push(RosterStatuses.PENDING);\r\n statusList.push(RosterStatuses.REPAIR);\r\n statusList.push(RosterStatuses.NOTSPECIFIED);\r\n statusList.push(RosterStatuses.REVIEW);\r\n break;\r\n default:\r\n statusList.push(status);\r\n break;\r\n }\r\n });\r\n return statusList;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Subscription, Observable, throwError } from 'rxjs';\r\nimport { IEmployee } from '../../models';\r\nimport { EmployerAccountApiService } from 'src/app/_services/employer-account-service/employer-account-api.service';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\nimport { RosterDataRequest } from 'src/app/manage-my-group/_common/models/roster-data-request.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployerRosterApiService implements OnDestroy {\r\n private subscription: Subscription = new Subscription();\r\n private _accountId: string;\r\n public rosterData$: BehaviorSubject> = new BehaviorSubject>([]);\r\n\r\n constructor(private http: HttpClient, public employerAccountApiService: EmployerAccountApiService) {\r\n this.subscription = this.employerAccountApiService.accountSummary$.subscribe(\r\n (accountSummary: IAccountSummary) => {\r\n if (accountSummary?.accountId != null) {\r\n this._accountId = accountSummary.accountId;\r\n }\r\n }\r\n );\r\n }\r\n\r\n public getEmployeeRosters(): Observable> {\r\n const url = 'api/EmployeeRoster/GetSubscriberData';\r\n const subAccounts = localStorage.getItem(AppConstants.USER_OKTA_ASSIGNED_SUBACCOUNTS);\r\n const request: RosterDataRequest = {\r\n accountId: this._accountId,\r\n subAccounts: subAccounts !== 'null' ? subAccounts : null\r\n };\r\n return this.http.post>(url, request).pipe(\r\n tap((rosterData: Array) => {\r\n this.rosterData$.next(rosterData);\r\n }), catchError(this.handleError)\r\n );\r\n }\r\n\r\n private handleError(error: any): Observable {\r\n const errorMessage = (error.message)\r\n ? error.message\r\n : error.status\r\n ? `${error.status} - ${error.statusText}`\r\n : 'Server error';\r\n return throwError(errorMessage);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\r\nimport { SortDirection } from '../../directives/sortable.directive';\r\nimport { debounceTime, map, switchMap } from 'rxjs/operators';\r\nimport { IEmployee, RosterFilters } from '../../models';\r\nimport { EmployeeRosterFilterService } from '../employee-roster-filter-service/employee-roster-filter.service';\r\nimport { EmployerRosterApiService } from './employee-roster-api-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmployeeRosterService implements OnDestroy {\r\n public mockData = '../../../../../../assets/mockData/HUNDRED_Employees_V2.json';\r\n private _searchKeys: (keyof IEmployee)[] = ['firstName', 'lastName', 'medicalId',\r\n 'dentalId', 'hccSubscriberId'];\r\n private employeeRosters: Array = [];\r\n private employeeRosterContent$ = new BehaviorSubject>(this.employeeRosters);\r\n private _search$ = new Subject();\r\n private _total$ = new BehaviorSubject(0);\r\n private _state: State = {\r\n page: 1,\r\n pageSize: 10,\r\n searchTerm: '',\r\n sortColumn: '',\r\n sortDirection: ''\r\n };\r\n private subscriptions: Subscription[] = [];\r\n public noEmployeeFound = false;\r\n public noEmployeeFound$ = new BehaviorSubject(this.noEmployeeFound);\r\n public isTenOrLessRecord = false;\r\n public employeeListSize$ = new BehaviorSubject(this.isTenOrLessRecord);\r\n public isPagination = false;\r\n\r\n constructor(private rosterFilterService: EmployeeRosterFilterService,\r\n private employeeRosterApiService: EmployerRosterApiService) {\r\n\r\n this._search$.pipe(\r\n debounceTime(800),\r\n switchMap(() => this._search())\r\n ).subscribe(result => {\r\n this.employeeRosterContent$.next(result.employeeRosters);\r\n this._total$.next(result.total);\r\n });\r\n this.getEmployeeRosters();\r\n }\r\n\r\n get employeeRosters$() { return this.employeeRosterContent$.asObservable(); }\r\n get total$() { return this._total$.asObservable(); }\r\n get page() { return this._state.page; }\r\n get pageSize() { return this._state.pageSize; }\r\n get searchTerm() { return this._state.searchTerm; }\r\n get searchKeys() { return this._searchKeys; }\r\n\r\n set page(page: number) { this._set({ page }); }\r\n set pageSize(pageSize: number) { this._set({ pageSize }); }\r\n set searchTerm(searchTerm: string) { this._set({ searchTerm }); }\r\n set sortColumn(sortColumn: string) { this._set({ sortColumn }); }\r\n set sortDirection(sortDirection: SortDirection) { this._set({ sortDirection }); }\r\n set searchKeys(keys: (keyof IEmployee)[]) { this._searchKeys = keys; }\r\n\r\n private _set(patch: Partial) {\r\n Object.assign(this._state, patch);\r\n this._search$.next();\r\n }\r\n\r\n private _search(): Observable {\r\n return new Observable(subscriber => {\r\n const { sortColumn, sortDirection, pageSize, page } = this._state;\r\n\r\n // 1. filter based on search field\r\n let employeeRosters = this.employeeRosters.filter(emp =>\r\n matches(emp, this.rosterFilterService.getSelectedRosterFilter, this.searchKeys)\r\n );\r\n\r\n // 2. filter based on filter options if applicable\r\n employeeRosters = this.rosterFilterService.filterByOptionsSelected(employeeRosters);\r\n const total = employeeRosters.length;\r\n\r\n // 3. sort\r\n employeeRosters = sort(employeeRosters, sortColumn, sortDirection);\r\n\r\n // 4. paginate\r\n employeeRosters = employeeRosters.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize);\r\n\r\n subscriber.next({ employeeRosters, total });\r\n });\r\n }\r\n\r\n public getEmployeeRosters(): Observable> {\r\n this.subscriptions.push(this.employeeRosterApiService.rosterData$\r\n .pipe(\r\n map(employees => employees.map(employee => {\r\n return {\r\n ...employee,\r\n firstName: employee.firstName.toLowerCase(),\r\n lastName: employee.lastName.toLowerCase()\r\n };\r\n })\r\n ))\r\n .subscribe(\r\n (data: Array) => {\r\n this.employeeRosters = data;\r\n this.isPagination = data.length > 10;\r\n this._search$.next();\r\n\r\n if (!this.employeeRosters?.length) {\r\n this.noEmployeeFound$.next(false);\r\n }\r\n })\r\n );\r\n return this.employeeRosterContent$;\r\n }\r\n\r\n public sort(): void {\r\n const employeeRosters = sort(this.employeeRosters, this._state.sortColumn, this._state.sortDirection);\r\n this.employeeRosterContent$.next(employeeRosters);\r\n this._total$.next(employeeRosters.length);\r\n }\r\n\r\n public updateFilterSearchValue(searchOptionValue: string): void {\r\n this.rosterFilterService.updateFilterSearchValue(searchOptionValue);\r\n }\r\n\r\n public updateAccountInfoFilterOption(data: string[], filterName: string): void {\r\n if (filterName && filterName.toLowerCase() === 'account') {\r\n this.rosterFilterService.updateSelectedAccountIds(data);\r\n } else {\r\n this.rosterFilterService.updateSelectedSubAccountId(data);\r\n }\r\n }\r\n\r\n public updateStatusOption(data: string[]): void {\r\n this.rosterFilterService.updateStatus(data);\r\n }\r\n\r\n public updateEligibilityDateFilterOption(eligibilityDate: Date): void {\r\n this.rosterFilterService.updateSelectedEligibilityDate(eligibilityDate);\r\n }\r\n\r\n public clearAllSelections(): void {\r\n this.rosterFilterService.clearAllSelections();\r\n }\r\n\r\n public filter(): void {\r\n this._search$.next();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => {\r\n s.unsubscribe();\r\n });\r\n }\r\n}\r\n\r\nfunction matches(emp: IEmployee, rosterFilters: RosterFilters, keys: (keyof IEmployee)[]) {\r\n return !rosterFilters.searchFilterValue\r\n || keys.some(key => emp[key]?.toString()?.toLowerCase()?.includes(rosterFilters.searchFilterValue.toLowerCase()));\r\n}\r\n\r\nfunction sort(employeeRosters: IEmployee[], column: string, direction: string): IEmployee[] {\r\n if (direction === '') {\r\n return employeeRosters;\r\n } else {\r\n return [...employeeRosters].sort((a, b) => {\r\n const res = compare(keyValue(a, column), keyValue(b, column));\r\n return direction === 'asc' ? res : -res;\r\n });\r\n }\r\n}\r\n\r\nfunction keyValue(obj: IEmployee, key: string) {\r\n const sections = key.split('+');\r\n const result = sections.map(section => obj[section]).join();\r\n return result;\r\n}\r\n\r\nfunction compare(v1, v2) {\r\n return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;\r\n}\r\n\r\nexport interface State {\r\n page: number;\r\n pageSize: number;\r\n searchTerm: string;\r\n sortColumn: string;\r\n sortDirection: SortDirection;\r\n}\r\n\r\ninterface SearchResult {\r\n employeeRosters: IEmployee[];\r\n total: 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\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { DebuggingService } from 'src/app/layout/debugging/debugging.service';\r\nimport { ICardOrder, IEmployeeIDCardAddress, IEmployeeIDCardImage, IRequestIdCardRequest } from '../models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderIdCardApiService {\r\n public employeeIDCardImage$: BehaviorSubject = new BehaviorSubject(null);\r\n public employeeIDCardAddress$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(private http: HttpClient, protected debuggingService: DebuggingService) { }\r\n\r\n public getImageLinks(subscriberId: string): Observable {\r\n const url = `api/EmployeeIDCard${this.debuggingService.orderIdCard.mockImageCall ? '/mock' : ''}/${subscriberId}/GetImageLinks`;\r\n return this.http.get(url).pipe(\r\n tap(imageResult => this.employeeIDCardImage$.next(imageResult))\r\n );\r\n }\r\n\r\n public getImage(cardImageRequest: GetCardImageRequest): Observable {\r\n const url = `api/EmployeeIDCard${this.debuggingService.orderIdCard.mockImageCall ? '/mock' : ''}/Image`;\r\n return this.http.post(url, cardImageRequest);\r\n }\r\n\r\n public getOrderIdCardByProductType(requestIdCardData: IRequestIdCardRequest): Observable {\r\n if (this.debuggingService.orderIdCard.simulateOrderIdCardRequestFailure) {\r\n return of(null);\r\n } else {\r\n const url = `api/EmployeeIDCard/RequestIDCard`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n return this.http.post(url, JSON.stringify(requestIdCardData), { headers: headers })\r\n .pipe(catchError(this.handleError));\r\n }\r\n }\r\n\r\n private handleError(error: any): Observable {\r\n const errorMessage = error?.message ? error.message : (error?.status ? `${error.status} - ${error.statusText}` : 'Server error');\r\n return throwError(errorMessage);\r\n }\r\n}\r\n\r\nexport class BlobResource {\r\n name: string;\r\n fileType: string;\r\n data: string;\r\n}\r\n\r\nexport class GetCardImageRequest {\r\n cardId: string;\r\n page: string;\r\n}\r\n","import { IDependentInfo } from './dependent-info';\r\nimport { IPlanSelection } from './plan-selection';\r\n\r\nexport interface IBenefitSelection {\r\n healthPlan: string;\r\n healthPlanCovered: string;\r\n dentalPlan: string;\r\n dentalPlanCovered: string;\r\n medicareType?: string;\r\n medicareNumber?: string;\r\n partAEffectiveDate?: string;\r\n partBEffectiveDate?: string;\r\n planSelection: IPlanSelection[];\r\n eligibleForMedicare: boolean;\r\n hasFlexibleSpending: boolean;\r\n flexibleSpendingSelection: string;\r\n cobraDate: string;\r\n cobra: boolean;\r\n reasonForRemoval?: string;\r\n termEffectiveDate?: string;\r\n cdhProduct?: string;\r\n subAccountNumber?: string;\r\n}\r\n\r\nexport type IMemberProfileBenefitSelection = IBenefitSelection & {\r\n hccSubscriberId: string;\r\n memberId: string;\r\n firstName: string;\r\n lastName: string;\r\n dateOfBirth: string;\r\n ssn: string;\r\n gender: string;\r\n maritalStatus: string;\r\n dependents: IDependentInfo[];\r\n loggedInUserId: string;\r\n effectiveDateOfChange?: string;\r\n accountNumber: string;\r\n};\r\n","import { IBenefitSelection } from './benefit-selection';\r\n\r\nexport interface ICancelCoverage {\r\n coverageTypes: string[];\r\n cancellationReason: string;\r\n terminationDate: string;\r\n receivedDate?: string;\r\n}\r\n\r\nexport type IMemberProfileCancelCoverage = ICancelCoverage & {\r\n benefitSelection: IBenefitSelection;\r\n effectiveDate: string;\r\n hccSubscriberId: string;\r\n firstName: string;\r\n lastName: string;\r\n loggedInUserId: string;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n};\r\n","export interface IContactInfo {\r\n contactAddresses?: IContactAddress[];\r\n emailAddress: string;\r\n phoneNumbers: IPhoneNumber[];\r\n}\r\n\r\nexport interface IContactAddress {\r\n addressType: string;\r\n address1: string;\r\n address2: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n}\r\n\r\nexport interface IPhoneNumber {\r\n phoneType: string;\r\n number: string;\r\n}\r\n\r\nexport interface IContactInformation {\r\n address1?: string;\r\n address2?: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n emailAddress: string;\r\n phoneNumbers: IPhoneNumber[];\r\n}\r\n\r\nexport type IMemberProfileContactInfo = IContactInfo & {\r\n hccSubscriberId: string;\r\n memberId: string;\r\n firstName: string;\r\n lastName: string;\r\n loggedInUserId: string;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n};\r\n\r\nexport interface ISubmitContactInfo {\r\n contactInfo: IContactInfo;\r\n shouldUpdateAddress: boolean;\r\n shouldUpdatePhoneNumbers: boolean;\r\n shouldUpdateEmail: boolean;\r\n}\r\n","import { IBenefitSelection, IMemberProfileBenefitSelection } from './benefit-selection';\r\nimport { IContactInfo } from './contact-info';\r\n\r\nexport interface IDependentInfo {\r\n lastName: string;\r\n middleName: string;\r\n firstName: string;\r\n dependentType: string;\r\n dateOfBirth: string;\r\n ssn: string;\r\n gender: string;\r\n race: string[];\r\n ethnicity: string[];\r\n benefitSelection: IBenefitSelection;\r\n mraApprovalDate: string;\r\n isAddDependent?: boolean;\r\n effectiveDate?: string;\r\n}\r\n\r\nexport interface IMemberProfileDependentInfo {\r\n hccSubscriberId: string;\r\n firstName: string;\r\n lastName: string;\r\n contactInformation: IContactInfo;\r\n benefitSelection: IMemberProfileBenefitSelection;\r\n dependents: IDependentInfo[];\r\n loggedInUserId: string;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n effectiveDateOfPolicy: string;\r\n updateDependent: boolean;\r\n}\r\n","export interface IEmployeeInfo {\r\n lastName: string;\r\n firstName: string;\r\n employeeId: string;\r\n location: string;\r\n dateOfBirth: string;\r\n gender: string;\r\n ssn: string;\r\n maritalStatus: string;\r\n race: string[];\r\n ethnicity: string[];\r\n}\r\n\r\nexport type IMemberProfileEmployee = IEmployeeInfo & {\r\n hccSubscriberId: string;\r\n memberId: string;\r\n loggedInUserId: string;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n raceHasBeenChanged?: boolean;\r\n ethnicityHasBeenChanged?: boolean;\r\n};\r\n\r\nexport interface ISubmitEmployeeInfo {\r\n employeeInfo: IEmployeeInfo;\r\n shouldUpdateName: boolean;\r\n shouldUpdateSsn: boolean;\r\n shouldUpdateDateOfBirth: boolean;\r\n shouldUpdateMaritalStatus: boolean;\r\n shouldUpdateGender: boolean;\r\n shouldUpdateEmployeeLocation: boolean;\r\n shouldUpdateEmployeeId: boolean;\r\n shouldUpdateRace: boolean;\r\n shouldUpdateEthnicity: boolean;\r\n}\r\n","import { IBenefitSelection, IContactInfo, IDependentInfo, IEmployeeInfo, ITerminateCoverage } from './index';\r\n\r\nexport interface IEmployerSubscriberForm {\r\n contactInfo?: IContactInfo;\r\n employeeInfo?: IEmployeeInfo;\r\n dependentsInfo?: IDependentInfo[];\r\n benefitSelection?: IBenefitSelection;\r\n terminate?: ITerminateCoverage;\r\n}\r\n","export * from './benefit-selection';\r\nexport * from './contact-info';\r\nexport * from './dependent-info';\r\nexport * from './plan-selection';\r\nexport * from './subscriber';\r\nexport * from './employee-info';\r\nexport * from './terminate-coverage';\r\nexport * from './other-health-plan-coverage';\r\nexport * from './employer-subscriber-form';\r\nexport * from './cancel-coverage';\r\n","export interface IOtherHealthPlanCoverage {\r\n otherHealthPlanCoverageName: string;\r\n policyHolderLastName: string;\r\n identificationNumber: string;\r\n groupPolicyNumber: string;\r\n effectiveDate: string;\r\n carrierPhoneNumber: string;\r\n}\r\n","export interface IPlanSelection {\r\n planType: string;\r\n planName: string;\r\n benefitPlanHccId: string;\r\n whoIsCovered?: string;\r\n cdhProduct?: string;\r\n cdhProductFriendlyName?: string;\r\n}\r\n\r\n","import { IBenefitSelection, IContactInfo, IContactInformation, IDependentInfo, ITerminateCoverage } from './index';\r\n\r\nexport interface ISubscriber {\r\n hccSubscriberId: string;\r\n memberId: string;\r\n employeeId: string;\r\n firstName: string;\r\n lastName: string;\r\n dateOfBirth: string;\r\n employeeAppStatus: string;\r\n location: string;\r\n ssn: string;\r\n maritalStatus: string;\r\n dateOfMarriage: string;\r\n gender: string;\r\n race: string[];\r\n ethnicity: string[];\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n contractCancelDate: string;\r\n receivedDate: string;\r\n medicalId: string;\r\n dentalId: string;\r\n terminationReason: string;\r\n contactInformation?: IContactInfo;\r\n benefitSelection: IBenefitSelection;\r\n dependents: IDependentInfo[];\r\n terminateCoverage?: ITerminateCoverage;\r\n effectiveDateOfPolicy: string;\r\n loggedInUserId?: string;\r\n effectiveDateOfChange?: Date;\r\n}\r\nexport interface ISubscriberData {\r\n hccSubscriberId: string;\r\n memberId: string;\r\n employeeId: string;\r\n firstName: string;\r\n lastName: string;\r\n dateOfBirth: string;\r\n employeeAppStatus: string;\r\n location: string;\r\n ssn: string;\r\n maritalStatus: string;\r\n dateOfMarriage: string;\r\n gender: string;\r\n race: string[];\r\n ethnicity: string[];\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n contractCancelDate: string;\r\n receivedDate: string;\r\n medicalId: string;\r\n dentalId: string;\r\n terminationReason: string;\r\n contactInformation: IContactInformation;\r\n benefitSelection: IBenefitSelection;\r\n dependents: IDependentInfo[];\r\n terminateCoverage?: ITerminateCoverage;\r\n effectiveDateOfPolicy: string;\r\n}\r\n\r\nexport class Subscriber {\r\n public parseToSubscriber(subscriberData): ISubscriber {\r\n const subscriber: ISubscriber = {...subscriberData};\r\n subscriber.contactInformation.contactAddresses = [{\r\n addressType: 'Primary',\r\n address1: subscriberData.contactInformation.address1,\r\n address2: subscriberData.contactInformation.address2,\r\n city: subscriberData.contactInformation.city,\r\n state: subscriberData.contactInformation.state,\r\n zip: subscriberData.contactInformation.zip\r\n }];\r\n return subscriber;\r\n }\r\n}\r\n","import { IBenefitSelection } from './benefit-selection';\r\n\r\nexport interface ITerminateCoverage {\r\n coverageTypes: string[];\r\n removalReason: string;\r\n termDate: string;\r\n}\r\n\r\nexport type IMemberProfileTerminateCoverage = ITerminateCoverage & {\r\n hccSubscriberId: string;\r\n firstName: string;\r\n lastName: string;\r\n loggedInUserId: string;\r\n benefitSelection: IBenefitSelection;\r\n accountNumber: string;\r\n subAccountNumber: string;\r\n};\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { IEmployee } from '../../../../employee-roster/_common/models';\r\nimport { SubscriberApiService } from '../subscriber-api.service';\r\nimport { ToasterService } from 'src/app/_common/services/toaster-service/toaster.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MemberProfileSelector {\r\n private _selectedMemberProfile: IEmployee;\r\n public get selectedEmployee() { return this._selectedMemberProfile; }\r\n public set selectedEmployee(employee: IEmployee) { this._selectedMemberProfile = employee; }\r\n\r\n constructor(\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private subscriberApiService: SubscriberApiService\r\n ) { }\r\n\r\n viewEmployee(employee: IEmployee): void {\r\n this.subscriberApiService.isMemberInWorkbasket(employee.hccSubscriberId).subscribe((inWorkbasket: boolean) => {\r\n if (!inWorkbasket) {\r\n this.selectedEmployee = employee;\r\n this.router.navigate(['/memberProfile', this.selectedEmployee.hccSubscriberId]);\r\n } else {\r\n this.handleWorkbasketToaster();\r\n }\r\n });\r\n }\r\n\r\n private handleWorkbasketToaster(): void {\r\n this.toasterService.pushToastMessage({\r\n title: 'Sorry, something went wrong.',\r\n message: `
This employee is currently in processing, no updates can be made at this time.`,\r\n icon: 'red-x-mark',\r\n bodyClass: { 'card-body-error': true, 'container-margin': true },\r\n showCloseButton: true,\r\n shouldScrollToToaster: true\r\n });\r\n window.scrollTo(0, 0);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscription, throwError } from 'rxjs';\r\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\r\nimport { DebuggingService } from 'src/app/layout/debugging/debugging.service';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { EmployerAccountApiService } from 'src/app/_services/employer-account-service/employer-account-api.service';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\nimport {\r\n IMemberProfileBenefitSelection, IMemberProfileContactInfo, IMemberProfileDependentInfo, IMemberProfileEmployee,\r\n IMemberProfileTerminateCoverage, ISubscriber, ISubscriberData, Subscriber, IMemberProfileCancelCoverage\r\n} from '../models/index';\r\nimport { IUpdateSubscriberInfoResponse } from './update-subscriber-info.model';\r\nimport { AppConstants } from 'src/app/_common/shared/app.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SubscriberApiService implements OnDestroy {\r\n public earlyAccessHRP = 'false';\r\n private subscriberInfo = {};\r\n public subscriberInfo$: BehaviorSubject = new BehaviorSubject(this.subscriberInfo);\r\n private subscriber: Subscriber = new Subscriber();\r\n private subscription: Subscription = new Subscription();\r\n private _accountId: string;\r\n\r\n protected headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private employerAccountApiService: EmployerAccountApiService,\r\n private sitecoreContentService: SitecoreContentService,\r\n private debuggingService: DebuggingService\r\n ) {\r\n this.subscription = this.employerAccountApiService.accountSummary$.subscribe(\r\n (accountSummary: IAccountSummary) => {\r\n if (accountSummary?.accountId != null) {\r\n this._accountId = accountSummary.accountId;\r\n }\r\n }\r\n );\r\n }\r\n\r\n public handleError(error: any) {\r\n const errorMessage = (error.message)\r\n ? error.message\r\n : error.status\r\n ? `${error.status} - ${error.statusText}`\r\n : 'Server error';\r\n return throwError(errorMessage);\r\n }\r\n\r\n isMemberInWorkbasket(subscriberId: string): Observable {\r\n if (this._accountId) {\r\n const url = `api/EmployeeRoster/${subscriberId}/IsMemberInWorkbasket`;\r\n return this.http.get(url).pipe(\r\n map(data => {\r\n return data;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n }\r\n\r\n getMemberDataWithVersionToggle(subscriberId: string, dentalSubscriberId: string): Observable {\r\n const result = this.sitecoreContentService.getSiteCoreToggle('MemberProfile_UseGetMemberDataWithPolicyCoverage')\r\n .pipe(\r\n switchMap((featureToggle: boolean) => {\r\n let getMemberData: Observable;\r\n if (featureToggle) {\r\n getMemberData = this.getMemberDataV2(subscriberId, dentalSubscriberId);\r\n } else {\r\n getMemberData = this.getMemberData(subscriberId);\r\n }\r\n\r\n return getMemberData;\r\n })\r\n );\r\n return result;\r\n }\r\n\r\n getMemberData(subscriberId: string): Observable {\r\n if (this._accountId) {\r\n const url = `api/EmployeeRoster/${this._accountId}/${subscriberId}/GetMemberData`;\r\n return this.http.get(url).pipe(\r\n map(data => {\r\n return this.subscriber.parseToSubscriber(data);\r\n }),\r\n tap(subscriber => this.subscriberInfo$.next(subscriber)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n }\r\n\r\n getMemberDataV2(subscriberId: string, dentalSubscriberId: string): Observable {\r\n if (this._accountId) {\r\n if (dentalSubscriberId === '') {\r\n dentalSubscriberId = 'null';\r\n }\r\n this.earlyAccessHRP = this.getLocalStorageInfo(AppConstants.EARLY_ACCESS_HRP_KEY);\r\n if (this.earlyAccessHRP === 'true') {\r\n const url = `api/v2/EmployeeRoster/${this._accountId}/${subscriberId}/${dentalSubscriberId}/GetFutureEffectiveMemberData`;\r\n return this.http.get(url).pipe(\r\n map(data => {\r\n return this.subscriber.parseToSubscriber(data);\r\n }),\r\n tap(subscriber => this.subscriberInfo$.next(subscriber)),\r\n catchError(this.handleError)\r\n );\r\n } else {\r\n const url = `api/v2/EmployeeRoster/${this._accountId}/${subscriberId}/${dentalSubscriberId}/GetMemberData`;\r\n return this.http.get(url).pipe(\r\n map(data => {\r\n return this.subscriber.parseToSubscriber(data);\r\n }),\r\n tap(subscriber => this.subscriberInfo$.next(subscriber)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n }\r\n }\r\n\r\n public updateSubscriberInfo(data): void {\r\n this.subscriberInfo = {\r\n ...this.subscriberInfo,\r\n ...data\r\n };\r\n this.subscriberInfo$.next(this.subscriberInfo);\r\n }\r\n\r\n postSubscriberInfo(subscriberData: ISubscriber): Observable {\r\n const url = 'api/Subscriber/UpdateSubscriberInfo';\r\n return this.debuggingService.memberProfile.submitMember.simulateApiCallFail\r\n ? of(JSON.stringify({ isSuccessful: false, message: 'Debugger: Failed to submit member updates', statusCode: '400' }))\r\n : (this.http.post(url, JSON.stringify(subscriberData), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => JSON.stringify({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of(JSON.stringify({ isSuccessful: false, statusCode: error.status, message: error.error }));\r\n })\r\n ));\r\n }\r\n\r\n postUpdateSubscriberName(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberName', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberSsn(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberSsn', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberDateOfBirth(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberDateOfBirth', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberMaritalStatus(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberMaritalStatus', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberGender(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberGender', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberEmployeeLocation(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberEmployeeLocation', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberEmployeeId(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberEmployeeId', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberRaceAndEthnicity(employeeInfo: IMemberProfileEmployee): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberRaceOrEthnicity', JSON.stringify(employeeInfo), { headers: this.headers });\r\n }\r\n\r\n postEmployeeInfo(employeeInfo: IMemberProfileEmployee): Observable {\r\n const url = '/api/MemberProfile/UpdateEmployeeInfo';\r\n return this.http.post(url, JSON.stringify(employeeInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n postUpdateSubscriberAddress(contactInfo: IMemberProfileContactInfo): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberAddress', JSON.stringify(contactInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberPhoneNumbers(contactInfo: IMemberProfileContactInfo): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberPhoneNumbers', JSON.stringify(contactInfo), { headers: this.headers });\r\n }\r\n\r\n postUpdateSubscriberEmail(contactInfo: IMemberProfileContactInfo): Observable {\r\n return this.http.post(\r\n '/api/MemberProfile/UpdateSubscriberEmail', JSON.stringify(contactInfo), { headers: this.headers });\r\n }\r\n\r\n postContactInfo(contactInfo: IMemberProfileContactInfo): Observable {\r\n const url = '/api/MemberProfile/UpdateContactInfo';\r\n return this.http.post(url, JSON.stringify(contactInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n postBenefitSelectionInfo(benefitInfo: IMemberProfileBenefitSelection): Observable {\r\n const url = '/api/MemberProfile/UpdateBenefitInfo';\r\n return this.http.post(url, JSON.stringify(benefitInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n postDependentnfo(dependentInfo: IMemberProfileDependentInfo): Observable {\r\n const url = '/api/MemberProfile/UpdateDependentsInfo';\r\n return this.http.post(url, JSON.stringify(dependentInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n postTerminateCoverageInfo(terminateCoverageInfo: IMemberProfileTerminateCoverage): Observable {\r\n const url = '/api/MemberProfile/UpdateTerminateCoverage';\r\n return this.http.post(url, JSON.stringify(terminateCoverageInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n postCancelCoverageInfo(cancelCoverageInfo: IMemberProfileCancelCoverage): Observable {\r\n const url = '/api/MemberProfile/CancelPolicy';\r\n return this.http.post(url, JSON.stringify(cancelCoverageInfo), { headers: this.headers })\r\n .pipe(\r\n map((result: string) => ({ isSuccessful: result, statusCode: '200', message: 'success' })),\r\n catchError((error) => {\r\n return of({ isSuccessful: false, statusCode: error.status, message: error.error });\r\n }));\r\n }\r\n\r\n getLocalStorageInfo(infoKey: string): any {\r\n const storage = localStorage.getItem(infoKey);\r\n if (storage) {\r\n return JSON.parse(storage);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IEmployeeForm } from 'src/app/manage-my-group/add-employee/standard-application/_common/models';\r\nimport { ISavedEmployeeApplication } from '../models/saved-applications.interface';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SavedApplicationsContentService {\r\n private cdhpToggle: boolean;\r\n\r\n constructor(\r\n private sitecoreContentService: SitecoreContentService\r\n ) {\r\n this.sitecoreContentService.getSiteCoreToggle('CdhpToggle').subscribe((toggle: boolean) => {\r\n this.cdhpToggle = toggle;\r\n });\r\n }\r\n\r\n public parseToEmployeeForm(applicationJson: string): IEmployeeForm {\r\n if (applicationJson) {\r\n return JSON.parse(applicationJson) as IEmployeeForm;\r\n }\r\n }\r\n\r\n public modifySaveAppObject(savedAppArray: ISavedEmployeeApplication[]): ISavedEmployeeApplication[] {\r\n savedAppArray.forEach(item => {\r\n item.cdhProduct = this.cdhpToggle ? this.parseToEmployeeForm(item.applicationJson)?.benefitSelection?.cdhProduct : '';\r\n });\r\n return savedAppArray;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { finalize, map } from 'rxjs/operators';\r\nimport { IEmployeeForm } from 'src/app/manage-my-group/add-employee/standard-application/_common/models';\r\nimport { SpinnerService } from 'src/app/_common/services/spinner.service';\r\nimport { UserInfoService } from 'src/app/_services/user-info-service/userInfo.service';\r\nimport { ISavedEmployeeApplication } from '../models/saved-applications.interface';\r\nimport { SavedApplicationsApiService } from './savedApplicationsService/saved-applications-api.service';\r\nimport { SitecoreContentService } from 'src/app/_services/sitecore-content-service/sitecore-content.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SavedApplicationsService {\r\n private idSavedEmployee: number;\r\n private cdhpToggle: boolean;\r\n\r\n constructor(\r\n public spinnerService: SpinnerService,\r\n private savedApplicationsApiService: SavedApplicationsApiService,\r\n public userInfoService: UserInfoService,\r\n private sitecoreContentService: SitecoreContentService\r\n ) {\r\n this.sitecoreContentService.getSiteCoreToggle('CdhpToggle').subscribe((toggle: boolean) => {\r\n this.cdhpToggle = toggle;\r\n });\r\n }\r\n\r\n saveEmployeeApplication(employeeForm: IEmployeeForm): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n return this.savedApplicationsApiService.saveEmployeeApplication(\r\n this.parseToSavedEmployeeApplication(employeeForm))\r\n .pipe(\r\n map((response: string) => {\r\n return response;\r\n }),\r\n finalize(() => {\r\n this.spinnerService.hideProgressSpinner();\r\n })\r\n );\r\n }\r\n\r\n updateSavedEmployeeApplication(employeeForm: IEmployeeForm, id: number): Observable {\r\n this.spinnerService.showProgressSpinner();\r\n this.idSavedEmployee = id;\r\n return this.savedApplicationsApiService.updateSavedEmployeeApplication(\r\n this.parseToSavedEmployeeApplication(employeeForm))\r\n .pipe(\r\n map((response: string) => {\r\n return response;\r\n }),\r\n finalize(() => {\r\n this.spinnerService.hideProgressSpinner();\r\n })\r\n );\r\n }\r\n\r\n\r\n public parseToEmployeeForm(applicationJson: string): IEmployeeForm {\r\n if (applicationJson) {\r\n return JSON.parse(applicationJson) as IEmployeeForm;\r\n }\r\n }\r\n\r\n public parseToSavedEmployeeApplication(\r\n employeeForm: IEmployeeForm\r\n ): ISavedEmployeeApplication {\r\n const employeeContent: ISavedEmployeeApplication = {\r\n userId: this.userInfoService.getLoggedInUserId(),\r\n accountNumber: employeeForm?.employeeInfo?.accountNumber,\r\n subaccountNumber: employeeForm?.employeeInfo?.subAccount,\r\n ssn: employeeForm?.employeeInfo?.socialSecurityNumber,\r\n applicationType: 'Standard Application',\r\n employeeFirstName: employeeForm?.employeeInfo?.firstName,\r\n employeeLastName: employeeForm?.employeeInfo?.lastName,\r\n applicationJson: this.convertToApplicationJson(employeeForm),\r\n id: this.idSavedEmployee ?? null,\r\n cdhpPlan: this.cdhpToggle ? employeeForm.benefitSelection?.cdhProduct : ''\r\n } as ISavedEmployeeApplication;\r\n return employeeContent;\r\n }\r\n\r\n public convertToApplicationJson(employeeData: IEmployeeForm): string {\r\n return JSON.stringify(employeeData, (key, value) => {if (value !== null) {return value; }});\r\n }\r\n\r\n deleteSelectedEmployee(id: number): Observable {\r\n return this.savedApplicationsApiService.softDeleteSavedApplication(id);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { BehaviorSubject, Observable, of, Subscription, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { DebuggingService } from 'src/app/layout/debugging/debugging.service';\r\nimport { IAccountSummary } from 'src/app/_models';\r\nimport { EmployerAccountApiService } from 'src/app/_services/employer-account-service/employer-account-api.service';\r\nimport { ISavedEmployeeApplication } from '../../models/saved-applications.interface';\r\nimport { SavedApplicationsContentService } from '../saved-applications-content.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SavedApplicationsApiService implements OnDestroy {\r\n private subscriptions: Subscription[] = [];\r\n protected headers = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n public savedApplicationsData$: BehaviorSubject> =\r\n new BehaviorSubject>([]);\r\n public savedEmployeData$: BehaviorSubject> =\r\n new BehaviorSubject>([]);\r\n public accountNumber: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private debuggingService: DebuggingService,\r\n private employerAccountApiService: EmployerAccountApiService,\r\n private savedApplicationsContentService: SavedApplicationsContentService\r\n ) {\r\n this.subscriptions.push(this.employerAccountApiService.accountSummary$.subscribe(\r\n (accountSummary: IAccountSummary) => {\r\n if (accountSummary?.accountId != null) {\r\n this.accountNumber = accountSummary.accountId;\r\n }\r\n }\r\n ));\r\n }\r\n\r\n public saveEmployeeApplication(savedEmployeeData: ISavedEmployeeApplication): Observable {\r\n const urlSaveEmployeeApp = '/api/EmployeeApplication/SaveEmployeeApplication';\r\n return this.http.post(urlSaveEmployeeApp,\r\n JSON.stringify(savedEmployeeData, (key, value) => {if (value !== null) {return value; }}),\r\n { headers: this.headers })\r\n .pipe(\r\n map((result: string) => JSON.stringify({ isSuccessful: result, statusCode: '200', message: 'success' })\r\n ),\r\n catchError((error, caught) => {\r\n return of(JSON.stringify({ isSuccessful: false, statusCode: error.status, message: error.error }));\r\n })\r\n );\r\n }\r\n\r\n public getSavedEmployeeApplications(): Observable {\r\n const url = `/api/EmployeeApplication/GetSavedEmployeeApplications/${this.accountNumber}`;\r\n if (this.debuggingService.savedApplications.simulateNoSavedAppFound) {\r\n return of([]);\r\n }\r\n\r\n return this.http.get(url).pipe(\r\n tap((data: ISavedEmployeeApplication[]) => {\r\n this.savedApplicationsData$.next(\r\n this.savedApplicationsContentService.modifySaveAppObject(data)\r\n );\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n softDeleteSavedApplication(id: number): Observable {\r\n const url = `/api/EmployeeApplication/SoftDeleteSavedEmployeeApplication/${id}`;\r\n return this.http.get(url).pipe(\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public getSavedEmployeeApplicationById(id: number): Observable {\r\n const url = `/api/EmployeeApplication/GetSavedEmployeeApplications/${this.accountNumber}/${id}`;\r\n\r\n return this.http.get(url).pipe(\r\n tap(data => this.savedEmployeData$.next(data)),\r\n catchError(this.handleError)\r\n );\r\n }\r\n\r\n public updateSavedEmployeeApplication(savedEmployeeData: ISavedEmployeeApplication): Observable {\r\n const urlSaveEmployeeApp = '/api/EmployeeApplication/UpdateSavedEmployeeApplication';\r\n return this.http.post(urlSaveEmployeeApp,\r\n JSON.stringify(savedEmployeeData, (key, value) => {if (value !== null) {return value; }}),\r\n { headers: this.headers })\r\n .pipe(\r\n map((result: string) => JSON.stringify({ isSuccessful: result, statusCode: '200', message: 'success' })\r\n ),\r\n catchError((error, caught) => {\r\n return of(JSON.stringify({ isSuccessful: false, statusCode: error.status, message: error.error }));\r\n })\r\n );\r\n }\r\n\r\n public handleError(error: any) {\r\n const errorMessage = (error.message)\r\n ? error.message\r\n : error.status\r\n ? `${error.status} - ${error.statusText}`\r\n : 'Server error';\r\n return throwError(errorMessage);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(subscription => subscription.unsubscribe());\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BrowserService } from '../_services/browser-service/browser.service';\r\n\r\n@Component({\r\n selector: 'app-tealeaf',\r\n templateUrl: './tealeaf.component.html',\r\n styleUrls: ['./tealeaf.component.scss']\r\n})\r\nexport class TealeafComponent implements OnInit {\r\n private tealeafLibrarySrc = 'assets/scripts/tealeaf/tealeaf.js';\r\n private tealeafDependentScripts = [\r\n 'assets/scripts/tealeaf/tealeaf.gestures.js',\r\n 'assets/scripts/tealeaf/defaultconfiguration.js'\r\n ];\r\n private pakoSrc = 'assets/scripts/tealeaf/pako.min.js';\r\n\r\n constructor(private browser: BrowserService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadScriptIntoBrowserService(this.pakoSrc);\r\n const tealeafLibrary: any = this.loadScriptIntoBrowserService(this.tealeafLibrarySrc, true);\r\n if (tealeafLibrary) {\r\n tealeafLibrary.onload = this.loadTealeafDependentScripts.bind(this);\r\n }\r\n }\r\n\r\n public loadScriptIntoBrowserService(filepath: string, appendToTopOfBody: boolean = false): any {\r\n return this.browser.loadScript(filepath, appendToTopOfBody);\r\n }\r\n\r\n public loadTealeafDependentScripts(): void {\r\n this.browser.loadScripts(this.tealeafDependentScripts);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/indent */\r\n// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n apiUrl: 'https://employer.dev.secure.azblue.com',\r\n middlewareUrl: 'https://api.dev.secure.azblue.com/middleware/api/middleware',\r\n corsUrl: 'services.azblue.com',\r\n tokenExpireWarnSeconds: 120,\r\n userInactiveMinutes: 18,\r\n sitecoreToasterAlertsName: 'ToasterAlerts'\r\n};\r\n\r\n/*\r\n * In development mode, to ignore zone related error stack frames such as\r\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\r\n * import the following file, but please comment it out in production mode\r\n * because it will have performance impact when throw error\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\nimport { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport { OKTA_CONFIG } from '@okta/okta-angular';\r\nimport { OktaConfig } from './app/_models/okta-config';\r\n\r\nexport function getBaseUrl() {\r\n return document.getElementsByTagName('base')[0].href;\r\n}\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nfetch('./assets/okta-config.json').then(async res => {\r\n const oktaConfig = await res.json() as OktaConfig;\r\n oktaConfig.redirectUri = window.location.origin + '/implicit/callback';\r\n\r\n platformBrowserDynamic([\r\n { provide: OKTA_CONFIG, useValue: oktaConfig },\r\n { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }\r\n ]).bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n});\r\n","export default \"
\\r\\n \\r\\n
\\r\\n
\\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 default \"\";","export default \"\\r\\n\";","export default \"Select all\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{node.text}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{node.text}}\\r\\n \\r\\n\\r\\n\";","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{node.text}}\\r\\n \\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\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 default \"

\\r\\n For security purposes, you will be logged out
automatically in {{getCountdownText()}}.\\r\\n

\";","export default \"

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{bodyContainer?.title?.text}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

No results were found

\\r\\n

Please double check the spelling or try a different search.

\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n {{model?.HeaderText}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"
\\r\\n
{{model.CardTitle}}
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n
\";","export default \"
\\r\\n {{model?.HeaderText}}\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Search by Last name, First Name or SSN\\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 default \"

{{model?.Caption}}

\";","export default \"
\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Search by Name or Member ID\\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 default \"\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n {{toasterMessage?.title}} \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\\r\\n\\r\\n\\r\\n\";","export default \"

benefit-book-documents-gridview works!

\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n Nurse On Call\\r\\n
\\r\\n
\\r\\n
\\r\\n

Nurse On Call: A service Provided By Alere

\\r\\n

Blue Cross Blue Shield of Arizona is contracted with Alere, a health management company, to\\r\\n provide BCBSAZ-enrolled employees access to registered
nurses and health information any time.

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

\\r\\n Nurse On Call is Standing By\\r\\n

\\r\\n

24 hours a day, 7 days a week, health information is just a phone call away.

\\r\\n

Call: 1-866-4BCBSAZ (1-866-422-2729)

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

A Valued Benefit For Employer Groups

\\r\\n

Nurse On Call helps your BCBSAZ-enrolled employees understand their health options so they
\\r\\n can make informed medical decisions. Nurse On Call is available 24 hours a day so your
\\r\\n BCBSAZ-enrolled employees can call or click for health information whenever the need arises.
\\r\\n This can reduce trips to the urgent care center and emergency room.\\r\\n

\\r\\n

Nurse On Call is staffed by experienced registered nurses who are ready to assist your employees.

\\r\\n
    \\r\\n
  • The health information provided is evidenced-based, unbiased and up-to-date
  • \\r\\n
  • Nurses can research diagnosed conditions, medical tests, medications, treatment options and key decision points
  • \\r\\n
  • The nationally accredited Healthwise database helps nurses support decisions about when a problem can be treated at home or when seeing a doctor is recommended
  • \\r\\n
\\r\\n

About Alere

\\r\\n

Blue Cross Blue Shield is contracted with Alere, an independent health management
\\r\\n company, to provide BCBSAZ-enrolled employees access to registered nurses and health
\\r\\n information any time day or night.

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

24/7 Health Information

\\r\\n

Employee Access by Phone

\\r\\n

When employees call, experienced registered nurses can:

\\r\\n
    \\r\\n
  • Identify and evaluate symptoms
  • \\r\\n
  • Provide information for an informed decision
  • \\r\\n
  • Recommend next steps
  • \\r\\n
\\r\\n

Employee Access Online

\\r\\n

Complete with resources that employees need to make it easy to find the health information\\r\\n the are looking for, Nurse On Call online tools include:

\\r\\n
    \\r\\n
  • Ask a Nurse
  • \\r\\n
  • Up-to-date Health News
  • \\r\\n
  • Online Health Videos
  • \\r\\n
  • Searchable Healthwise Database
  • \\r\\n
  • Interactive Health Guides
  • \\r\\n
  • Symptom Guide
  • \\r\\n
  • Common Conditions Guide
  • \\r\\n
  • And More
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Health Information Available in Spanish

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

The following tools are available in Spanish:

\\r\\n
    \\r\\n
  • Nurse On Call by Phone
  • \\r\\n
  • Ask a Nurse
  • \\r\\n
  • Healthwise Database
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","export default \"
\\r\\n

Access denied

\\r\\n
\\r\\n\";","export default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardSubtitle}} May 2021\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent1}}\\r\\n
\\r\\n
\\r\\n View | Print\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent2}}\\r\\n
\\r\\n
\\r\\n View | Print\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent3}}\\r\\n
\\r\\n
\\r\\n View | Print\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent4}}\\r\\n
\\r\\n
\\r\\n View | Print\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent5}} ->\\r\\n
\\r\\n
\";","export default \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardSubtitle}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{cardData.cardContent2}}\\r\\n
\\r\\n \\r\\n
\\r\\n {{cardData.cardContent4}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
{{cardTitle}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\";","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent1}}\\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 default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent1}}\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent2}} ->\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n
\\r\\n {{cardData.cardSubtitle}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent1}}\\r\\n
\\r\\n
\\r\\n May 1, 2021 - May 31, 2021\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent2}}\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent3}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
June 10,2021
\\r\\n
$159,016.56
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{cardData.cardContent4}} ->\\r\\n
\\r\\n
\";","export default \"
\\r\\n Welcome to your new and improved employer portal! We heard you!\\r\\n
\\r\\n\\r\\n \\r\\n A consistent and intuitive user experience\\r\\n \\r\\n \\r\\n A fresh and modern design\\r\\n \\r\\n \\r\\n Improved Billing and Payment experience\\r\\n \\r\\n \\r\\n Transparency around Employee Roster management\\r\\n \\r\\n\\r\\n
And we'll keep adding more features to make it even more valuable.
\\r\\n\";","export default \"
\\r\\n
\\r\\n Welcome {{accountInfo?.userFirstName}}\\r\\n
\\r\\n
= 13\\\" class=\\\"account-info\\\">\\r\\n

\\r\\n Account(s): {{accountsToDisplay}}\\r\\n {{accountsExtension}}\\r\\n

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

\\r\\n Account(s):{{accountsToDisplay}}\\r\\n

\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n

TAD Debug Tool

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
Employee List Size:\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\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 default \"
\\r\\n
\\r\\n

Footer

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{copyRightDisplayMessage}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n Employer Portal\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\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 default \"
\\r\\n\\t
\\r\\n\\t\\t
\\r\\n\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\tMy Dashboard\\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{ navItem?.header }}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{{ navLink?.displayLink }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t
\\r\\n\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\tNOTIFICATIONS\\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t\\t\\t

    \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{{ todayDate }}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t\\t
    \\r\\n\\t\\t\\t\\t
  • \\r\\n\\t\\t\\t
\\r\\n\\t\\t
\\r\\n\\t
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n
\";","export default \"\\r\\n \\r\\n \\r\\n \";","export default \"\";"],"names":[],"sourceRoot":"webpack:///"}