{"version":3,"file":"src_app_pages_onboarding_customer-portfolio_customer-portfolio_module_ts.18d56b55c6a8080d.js","mappings":"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","names":["AddFirstCustomerComponent","AbstractOnboardingPageComponent","constructor","route","router","ps","ees","store","super","this","ngOnInit","subscriptions","push","data","subscribe","transitions","contentDict","_this","populatePageStates","populatePageContent","ngOnDestroy","destructSubscriptionArray","homeState","getPageStateByEventAndTransitions","EventTypes","nextState","skipState","customerGridState","customerGridHomeState","questionText","get","displayText","tooltip1Content","PageContent","handleSkipClick","Promise","allSettled","_this2","completeCustomerPortfolio","activateApplicationReview","updateCustomerPortfolioStateId","id","navigate","pageUrl","queryParams","stateId","submit","_this3","static","core","selectors","ShellComponent","TooltipComponent","i0","CustomerDetailsGridComponent","hs","moduleStatus","OnboardingModuleStatuses","cpStatusId$","select","selectCustomerPortfolioStatusId","cpStatusId","params","homeStateId$","selectDashboardStateId","homeStateId","props","dashboardStateId","customerNameProps$","selectCustomerName","customerName","addNewCustomer","doneState","manual","additionalCreditInfoState","AddNewCustomer","finishCustomerPortfolio","applicationReviewStatusId$","selectApplicationReviewStatusId","arStatusId","navigateToStoredDashboard","updateDashboardStateId","CheckHasClientAdditionalInfoRequest","navigateToClientAdditionalInfoRequest","navigateToApplicationReviewDashboard","editCustomer","_this4","dashboardStateId$","_this5","dashboardState","getPageStateById","doneButton","_this6","state","_this7","getPageState_ClientAdditionalInfoRequestDashboard","ToolTipComponent","CountryResolver","cs","resolve","getCountryProvince","factory","CreditDocumentResolver","ds","getCreditDocumentTypes","AdditionalCreditInfoResolver","cps","clientCustomerId$","selectClientCustomerId","clientCustomerId","sub","unsubscribe","getAdditionalCreditInfo","InvoiceTermResolver","loadInvoiceTerm","PageStateCustomerPersonalizedResolver","subscription","firstValueFrom","forkJoin","getPageTransitionsByStateId","getContentDictByStateId_CustomerPersonalized","AdditionalCreditInfoComponent","fb","ssas","BehaviorSubject","additionalCreditInfo","documentTypes","documentTypesOptions","map","value","label","documentTypeName","documentTypeId","action","selectCustomerDetails","clientCustomerName","additionalUploadParams","form","group","infoProvided","customerInfoProvided","documentBehaviorSubject","next","getCustomerCreditDocumentsByClientCustomerId","backState","saveState","tooltipContent","onChange","event","selectedDocumentTypeId","parseInt","selectedDocumentType","filter","docType","isCreditSupportingDoc","isInvoiceSupportingDoc","onSubmit","save","payload","customerInfoRequested","setAdditionalCreditInfo","setTimeout","dereport","reportAlert","handleOutput","outputValue","onDelete","docId","result","deleteDocumentById","onDownload","downloadCreditRequestDocument","ctx","AutofillDetailsComponent","cp","formBuilder","documentType","filesData","Validators","getPayload","addFileToDropZone","valid","files","file","rawFile","customer","extractCustomerInfo","billingAddress","Address","address1","billingAdressAddressLine1","address2","billingAddress2","city","billingAddressCity","billingAddressState","zipcode","billingAddressZip","dispatch","CustomerDetailsAction","CustomerRefNumber","customerId","markAllAsTouched","BillingAddressComponent","isUsa","stateProvinceData","options","countryProviceData","option","populateStateProvince","populateCountryProvince","country","zipCode","zipCodeValidator","properties$","selectCustomerBillingAddress","billToCountry","billToState","stateOption","anySelect","bind","stateValue","selectionChange","countryOption","find","alpha3Code","name","selectionCountryChange","setValue","billingAddress1","billToCity","billToZip","control","root","test","invalidZipCode","billingCountry","submitCustomerPortfolioData","isPOAddressAccepted","isNotPOBox","isPOBox","questionTextFromDict","placeholder","includes","replace","item","code","countrydropdwonoption","onEnter","submitButton","StatefulPrimaryButtonComponent","ConfirmCustomerSearchComponent","selected","watchTabletThreshold","isTablet","selectCustomerSearch","displayData","CustomerName","customerSearch","address","State","Country","City","ZipCode","searchResultData","IsConfirmed","BuyerId","buyerId","ClientCustomerID","bpState","bpSummaryState","confirmClick","confirmCustomerInfo","thisIsntMeClick","CustomerDetailsComponent","CustomerEntryOptionsComponent","autoFill","EnterCustomerDetailsComponent","FederalOrAgencyComponent","selectCustomerType","yesState","noState","populateOptionStates","selectedId","props$","customerType","customerTypedata","handleSelectedOutput","isFederal","isFederalYes","isFederalNo","HeadquartersAddresComponent","countryoption","headquarterCountry","headquarterState","countryoptions","headquarterAddress1","headquarterAddress2","headquarterCity","headquarterZip","headquarterAddress","stateDropdownOption","InvoiceAmountComponent","invoiceAmount","invoiceAmountValue","parseFloat","monthlyInvoiceAmount","onInput","numericValue","target","Number","isNaN","toString","InvoiceTermComponent","attradiusNoResultState","selectInvoiceTerms","customerInvoiceTerm","invoiveTerm","clickedOption","invoiceTerm","InvoiceTermAction","dispatchCustomerSearchData","customerPortfolio","CustomerSearch","buyerName","buyerAddress","buyerRegionCode","buyerCity","buyerPostcode","CustomerSearchAction","IsHeadquarterAddressComponent","customerNameProp$","isHeadquarterAddress","isHeadquarterSameYes","isHeadquarterSameNo","routes","path","component","PageStateResolver","StateResolver","PhysicalAddressComponent","physicalToCountry","physicalToState","physicalToAddress1","physicalToAddress2","physicalToCity","physicalToZip","physicalAddress","physicalCountry","UploadFederalContractComponent","CustomerPortfolioRoutingModule","imports","RouterModule","modules","CommonModule","CommonSharedModule","KendoModule","OnboardingSharedModule","CustomerPortfolioModule"],"sourceRoot":"webpack:///","sources":["./src/app/pages/onboarding/customer-portfolio/add-first-customer/add-first-customer.component.ts","./src/app/pages/onboarding/customer-portfolio/add-first-customer/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/add-first-customer/add-first-customer.component.html","./src/app/pages/onboarding/customer-portfolio/customer-details-grid/customer-details-grid.component.ts","./src/app/pages/onboarding/customer-portfolio/customer-details-grid/customer-details-grid.component.html","./src/app/core/resolvers/common/country.resolver.ts","./src/app/core/resolvers/document/credit-document.resolver.ts","./src/app/core/resolvers/onboarding/customer-portfolio/additional-credit-info.resolver.ts","./src/app/core/resolvers/onboarding/customer-portfolio/invoice-term.resolver.ts","./src/app/core/resolvers/onboarding/navigation/page-state-customer-personalized.resolver.ts","./src/app/pages/onboarding/customer-portfolio/additional-credit-info/additional-credit-info.component.ts","./src/app/pages/onboarding/customer-portfolio/additional-credit-info/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/additional-credit-info/additional-credit-info.component.html","./src/app/pages/onboarding/customer-portfolio/autofill-details/autofill-details.component.html","./src/app/pages/onboarding/customer-portfolio/autofill-details/autofill-details.component.ts","./src/app/pages/onboarding/customer-portfolio/autofill-details/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/billing-address/billing-address.component.html","./src/app/pages/onboarding/customer-portfolio/billing-address/billing-address.component.ts","./src/app/pages/onboarding/customer-portfolio/billing-address/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/confirm-customer-search/confirm-customer-search.component.ts","./src/app/pages/onboarding/customer-portfolio/confirm-customer-search/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/confirm-customer-search/confirm-customer-search.component.html","./src/app/pages/onboarding/customer-portfolio/customer-details/customer-details.component.html","./src/app/pages/onboarding/customer-portfolio/customer-details/customer-details.component.ts","./src/app/pages/onboarding/customer-portfolio/customer-details/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/customer-entry-options/customer-entry-options.component.ts","./src/app/pages/onboarding/customer-portfolio/customer-entry-options/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/customer-entry-options/customer-entry-options.component.html","./src/app/pages/onboarding/customer-portfolio/enter-customer-details/enter-customer-details.component.ts","./src/app/pages/onboarding/customer-portfolio/enter-customer-details/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/enter-customer-details/enter-customer-details.component.html","./src/app/pages/onboarding/customer-portfolio/federal-or-agency/federal-or-agency.component.ts","./src/app/pages/onboarding/customer-portfolio/federal-or-agency/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/federal-or-agency/federal-or-agency.component.html","./src/app/pages/onboarding/customer-portfolio/headquarters-addres/headquarters-addres.component.html","./src/app/pages/onboarding/customer-portfolio/headquarters-addres/headquarters-addres.component.ts","./src/app/pages/onboarding/customer-portfolio/headquarters-addres/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/invoice-amount/invoice-amount.component.html","./src/app/pages/onboarding/customer-portfolio/invoice-amount/invoice-amount.component.ts","./src/app/pages/onboarding/customer-portfolio/invoice-amount/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/invoice-term/invoice-term.component.ts","./src/app/pages/onboarding/customer-portfolio/invoice-term/invoice-term.component.html","./src/app/pages/onboarding/customer-portfolio/is-headquarter-address/is-headquarter-address.component.ts","./src/app/pages/onboarding/customer-portfolio/is-headquarter-address/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/is-headquarter-address/is-headquarter-address.component.html","./src/app/pages/onboarding/customer-portfolio/physical-address/physical-address.component.html","./src/app/pages/onboarding/customer-portfolio/upload-federal-contract/upload-federal-contract.component.html","./src/app/pages/onboarding/customer-portfolio/customer-portfolio-routing.module.ts","./src/app/pages/onboarding/customer-portfolio/physical-address/physical-address.component.ts","./src/app/pages/onboarding/customer-portfolio/physical-address/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/upload-federal-contract/upload-federal-contract.component.ts","./src/app/pages/onboarding/customer-portfolio/upload-federal-contract/ContentIDConstants.ts","./src/app/pages/onboarding/customer-portfolio/customer-portfolio.module.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { TooltipComponent } from '@progress/kendo-angular-charts';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-add-first-customer',\r\n templateUrl: './add-first-customer.component.html',\r\n styleUrls: ['./add-first-customer.component.scss'],\r\n})\r\nexport class AddFirstCustomerComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n cpState: PageState;\r\n customerGridState: PageState;\r\n customerGridHomeState: PageState;\r\n tooltip1Content: IPageContent;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(TooltipComponent) questionTooltipComponent: TooltipComponent;\r\n questionText: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.customerGridState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.CUSTOMER_GRID,\r\n transitions\r\n );\r\n this.customerGridHomeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.CUSTOMER_GRID_HOME,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n \"Let's Build Your Customer\";\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n async handleSkipClick() {\r\n await Promise.allSettled([\r\n this.ees.completeCustomerPortfolio(),\r\n this.ees.activateApplicationReview(),\r\n this.ees.updateCustomerPortfolioStateId(\r\n this.customerGridState.id,\r\n this.skipState.id\r\n ),\r\n ]);\r\n this.router.navigate([this.skipState.pageUrl], {\r\n queryParams: { stateId: this.skipState.id },\r\n });\r\n return true;\r\n }\r\n\r\n async submit() {\r\n await this.ees.updateCustomerPortfolioStateId(\r\n this.customerGridState.id,\r\n this.customerGridHomeState.id\r\n );\r\n return true;\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { HydrationService } from 'src/app/core/services/login/hydration.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerName } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport {\r\n selectApplicationReviewStatusId,\r\n selectCustomerPortfolioStatusId,\r\n selectDashboardStateId,\r\n} from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from '../add-first-customer/ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-customer-details-grid',\r\n templateUrl: './customer-details-grid.component.html',\r\n styleUrls: ['./customer-details-grid.component.scss'],\r\n})\r\nexport class CustomerDetailsGridComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n addNewCustomer: PageState;\r\n doneState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n additionalCreditInfoState: PageState;\r\n manual: PageState;\r\n tooltip1Content: IPageContent;\r\n subscriptions: Subscription[] = [];\r\n customerName: string;\r\n payload: ICustomerPortfolio;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n @ViewChild('doneButton', { static: false })\r\n doneButton: StatefulPrimaryButtonComponent;\r\n questionText: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private hs: HydrationService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE) {\r\n this.ees.updateCustomerPortfolioStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n } else {\r\n const homeStateId$ = this.store.select(selectDashboardStateId);\r\n let homeStateId = '-1';\r\n homeStateId$.subscribe((props) => {\r\n homeStateId = props.dashboardStateId;\r\n });\r\n this.ees.updateCustomerPortfolioStateId(\r\n params['stateId'],\r\n homeStateId\r\n );\r\n }\r\n })\r\n );\r\n })\r\n );\r\n const customerNameProps$ = this.store.select(selectCustomerName);\r\n this.subscriptions.push(\r\n customerNameProps$.subscribe((props) => {\r\n this.customerName = props;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.addNewCustomer = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.ADD_ANOTHER_CUSTOMER,\r\n transitions\r\n );\r\n this.doneState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.FINISH_CUSTOMER_PORTFOLIO,\r\n transitions\r\n );\r\n this.manual = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.MANUAL,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.additionalCreditInfoState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.ADDITIONAL_CREDIT_INFO,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'Customer Portfolio';\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n async AddNewCustomer() {\r\n await this.router.navigate([this.addNewCustomer.pageUrl], {\r\n queryParams: { stateId: this.addNewCustomer.id },\r\n });\r\n return true;\r\n }\r\n\r\n async finishCustomerPortfolio() {\r\n const applicationReviewStatusId$ = this.store.select(\r\n selectApplicationReviewStatusId\r\n );\r\n let arStatusId = OnboardingModuleStatuses.ACTIVE as number;\r\n this.subscriptions.push(\r\n applicationReviewStatusId$.subscribe(async (props) => {\r\n arStatusId = props;\r\n })\r\n );\r\n if (arStatusId === OnboardingModuleStatuses.COMPLETED) {\r\n await this.ees.completeCustomerPortfolio();\r\n await this.navigateToStoredDashboard();\r\n } else {\r\n await Promise.allSettled([\r\n this.ees.completeCustomerPortfolio(),\r\n this.ees.activateApplicationReview(),\r\n this.ees.updateDashboardStateId(this.doneState.id),\r\n ]);\r\n const hasClientAdditionalInfoRequest =\r\n await this.hs.CheckHasClientAdditionalInfoRequest();\r\n if (hasClientAdditionalInfoRequest) {\r\n await this.navigateToClientAdditionalInfoRequest();\r\n } else {\r\n await this.navigateToApplicationReviewDashboard();\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n async editCustomer() {\r\n this.router.navigate([this.manual.pageUrl], {\r\n queryParams: { stateId: this.manual.id },\r\n });\r\n }\r\n\r\n async navigateToStoredDashboard() {\r\n const dashboardStateId$ = this.store.select(selectDashboardStateId);\r\n this.subscriptions.push(\r\n dashboardStateId$.subscribe(async (props) => {\r\n const dashboardState = await this.ps.getPageStateById(\r\n props.dashboardStateId\r\n );\r\n await this.doneButton.navigate(dashboardState);\r\n })\r\n );\r\n return true;\r\n }\r\n\r\n async navigateToApplicationReviewDashboard() {\r\n await this.doneButton.navigate(this.doneState);\r\n return true;\r\n }\r\n\r\n async navigateToClientAdditionalInfoRequest() {\r\n const state =\r\n await this.ps.getPageState_ClientAdditionalInfoRequestDashboard();\r\n this.router.navigate([state.pageUrl], {\r\n queryParams: { stateId: state.id },\r\n });\r\n return true;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport {\r\n Resolve,\r\n RouterStateSnapshot,\r\n ActivatedRouteSnapshot\r\n} from '@angular/router';\r\nimport { CommonService } from '../../services/common/common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CountryResolver implements Resolve {\r\n constructor(private cs: CommonService) { }\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.cs.getCountryProvince();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Resolve,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { DocumentService } from '../../services/common/document.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CreditDocumentResolver implements Resolve {\r\n constructor(private ds: DocumentService) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.ds.getCreditDocumentTypes();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Resolve,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectClientCustomerId } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AdditionalCreditInfoResolver implements Resolve {\r\n constructor(\r\n private cps: CustomerPortfolioService,\r\n private store: Store\r\n ) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n const clientCustomerId$ = this.store.select(selectClientCustomerId);\r\n let clientCustomerId = 0;\r\n const sub = clientCustomerId$.subscribe((props) => {\r\n clientCustomerId = props.clientCustomerId;\r\n });\r\n sub.unsubscribe();\r\n return this.cps.getAdditionalCreditInfo(clientCustomerId);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n Router, Resolve,\r\n RouterStateSnapshot,\r\n ActivatedRouteSnapshot\r\n} from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InvoiceTermResolver implements Resolve {\r\n constructor(private cps: CustomerPortfolioService) { }\r\n resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise {\r\n return this.cps.loadInvoiceTerm();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { firstValueFrom, forkJoin } from 'rxjs';\r\nimport { ContentService } from 'src/app/core/services/common/content.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectClientCustomerId } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PageStateCustomerPersonalizedResolver implements Resolve {\r\n constructor(\r\n private ps: PageStateService,\r\n private cs: ContentService,\r\n private store: Store\r\n ) {}\r\n async resolve(route: ActivatedRouteSnapshot): Promise {\r\n const { stateId } = route.queryParams;\r\n let clientCustomerId = 0;\r\n const cciProps$ = this.store.select(selectClientCustomerId);\r\n const subscription = cciProps$.subscribe((props) => {\r\n clientCustomerId = props.clientCustomerId;\r\n });\r\n subscription.unsubscribe();\r\n\r\n return firstValueFrom(\r\n forkJoin({\r\n transitions: this.ps.getPageTransitionsByStateId(stateId ?? '0'),\r\n contentDict: this.cs.getContentDictByStateId_CustomerPersonalized(\r\n stateId ?? '0',\r\n clientCustomerId\r\n ),\r\n })\r\n );\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDocumentType } from 'src/app/core/interfaces/common/document/document-type.interface';\r\nimport { IDocument } from 'src/app/core/interfaces/common/document/document.interface';\r\nimport { IDropdownOption } from 'src/app/core/interfaces/common/ui/dropdown-option.interface';\r\nimport { IAdditionalCreditInfo } from 'src/app/core/interfaces/onboarding/customer-portfolio/additional-credit-info.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { DocumentService } from 'src/app/core/services/common/document.service';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { ServersideAlertService } from 'src/app/core/services/onboarding/serverside-alert.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerDetails } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-additional-credit-info',\r\n templateUrl: './additional-credit-info.component.html',\r\n styleUrls: ['./additional-credit-info.component.scss'],\r\n})\r\nexport class AdditionalCreditInfoComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n clientCustomerName = 'your customer';\r\n clientCustomerId = 0;\r\n documentTypes: IDocumentType[] = [];\r\n documentTypesOptions: IDropdownOption[] = [];\r\n selectedDocumentType: IDocumentType;\r\n additionalUploadParams = '';\r\n customerDocuments: [] = [];\r\n subscriptions: Subscription[] = [];\r\n questionText: string;\r\n tooltipContent: IPageContent;\r\n additionalCreditInfo: IAdditionalCreditInfo;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n form: FormGroup;\r\n documentBehaviorSubject = new BehaviorSubject([]);\r\n\r\n backState: PageState;\r\n saveState: PageState;\r\n\r\n constructor(\r\n public ds: DocumentService,\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private cps: CustomerPortfolioService,\r\n private fb: FormBuilder,\r\n private store: Store,\r\n private ssas: ServersideAlertService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.subscriptions.push(\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.additionalCreditInfo = data['additionalCreditInfo'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n this.documentTypes = data['documentTypes'];\r\n this.documentTypesOptions = this.documentTypes?.map(\r\n (value: IDocumentType) =>\r\n ({\r\n label: value.documentTypeName,\r\n value: value.documentTypeId,\r\n action: () => null,\r\n } as IDropdownOption)\r\n );\r\n })\r\n );\r\n const customerDetails$ = this.store.select(selectCustomerDetails);\r\n const sub = customerDetails$.subscribe((props) => {\r\n this.clientCustomerName = props.customerName;\r\n this.clientCustomerId = props.clientCustomerId;\r\n });\r\n sub.unsubscribe();\r\n this.additionalUploadParams = `&clientcustomerid=${this.clientCustomerId}`;\r\n this.form = this.fb.group({\r\n infoProvided: this.additionalCreditInfo?.customerInfoProvided ?? '',\r\n });\r\n this.documentBehaviorSubject.next(\r\n await this.ds.getCustomerCreditDocumentsByClientCustomerId(\r\n this.clientCustomerId\r\n )\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.saveState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.question)?.displayText ??\r\n `Now requests additional credit information for ${this.clientCustomerName}.`;\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip) ?? new PageContent();\r\n }\r\n\r\n onChange(event: any) {\r\n const selectedDocumentTypeId = parseInt(event.value, 10);\r\n const selectedDocumentType = this.documentTypes.filter(\r\n (docType: IDocumentType) =>\r\n docType.documentTypeId === selectedDocumentTypeId\r\n );\r\n\r\n this.selectedDocumentType = {\r\n documentTypeName: selectedDocumentType[0].documentTypeName,\r\n documentTypeId: selectedDocumentTypeId,\r\n isCreditSupportingDoc: true,\r\n isInvoiceSupportingDoc: false,\r\n } as IDocumentType;\r\n }\r\n\r\n async onSubmit() {\r\n this.documentBehaviorSubject.next(\r\n await this.ds.getCustomerCreditDocumentsByClientCustomerId(\r\n this.clientCustomerId\r\n )\r\n );\r\n }\r\n\r\n async save(): Promise {\r\n const payload: IAdditionalCreditInfo = {\r\n clientCustomerId: this.clientCustomerId,\r\n customerInfoRequested: this.additionalCreditInfo.customerInfoRequested,\r\n customerInfoProvided: this.form?.get('infoProvided')?.value ?? '',\r\n };\r\n this.cps.setAdditionalCreditInfo(payload);\r\n await new Promise((resolve) => {\r\n setTimeout(() => {\r\n this.ssas.dereport();\r\n this.ssas.reportAlert(['Thank you for your response.'], 'success');\r\n resolve();\r\n }, 400);\r\n });\r\n }\r\n\r\n async handleOutput(outputValue: string) {}\r\n\r\n async onDelete(docId: number) {\r\n const result = this.ds.deleteDocumentById(docId);\r\n this.documentBehaviorSubject.next(\r\n await this.ds.getCustomerCreditDocumentsByClientCustomerId(\r\n this.clientCustomerId\r\n )\r\n );\r\n return result;\r\n }\r\n\r\n async onDownload(docId: number): Promise {\r\n return this.ds.downloadCreditRequestDocument(docId);\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n question: 0,\r\n tooltip: 1,\r\n};\r\n","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

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

{{this.questionText}}

\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n file is required\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDocumentType } from 'src/app/core/interfaces/common/document/document-type.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { Address } from 'src/app/core/models/common/address.model';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-autofill-details',\r\n templateUrl: './autofill-details.component.html',\r\n styleUrls: ['./autofill-details.component.scss'],\r\n})\r\nexport class AutofillDetailsComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit\r\n{\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n nextState: PageState;\r\n uploadSaveUrl = '';\r\n form: FormGroup;\r\n questionText = 'Upload Document';\r\n tooltipContent: IPageContent;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n documentType: IDocumentType;\r\n files: any[] = [];\r\n payload: ICustomerPortfolio;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private cp: CustomerPortfolioService,\r\n private formBuilder: FormBuilder,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.push(\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n this.documentType = {\r\n documentTypeId: 1,\r\n documentTypeName: 'bank',\r\n isCreditSupportingDoc: false,\r\n isInvoiceSupportingDoc: false,\r\n };\r\n\r\n this.form = this.formBuilder.group({\r\n filesData: ['', Validators.required],\r\n });\r\n\r\n this.payload = this.cp.getPayload();\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.question)?.displayText ??\r\n 'Upload a customer invoice below';\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n\r\n addFileToDropZone() {\r\n return;\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n this.files = this.form.get('filesData')?.value;\r\n this.payload.file = this.files[0].rawFile;\r\n const customer = await this.cp.extractCustomerInfo(this.payload);\r\n const billingAddress = new Address();\r\n billingAddress.address1 = customer.billingAdressAddressLine1;\r\n billingAddress.address2 = customer.billingAddress2;\r\n billingAddress.city = customer.billingAddressCity;\r\n billingAddress.state = customer.billingAddressState;\r\n billingAddress.zipcode = customer.billingAddressZip;\r\n\r\n // customer billing address\r\n this.store.dispatch(\r\n CustomerDetailsAction.BillingAddressAction({\r\n billingAddress,\r\n })\r\n );\r\n\r\n // adding customername and refnumber\r\n this.store.dispatch(\r\n CustomerDetailsAction.CustomerNameAndRefNumberAction({\r\n CustomerRefNumber: customer.customerId,\r\n customerName: customer.customerName,\r\n })\r\n );\r\n return true;\r\n }\r\n // mark all controls as touched to trigger validation\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n question: 0,\r\n tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's first line\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's second line\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's city\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Enter state\r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's zipcode\r\n \r\n\r\n \r\n Enter a valid zipcode\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { ICountryProvince } from 'src/app/core/interfaces/common/common/countryProvince.interface';\r\nimport { IStateProvince } from 'src/app/core/interfaces/common/common/stateProvince.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDropdownOption } from 'src/app/core/interfaces/common/ui/dropdown-option.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { Address } from 'src/app/core/models/common/address.model';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CommonService } from 'src/app/core/services/common/common.service';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerBillingAddress } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-billing-address',\r\n templateUrl: './billing-address.component.html',\r\n styleUrls: ['./billing-address.component.scss'],\r\n})\r\nexport class BillingAddressComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n isPOBox: PageState;\r\n isNotPOBox: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n form: FormGroup;\r\n\r\n input1Text: 'Address1';\r\n input2Text: 'Address2';\r\n input3Text: 'City';\r\n input4Text: 'State';\r\n input5Text: 'Zipcode';\r\n input6Text: 'Country';\r\n\r\n responseData: any;\r\n tooltip1Text: string;\r\n questionText: string;\r\n dropdownHeaderText: 'State';\r\n isUsa: boolean;\r\n states: string[];\r\n stateOption: IDropdownOption;\r\n countryOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n options: IDropdownOption[];\r\n countrydropdwonoption: IDropdownOption[];\r\n stateProvinceData: IStateProvince[] = [];\r\n countryProviceData: ICountryProvince[] = [];\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n tooltipContent: PageContent;\r\n customerName: string;\r\n stateValue: string;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n @ViewChild(StatefulPrimaryButtonComponent)\r\n submitButton: StatefulPrimaryButtonComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private fb: FormBuilder,\r\n private ees: EnrollmentExtendedService,\r\n private cs: CommonService,\r\n private router: Router,\r\n private store: Store,\r\n private cp: CustomerPortfolioService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n this.isUsa = true;\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n /** end of testing */\r\n this.stateProvinceData = data['options'];\r\n this.countryProviceData = data['option'];\r\n\r\n this.populateStateProvince();\r\n this.populateCountryProvince();\r\n })\r\n );\r\n\r\n // Initailaize the form\r\n this.form = this.fb.group({\r\n address1: ['', [Validators.required]],\r\n address2: [''],\r\n city: ['', [Validators.required]],\r\n state: ['', [Validators.required]],\r\n country: ['', [Validators.required]],\r\n zipCode: ['', [Validators.required, this.zipCodeValidator]],\r\n });\r\n\r\n this.properties$ = this.store.select(selectCustomerBillingAddress);\r\n // Setting country and state dropdown based on store\r\n if (\r\n this.payload.billToCountry === 'USA' ||\r\n this.payload.billToCountry === ''\r\n ) {\r\n if (this.payload.billToState) {\r\n this.stateOption = {\r\n label: this.payload.billToState,\r\n value: this.payload.billToState,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n } else {\r\n this.stateValue = this.payload.billToState;\r\n }\r\n this.selectionChange(this.stateOption);\r\n\r\n if (this.payload.billToCountry) {\r\n this.countryOption = {\r\n label: this.payload.billToCountry,\r\n value: this.payload.billToCountry,\r\n action: this.anySelect.bind(this),\r\n };\r\n } else {\r\n const country = this.countryProviceData.find(\r\n (country) => country.alpha3Code === 'USA'\r\n );\r\n this.countryOption = {\r\n label: country?.name ?? 'United States of America',\r\n value: country?.alpha3Code ?? 'USA',\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n this.selectionCountryChange(this.countryOption, this.stateValue);\r\n\r\n this.form.get('address1')?.setValue(this.payload?.billingAddress1);\r\n this.form.get('address2')?.setValue(this.payload?.billingAddress2);\r\n this.form.get('city')?.setValue(this.payload?.billToCity);\r\n this.form.get('zipCode')?.setValue(this.payload?.billToZip);\r\n }\r\n\r\n zipCodeValidator(control: AbstractControl): ValidationErrors | null {\r\n const countryValue = control.root.get('country')?.value?.value;\r\n if (countryValue === 'USA') {\r\n const zipCodePattern =\r\n /(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/;\r\n if (!zipCodePattern.test(control.value) && control.value != '') {\r\n return { invalidZipCode: true };\r\n }\r\n }\r\n return null;\r\n }\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n const billingAddress = new Address();\r\n billingAddress.address1 = this.form.get('address1')?.value ?? '';\r\n billingAddress.address2 = this.form.get('address2')?.value ?? '';\r\n billingAddress.city = this.form.get('city')?.value ?? '';\r\n billingAddress.state = this.form.get('state')?.value?.value ?? '';\r\n if (billingAddress.state === '') {\r\n billingAddress.state = this.form.get('state')?.value ?? '';\r\n }\r\n billingAddress.zipcode = this.form.get('zipCode')?.value ?? '';\r\n this.payload.billToCountry = this.form.get('country')?.value?.value ?? '';\r\n\r\n this.payload.billingAddress1 = billingAddress.address1;\r\n this.payload.billingAddress2 = billingAddress.address2;\r\n this.payload.billToCity = billingAddress.city;\r\n this.payload.billToState = billingAddress.state;\r\n this.payload.billToZip = billingAddress.zipcode;\r\n\r\n // saving country to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.BillingCountryAction({\r\n billingCountry: this.payload.billToCountry,\r\n })\r\n );\r\n // saving data to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.BillingAddressAction({\r\n billingAddress,\r\n })\r\n );\r\n\r\n const data = await this.cp.submitCustomerPortfolioData(this.payload);\r\n if (data.isPOAddressAccepted === false) {\r\n this.router.navigate([this.isNotPOBox['pageUrl']], {\r\n queryParams: { stateId: this.isNotPOBox['id'] },\r\n });\r\n } else {\r\n this.router.navigate([this.isPOBox['pageUrl']], {\r\n queryParams: { stateId: this.isPOBox['id'] },\r\n });\r\n }\r\n return true;\r\n }\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.isNotPOBox = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.IS_NOT_PO_BOX,\r\n transitions\r\n );\r\n\r\n this.isPOBox = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.IS_PO_BOX,\r\n transitions\r\n );\r\n\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n // this.questionText = 'What is your Billing Address?';\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'What is your Billing Address?';\r\n }\r\n\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n public selectionChange(value: any): void {\r\n this.form.get('state')?.setValue(value);\r\n this.stateOption = value;\r\n }\r\n\r\n public selectionCountryChange(value: any, state = ''): void {\r\n this.countryOption = value;\r\n this.form.get('country')?.setValue(value);\r\n this.form.get('zipCode')?.setValue('');\r\n if (value.value !== 'USA') {\r\n this.isUsa = false;\r\n if (state != null && state !== '') {\r\n this.form.get('state')?.setValue(state);\r\n } else {\r\n this.form.get('state')?.setValue('');\r\n }\r\n } else {\r\n this.isUsa = true;\r\n this.form.get('state')?.setValue(this.stateOption.value);\r\n }\r\n }\r\n anySelect() {}\r\n\r\n async populateStateProvince() {\r\n this.options = this.stateProvinceData.map((item) => ({\r\n label: item.name,\r\n value: item.code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n\r\n async populateCountryProvince() {\r\n this.countrydropdwonoption = this.countryProviceData.map((item) => ({\r\n label: item.name,\r\n value: item.alpha3Code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IOptions } from 'src/app/core/interfaces/common/common/options.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ICustomerRequest } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-request.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerSearch } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { watchTabletThreshold } from 'src/app/core/ui-helpers/functions/watch-tablet-threshold';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-confirm-customer-search',\r\n templateUrl: './confirm-customer-search.component.html',\r\n styleUrls: ['./confirm-customer-search.component.scss'],\r\n})\r\nexport class ConfirmCustomerSearchComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n confirmDetailsData: IOptions[] = [\r\n { id: 1, value: 'Confirm', selected: false },\r\n ];\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n bpState: PageState;\r\n fpState: PageState;\r\n cpState: PageState;\r\n bpSummaryState: PageState;\r\n form: FormGroup;\r\n displayData: any = [];\r\n searchResultData: ICustomerRequest;\r\n\r\n questionText = 'Do you confirm this is your customer?';\r\n tooltipContent: IPageContent;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n companyNotFound: PageState;\r\n\r\n thisIsntMe = \"This isn't my customer\";\r\n pageStateId: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private cp: CustomerPortfolioService,\r\n private store: Store,\r\n private router: Router\r\n ) {\r\n super();\r\n this.subscriptions.push(\r\n watchTabletThreshold((isTablet: boolean) => {\r\n this.isTablet = isTablet;\r\n })\r\n );\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n\r\n // Get and update payload with display data\r\n this.properties$ = this.store.select(selectCustomerSearch);\r\n this.subscriptions.push(\r\n this.properties$.subscribe((props) => {\r\n this.displayData = {\r\n // we need to check once attradius is and remove this\r\n CustomerName:\r\n props?.customerSearch?.customerName || this.payload.customerName,\r\n Address: props?.customerSearch?.address || this.payload.billingAddress1,\r\n State: props?.customerSearch?.state || this.payload.billToState,\r\n Country: props?.customerSearch?.country || this.payload.billToCountry,\r\n City: props?.customerSearch?.city || this.payload.billToCity,\r\n ZipCode: props?.customerSearch?.zipCode || this.payload.billToZip,\r\n };\r\n this.searchResultData = {\r\n IsConfirmed: true,\r\n BuyerId: props?.customerSearch?.buyerId,\r\n ClientCustomerID: this.payload.clientCustomerId,\r\n };\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n async submit() {}\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.bpState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BUSINESS_PROFILE,\r\n transitions\r\n );\r\n this.bpSummaryState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.APPLICATION_SUMMARY,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n this.questionText;\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.Tooltip) ?? new PageContent();\r\n }\r\n\r\n async confirmClick() {\r\n // Call api with buyer id, isConfirmed, client customer ID\r\n await this.cp.confirmCustomerInfo(this.searchResultData);\r\n this.router.navigate([this.nextState.pageUrl], {\r\n queryParams: { stateId: this.nextState.id },\r\n });\r\n return true;\r\n }\r\n\r\n async thisIsntMeClick() {\r\n // Call api with buyer id, isConfirmed, client customer ID\r\n this.searchResultData.IsConfirmed = false;\r\n await this.cp.confirmCustomerInfo(this.searchResultData);\r\n this.router.navigate([this.nextState.pageUrl], {\r\n queryParams: { stateId: this.nextState.id },\r\n });\r\n return true;\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip: 1,\r\n};\r\n","
\r\n \r\n
\r\n
\r\n

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n {{ this.displayData.CustomerName }}\r\n {{ this.displayData.Address }}\r\n {{ this.displayData.City }}, {{ this.displayData.State }},\r\n {{ this.displayData.ZipCode }}, {{ this.displayData.Country }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","
\r\n \r\n
\r\n
\r\n

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Enter Customer Name\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Enter Customer 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
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-customer-details',\r\n templateUrl: './customer-details.component.html',\r\n styleUrls: ['./customer-details.component.scss'],\r\n})\r\nexport class CustomerDetailsComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n nextState: PageState;\r\n\r\n responseData: any;\r\n questionText: string;\r\n tooltipContent: IPageContent;\r\n form: FormGroup;\r\n payload: ICustomerPortfolio;\r\n subscriptions: Subscription[] = [];\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n @ViewChild(StatefulPrimaryButtonComponent)\r\n submitButton: StatefulPrimaryButtonComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store,\r\n private fb: FormBuilder,\r\n private cp: CustomerPortfolioService,\r\n private router: Router,\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.subscriptions.push(\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n }),\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n }),\r\n );\r\n }),\r\n );\r\n this.payload = this.cp.getPayload();\r\n this.form = this.fb.group({\r\n customerId: ['', [Validators.required, Validators.maxLength(12)]], // Disallow whitespace\r\n customerName: ['', [Validators.required]],\r\n });\r\n this.form.get('customerId')?.setValue(this.payload?.CustomerRefNumber);\r\n this.form.get('customerName')?.setValue(this.payload?.customerName);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions,\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions,\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions,\r\n );\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n const customerId = this.form.get('customerId')?.value ?? '';\r\n const customerName = this.form.get('customerName')?.value ?? '';\r\n this.payload.CustomerRefNumber = customerId;\r\n this.payload.customerName = customerName;\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.CustomerNameAndRefNumberAction({\r\n CustomerRefNumber: this.form.get('customerId')?.value ?? '',\r\n customerName: this.form.get('customerName')?.value ?? '',\r\n }),\r\n );\r\n const data = await this.cp.submitCustomerPortfolioData(this.payload);\r\n\r\n this.router.navigate([this.nextState['pageUrl']], {\r\n queryParams: { stateId: this.nextState['id'] },\r\n });\r\n\r\n return true;\r\n }\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n \"What is your customer's Name and ID?\";\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerName } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-customer-entry-options',\r\n templateUrl: './customer-entry-options.component.html',\r\n styleUrls: ['./customer-entry-options.component.scss'],\r\n})\r\nexport class CustomerEntryOptionsComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n cpState: PageState;\r\n autoFill: PageState;\r\n manual: PageState;\r\n tooltip1Content: IPageContent;\r\n subscriptions: Subscription[] = [];\r\n customerName: string;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n questionText: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n const customerNameProps$ = this.store.select(selectCustomerName);\r\n this.subscriptions.push(\r\n customerNameProps$.subscribe((props) => {\r\n this.customerName = props;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.autoFill = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.AUTOFILL,\r\n transitions\r\n );\r\n this.manual = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.MANUAL,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'How do you want to enter customer details?';\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDocumentType } from 'src/app/core/interfaces/common/document/document-type.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerName } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-enter-customer-details',\r\n templateUrl: './enter-customer-details.component.html',\r\n styleUrls: ['./enter-customer-details.component.scss'],\r\n})\r\nexport class EnterCustomerDetailsComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n nextState: PageState;\r\n\r\n questionText = 'Upload Document';\r\n tooltipContent: IPageContent;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n documentType: IDocumentType;\r\n customerName: string;\r\n subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n });\r\n this.documentType = {\r\n documentTypeId: 1,\r\n documentTypeName: 'bank',\r\n isCreditSupportingDoc: false,\r\n isInvoiceSupportingDoc: false,\r\n };\r\n const customerNameProps$ = this.store.select(selectCustomerName);\r\n this.subscriptions.push(\r\n customerNameProps$.subscribe((props) => {\r\n this.customerName = props;\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.question)?.displayText ??\r\n 'Upload a customer invoice below';\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n question: 5,\r\n tooltip1: 6,\r\n};","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { IStatefulOptions } from 'src/app/core/interfaces/onboarding/page-state/stateful-options.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerType } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-federal-or-agency',\r\n templateUrl: './federal-or-agency.component.html',\r\n styleUrls: ['./federal-or-agency.component.scss'],\r\n})\r\nexport class FederalOrAgencyComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n // , AfterViewInit, OnDestroy\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n tooltip1Content: PageContent;\r\n yesState: PageState;\r\n noState: PageState;\r\n customerTypedata: IStatefulOptions[] = [];\r\n // customerTypedata:IEvent[]=[\r\n // {Id:\"yes\",value}\r\n // ]\r\n questionText: string;\r\n customerName: string;\r\n selectCustomerType = selectCustomerType;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n // payload: IBusinessProfile;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private cp: CustomerPortfolioService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n // ngAfterViewInit(): void {\r\n // this.subscriptions.push(\r\n // syncComponentHeightResize(\r\n // this.questionTooltipComponent,\r\n // this.shellComponent.content,\r\n // this.shellComponent.container\r\n // )\r\n // );\r\n // }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.yesState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.YES,\r\n transitions\r\n );\r\n this.noState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'Is your customer a US Federal Agency?';\r\n }\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n populateOptionStates(options: any[]) {\r\n let selectedId = -10;\r\n const props$ = this.store.select(selectCustomerType);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.customerType.id as number;\r\n })\r\n );\r\n this.customerTypedata = options.map((option) => ({\r\n ...option,\r\n state: this.nextState,\r\n selected: option.id === selectedId,\r\n }));\r\n }\r\n\r\n async handleSelectedOutput(outputValue: boolean) {\r\n this.payload.isFederal = outputValue;\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.FederalOrAgencyAction({\r\n isFederal: outputValue,\r\n })\r\n );\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n\r\n async isFederalYes() {\r\n this.payload.isFederal = true;\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.FederalOrAgencyAction({\r\n isFederal: this.payload.isFederal,\r\n })\r\n );\r\n\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n\r\n async isFederalNo() {\r\n this.payload.isFederal = false;\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.FederalOrAgencyAction({\r\n isFederal: this.payload.isFederal,\r\n })\r\n );\r\n\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

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

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n Enter address's first line\r\n \r\n \r\n P.O Boxes aren’t allowed.We need the physical location of the\r\n customer.\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Enter address's second line\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Enter address's city\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n Enter state\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n Enter address's zipcode\r\n \r\n \r\n Enter a valid zipcode\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { ICountryProvince } from 'src/app/core/interfaces/common/common/countryProvince.interface';\r\nimport { IStateProvince } from 'src/app/core/interfaces/common/common/stateProvince.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDropdownOption } from 'src/app/core/interfaces/common/ui/dropdown-option.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { Address } from 'src/app/core/models/common/address.model';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CommonService } from 'src/app/core/services/common/common.service';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-headquarters-addres',\r\n templateUrl: './headquarters-addres.component.html',\r\n styleUrls: ['./headquarters-addres.component.scss'],\r\n})\r\nexport class HeadquartersAddresComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n form: FormGroup;\r\n\r\n input1Text: 'Address 1';\r\n input2Text: 'Address 2';\r\n input3Text: 'City';\r\n input4Text: 'State';\r\n input5Text: 'Zipcode';\r\n input6Text: 'Country';\r\n\r\n responseData: any;\r\n questionText: string;\r\n dropdownHeaderText: 'State';\r\n states: string[];\r\n defaultOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n stateDropdownOption: IDropdownOption[];\r\n stateProvinceData: IStateProvince[] = [];\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n tooltipContent: PageContent;\r\n customerName: string;\r\n progressIncrement = 8;\r\n countrydropdwonoption: IDropdownOption[];\r\n countryProviceData: ICountryProvince[] = [];\r\n stateValue: string;\r\n stateOption: IDropdownOption;\r\n countryoptions: IDropdownOption;\r\n isUsa: boolean;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n @ViewChild(StatefulPrimaryButtonComponent)\r\n submitButton: StatefulPrimaryButtonComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private fb: FormBuilder,\r\n private ees: EnrollmentExtendedService,\r\n private cs: CommonService,\r\n private store: Store,\r\n private cp: CustomerPortfolioService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n this.isUsa = true;\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n this.stateProvinceData = data['options'];\r\n this.countryProviceData = data['countryoption'];\r\n\r\n this.populateStateProvince();\r\n this.populateCountryProvince();\r\n })\r\n );\r\n\r\n this.form = this.fb.group({\r\n address1: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.pattern(\r\n /^(?!([p|P][\\s]*[o|O][\\s]*[s|S][\\s]*[b|B][\\s]*[o|O][\\s]*[x|X][\\s]*[a-zA-Z0-9]*|\\b[P|p]+(OST|ost|o|O)?\\.?\\s*[O|o|0]+(ffice|FFICE)?\\.?\\s*[B|b][O|o|0]?[X|x]+\\.?\\s+[#]?(\\d+)*(\\D+)*\\b)).*$/\r\n ),\r\n ],\r\n ],\r\n address2: [''],\r\n city: ['', [Validators.required]],\r\n state: ['', [Validators.required]],\r\n country: ['', [Validators.required]],\r\n zipCode: ['', [Validators.required, this.zipCodeValidator]],\r\n });\r\n\r\n if (\r\n this.payload.headquarterCountry === 'USA' ||\r\n this.payload.headquarterCountry == ''\r\n ) {\r\n if (this.payload.headquarterState) {\r\n this.stateOption = {\r\n label: this.payload.headquarterState,\r\n value: this.payload.headquarterState,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n } else {\r\n this.stateValue = this.payload.headquarterState;\r\n }\r\n this.selectionChange(this.stateOption);\r\n\r\n if (this.payload.headquarterCountry) {\r\n this.countryoptions = {\r\n label: this.payload.headquarterCountry,\r\n value: this.payload.headquarterCountry,\r\n action: this.anySelect.bind(this),\r\n };\r\n } else {\r\n const country = this.countryProviceData.find(\r\n (country) => country.alpha3Code === 'USA'\r\n );\r\n this.countryoptions = {\r\n label: country?.name ?? 'United States of America',\r\n value: country?.alpha3Code ?? 'USA',\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n this.selectionCountryChange(this.countryoptions, this.stateValue);\r\n\r\n this.form.get('address1')?.setValue(this.payload?.headquarterAddress1);\r\n this.form.get('address2')?.setValue(this.payload?.headquarterAddress2);\r\n this.form.get('city')?.setValue(this.payload?.headquarterCity);\r\n this.form.get('zipCode')?.setValue(this.payload?.headquarterZip);\r\n // if (this.defaultOption!.label && this.defaultOption!.value) {\r\n // this.selectionChange(this.defaultOption);\r\n // }\r\n }\r\n\r\n zipCodeValidator(control: AbstractControl): ValidationErrors | null {\r\n const countryValue = control.root.get('country')?.value?.value;\r\n\r\n if (countryValue === 'USA') {\r\n const zipCodePattern =\r\n /(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/;\r\n if (!zipCodePattern.test(control.value) && control.value != '') {\r\n return { invalidZipCode: true };\r\n }\r\n }\r\n return null;\r\n }\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n const headquarterAddress = new Address();\r\n headquarterAddress.address1 = this.form.get('address1')?.value ?? '';\r\n headquarterAddress.address2 = this.form.get('address2')?.value ?? '';\r\n headquarterAddress.city = this.form.get('city')?.value ?? '';\r\n headquarterAddress.state = this.form.get('state')?.value?.value ?? '';\r\n headquarterAddress.zipcode = this.form.get('zipCode')?.value ?? '';\r\n if (headquarterAddress.state === '') {\r\n headquarterAddress.state = this.form.get('state')?.value ?? '';\r\n }\r\n\r\n this.payload.headquarterCountry =\r\n this.form.get('country')?.value?.value ?? '';\r\n\r\n this.payload.headquarterAddress1 = headquarterAddress.address1;\r\n this.payload.headquarterAddress2 = headquarterAddress.address2;\r\n this.payload.headquarterCity = headquarterAddress.city;\r\n this.payload.headquarterState = headquarterAddress.state;\r\n this.payload.headquarterZip = headquarterAddress.zipcode;\r\n\r\n // saving country to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.HeadquarterCountryAction({\r\n headquarterCountry: this.payload.headquarterCountry,\r\n })\r\n );\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.HeadquarterAddressAction({\r\n headquarterAddress,\r\n })\r\n );\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n // this.questionText = \"What is your Coustomer's Headquarter Address?\";\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n \"What is your Customer's Headquarter Address?\";\r\n }\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n\r\n public selectionChange(value: any): void {\r\n this.form.get('state')?.setValue(value);\r\n this.stateOption = value;\r\n }\r\n public selectionCountryChange(value: any, state = ''): void {\r\n this.countryoptions = value;\r\n this.form.get('country')?.setValue(value);\r\n this.form.get('zipCode')?.setValue('');\r\n if (value.value !== 'USA') {\r\n this.isUsa = false;\r\n if (state != null && state !== '') {\r\n this.form.get('state')?.setValue(state);\r\n } else {\r\n this.form.get('state')?.setValue('');\r\n }\r\n } else {\r\n this.isUsa = true;\r\n this.form.get('state')?.setValue(this.stateOption.value);\r\n }\r\n }\r\n anySelect() {}\r\n\r\n async populateStateProvince() {\r\n // this.stateProvinceData = await this.cs.getStateProvince();\r\n\r\n this.stateDropdownOption = this.stateProvinceData.map((item) => ({\r\n label: item.name,\r\n value: item.code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n async populateCountryProvince() {\r\n this.countrydropdwonoption = this.countryProviceData.map((item) => ({\r\n label: item.name,\r\n value: item.alpha3Code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n Enter invoice amount\r\n \r\n
\r\n
\r\n Invoice amount should not be $0.00 \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { IStatefulOptions } from 'src/app/core/interfaces/onboarding/page-state/stateful-options.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-invoice-amount',\r\n templateUrl: './invoice-amount.component.html',\r\n styleUrls: ['./invoice-amount.component.scss'],\r\n})\r\nexport class InvoiceAmountComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n nextState: PageState;\r\n\r\n showCustomerDetails: boolean;\r\n responseData: any;\r\n form: FormGroup;\r\n questionText = 'How much do you invoice per month?';\r\n // tooltipContent: IPageContent;\r\n options: IStatefulOptions[];\r\n payload: ICustomerPortfolio;\r\n subscriptions: Subscription[] = [];\r\n tooltipContent: PageContent;\r\n customerName: string;\r\n format = 'c';\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n @ViewChild(StatefulPrimaryButtonComponent)\r\n submitButton: StatefulPrimaryButtonComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private cp: CustomerPortfolioService,\r\n private fb: FormBuilder,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n this.subscriptions.push(\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n this.form = this.fb.group({\r\n invoiceAmount: ['', [Validators.required, Validators.min(1)]],\r\n });\r\n\r\n const invoiceAmountValue = parseFloat(\r\n this.payload?.monthlyInvoiceAmount || '0'\r\n );\r\n this.form.get('invoiceAmount')?.setValue(invoiceAmountValue);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]) {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map) {\r\n // this.questionText =\r\n // contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n // \"What is your customer's Monthly Invoice Amount?\";\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n \"What is your customer's Monthly Invoice Amount?\";\r\n }\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n onInput(event: any): void {\r\n const inputValue = event.target.value;\r\n let numericValue = inputValue.replace(/[^0-9.]/g, '');\r\n if (Number.isNaN(numericValue) || numericValue === 0) {\r\n numericValue = '';\r\n } else {\r\n numericValue = numericValue.toString();\r\n }\r\n\r\n this.form.get('invoiceAmount')?.setValue(numericValue);\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n const invoiceAmount = this.form.get('invoiceAmount')?.value ?? '';\r\n this.payload.monthlyInvoiceAmount = invoiceAmount;\r\n\r\n // To handle if there is no form validation\r\n if (this.payload.monthlyInvoiceAmount === '') {\r\n this.payload.monthlyInvoiceAmount = '0';\r\n }\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.InvoiceAmountPerMonthAction({\r\n monthlyInvoiceAmount: invoiceAmount,\r\n })\r\n );\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IOptions } from 'src/app/core/interfaces/common/common/options.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { IStatefulOptions } from 'src/app/core/interfaces/onboarding/page-state/stateful-options.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { CustomerSearch } from 'src/app/core/models/customer-portfolio/customerSearch.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport {\r\n CustomerSearchAction,\r\n InvoiceTermAction,\r\n} from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectInvoiceTerms } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from '../add-first-customer/ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-invoice-term',\r\n templateUrl: './invoice-term.component.html',\r\n styleUrls: ['./invoice-term.component.scss'],\r\n})\r\nexport class InvoiceTermComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n belowThresholdState: PageState;\r\n aboveThresholdState: PageState;\r\n nextState: PageState;\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n attradiusNoResultState: PageState;\r\n questionText = \"What is your customer's Standard Invoice Term?\";\r\n tooltipContent: IPageContent;\r\n invoiveTerm: IStatefulOptions[];\r\n payload: ICustomerPortfolio;\r\n subscriptions: Subscription[] = [];\r\n pageStateId: string;\r\n customerName: string;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private cp: CustomerPortfolioService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store,\r\n private router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n this.subscriptions.push(\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n this.populateOptionStates(data['options']);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]) {\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.attradiusNoResultState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.ATRADIUS_TIMED_OUT,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map) {\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n \"What is customer's standard invoice term?\";\r\n }\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n populateOptionStates(options: IOptions[]) {\r\n let selectedId = -10;\r\n const props$ = this.store.select(selectInvoiceTerms);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.customerInvoiceTerm.id as number;\r\n })\r\n );\r\n // We will need to do threshold filtering\r\n this.invoiveTerm = options.map((option) => ({\r\n ...option,\r\n state: this.nextState,\r\n selected: option.id === selectedId,\r\n }));\r\n }\r\n\r\n async handleOutput(outputValue: any) {\r\n const clickedOption = this.invoiveTerm[outputValue];\r\n if (clickedOption) {\r\n this.payload.invoiceTerm = {\r\n id: clickedOption?.id,\r\n value: clickedOption?.value,\r\n };\r\n\r\n this.store.dispatch(\r\n InvoiceTermAction({\r\n invoiceTerm: { id: clickedOption!.id, value: clickedOption!.value },\r\n })\r\n );\r\n }\r\n return true;\r\n }\r\n\r\n async submit() {\r\n const data = await this.cp.submitCustomerPortfolioData(this.payload);\r\n this.dispatchCustomerSearchData(data);\r\n\r\n if (this.payload.isFederal === false) {\r\n if (data.buyerId > 0) {\r\n this.router.navigate([this.nextState.pageUrl], {\r\n queryParams: { stateId: this.nextState.id },\r\n });\r\n } else {\r\n this.router.navigate([this.attradiusNoResultState.pageUrl], {\r\n queryParams: { stateId: this.attradiusNoResultState.id },\r\n });\r\n }\r\n } else {\r\n this.router.navigate([this.nextState.pageUrl], {\r\n queryParams: { stateId: this.nextState.id },\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n private dispatchCustomerSearchData(customerPortfolio: ICustomerPortfolio) {\r\n const customerSearch = new CustomerSearch();\r\n customerSearch.customerName = customerPortfolio.buyerName;\r\n customerSearch.address = customerPortfolio.buyerAddress;\r\n customerSearch.state = customerPortfolio.buyerRegionCode;\r\n customerSearch.city = customerPortfolio.buyerCity;\r\n customerSearch.zipCode = customerPortfolio.buyerPostcode;\r\n customerSearch.country = customerPortfolio.buyerRegionCode;\r\n customerSearch.buyerId = customerPortfolio.buyerId;\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerSearchAction({\r\n customerSearch,\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDocumentType } from 'src/app/core/interfaces/common/document/document-type.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerName } from 'src/app/core/store/onboarding/reducers+selectors/customer-portfolio.selector';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-is-headquarter-address',\r\n templateUrl: './is-headquarter-address.component.html',\r\n styleUrls: ['./is-headquarter-address.component.scss'],\r\n})\r\nexport class IsHeadquarterAddressComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n homeState: PageState;\r\n backState: PageState;\r\n yesState: PageState;\r\n noState: PageState;\r\n\r\n questionText = '';\r\n tooltipContent: IPageContent;\r\n documentType: IDocumentType;\r\n files: any[] = [];\r\n payload: ICustomerPortfolio;\r\n customerName: string;\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private cp: CustomerPortfolioService,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.data.subscribe((data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n const customerNameProp$ = this.store.select(selectCustomerName);\r\n this.subscriptions.push(\r\n customerNameProp$.subscribe((props) => {\r\n this.customerName = props;\r\n })\r\n );\r\n /** end of testing */\r\n });\r\n this.payload = this.cp.getPayload();\r\n }\r\n\r\n ngOnDestroy() {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.yesState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.YES,\r\n transitions\r\n );\r\n this.noState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NO,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n // this.questionText =\r\n // contentDict.get(ContentIDConstants.question)?.displayText ??\r\n // 'Is Headquarters address different than Billing Address?';\r\n const questionTextFromDict = contentDict.get(\r\n ContentIDConstants.Question\r\n )?.displayText;\r\n const placeholder = '#Customer Name#';\r\n\r\n if (questionTextFromDict && questionTextFromDict.includes(placeholder)) {\r\n this.questionText = questionTextFromDict.replace(\r\n placeholder,\r\n this.customerName\r\n );\r\n } else {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'Is Headquarters address different than Billing Address?';\r\n }\r\n\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n\r\n async handleSelectedOutput(outputValue: boolean) {\r\n this.payload.isHeadquarterAddress = outputValue;\r\n // this.cp.setisFederal(this.payload.isFederal);\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.IsHeadquarterAddressAction({\r\n isHeadquarterAddress: outputValue,\r\n })\r\n );\r\n this.cp.submitCustomerPortfolioData(this.payload);\r\n }\r\n\r\n async isHeadquarterSameYes() {\r\n this.payload.isHeadquarterAddress = true;\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.IsHeadquarterAddressAction({\r\n isHeadquarterAddress: this.payload.isHeadquarterAddress,\r\n })\r\n );\r\n\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n\r\n async isHeadquarterSameNo() {\r\n this.payload.isHeadquarterAddress = false;\r\n\r\n this.store.dispatch(\r\n CustomerDetailsAction.IsHeadquarterAddressAction({\r\n isHeadquarterAddress: this.payload.isHeadquarterAddress,\r\n })\r\n );\r\n\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n tooltip1: 1,\r\n};","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

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

