{"version":3,"file":"src_app_pages_onboarding_business-profile_business-profile_module_ts.785e6aba7d0bb562.js","mappings":"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","names":["AnnualRevenueComponent","AbstractOnboardingPageComponent","constructor","route","ps","ees","bf","store","super","this","isTablet","window","innerWidth","BreakpointConstants","ngOnInit","_this","subscriptions","push","data","subscribe","transitions","contentDict","populatePageStates","populatePageContent","queryParams","params","updateBusinessProfileStateId","stateId","homeState","id","pageStateId","populateOptionStates","options","payload","getPayload","PageStateId","ngAfterViewInit","syncComponentHeightResize","questionTooltipComponent","shellComponent","content","container","ngOnDestroy","destructSubscriptionArray","onResize","submit","backState","getPageStateByEventAndTransitions","EventTypes","nextState","skipState","questionText","get","displayText","tooltip1Content","PageContent","selectedId","props$","select","selectAnnualRevenue","props","annualRevenue","annualRevenueData","map","option","state","selected","handleOutput","outputValue","clickedOption","_this2","AnnualRevenueId","AnnualRevenue","value","submitBusinessProfileData","dispatch","AnnualRevenueAction","static","core","selectors","ShellComponent","ToolTipComponent","ctx","i0","ApplicationSummaryComponent","selectAllBusinessProfile","buildDisplayPayload","unsubscribe","headerText","bpStore","displayData","key","businessType","businessIndustry","buildBusinessDescriptionString","businessDescription","buildCustomerTypesString","customerTypes","stateOfOrg","dba","companyWebsite","yearFounded","employeeCount","invoicingMethod","buildSupportMethodsString","supportMethods","customerTypeValues","filter","x","customerLen","length","result","i","supportMethodValues","methodLen","substring","BusinessDescriptionComponent","fb","form","group","Validators","setValue","BusinessDescription","valid","res","BusinessDescriptionAction","isSuccessful","markAllAsTouched","onEnter","submitButton","StatefulPrimaryButtonComponent","BusinessIndustryComponent","PageState","watchTabletThreshold","others","othersSelected","trim","clickedOtherOption","__return","submitBusinessIndustry","idValuePair","_this3","IndustryBusinessValue","IndustryBusinessOthers","IndustryBusinessId","BusinessIndustryAction","submitOthers","_this4","selectedValue","selectBusinessIndustry","businessIndustryData","find","item","_this5","BusinessInvoiceComponent","submitBusinessInvoice","InvoicingMethod","BusinessInvoiceOthers","InvoicingMethodAction","BusinessInvoiceId","selectInvoicingMethod","businessInvoiceData","BusinessProfileGuard","canActivate","statusIds$","selectModuleStatuses","businessProfileStatusId","OnboardingModuleStatuses","factory","AnnualRevenueResolver","bps","resolve","loadAnnualRevenue","BusinessTypeResolver","loadLegalFormOfBusiness","CustomerTypeResolver","loadCustomerType","YearFoundedResolver","loadYearFounded","BusinessTypeComponent","selectBusinessType","businessTypeData","LegalFormOfBusinessId","LegalFormOfBusinessName","BusinessTypeAction","CompanyAddressComponent","cs","stateProvinceData","populateStateProvince","properties$","selectCompanyAddress","companyAddress","defaultOption","label","action","anySelect","bind","address1","address2","city","zipCode","Address1","Address2","City","ZipCode","selectionChange","Address","zipcode","State","CompanyAddressAction","name","code","CompanyWebsiteComponent","cws","Website","cwsValue","CompanyWebsiteAction","ConfirmCompanySearchComponent","router","selectCompanySearch","RegisteredCompanyName","companySearch","registeredCompanyName","searchResultData","IsConfirmed","LookupId","lookupId","EntityNumber","entityNumber","bpState","companyNotFound","noScore","lowScore","industrySourceNotQualified","notQualified","preQualified","bpSummaryState","StateOfOrganization","YearFounded","NumberOfEmployees","DBA","Industry","confirmClick","confirmCompanyInfo","CompanyResultViewTypes","Promise","allSettled","completeBusinessProfile","activateFinancialProfile","navigate","pageUrl","thisIsntMeClick","ConfirmDetailsComponent","companyInfo","getBestMatch","response","dispatchCompanySearch","soleProprietorship","address","buildAddress","editState","bpEdit1","bpEdit2","bpEdit13","CustomerTypes","bpEdit3","bpEdit4","bpEdit5","formatString","bpEdit6","bpEdit7","bpEdit8","bpEdit9","bpEdit10","bpEdit11","SupportMethods","bpEdit12","valueToUse","CompanySearch","companySearchResultModel","lookupTypeId","CompanySearchAction","CustomerTypeComponent","notificationService","customerTypeData","selectCustomerTypes","typeLen","anySelected","tempArr","type","console","log","CustomerTypesAction","reportAlert","DbaComponent","dbaValue","DbaAction","EmployeeCountComponent","selectEmployeeCount","employeeCountData","NumberOfEmployeesId","EmployeeCountAction","StateOfOrgComponent","selectStateOfOrg","selectedState","StateOfOrgAction","SupportMethodComponent","supportMethodData","selectSupportMethod","SupportMethodsAction","method","routes","path","component","PageStateClientPersonalizedResolver","BusinessIndustryResolver","StateResolver","YearFoundedComponent","yearFoundedData","populateYearFoundedOptions","selectYearFounded","selectedYear","YearFoundedAction","EmployeeCountResolver","BusinessInvoiceResolver","SupportMethodResolver","PageStateResolver","BusinessProfileRoutingModule","imports","RouterModule","modules","CommonModule","CommonSharedModule","KendoModule","OnboardingSharedModule","BusinessProfileModule"],"sourceRoot":"webpack:///","sources":["./src/app/pages/onboarding/business-profile/annual-revenue/annual-revenue.component.ts","./src/app/pages/onboarding/business-profile/annual-revenue/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/annual-revenue/annual-revenue.component.html","./src/app/pages/onboarding/business-profile/application-summary/application-summary.component.html","./src/app/pages/onboarding/business-profile/application-summary/application-summary.component.ts","./src/app/pages/onboarding/business-profile/application-summary/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/business-description/business-description.component.html","./src/app/pages/onboarding/business-profile/business-description/business-description.component.ts","./src/app/pages/onboarding/business-profile/business-description/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/business-industry/business-industry.component.html","./src/app/pages/onboarding/business-profile/business-industry/business-industry.component.ts","./src/app/pages/onboarding/business-profile/business-industry/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/business-invoice/business-invoice.component.html","./src/app/pages/onboarding/business-profile/business-invoice/business-invoice.component.ts","./src/app/pages/onboarding/business-profile/business-invoice/ContentIDConstants.ts","./src/app/core/guards/onboarding/business-profile.guard.ts","./src/app/core/resolvers/onboarding/business-profile/annual-revenue.resolver.ts","./src/app/core/resolvers/onboarding/business-profile/business-type.resolver.ts","./src/app/core/resolvers/onboarding/business-profile/customer-type.resolver.ts","./src/app/core/resolvers/onboarding/business-profile/year-founded.resolver.ts","./src/app/pages/onboarding/business-profile/business-type/business-type.component.ts","./src/app/pages/onboarding/business-profile/business-type/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/business-type/business-type.component.html","./src/app/pages/onboarding/business-profile/company-address/company-address.component.html","./src/app/pages/onboarding/business-profile/company-address/company-address.component.ts","./src/app/pages/onboarding/business-profile/company-address/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/company-website/company-website.component.html","./src/app/pages/onboarding/business-profile/company-website/company-website.component.ts","./src/app/pages/onboarding/business-profile/company-website/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/confirm-company-search/confirm-company-search.component.html","./src/app/pages/onboarding/business-profile/confirm-company-search/confirm-company-search.component.ts","./src/app/pages/onboarding/business-profile/confirm-company-search/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/confirm-details/confirm-details.component.html","./src/app/pages/onboarding/business-profile/confirm-details/confirm-details.component.ts","./src/app/pages/onboarding/business-profile/confirm-details/ContentIDConstants.ts","./src/app/core/enums/customer-types.enum.ts","./src/app/pages/onboarding/business-profile/customer-type/customer-type.component.html","./src/app/pages/onboarding/business-profile/customer-type/customer-type.component.ts","./src/app/pages/onboarding/business-profile/customer-type/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/dba/dba.component.html","./src/app/pages/onboarding/business-profile/dba/dba.component.ts","./src/app/pages/onboarding/business-profile/dba/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/employee-count/employee-count.component.ts","./src/app/pages/onboarding/business-profile/employee-count/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/employee-count/employee-count.component.html","./src/app/pages/onboarding/business-profile/state-of-org/state-of-org.component.html","./src/app/pages/onboarding/business-profile/state-of-org/state-of-org.component.ts","./src/app/pages/onboarding/business-profile/state-of-org/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/support-method/support-method.component.ts","./src/app/pages/onboarding/business-profile/support-method/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/support-method/support-method.component.html","./src/app/pages/onboarding/business-profile/year-founded/year-founded.component.html","./src/app/pages/onboarding/business-profile/business-profile-routing.module.ts","./src/app/pages/onboarding/business-profile/year-founded/year-founded.component.ts","./src/app/pages/onboarding/business-profile/year-founded/ContentIDConstants.ts","./src/app/pages/onboarding/business-profile/business-profile.module.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n Component,\r\n HostListener,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} 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 { IIdValuePair } from 'src/app/core/interfaces/common/common/id-value-pair.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { AnnualRevenueAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectAnnualRevenue } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { BreakpointConstants } from 'src/app/core/ui-helpers/constants/breakpoint-constants';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-annual-revenue',\r\n templateUrl: './annual-revenue.component.html',\r\n styleUrls: ['./annual-revenue.component.scss'],\r\n})\r\nexport class AnnualRevenueComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n annualRevenueData: IStatefulOptions[] = [];\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n tooltip1Content: PageContent;\r\n questionText: string;\r\n payload: IBusinessProfile;\r\n subscriptions: Subscription[] = [];\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 bf: BusinessProfileService,\r\n private store: Store\r\n ) {\r\n super();\r\n this.isTablet = window.innerWidth < BreakpointConstants.tabletBreakpoint;\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.populateOptionStates(data['options']);\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\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 @HostListener('window:resize')\r\n onResize() {\r\n this.isTablet = window.innerWidth < BreakpointConstants.tabletBreakpoint;\r\n }\r\n\r\n async submit() {\r\n return true;\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 Annual Revenue?';\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(selectAnnualRevenue);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.annualRevenue.id as number;\r\n })\r\n );\r\n this.annualRevenueData = 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 // Handle the emitted output parameter value here\r\n const clickedOption = this.annualRevenueData[outputValue];\r\n\r\n this.payload.AnnualRevenueId = clickedOption.id;\r\n this.payload.AnnualRevenue = clickedOption.value;\r\n\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n const idValuePair: IIdValuePair = {\r\n id: clickedOption.id,\r\n value: clickedOption.value,\r\n };\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n AnnualRevenueAction({\r\n annualRevenue: idValuePair,\r\n })\r\n );\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
\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

{{this.headerText}}

\r\n
\r\n \r\n
\r\n
\r\n {{ item.key }}:\r\n
\r\n {{ item.value }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit } 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IMultiOptions } from 'src/app/core/interfaces/onboarding/business-profile/business-multi-options.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { IAppState } from 'src/app/core/store/common/interfaces/app-state.interface';\r\nimport { selectAllBusinessProfile } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-application-summary',\r\n templateUrl: './application-summary.component.html',\r\n styleUrls: ['./application-summary.component.scss'],\r\n})\r\nexport class ApplicationSummaryComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n displayData: { key: string; value: string }[] = [];\r\n subscriptions: Subscription[] = [];\r\n headerText = 'Business Profile Summary';\r\n\r\n constructor(private route: ActivatedRoute, private store: Store) {\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 const props$ = this.store.select(selectAllBusinessProfile);\r\n const sub = props$.subscribe((props) => {\r\n this.buildDisplayPayload(props);\r\n });\r\n sub.unsubscribe();\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 populatePageContent(contentDict: Map): void {\r\n this.headerText =\r\n contentDict.get(ContentIDConstants.Question)?.displayText ??\r\n this.headerText;\r\n }\r\n\r\n buildDisplayPayload(bpStore: any): void {\r\n this.displayData = [\r\n {\r\n key: 'Legal Form Of Business Name',\r\n value: bpStore.businessType.value,\r\n },\r\n {\r\n key: 'Industry',\r\n value: bpStore.businessIndustry.value,\r\n },\r\n {\r\n key: 'Business Description',\r\n value: this.buildBusinessDescriptionString(bpStore.businessDescription),\r\n },\r\n {\r\n key: 'Current Customers',\r\n value: this.buildCustomerTypesString(bpStore.customerTypes),\r\n },\r\n {\r\n key: 'State of Organization',\r\n value: bpStore.stateOfOrg.value,\r\n },\r\n {\r\n key: 'DBA',\r\n value: bpStore.dba,\r\n },\r\n {\r\n key: 'Address',\r\n value: bpStore.annualRevenue.value,\r\n },\r\n {\r\n key: 'Website',\r\n value: bpStore.companyWebsite,\r\n },\r\n {\r\n key: 'Year Founded',\r\n value: bpStore.yearFounded,\r\n },\r\n {\r\n key: 'Number of Employees',\r\n value: bpStore.employeeCount.value,\r\n },\r\n {\r\n key: 'Invoicing Method',\r\n value: bpStore.invoicingMethod.value,\r\n },\r\n {\r\n key: 'Type of Support Needed',\r\n value: this.buildSupportMethodsString(bpStore.supportMethods),\r\n },\r\n ];\r\n }\r\n\r\n buildCustomerTypesString(customerTypes: IMultiOptions[]): string {\r\n const customerTypeValues = customerTypes.filter((x) => x.selected);\r\n const customerLen = customerTypeValues.length;\r\n let result = '';\r\n for (let i = 0; i < customerLen; i += 1) {\r\n if (i === customerLen - 1) {\r\n result += customerTypeValues[i].value;\r\n } else {\r\n result += `${customerTypeValues[i].value}, `;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n buildSupportMethodsString(supportMethods: IMultiOptions[]): string {\r\n const supportMethodValues = supportMethods.filter((x) => x.selected);\r\n const methodLen = supportMethodValues.length;\r\n let result = '';\r\n for (let i = 0; i < methodLen; i += 1) {\r\n if (i === methodLen - 1) {\r\n result += supportMethodValues[i].value;\r\n } else {\r\n result += `${supportMethodValues[i].value}, `;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n buildBusinessDescriptionString(businessDescription: string): string {\r\n if (businessDescription.length <= 25) return businessDescription;\r\n return `${businessDescription.substring(0, 22)}...`;\r\n }\r\n}\r\n","// RefName: Business Description*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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 Enter a business description\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\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 { 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { BusinessDescriptionAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\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-business-description',\r\n templateUrl: './business-description.component.html',\r\n styleUrls: ['./business-description.component.scss'],\r\n})\r\nexport class BusinessDescriptionComponent\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 pageStateId: string;\r\n\r\n questionText: string;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\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 store: Store,\r\n private bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n\r\n this.form = this.fb.group({\r\n businessDescription: ['', [Validators.required]],\r\n });\r\n this.form\r\n .get('businessDescription')\r\n ?.setValue(this.payload?.BusinessDescription);\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 this.payload.BusinessDescription =\r\n this.form.get('businessDescription')?.value ?? '';\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n BusinessDescriptionAction({\r\n businessDescription:\r\n this.form.get('businessDescription')?.value ?? '',\r\n })\r\n );\r\n return res.isSuccessful;\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 'Can you describe your business?';\r\n }\r\n\r\n onEnter() {\r\n this.submitButton.submit();\r\n }\r\n}\r\n","// RefName: Business Description*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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 business industry \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\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 } 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 { 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { BusinessIndustryAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectBusinessIndustry } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.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 { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-business-industry',\r\n templateUrl: './business-industry.component.html',\r\n styleUrls: ['./business-industry.component.scss'],\r\n})\r\nexport class BusinessIndustryComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState = new PageState();\r\n businessIndustryData: IStatefulOptions[] = [];\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n clickedOption: any;\r\n questionText: string;\r\n form: FormGroup;\r\n pageStateId: string;\r\n\r\n businessTypeId: string;\r\n businessTypeName: string;\r\n othersSelected = false;\r\n clickedOtherOption = false;\r\n selectedId: number;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private bf: BusinessProfileService,\r\n private store: Store,\r\n private fb: FormBuilder\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.form = this.fb.group({\r\n others: ['', [Validators.required]],\r\n });\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.populateOptionStates(data['options']);\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\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.othersSelected && this.form.get('others')?.value?.trim() === '') {\r\n return false;\r\n }\r\n\r\n if (this.clickedOtherOption) {\r\n return false;\r\n }\r\n let __return;\r\n ({ __return } = await this.submitBusinessIndustry());\r\n return __return;\r\n }\r\n\r\n private async submitBusinessIndustry() {\r\n let idValuePair: { id: number; value: string };\r\n if (this.othersSelected) {\r\n this.payload.IndustryBusinessValue = this.form.get('others')?.value;\r\n this.payload.IndustryBusinessOthers = this.form.get('others')?.value;\r\n } else {\r\n this.payload.IndustryBusinessOthers = '';\r\n }\r\n idValuePair = {\r\n id: this.payload.IndustryBusinessId,\r\n value: this.payload.IndustryBusinessValue,\r\n };\r\n\r\n this.store.dispatch(\r\n BusinessIndustryAction({\r\n businessIndustry: idValuePair,\r\n })\r\n );\r\n\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n return { __return: res.isSuccessful, idValuePair };\r\n }\r\n\r\n async submitOthers() {\r\n if (this.othersSelected && this.form.get('others')?.value?.trim() === '') {\r\n return false;\r\n }\r\n let __return;\r\n ({ __return } = await this.submitBusinessIndustry());\r\n return __return;\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 industry is your business in?';\r\n }\r\n\r\n populateOptionStates(options: any[]) {\r\n let selectedId = -10;\r\n let selectedValue = '';\r\n\r\n const props$ = this.store.select(selectBusinessIndustry);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.businessIndustry.id as number;\r\n selectedValue = props.businessIndustry.value;\r\n })\r\n );\r\n this.businessIndustryData = options.map((option) => ({\r\n ...option,\r\n state: this.nextState,\r\n selected: option.id === selectedId,\r\n }));\r\n\r\n const clickedOption = this.businessIndustryData.find(\r\n (item) => item.id === selectedId\r\n );\r\n\r\n if (clickedOption && clickedOption.value === 'Other') {\r\n this.othersSelected = true;\r\n this.form.get('others')?.setValue(selectedValue);\r\n }\r\n }\r\n\r\n async handleOutput(outputValue: any) {\r\n // Handle the emitted output parameter value here\r\n const clickedOption = this.businessIndustryData[outputValue];\r\n\r\n if (clickedOption && clickedOption.value === 'Other') {\r\n this.clickedOtherOption = true;\r\n this.othersSelected = !this.othersSelected;\r\n } else {\r\n this.clickedOtherOption = false;\r\n this.othersSelected = false;\r\n }\r\n\r\n this.payload.IndustryBusinessId = clickedOption.id;\r\n this.payload.IndustryBusinessValue = clickedOption.value;\r\n\r\n const idValuePair: { id: number; value: string } = {\r\n id: this.payload.IndustryBusinessId,\r\n value: this.payload.IndustryBusinessValue,\r\n };\r\n\r\n this.store.dispatch(\r\n BusinessIndustryAction({\r\n businessIndustry: idValuePair,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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 Enter business invoice\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\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 } 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 { 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { InvoicingMethodAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectInvoicingMethod } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.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 { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-business-invoice',\r\n templateUrl: './business-invoice.component.html',\r\n styleUrls: ['./business-invoice.component.scss'],\r\n})\r\nexport class BusinessInvoiceComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n form: FormGroup;\r\n othersSelected = false;\r\n clickedOtherOption = false;\r\n\r\n questionText: string;\r\n properties$: Observable;\r\n payload: IBusinessProfile;\r\n businessInvoiceData: IStatefulOptions[] = [];\r\n subscriptions: Subscription[] = [];\r\n pageStateId: string;\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 bf: BusinessProfileService,\r\n private store: Store\r\n ) {\r\n super();\r\n watchTabletThreshold((isTablet: boolean) => {\r\n this.isTablet = isTablet;\r\n });\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.form = this.fb.group({\r\n others: ['', [Validators.required]],\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.populateOptionStates(data['options']);\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\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.othersSelected && this.form.get('others')?.value?.trim() === '') {\r\n return false;\r\n }\r\n if (this.clickedOtherOption) {\r\n return false;\r\n }\r\n\r\n return this.submitBusinessInvoice();\r\n }\r\n\r\n private async submitBusinessInvoice() {\r\n if (this.othersSelected) {\r\n this.payload.InvoicingMethod = this.form.get('others')?.value;\r\n this.payload.BusinessInvoiceOthers = this.form.get('others')?.value;\r\n const idValuePair: { id: number; value: string } = {\r\n id: this.payload.BusinessInvoiceId,\r\n value: this.payload.InvoicingMethod,\r\n };\r\n\r\n this.store.dispatch(\r\n InvoicingMethodAction({\r\n invoicingMethod: idValuePair,\r\n })\r\n );\r\n } else {\r\n this.payload.BusinessInvoiceOthers = '';\r\n }\r\n\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n return res.isSuccessful;\r\n }\r\n\r\n async submitOthers() {\r\n if (this.othersSelected && this.form.get('others')?.value?.trim() === '') {\r\n return false;\r\n }\r\n return this.submitBusinessInvoice();\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 'How does your business invoice?';\r\n }\r\n\r\n populateOptionStates(options: any[]) {\r\n let selectedId = -10;\r\n let selectedValue = '';\r\n\r\n const props$ = this.store.select(selectInvoicingMethod);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.invoicingMethod.id as number;\r\n selectedValue = props.invoicingMethod.value;\r\n })\r\n );\r\n this.businessInvoiceData = options.map((option) => ({\r\n ...option,\r\n state: this.nextState,\r\n selected: option.id === selectedId,\r\n }));\r\n\r\n const clickedOption = this.businessInvoiceData.find(\r\n (item) => item.id === selectedId\r\n );\r\n\r\n if (clickedOption && clickedOption.value === 'Other') {\r\n this.othersSelected = true;\r\n this.form.get('others')?.setValue(selectedValue);\r\n }\r\n }\r\n\r\n async handleOutput(outputValue: any) {\r\n // Handle the emitted output parameter value here\r\n\r\n const clickedOption = this.businessInvoiceData[outputValue];\r\n\r\n if (clickedOption && clickedOption.value === 'Other') {\r\n this.clickedOtherOption = true;\r\n this.othersSelected = !this.othersSelected;\r\n } else {\r\n this.clickedOtherOption = false;\r\n this.othersSelected = false;\r\n }\r\n\r\n // this.payload.InvoicingMethod = clickedOption.value;\r\n this.payload.BusinessInvoiceId = clickedOption.id;\r\n\r\n const idValuePair: { id: number; value: string } = {\r\n id: clickedOption.id,\r\n value: clickedOption.value,\r\n };\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n InvoicingMethodAction({\r\n invoicingMethod: idValuePair,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n RouterStateSnapshot,\r\n UrlTree,\r\n} from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { OnboardingModuleStatuses } from '../../enums/onboarding-module-status.enum';\r\nimport { EnrollmentExtendedService } from '../../services/onboarding/enrollment-extended.service';\r\nimport { IAppState } from '../../store/common/interfaces/app-state.interface';\r\nimport { selectModuleStatuses } from '../../store/onboarding/reducers+selectors/enrollment.selector';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BusinessProfileGuard implements CanActivate {\r\n constructor(\r\n private ees: EnrollmentExtendedService,\r\n private store: Store\r\n ) {}\r\n\r\n async canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n const statusIds$ = this.store.select(selectModuleStatuses);\r\n let businessProfileStatusId = 0;\r\n const subscription = statusIds$.subscribe(async (props) => {\r\n businessProfileStatusId = props.businessProfileStatusId;\r\n });\r\n subscription.unsubscribe();\r\n if (businessProfileStatusId === OnboardingModuleStatuses.COMPLETED) {\r\n return false;\r\n }\r\n\r\n return true;\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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AnnualRevenueResolver implements Resolve {\r\n constructor(private bps: BusinessProfileService) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.bps.loadAnnualRevenue();\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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BusinessTypeResolver implements Resolve {\r\n constructor(private bps: BusinessProfileService) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.bps.loadLegalFormOfBusiness();\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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomerTypeResolver implements Resolve {\r\n constructor(private bps: BusinessProfileService) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.bps.loadCustomerType();\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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class YearFoundedResolver implements Resolve {\r\n constructor(private bps: BusinessProfileService) {}\r\n resolve(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot\r\n ): Promise {\r\n return this.bps.loadYearFounded();\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { BusinessTypeAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectBusinessType } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-business-type',\r\n templateUrl: './business-type.component.html',\r\n styleUrls: ['./business-type.component.scss'],\r\n})\r\nexport class BusinessTypeComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n properties$: Observable;\r\n pageStateId: string;\r\n\r\n businessTypeData: IStatefulOptions[] = [];\r\n questionText: string;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n tooltip1Content: IPageContent;\r\n payload: IBusinessProfile;\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 bf: BusinessProfileService,\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n\r\n this.populateOptionStates(data['options']);\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n this.payload.PageStateId = this.pageStateId;\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 async submit() {\r\n // const payload: any = {\r\n // registerCompanyName: this.form.get('registeredCompanyName')?.value ?? '',\r\n // };\r\n //\r\n return true;\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 type of business do you own?';\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(selectBusinessType);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.businessType.id as number;\r\n })\r\n );\r\n this.businessTypeData = 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 // Handle the emitted output parameter value her\r\n\r\n const clickedOption = this.businessTypeData[outputValue];\r\n\r\n this.payload.LegalFormOfBusinessId = clickedOption.id;\r\n this.payload.LegalFormOfBusinessName = clickedOption.value;\r\n\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n const idValuePair: { id: number; value: string } = {\r\n id: this.payload.LegalFormOfBusinessId,\r\n value: this.payload.LegalFormOfBusinessName,\r\n };\r\n\r\n // saving to store\r\n if (idValuePair && idValuePair.value) {\r\n this.store.dispatch(\r\n BusinessTypeAction({\r\n businessType: idValuePair,\r\n })\r\n );\r\n }\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
\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

{{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
\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 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 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\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 { 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 { 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 { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { CommonService } from 'src/app/core/services/common/common.service';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { CompanyAddressAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectCompanyAddress } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\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-company-address',\r\n templateUrl: './company-address.component.html',\r\n styleUrls: ['./company-address.component.scss'],\r\n})\r\nexport class CompanyAddressComponent\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\r\n questionText: string;\r\n dropdownHeaderText: 'State';\r\n states: string[];\r\n defaultOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n options: IDropdownOption[];\r\n stateProvinceData: IStateProvince[] = [];\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n pageStateId: 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 bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.stateProvinceData = data['options'];\r\n this.populateStateProvince();\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n\r\n this.properties$ = this.store.select(selectCompanyAddress);\r\n\r\n const sub = this.properties$.subscribe((props) => {\r\n if (props.companyAddress?.state) {\r\n this.defaultOption = {\r\n label: props.companyAddress.state,\r\n value: props.companyAddress.state,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n });\r\n sub.unsubscribe();\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 zipCode: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.pattern(\r\n /(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$)/\r\n ),\r\n ],\r\n ],\r\n });\r\n\r\n this.form.get('address1')?.setValue(this.payload?.Address1);\r\n this.form.get('address2')?.setValue(this.payload?.Address2);\r\n this.form.get('city')?.setValue(this.payload?.City);\r\n this.form.get('zipCode')?.setValue(this.payload?.ZipCode);\r\n if (\r\n this.defaultOption &&\r\n this.defaultOption.label &&\r\n this.defaultOption.value\r\n ) {\r\n this.selectionChange(this.defaultOption);\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 if (this.form.valid) {\r\n const companyAddress = new Address();\r\n companyAddress.address1 = this.form.get('address1')?.value ?? '';\r\n companyAddress.address2 = this.form.get('address2')?.value ?? '';\r\n companyAddress.city = this.form.get('city')?.value ?? '';\r\n companyAddress.state = this.form.get('state')?.value?.value ?? '';\r\n companyAddress.zipcode = this.form.get('zipCode')?.value ?? '';\r\n\r\n this.payload.Address1 = companyAddress.address1;\r\n this.payload.Address2 = companyAddress.address2;\r\n this.payload.City = companyAddress.city;\r\n this.payload.State = companyAddress.state;\r\n this.payload.ZipCode = companyAddress.zipcode;\r\n\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n // saving to store\r\n this.store.dispatch(\r\n CompanyAddressAction({\r\n companyAddress,\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.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 Company's Address?\";\r\n }\r\n\r\n public selectionChange(value: any): void {\r\n this.form.get('state')?.setValue(value);\r\n this.defaultOption = value;\r\n }\r\n anySelect() {}\r\n\r\n async populateStateProvince() {\r\n // this.stateProvinceData = await this.cs.getStateProvince();\r\n\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 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
\r\n

{{this.questionText}}

\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n Enter company website URL\r\n \r\n \r\n Enter a valid URL\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \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 { 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { CompanyWebsiteAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\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-company-website',\r\n templateUrl: './company-website.component.html',\r\n styleUrls: ['./company-website.component.scss'],\r\n})\r\nexport class CompanyWebsiteComponent\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 pageStateId: string;\r\n\r\n questionText: string;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n\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 store: Store,\r\n private bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n\r\n this.form = this.fb.group({\r\n cws: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.pattern(\r\n /^(http(s)?:\\/\\/)?([\\w-]+\\.)+[\\w-]+(\\/[\\w-.\\/?%&=]*)?$/\r\n ),\r\n ],\r\n ],\r\n });\r\n this.form.get('cws')?.setValue(this.payload?.Website);\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 cwsValue = this.form.get('cws')?.value ?? '';\r\n this.payload.Website = cwsValue;\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CompanyWebsiteAction({\r\n companyWebsite: cwsValue,\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.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 'Do you have a Company Website?';\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};\r\n","
\r\n \r\n \r\n \r\n
","import { Component, OnDestroy, OnInit } 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 { CompanyResultViewTypes } from 'src/app/core/enums/company-result-view.enum';\r\nimport { EventTypes } from 'src/app/core/enums/event.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 { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { IScoreRequest } from 'src/app/core/interfaces/onboarding/business-profile/score-request.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { selectCompanySearch } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.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 { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-confirm-company-search',\r\n templateUrl: './confirm-company-search.component.html',\r\n styleUrls: ['./confirm-company-search.component.scss'],\r\n})\r\nexport class ConfirmCompanySearchComponent\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: IScoreRequest;\r\n\r\n questionText = 'Do you confirm this is your company?';\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n companyNotFound: PageState;\r\n noScore: PageState;\r\n lowScore: PageState;\r\n industrySourceNotQualified: PageState;\r\n notQualified: PageState;\r\n preQualified: PageState;\r\n thisIsntMe = \"This isn't me\";\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 bf: BusinessProfileService,\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.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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\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(selectCompanySearch);\r\n this.subscriptions.push(\r\n this.properties$.subscribe((props) => {\r\n this.displayData = {\r\n RegisteredCompanyName:\r\n props?.companySearch?.registeredCompanyName || '',\r\n Address1: props?.companySearch?.address1 || '',\r\n Address2: props?.companySearch?.address2 || '',\r\n State: props?.companySearch?.state || '',\r\n City: props?.companySearch?.city || '',\r\n ZipCode: props?.companySearch?.zipCode || '',\r\n };\r\n this.searchResultData = {\r\n IsConfirmed: true,\r\n LookupId: props?.companySearch?.lookupId,\r\n EntityNumber: props?.companySearch?.entityNumber,\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 //\r\n // const res = await this.bf.getBestMatch();\r\n //\r\n // return true;\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 this.bpState = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BUSINESS_PROFILE,\r\n transitions\r\n );\r\n this.companyNotFound = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.COMPANY_NOT_FOUND,\r\n transitions\r\n );\r\n this.noScore = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.NO_SCORE,\r\n transitions\r\n );\r\n this.lowScore = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BELOW_SBFE_THRESHOLD,\r\n transitions\r\n );\r\n this.industrySourceNotQualified = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.INDUSTRY_SOURCE_NOT_QUALIFIED,\r\n transitions\r\n );\r\n this.notQualified = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.COMPANY_NOT_QUALIFIED,\r\n transitions\r\n );\r\n this.preQualified = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.PRE_QUALIFIED,\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 }\r\n\r\n private buildDisplayPayload() {\r\n this.displayData = {\r\n 'Legal Form Of Business Name': this.payload.LegalFormOfBusinessName,\r\n 'State Of Organization': this.payload.StateOfOrganization,\r\n 'Annual Revenue': this.payload.AnnualRevenue,\r\n 'Year Founded': this.payload.YearFounded,\r\n Website: this.payload.Website,\r\n 'Number Of Employees': this.payload.NumberOfEmployees,\r\n DBA: this.payload.DBA,\r\n Industry: this.payload.IndustryBusinessId,\r\n Address: `${this.payload.Address1},${this.payload.Address2},${this.payload.City},${this.payload.State},${this.payload.ZipCode}`,\r\n 'Invoicing Method': this.payload.InvoicingMethod,\r\n };\r\n }\r\n\r\n async confirmClick() {\r\n // Call api with lookup id etc\r\n const result = await this.bf.confirmCompanyInfo(this.searchResultData);\r\n\r\n if (result != null) {\r\n switch (result) {\r\n case CompanyResultViewTypes.PreQualified:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.preQualified.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n this.ees.activateFinancialProfile(),\r\n ]);\r\n this.router.navigate([this.preQualified.pageUrl], {\r\n queryParams: { stateId: this.preQualified.id },\r\n });\r\n break;\r\n case CompanyResultViewTypes.LowScore:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.lowScore.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.lowScore.pageUrl], {\r\n queryParams: { stateId: this.lowScore.id },\r\n });\r\n break;\r\n case CompanyResultViewTypes.NoScore:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.noScore.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.noScore.pageUrl], {\r\n queryParams: { stateId: this.noScore.id },\r\n });\r\n break;\r\n case CompanyResultViewTypes.IndustrySourceNotQualified:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.industrySourceNotQualified.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.industrySourceNotQualified.pageUrl], {\r\n queryParams: { stateId: this.industrySourceNotQualified.id },\r\n });\r\n break;\r\n case CompanyResultViewTypes.NotQualified:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.notQualified.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.notQualified.pageUrl], {\r\n queryParams: { stateId: this.notQualified.id },\r\n });\r\n break;\r\n default:\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.notQualified.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.notQualified.pageUrl], {\r\n queryParams: { stateId: this.notQualified.id },\r\n });\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n async thisIsntMeClick() {\r\n this.router.navigate([this.companyNotFound.pageUrl], {\r\n queryParams: { stateId: this.companyNotFound.id },\r\n });\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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 {{ item.key }}:\r\n
\r\n {{ item.value }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Component, OnDestroy, OnInit } 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 { CompanyResultViewTypes } from 'src/app/core/enums/company-result-view.enum';\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 { IMultiOptions } from 'src/app/core/interfaces/onboarding/business-profile/business-multi-options.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { ICompanyInfo } from 'src/app/core/interfaces/onboarding/business-profile/company-Info-model.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { CompanySearch } from 'src/app/core/models/business-profile/companySearch.model';\r\nimport { Address } from 'src/app/core/models/common/address.model';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { CompanySearchAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\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 { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-confirm-details',\r\n templateUrl: './confirm-details.component.html',\r\n styleUrls: ['./confirm-details.component.scss'],\r\n})\r\nexport class ConfirmDetailsComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n bpEdit1: PageState;\r\n bpEdit2: PageState;\r\n bpEdit3: PageState;\r\n bpEdit4: PageState;\r\n bpEdit5: PageState;\r\n bpEdit6: PageState;\r\n bpEdit7: PageState;\r\n bpEdit8: PageState;\r\n bpEdit9: PageState;\r\n bpEdit10: PageState;\r\n bpEdit11: PageState;\r\n bpEdit12: PageState;\r\n bpEdit13: PageState;\r\n companyNotFound: PageState;\r\n soleProprietorship: PageState;\r\n notQualified: PageState;\r\n bpSummaryState: PageState;\r\n\r\n form: FormGroup;\r\n displayData: any = [];\r\n questionText = 'Review and Confirm Business Profile Details';\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private bf: BusinessProfileService,\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.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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n // Get and update payload with display data\r\n this.payload = this.bf.getPayload();\r\n this.buildDisplayPayload(transitions);\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 async submit() {\r\n const companyInfo = await this.bf.getBestMatch();\r\n if (\r\n companyInfo != null &&\r\n companyInfo.response === CompanyResultViewTypes.NoMatchFound\r\n ) {\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.companyNotFound.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.companyNotFound.pageUrl], {\r\n queryParams: { stateId: this.companyNotFound.id },\r\n });\r\n } else if (\r\n companyInfo != null &&\r\n (companyInfo.response === CompanyResultViewTypes.SoleProprietorship ||\r\n companyInfo.response === CompanyResultViewTypes.WrongCustomers ||\r\n companyInfo.response === CompanyResultViewTypes.WrongLendingPractices ||\r\n companyInfo.response ===\r\n CompanyResultViewTypes.WrongInvoicingPractices ||\r\n companyInfo.response === CompanyResultViewTypes.WrongBusinessIndustry)\r\n ) {\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.soleProprietorship.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.soleProprietorship.pageUrl], {\r\n queryParams: { stateId: this.soleProprietorship.id },\r\n });\r\n } else if (\r\n companyInfo != null &&\r\n companyInfo.response === CompanyResultViewTypes.NotQualified\r\n ) {\r\n await Promise.allSettled([\r\n this.ees.updateBusinessProfileStateId(\r\n this.bpSummaryState.id,\r\n this.notQualified.id\r\n ),\r\n this.ees.completeBusinessProfile(),\r\n ]);\r\n this.router.navigate([this.notQualified.pageUrl], {\r\n queryParams: { stateId: this.notQualified.id },\r\n });\r\n } else {\r\n this.dispatchCompanySearch(companyInfo);\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 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.companyNotFound = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.COMPANY_NOT_FOUND,\r\n transitions\r\n );\r\n this.soleProprietorship = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.SOLE_PROPRIETORSHIP,\r\n transitions\r\n );\r\n this.notQualified = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.COMPANY_NOT_QUALIFIED,\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 }\r\n\r\n private buildDisplayPayload(transitions: ITransition[]) {\r\n const address = new Address();\r\n address.buildAddress({\r\n address1: this.payload.Address1,\r\n address2: this.payload.Address2,\r\n city: this.payload.City,\r\n state: this.payload.State,\r\n zipcode: this.payload.ZipCode,\r\n });\r\n\r\n this.displayData = [\r\n {\r\n key: 'Legal Form Of Business Name',\r\n value: this.payload.LegalFormOfBusinessName,\r\n editState: (this.bpEdit1 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT1,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Industry',\r\n value: this.payload.IndustryBusinessValue,\r\n editState: (this.bpEdit2 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT2,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Business Description',\r\n value: this.buildBusinessDescriptionString(\r\n this.payload.BusinessDescription\r\n ),\r\n editState: (this.bpEdit13 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT13,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Current Customers',\r\n value: this.buildCustomerTypesString(this.payload.CustomerTypes),\r\n editState: (this.bpEdit3 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT3,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'State Of Organization',\r\n value: this.payload.StateOfOrganization,\r\n editState: (this.bpEdit4 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT4,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'DBA',\r\n value: this.payload.DBA,\r\n editState: (this.bpEdit5 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT5,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Address',\r\n value: address.formatString(),\r\n editState: (this.bpEdit6 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT6,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Annual Revenue',\r\n value: this.payload.AnnualRevenue,\r\n editState: (this.bpEdit7 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT7,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Website',\r\n value: this.payload.Website,\r\n editState: (this.bpEdit8 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT8,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Year Founded',\r\n value: this.payload.YearFounded,\r\n editState: (this.bpEdit9 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT9,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Number Of Employees',\r\n value: this.payload.NumberOfEmployees,\r\n editState: (this.bpEdit10 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT10,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Invoicing Method',\r\n value: this.payload.InvoicingMethod,\r\n editState: (this.bpEdit11 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT11,\r\n transitions\r\n )),\r\n },\r\n {\r\n key: 'Type of Support Needed',\r\n value: this.buildSupportMethodsString(this.payload.SupportMethods),\r\n editState: (this.bpEdit12 = this.ps.getPageStateByEventAndTransitions(\r\n EventTypes.BP_EDIT12,\r\n transitions\r\n )),\r\n },\r\n ];\r\n }\r\n\r\n buildCustomerTypesString(customerTypes: IMultiOptions[]): string {\r\n const customerTypeValues = customerTypes.filter((x) => x.selected);\r\n const customerLen = customerTypeValues.length;\r\n let result = '';\r\n //loop through customerTypeValues and if customerTypeValues has value then take it as valueToUse orelse use customerTypeValues.name\r\n for (let i = 0; i < customerLen; i += 1) {\r\n const valueToUse = customerTypeValues[i].value !== '' ? customerTypeValues[i].value : customerTypeValues[i].name;\r\n if (i === customerLen - 1) {\r\n result += valueToUse;\r\n } else {\r\n result += `${valueToUse}, `;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n buildSupportMethodsString(supportMethods: IMultiOptions[]): string {\r\n const supportMethodValues = supportMethods.filter((x) => x.selected);\r\n const methodLen = supportMethodValues.length;\r\n let result = '';\r\n for (let i = 0; i < methodLen; i += 1) {\r\n if (i === methodLen - 1) {\r\n result += supportMethodValues[i].value;\r\n } else {\r\n result += `${supportMethodValues[i].value}, `;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n buildBusinessDescriptionString(businessDescription: string): string {\r\n if (businessDescription.length <= 25) return businessDescription;\r\n return `${businessDescription.substring(0, 22)}...`;\r\n }\r\n\r\n private dispatchCompanySearch(companyInfo: ICompanyInfo) {\r\n const companySearch = new CompanySearch();\r\n companySearch.registeredCompanyName =\r\n companyInfo.companySearchResultModel.registeredCompanyName;\r\n companySearch.address1 = companyInfo.companySearchResultModel.address1;\r\n companySearch.address2 = companyInfo.companySearchResultModel.address2;\r\n companySearch.state = companyInfo.companySearchResultModel.state;\r\n companySearch.city = companyInfo.companySearchResultModel.city;\r\n companySearch.zipCode = companyInfo.companySearchResultModel.zipCode;\r\n companySearch.lookupTypeId = companyInfo.lookupTypeId;\r\n companySearch.lookupId = companyInfo.lookupId;\r\n companySearch.entityNumber = companyInfo.entityNumber;\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n CompanySearchAction({\r\n companySearch,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n};\r\n","// eslint-disable-next-line no-shadow\r\nexport enum CustomerTypes {\r\n BUSINESSES = 1,\r\n GOVERNMENTS = 2,\r\n CUSTOMERS = 3,\r\n OTHER = 4,\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 Enter a custom customer type or unselect Others\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormBuilder, FormGroup } 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 { CustomerTypes } from 'src/app/core/enums/customer-types.enum';\r\nimport { EventTypes } from 'src/app/core/enums/event.enum';\r\nimport { IIdValuePair } from 'src/app/core/interfaces/common/common/id-value-pair.interface';\r\nimport { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IMultiOptions } from 'src/app/core/interfaces/onboarding/business-profile/business-multi-options.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { 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 { CustomerTypesAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectCustomerTypes } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-type',\r\n templateUrl: './customer-type.component.html',\r\n styleUrls: ['./customer-type.component.scss'],\r\n})\r\nexport class CustomerTypeComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n customerTypeData: IMultiOptions[] = [];\r\n selectedCustomerTypeData: IIdValuePair[] = [];\r\n form: FormGroup;\r\n othersSelected = false;\r\n pageStateId: string;\r\n\r\n payload: IBusinessProfile;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n questionText: 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 fb: FormBuilder,\r\n private bf: BusinessProfileService,\r\n private store: Store,\r\n private notificationService: 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(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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.customerTypeData = data['options'];\r\n\r\n const props$ = this.store.select(selectCustomerTypes);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n if (props.customerTypes.length === 0) return;\r\n this.customerTypeData = props.customerTypes;\r\n })\r\n );\r\n\r\n const typeLen = this.customerTypeData.length;\r\n for (let i = 0; i < typeLen; i += 1) {\r\n if (\r\n this.customerTypeData[i].id === CustomerTypes.OTHER &&\r\n this.customerTypeData[i].selected\r\n )\r\n this.othersSelected = true;\r\n\r\n if (this.customerTypeData[i].id === CustomerTypes.OTHER) {\r\n this.form = this.fb.group({\r\n others: [\r\n this.customerTypeData[i].value !== this.customerTypeData[i].name\r\n ? this.customerTypeData[i].value\r\n : '',\r\n ],\r\n });\r\n }\r\n }\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\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 async submit() {\r\n let anySelected = false;\r\n const tempArr = this.customerTypeData.map((type: IMultiOptions) => {\r\n if (type.id === CustomerTypes.OTHER) {\r\n if (type.selected && this.form.get('others')?.value) anySelected = true;\r\n return {\r\n id: type.id,\r\n name: type.name,\r\n value: this.form.get('others')?.value,\r\n selected: type.selected,\r\n };\r\n }\r\n if (type.selected) anySelected = true;\r\n console.log(\"CUstomer type\", type)\r\n console.log(\"CUstomer type submit\", type.value)\r\n return {\r\n id: type.id,\r\n name: type.name,\r\n value: '',\r\n selected: type.selected,\r\n };\r\n });\r\n if (!anySelected) {\r\n this.notificationService.reportAlert(\r\n ['You must select one option.'],\r\n 'warn'\r\n );\r\n return false;\r\n }\r\n\r\n this.store.dispatch(\r\n CustomerTypesAction({\r\n customerTypes: tempArr,\r\n })\r\n );\r\n this.payload.CustomerTypes = tempArr;\r\n const response = await this.bf.submitBusinessProfileData(this.payload);\r\n return response.isSuccessful;\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 'Who are your current customers? Select all that apply.';\r\n }\r\n\r\n async handleOutput(id: number) {\r\n // Handle the emitted output parameter value here\r\n const tempArr = this.customerTypeData.map((type: IMultiOptions) => {\r\n if (type.id === id) {\r\n if (type.id === CustomerTypes.OTHER && !type.selected)\r\n this.othersSelected = true;\r\n if (type.id === CustomerTypes.OTHER && type.selected)\r\n this.othersSelected = false;\r\n\r\n return {\r\n id: type.id,\r\n name: type.name,\r\n value: '',\r\n selected: !type.selected,\r\n };\r\n }\r\n return type;\r\n });\r\n this.customerTypeData = tempArr;\r\n\r\n this.store.dispatch(\r\n CustomerTypesAction({\r\n customerTypes: this.customerTypeData,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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 DBA name\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} 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 { 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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { DbaAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-dba',\r\n templateUrl: './dba.component.html',\r\n styleUrls: ['./dba.component.scss'],\r\n})\r\nexport class DbaComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n tooltip1Content: IPageContent;\r\n form: FormGroup;\r\n properties$: Observable;\r\n payload: IBusinessProfile;\r\n subscriptions: Subscription[] = [];\r\n pageStateId: string;\r\n\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n questionText: 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 store: Store,\r\n private bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n })\r\n );\r\n // Get payload from service/store\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n\r\n this.form = this.fb.group({\r\n dba: ['', [Validators.required]],\r\n });\r\n this.form.get('dba')?.setValue(this.payload?.DBA);\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 async submit() {\r\n if (this.form.valid) {\r\n const dbaValue = this.form.get('dba')?.value ?? '';\r\n this.payload.DBA = dbaValue;\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n DbaAction({\r\n dba: dbaValue,\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.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 'Are you doing business under a name other than your legal business name?';\r\n this.tooltip1Content =\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};\r\n","import { Component, HostListener, OnDestroy, OnInit } from '@angular/core';\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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { EmployeeCountAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectEmployeeCount } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { BreakpointConstants } from 'src/app/core/ui-helpers/constants/breakpoint-constants';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-employee-count',\r\n templateUrl: './employee-count.component.html',\r\n styleUrls: ['./employee-count.component.scss'],\r\n})\r\nexport class EmployeeCountComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n employeeCountData: IStatefulOptions[] = [];\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n questionText: string;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\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 bf: BusinessProfileService,\r\n private store: Store\r\n ) {\r\n super();\r\n this.isTablet = window.innerWidth < BreakpointConstants.tabletBreakpoint;\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.populateOptionStates(data['options']);\r\n })\r\n );\r\n\r\n // Get payload from service/store\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n this.isTablet = window.innerWidth < BreakpointConstants.tabletBreakpoint;\r\n }\r\n\r\n async submit() {\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n return res.isSuccessful;\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 'How many people does your company employ?';\r\n }\r\n\r\n populateOptionStates(options: any[]) {\r\n let selectedId = -10;\r\n const props$ = this.store.select(selectEmployeeCount);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n selectedId = props.employeeCount.id as number;\r\n })\r\n );\r\n this.employeeCountData = 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 // Handle the emitted output parameter value here\r\n\r\n const clickedOption = this.employeeCountData[outputValue];\r\n\r\n this.payload.NumberOfEmployees = clickedOption.value;\r\n this.payload.NumberOfEmployeesId = clickedOption.id;\r\n\r\n const idValuePair: { id: number; value: string } = {\r\n id: clickedOption.id,\r\n value: this.payload.NumberOfEmployees,\r\n };\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n EmployeeCountAction({\r\n employeeCount: idValuePair,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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

{{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 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
","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} 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 { 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 { 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 { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { CommonService } from 'src/app/core/services/common/common.service';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { StateOfOrgAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectStateOfOrg } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-state-of-org',\r\n templateUrl: './state-of-org.component.html',\r\n styleUrls: ['./state-of-org.component.scss'],\r\n})\r\nexport class StateOfOrgComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n form: FormGroup;\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n\r\n tooltip1Content: IPageContent;\r\n questionText: string;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n\r\n stateOfOrgId: string;\r\n stateOfOrgName: string;\r\n\r\n payload: IBusinessProfile;\r\n dropdownHeaderText: 'State of organization';\r\n states: string[];\r\n defaultOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n options: IDropdownOption[];\r\n stateProvinceData: IStateProvince[] = [];\r\n selectedState: string;\r\n pageStateId: string;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private fb: FormBuilder,\r\n private cs: CommonService,\r\n private ees: EnrollmentExtendedService,\r\n private store: Store,\r\n private bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.stateProvinceData = data['options'];\r\n this.populateStateProvince();\r\n\r\n this.properties$ = this.store.select(selectStateOfOrg);\r\n const sub = this.properties$.subscribe((props) => {\r\n if (props.stateOfOrg.value) {\r\n this.defaultOption = {\r\n label: props.stateOfOrg.value,\r\n value: props.stateOfOrg.value,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n });\r\n sub.unsubscribe();\r\n })\r\n );\r\n\r\n // Get payload from service/store\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n\r\n this.form = this.fb.group({\r\n stateOfOrg: ['', [Validators.required]],\r\n });\r\n if (this.defaultOption) this.selectionChange(this.defaultOption);\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 async submit() {\r\n if (this.form.valid) {\r\n if (this.selectedState != null) {\r\n this.payload.StateOfOrganization =\r\n this.form.get('stateOfOrg')?.value?.value ?? '';\r\n\r\n // Store save\r\n const idValuePair: { id: string; value: string } = {\r\n id: this.selectedState,\r\n value: this.payload.StateOfOrganization,\r\n };\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n StateOfOrgAction({\r\n stateOfOrg: idValuePair,\r\n })\r\n );\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n return res.isSuccessful;\r\n }\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 'In what state is your business legally registered?';\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n\r\n public selectionChange(value: any): void {\r\n this.selectedState = value.value;\r\n this.form.get('stateOfOrg')?.setValue(value);\r\n this.defaultOption = value;\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","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\r\n Tooltip1: 1,\r\n};\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\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 { IPageContent } from 'src/app/core/interfaces/common/content/page-content.interface';\r\nimport { IMultiOptions } from 'src/app/core/interfaces/onboarding/business-profile/business-multi-options.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.interface';\r\nimport { ITransition } from 'src/app/core/interfaces/onboarding/page-state/transition.interface';\r\nimport { PageState } from 'src/app/core/models/page-state/page-state.model';\r\nimport { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { 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 { SupportMethodsAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectSupportMethod } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.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 { ContentIDConstants } from './ContentIDConstants';\r\n\r\n@Component({\r\n selector: 'app-support-method',\r\n templateUrl: './support-method.component.html',\r\n styleUrls: ['./support-method.component.scss'],\r\n})\r\nexport class SupportMethodComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, OnDestroy\r\n{\r\n isTablet: boolean;\r\n supportMethodData: IMultiOptions[] = [];\r\n\r\n backState: PageState;\r\n nextState: PageState;\r\n skipState: PageState;\r\n homeState: PageState;\r\n othersSelected = false;\r\n pageStateId: string;\r\n\r\n questionText: string;\r\n properties$: Observable;\r\n subscriptions: Subscription[] = [];\r\n payload: IBusinessProfile;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private ps: PageStateService,\r\n private ees: EnrollmentExtendedService,\r\n private bf: BusinessProfileService,\r\n private notificationService: ServersideAlertService,\r\n private store: Store\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.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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.supportMethodData = data['options'];\r\n const props$ = this.store.select(selectSupportMethod);\r\n this.subscriptions.push(\r\n props$.subscribe((props) => {\r\n if (props.supportMethods.length === 0) return;\r\n this.supportMethodData = props.supportMethods;\r\n })\r\n );\r\n })\r\n );\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n destructSubscriptionArray(this.subscriptions);\r\n }\r\n\r\n async submit() {\r\n let anySelected = false;\r\n const { length } = this.supportMethodData;\r\n for (let i = 0; i < length; i += 1) {\r\n if (this.supportMethodData[i].selected) anySelected = true;\r\n }\r\n if (!anySelected) {\r\n this.notificationService.reportAlert(\r\n ['You must select one option.'],\r\n 'warn'\r\n );\r\n return false;\r\n }\r\n\r\n this.store.dispatch(\r\n SupportMethodsAction({\r\n supportMethods: this.supportMethodData,\r\n })\r\n );\r\n this.payload.SupportMethods = this.supportMethodData;\r\n const response = await this.bf.submitBusinessProfileData(this.payload);\r\n return response.isSuccessful;\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 'Are you looking for a grant or a loan?';\r\n }\r\n\r\n async handleOutput(id: number) {\r\n const tempArr = this.supportMethodData.map((method: IMultiOptions) => {\r\n if (method.id === id) {\r\n return {\r\n id: method.id,\r\n name: method.name,\r\n value: method.value,\r\n selected: !method.selected,\r\n };\r\n }\r\n return method;\r\n });\r\n this.supportMethodData = tempArr;\r\n\r\n this.store.dispatch(\r\n SupportMethodsAction({\r\n supportMethods: this.supportMethodData,\r\n })\r\n );\r\n }\r\n}\r\n","// RefName: Change Email*\r\nexport const ContentIDConstants = {\r\n Question: 0,\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

{{this.questionText}}

\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
","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { BusinessProfileGuard } from 'src/app/core/guards/onboarding/business-profile.guard';\r\nimport { StateResolver } from 'src/app/core/resolvers/common/state.resolver';\r\nimport { AnnualRevenueResolver } from 'src/app/core/resolvers/onboarding/business-profile/annual-revenue.resolver';\r\nimport { BusinessIndustryResolver } from 'src/app/core/resolvers/onboarding/business-profile/business-industry.resolver';\r\nimport { BusinessInvoiceResolver } from 'src/app/core/resolvers/onboarding/business-profile/business-invoice.resolver';\r\nimport { BusinessTypeResolver } from 'src/app/core/resolvers/onboarding/business-profile/business-type.resolver';\r\nimport { CustomerTypeResolver } from 'src/app/core/resolvers/onboarding/business-profile/customer-type.resolver';\r\nimport { EmployeeCountResolver } from 'src/app/core/resolvers/onboarding/business-profile/employee-count.resolver';\r\nimport { SupportMethodResolver } from 'src/app/core/resolvers/onboarding/business-profile/support-method.resolver';\r\nimport { YearFoundedResolver } from 'src/app/core/resolvers/onboarding/business-profile/year-founded.resolver';\r\nimport { PageStateClientPersonalizedResolver } from 'src/app/core/resolvers/onboarding/navigation/page-state-client-personalized.resolver';\r\nimport { PageStateResolver } from 'src/app/core/resolvers/onboarding/navigation/page-state.resolver';\r\nimport { AnnualRevenueComponent } from './annual-revenue/annual-revenue.component';\r\nimport { ApplicationSummaryComponent } from './application-summary/application-summary.component';\r\nimport { BusinessDescriptionComponent } from './business-description/business-description.component';\r\nimport { BusinessIndustryComponent } from './business-industry/business-industry.component';\r\nimport { BusinessInvoiceComponent } from './business-invoice/business-invoice.component';\r\nimport { BusinessTypeComponent } from './business-type/business-type.component';\r\nimport { CompanyAddressComponent } from './company-address/company-address.component';\r\nimport { CompanyWebsiteComponent } from './company-website/company-website.component';\r\nimport { ConfirmCompanySearchComponent } from './confirm-company-search/confirm-company-search.component';\r\nimport { ConfirmDetailsComponent } from './confirm-details/confirm-details.component';\r\nimport { CustomerTypeComponent } from './customer-type/customer-type.component';\r\nimport { DbaComponent } from './dba/dba.component';\r\nimport { EmployeeCountComponent } from './employee-count/employee-count.component';\r\nimport { StateOfOrgComponent } from './state-of-org/state-of-org.component';\r\nimport { SupportMethodComponent } from './support-method/support-method.component';\r\nimport { YearFoundedComponent } from './year-founded/year-founded.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: 'business-type',\r\n component: BusinessTypeComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: BusinessTypeResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'business-industry',\r\n component: BusinessIndustryComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: BusinessIndustryResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'customer-type',\r\n component: CustomerTypeComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: CustomerTypeResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'state-of-org',\r\n component: StateOfOrgComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: StateResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'dba',\r\n component: DbaComponent,\r\n resolve: { data: PageStateClientPersonalizedResolver },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'company-address',\r\n component: CompanyAddressComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: StateResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'annual-revenue',\r\n component: AnnualRevenueComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: AnnualRevenueResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'company-website',\r\n component: CompanyWebsiteComponent,\r\n resolve: { data: PageStateClientPersonalizedResolver },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'year-founded',\r\n component: YearFoundedComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: YearFoundedResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'employee-count',\r\n component: EmployeeCountComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: EmployeeCountResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'business-invoice',\r\n component: BusinessInvoiceComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: BusinessInvoiceResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'lending-method',\r\n component: SupportMethodComponent,\r\n resolve: {\r\n data: PageStateClientPersonalizedResolver,\r\n options: SupportMethodResolver,\r\n },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'confirm-details',\r\n component: ConfirmDetailsComponent,\r\n resolve: { data: PageStateClientPersonalizedResolver },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'confirm-company-search',\r\n component: ConfirmCompanySearchComponent,\r\n resolve: { data: PageStateClientPersonalizedResolver },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'business-description',\r\n component: BusinessDescriptionComponent,\r\n resolve: { data: PageStateClientPersonalizedResolver },\r\n canActivate: [BusinessProfileGuard],\r\n },\r\n {\r\n path: 'summary',\r\n component: ApplicationSummaryComponent,\r\n resolve: { data: PageStateResolver },\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 BusinessProfileRoutingModule {}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} 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 { 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 { 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 { IDropdownOption } from 'src/app/core/interfaces/common/ui/dropdown-option.interface';\r\nimport { IBusinessProfile } from 'src/app/core/interfaces/onboarding/business-profile/business-profile.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 { BusinessProfileService } from 'src/app/core/services/onboarding/business-profile.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 { YearFoundedAction } from 'src/app/core/store/onboarding/actions/business-profile.actions';\r\nimport { selectYearFounded } from 'src/app/core/store/onboarding/reducers+selectors/business-profile.selector';\r\nimport { destructSubscriptionArray } from 'src/app/core/ui-helpers/functions/destruct-subscription-array';\r\nimport { syncComponentHeightResize } from 'src/app/core/ui-helpers/functions/sync-component-height';\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-year-founded',\r\n templateUrl: './year-founded.component.html',\r\n styleUrls: ['./year-founded.component.scss'],\r\n})\r\nexport class YearFoundedComponent\r\n extends AbstractOnboardingPageComponent\r\n implements OnInit, AfterViewInit, 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 @ViewChild(ShellComponent) shellComponent: ShellComponent;\r\n @ViewChild(ToolTipComponent) questionTooltipComponent: ToolTipComponent;\r\n tooltip1Content: IPageContent;\r\n selectedYear: string;\r\n pageStateId: string;\r\n\r\n dropdownHeaderText: 'Select the year';\r\n questionText: string;\r\n defaultOption: IDropdownOption;\r\n selectedOption: IDropdownOption;\r\n options: IDropdownOption[];\r\n yearFoundedData: IOptions[] = [];\r\n properties$: Observable;\r\n payload: IBusinessProfile;\r\n subscriptions: Subscription[] = [];\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 store: Store,\r\n private bf: BusinessProfileService\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 this.subscriptions.push(\r\n this.route.queryParams.subscribe((params) => {\r\n this.ees.updateBusinessProfileStateId(\r\n params['stateId'],\r\n this.homeState.id\r\n );\r\n this.pageStateId = params['stateId'];\r\n })\r\n );\r\n this.yearFoundedData = data['options'];\r\n this.populateYearFoundedOptions();\r\n })\r\n );\r\n\r\n this.form = this.fb.group({\r\n yearFounded: ['', [Validators.required]],\r\n });\r\n\r\n this.properties$ = this.store.select(selectYearFounded);\r\n const sub = this.properties$.subscribe((props) => {\r\n if (props.yearFounded) {\r\n this.defaultOption = {\r\n label: props.yearFounded,\r\n value: props.yearFounded,\r\n action: this.anySelect.bind(this),\r\n };\r\n }\r\n });\r\n sub.unsubscribe();\r\n if (this.defaultOption?.label && this.defaultOption?.value) {\r\n this.selectionChange(this.defaultOption);\r\n }\r\n // Get payload from service/store\r\n this.payload = this.bf.getPayload();\r\n\r\n // Update payload with pagestate id of current page\r\n this.payload.PageStateId = this.pageStateId;\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 async submit() {\r\n if (this.form.valid) {\r\n if (this.selectedYear) {\r\n this.payload.YearFounded = this.selectedYear;\r\n const res = await this.bf.submitBusinessProfileData(this.payload);\r\n\r\n // saving to store\r\n this.store.dispatch(\r\n YearFoundedAction({\r\n yearFounded: this.selectedYear,\r\n })\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.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 year was your company founded?';\r\n this.tooltip1Content =\r\n contentDict.get(ContentIDConstants.Tooltip1) ?? new PageContent();\r\n }\r\n public selectionChange(value: any): void {\r\n this.selectedYear = value.value;\r\n this.form.get('yearFounded')?.setValue(value);\r\n this.defaultOption = value;\r\n }\r\n anySelect() {}\r\n\r\n async populateYearFoundedOptions() {\r\n this.options = this.yearFoundedData.map((item) => ({\r\n label: item.value,\r\n value: item.id,\r\n action: this.anySelect.bind(this),\r\n }));\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","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 { AnnualRevenueComponent } from './annual-revenue/annual-revenue.component';\r\nimport { ApplicationSummaryComponent } from './application-summary/application-summary.component';\r\nimport { BusinessDescriptionComponent } from './business-description/business-description.component';\r\nimport { BusinessIndustryComponent } from './business-industry/business-industry.component';\r\nimport { BusinessInvoiceComponent } from './business-invoice/business-invoice.component';\r\nimport { BusinessProfileRoutingModule } from './business-profile-routing.module';\r\nimport { BusinessTypeComponent } from './business-type/business-type.component';\r\nimport { CompanyAddressComponent } from './company-address/company-address.component';\r\nimport { CompanyWebsiteComponent } from './company-website/company-website.component';\r\nimport { ConfirmCompanySearchComponent } from './confirm-company-search/confirm-company-search.component';\r\nimport { ConfirmDetailsComponent } from './confirm-details/confirm-details.component';\r\nimport { CustomerTypeComponent } from './customer-type/customer-type.component';\r\nimport { DbaComponent } from './dba/dba.component';\r\nimport { EmployeeCountComponent } from './employee-count/employee-count.component';\r\nimport { StateOfOrgComponent } from './state-of-org/state-of-org.component';\r\nimport { SupportMethodComponent } from './support-method/support-method.component';\r\nimport { YearFoundedComponent } from './year-founded/year-founded.component';\r\n\r\nconst components = [\r\n BusinessIndustryComponent,\r\n BusinessTypeComponent,\r\n CustomerTypeComponent,\r\n StateOfOrgComponent,\r\n DbaComponent,\r\n CompanyAddressComponent,\r\n AnnualRevenueComponent,\r\n CompanyWebsiteComponent,\r\n YearFoundedComponent,\r\n EmployeeCountComponent,\r\n BusinessInvoiceComponent,\r\n SupportMethodComponent,\r\n ConfirmDetailsComponent,\r\n ConfirmCompanySearchComponent,\r\n BusinessDescriptionComponent,\r\n ApplicationSummaryComponent,\r\n];\r\n\r\nconst modules = [\r\n CommonModule,\r\n BusinessProfileRoutingModule,\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 BusinessProfileModule {}\r\n"],"x_google_ignoreList":[]}