{{ this.questionText }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's first line\r\n \r\n \r\n Enter a valid physical address\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's second line\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's city\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n \r\n\r\n \r\n \r\n Enter address's zipcode\r\n \r\n\r\n \r\n Enter a valid zipcode\r\n \r\n
\r\n \r\n\r\n \r\n
\r\n \r\n\r\n \r\n \r\n Please choose one of the options\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n","
\r\n \r\n
\r\n
\r\n

{{this.questionText}}

\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n file is required\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { CountryResolver } from 'src/app/core/resolvers/common/country.resolver';\r\nimport { StateResolver } from 'src/app/core/resolvers/common/state.resolver';\r\nimport { CreditDocumentResolver } from 'src/app/core/resolvers/document/credit-document.resolver';\r\nimport { AdditionalCreditInfoResolver } from 'src/app/core/resolvers/onboarding/customer-portfolio/additional-credit-info.resolver';\r\nimport { InvoiceTermResolver } from 'src/app/core/resolvers/onboarding/customer-portfolio/invoice-term.resolver';\r\nimport { PageStateCustomerPersonalizedResolver } from 'src/app/core/resolvers/onboarding/navigation/page-state-customer-personalized.resolver';\r\nimport { PageStateResolver } from 'src/app/core/resolvers/onboarding/navigation/page-state.resolver';\r\nimport { AddFirstCustomerComponent } from './add-first-customer/add-first-customer.component';\r\nimport { AdditionalCreditInfoComponent } from './additional-credit-info/additional-credit-info.component';\r\nimport { AutofillDetailsComponent } from './autofill-details/autofill-details.component';\r\nimport { BillingAddressComponent } from './billing-address/billing-address.component';\r\nimport { ConfirmCustomerSearchComponent } from './confirm-customer-search/confirm-customer-search.component';\r\nimport { CustomerDetailsGridComponent } from './customer-details-grid/customer-details-grid.component';\r\nimport { CustomerDetailsComponent } from './customer-details/customer-details.component';\r\nimport { CustomerEntryOptionsComponent } from './customer-entry-options/customer-entry-options.component';\r\nimport { EnterCustomerDetailsComponent } from './enter-customer-details/enter-customer-details.component';\r\nimport { FederalOrAgencyComponent } from './federal-or-agency/federal-or-agency.component';\r\nimport { HeadquartersAddresComponent } from './headquarters-addres/headquarters-addres.component';\r\nimport { InvoiceAmountComponent } from './invoice-amount/invoice-amount.component';\r\nimport { InvoiceTermComponent } from './invoice-term/invoice-term.component';\r\nimport { IsHeadquarterAddressComponent } from './is-headquarter-address/is-headquarter-address.component';\r\nimport { PhysicalAddressComponent } from './physical-address/physical-address.component';\r\nimport { UploadFederalContractComponent } from './upload-federal-contract/upload-federal-contract.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'add-first-customer',\r\n component: AddFirstCustomerComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n path: 'customer-entry-option',\r\n component: CustomerEntryOptionsComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n path: 'upload-invoice-file',\r\n component: AutofillDetailsComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n path: 'enter-customer-details',\r\n component: EnterCustomerDetailsComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n // customer-name-Id\r\n path: 'customername-id-details',\r\n component: CustomerDetailsComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n path: 'federal-or-state',\r\n component: FederalOrAgencyComponent,\r\n resolve: { data: PageStateCustomerPersonalizedResolver },\r\n },\r\n {\r\n path: 'customer-billing-address',\r\n component: BillingAddressComponent,\r\n resolve: {\r\n data: PageStateCustomerPersonalizedResolver,\r\n options: StateResolver,\r\n option: CountryResolver,\r\n },\r\n },\r\n {\r\n path: 'customer-physical-address',\r\n component: PhysicalAddressComponent,\r\n resolve: {\r\n data: PageStateCustomerPersonalizedResolver,\r\n options: StateResolver,\r\n option: CountryResolver,\r\n },\r\n },\r\n {\r\n path: 'customer-headquarters-address',\r\n component: HeadquartersAddresComponent,\r\n resolve: {\r\n data: PageStateCustomerPersonalizedResolver,\r\n options: StateResolver,\r\n countryoption: CountryResolver,\r\n },\r\n },\r\n {\r\n path: 'invoice-amount',\r\n component: InvoiceAmountComponent,\r\n resolve: { data: PageStateCustomerPersonalizedResolver },\r\n },\r\n {\r\n path: 'invoice-term',\r\n component: InvoiceTermComponent,\r\n resolve: {\r\n data: PageStateCustomerPersonalizedResolver,\r\n options: InvoiceTermResolver,\r\n },\r\n },\r\n {\r\n path: 'customer-details-grid',\r\n component: CustomerDetailsGridComponent,\r\n resolve: { data: PageStateResolver },\r\n },\r\n {\r\n path: 'is-headquarters-address',\r\n component: IsHeadquarterAddressComponent,\r\n resolve: { data: PageStateCustomerPersonalizedResolver },\r\n },\r\n {\r\n path: 'upload-federal-contract',\r\n component: UploadFederalContractComponent,\r\n resolve: { data: PageStateCustomerPersonalizedResolver },\r\n },\r\n {\r\n path: 'additional-credit-info',\r\n component: AdditionalCreditInfoComponent,\r\n resolve: {\r\n data: PageStateCustomerPersonalizedResolver,\r\n documentTypes: CreditDocumentResolver,\r\n additionalCreditInfo: AdditionalCreditInfoResolver,\r\n },\r\n },\r\n {\r\n path: 'confirm-customer-search',\r\n component: ConfirmCustomerSearchComponent,\r\n resolve: { data: PageStateCustomerPersonalizedResolver },\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [PageStateResolver],\r\n})\r\nexport class CustomerPortfolioRoutingModule {}\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { ICountryProvince } from 'src/app/core/interfaces/common/common/countryProvince.interface';\r\nimport { IStateProvince } from 'src/app/core/interfaces/common/common/stateProvince.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDropdownOption } from 'src/app/core/interfaces/common/ui/dropdown-option.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { Address } from 'src/app/core/models/common/address.model';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CommonService } from 'src/app/core/services/common/common.service';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport * as CustomerDetailsAction from 'src/app/core/store/onboarding/actions/customer-portfolio.actions';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { StatefulPrimaryButtonComponent } from 'src/app/shared/onboarding/stateful-primary-button/stateful-primary-button.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-physical-address',\r\n templateUrl: './physical-address.component.html',\r\n styleUrls: ['./physical-address.component.scss'],\r\n})\r\nexport class PhysicalAddressComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n form: FormGroup;\r\n\r\n input1Text: 'Address1';\r\n input2Text: 'Address2';\r\n input3Text: 'City';\r\n input4Text: 'State';\r\n input5Text: 'Zipcode';\r\n input6Text: 'Country';\r\n\r\n responseData: any;\r\n tooltip1Text: string;\r\n questionText: string;\r\n dropdownHeaderText: 'State';\r\n isUsa: boolean;\r\n states: string[];\r\n stateOption: IDropdownOption;\r\n countryOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n options: IDropdownOption[];\r\n countrydropdwonoption: IDropdownOption[];\r\n stateProvinceData: IStateProvince[] = [];\r\n countryProviceData: ICountryProvince[] = [];\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: ICustomerPortfolio;\r\n showCustomerDetails: boolean;\r\n tooltipContent: IPageContent;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n customerName: string;\r\n stateValue: string;\r\n @ViewChild(StatefulPrimaryButtonComponent)\r\n submitButton: StatefulPrimaryButtonComponent;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private fb: FormBuilder,\r\n private ees: EnrollmentExtendedService,\r\n private cs: CommonService,\r\n private store: Store,\r\n private cp: CustomerPortfolioService\r\n ) {\r\n super();\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.payload = this.cp.getPayload();\r\n this.isUsa = true;\r\n this.subscriptions.push(\r\n this.route.data.subscribe(async (data) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n this.stateProvinceData = data['options'];\r\n this.countryProviceData = data['option'];\r\n\r\n this.populateStateProvince();\r\n this.populateCountryProvince();\r\n })\r\n );\r\n\r\n this.form = this.fb.group({\r\n address1: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.pattern(\r\n /^(?!([p|P][\\s]*[o|O][\\s]*[s|S][\\s]*[b|B][\\s]*[o|O][\\s]*[x|X][\\s]*[a-zA-Z0-9]*|\\b[P|p]+(OST|ost|o|O)?\\.?\\s*[O|o|0]+(ffice|FFICE)?\\.?\\s*[B|b][O|o|0]?[X|x]+\\.?\\s+[#]?(\\d+)*(\\D+)*\\b)).*$/\r\n ),\r\n ],\r\n ],\r\n address2: [''],\r\n city: ['', [Validators.required]],\r\n state: ['', [Validators.required]],\r\n country: ['', [Validators.required]],\r\n zipCode: ['', [Validators.required, this.zipCodeValidator]],\r\n });\r\n\r\n if (\r\n this.payload.physicalToCountry === 'USA' ||\r\n this.payload.physicalToCountry == ''\r\n ) {\r\n if (this.payload.physicalToState) {\r\n this.stateOption = {\r\n label: this.payload.physicalToState,\r\n value: this.payload.physicalToState,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n } else {\r\n this.stateValue = this.payload.physicalToState;\r\n }\r\n this.selectionChange(this.stateOption);\r\n\r\n if (this.payload.physicalToCountry) {\r\n this.countryOption = {\r\n label: this.payload.physicalToCountry,\r\n value: this.payload.physicalToCountry,\r\n action: this.anySelect.bind(this),\r\n };\r\n } else {\r\n const country = this.countryProviceData.find(\r\n (country) => country.alpha3Code === 'USA'\r\n );\r\n this.countryOption = {\r\n label: country?.name ?? 'United States of America',\r\n value: country?.alpha3Code ?? 'USA',\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n this.selectionCountryChange(this.countryOption, this.stateValue);\r\n\r\n this.form.get('address1')?.setValue(this.payload?.physicalToAddress1);\r\n this.form.get('address2')?.setValue(this.payload?.physicalToAddress2);\r\n this.form.get('city')?.setValue(this.payload?.physicalToCity);\r\n this.form.get('zipCode')?.setValue(this.payload?.physicalToZip);\r\n }\r\n\r\n zipCodeValidator(control: AbstractControl): ValidationErrors | null {\r\n const countryValue = control.root.get('country')?.value?.value;\r\n if (countryValue === 'USA') {\r\n const zipCodePattern =\r\n /(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/;\r\n if (!zipCodePattern.test(control.value) && control.value != '') {\r\n return { invalidZipCode: true };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n const physicalAddress = new Address();\r\n physicalAddress.address1 = this.form.get('address1')?.value ?? '';\r\n physicalAddress.address2 = this.form.get('address2')?.value ?? '';\r\n physicalAddress.city = this.form.get('city')?.value ?? '';\r\n physicalAddress.state = this.form.get('state')?.value?.value ?? '';\r\n if (physicalAddress.state === '') {\r\n physicalAddress.state = this.form.get('state')?.value ?? '';\r\n }\r\n physicalAddress.zipcode = this.form.get('zipCode')?.value ?? '';\r\n this.payload.physicalToCountry =\r\n this.form.get('country')?.value?.value ?? '';\r\n\r\n this.payload.physicalToAddress1 = physicalAddress.address1;\r\n this.payload.physicalToAddress2 = physicalAddress.address2;\r\n this.payload.physicalToCity = physicalAddress.city;\r\n\r\n this.payload.physicalToState = physicalAddress.state;\r\n this.payload.physicalToZip = physicalAddress.zipcode;\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.PhysicalCountryAction({\r\n physicalCountry: this.payload.physicalToCountry,\r\n })\r\n );\r\n // saving to store\r\n this.store.dispatch(\r\n CustomerDetailsAction.PhysicalAddressAction({\r\n physicalAddress,\r\n })\r\n );\r\n\r\n const data = await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n 'What is your Physical Address?';\r\n\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n\r\n public selectionChange(value: any): void {\r\n this.form.get('state')?.setValue(value);\r\n this.stateOption = value;\r\n }\r\n\r\n public selectionCountryChange(value: any, state = ''): void {\r\n this.countryOption = value;\r\n this.form.get('country')?.setValue(value);\r\n this.form.get('zipCode')?.setValue('');\r\n if (value.value !== 'USA') {\r\n this.isUsa = false;\r\n if (state != null && state != '') {\r\n this.form.get('state')?.setValue(state);\r\n } else {\r\n this.form.get('state')?.setValue('');\r\n }\r\n } else {\r\n this.isUsa = true;\r\n this.form.get('state')?.setValue(this.stateOption.value);\r\n }\r\n }\r\n anySelect() {}\r\n\r\n async populateStateProvince() {\r\n this.options = this.stateProvinceData.map((item) => ({\r\n label: item.name,\r\n value: item.code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n async populateCountryProvince() {\r\n this.countrydropdwonoption = this.countryProviceData.map((item) => ({\r\n label: item.name,\r\n value: item.alpha3Code,\r\n action: this.anySelect.bind(this),\r\n }));\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n tooltip1: 1,\r\n};","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { Subscription } from 'rxjs';\r\nimport { AbstractOnboardingPageComponent } from 'src/app/core/abstracts/components/onboarding-page.abstract';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { OnboardingModuleStatuses } from 'src/app/core/enums/onboarding-module-status.enum';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IDocumentType } from 'src/app/core/interfaces/common/document/document-type.interface';\r\nimport { ICustomerPortfolio } from 'src/app/core/interfaces/onboarding/customer-portfolio/customer-portfolio.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageContent } from 'src/app/core/models/common/page-content.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CustomerPortfolioService } from 'src/app/core/services/onboarding/customer-portfolio.service';\r\nimport { EnrollmentExtendedService } from 'src/app/core/services/onboarding/enrollment-extended.service';\r\nimport { PageStateService } from 'src/app/core/services/onboarding/page-state.service';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectCustomerPortfolioStatusId } from 'src/app/core/store/onboarding/reducers+selectors/enrollment.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ToolTipComponent } from 'src/app/shared/common/tool-tip/tool-tip.component';\r\nimport { ShellComponent } from 'src/app/shared/onboarding/shell/shell.component';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-upload-federal-contract',\r\n templateUrl: './upload-federal-contract.component.html',\r\n styleUrls: ['./upload-federal-contract.component.scss'],\r\n})\r\nexport class UploadFederalContractComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy {\r\n homeState: PageState;\r\n backState: PageState;\r\n skipState: PageState;\r\n nextState: PageState;\r\n uploadSaveUrl = '';\r\n form: FormGroup;\r\n questionText = 'Upload Federal Contract Document';\r\n tooltipContent: IPageContent;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n documentType: IDocumentType;\r\n files: any[] = [];\r\n payload: ICustomerPortfolio;\r\n subscriptions: Subscription[] = [];\r\n customerName: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private cp: CustomerPortfolioService,\r\n private formBuilder: FormBuilder,\r\n private store: Store\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.data.subscribe((data: any) => {\r\n const { transitions } = data['data'];\r\n const { contentDict } = data['data'];\r\n this.populatePageStates(transitions);\r\n this.populatePageContent(contentDict);\r\n let moduleStatus = OnboardingModuleStatuses.ACTIVE;\r\n const cpStatusId$ = this.store.select(selectCustomerPortfolioStatusId);\r\n this.subscriptions.push(\r\n cpStatusId$.subscribe((cpStatusId) => {\r\n moduleStatus = cpStatusId;\r\n })\r\n );\r\n\r\n this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n if (moduleStatus === OnboardingModuleStatuses.ACTIVE)\r\n this.ees.updateDashboardStateId(this.homeState.id);\r\n })\r\n );\r\n });\r\n this.documentType = {\r\n documentTypeId: 1,\r\n documentTypeName: 'federalcontract',\r\n isCreditSupportingDoc: false,\r\n isInvoiceSupportingDoc: false,\r\n };\r\n\r\n this.form = this.formBuilder.group({\r\n filesData: ['', Validators.required],\r\n });\r\n\r\n this.payload = this.cp.getPayload();\r\n this.customerName = this.payload.customerName;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n populatePageStates(transitions: ITransition[]): void {\r\n this.homeState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.HOME,\r\n transitions\r\n );\r\n this.nextState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NEXT,\r\n transitions\r\n );\r\n this.backState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BACK,\r\n transitions\r\n );\r\n this.skipState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SKIP,\r\n transitions\r\n );\r\n }\r\n\r\n populatePageContent(contentDict: Map): void {\r\n this.questionText =\r\n contentDict.get(ContentIDConstants.question)?.displayText ??\r\n 'Upload a federal contract below';\r\n this.tooltipContent =\r\n contentDict.get(ContentIDConstants.tooltip1) ?? new PageContent();\r\n }\r\n\r\n async submit() {\r\n if (this.form.valid) {\r\n this.files = this.form.get('filesData')?.value;\r\n this.payload.file = this.files[0].rawFile;\r\n await this.cp.submitCustomerPortfolioData(this.payload);\r\n return true;\r\n }\r\n // mark all controls as touched to trigger validation\r\n this.form.markAllAsTouched();\r\n return false;\r\n }\r\n}\r\n","export const ContentIDConstants = {\r\n question: 0,\r\n tooltip1: 1,\r\n};","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { CommonSharedModule } from 'src/app/shared/common/common-shared.module';\r\nimport { KendoModule } from 'src/app/shared/kendo/kendo.module';\r\nimport { OnboardingSharedModule } from 'src/app/shared/onboarding/onboarding-shared.module';\r\nimport { AddFirstCustomerComponent } from './add-first-customer/add-first-customer.component';\r\nimport { CustomerDetailsGridComponent } from './customer-details-grid/customer-details-grid.component';\r\nimport { CustomerPortfolioRoutingModule } from './customer-portfolio-routing.module';\r\n\r\nimport { AdditionalCreditInfoComponent } from './additional-credit-info/additional-credit-info.component';\r\nimport { AutofillDetailsComponent } from './autofill-details/autofill-details.component';\r\nimport { BillingAddressComponent } from './billing-address/billing-address.component';\r\nimport { CustomerDetailsComponent } from './customer-details/customer-details.component';\r\nimport { CustomerEntryOptionsComponent } from './customer-entry-options/customer-entry-options.component';\r\nimport { EnterCustomerDetailsComponent } from './enter-customer-details/enter-customer-details.component';\r\nimport { FederalOrAgencyComponent } from './federal-or-agency/federal-or-agency.component';\r\nimport { HeadquartersAddresComponent } from './headquarters-addres/headquarters-addres.component';\r\nimport { InvoiceAmountComponent } from './invoice-amount/invoice-amount.component';\r\nimport { InvoiceTermComponent } from './invoice-term/invoice-term.component';\r\nimport { IsHeadquarterAddressComponent } from './is-headquarter-address/is-headquarter-address.component';\r\nimport { PhysicalAddressComponent } from './physical-address/physical-address.component';\r\nimport { UploadFederalContractComponent } from './upload-federal-contract/upload-federal-contract.component';\r\nimport { ConfirmCustomerSearchComponent } from './confirm-customer-search/confirm-customer-search.component';\r\n\r\nconst components = [\r\n AddFirstCustomerComponent,\r\n CustomerEntryOptionsComponent,\r\n CustomerDetailsGridComponent,\r\n AutofillDetailsComponent,\r\n EnterCustomerDetailsComponent,\r\n CustomerDetailsComponent,\r\n FederalOrAgencyComponent,\r\n BillingAddressComponent,\r\n InvoiceAmountComponent,\r\n InvoiceTermComponent,\r\n IsHeadquarterAddressComponent,\r\n HeadquartersAddresComponent,\r\n PhysicalAddressComponent,\r\n UploadFederalContractComponent,\r\n AdditionalCreditInfoComponent,\r\n ConfirmCustomerSearchComponent,\r\n];\r\n\r\nconst modules = [\r\n CommonModule,\r\n CustomerPortfolioRoutingModule,\r\n CommonSharedModule,\r\n KendoModule,\r\n OnboardingSharedModule,\r\n];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [...modules],\r\n exports: [...components, ...modules],\r\n})\r\nexport class CustomerPortfolioModule { }\r\n"],"x_google_ignoreList":[]}