{"version":3,"file":"app-f94592ab.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/resources/services/lookup-data.ts"],"sourcesContent":["import { ApiRefDataResponse, EntityReportingType, PremiumFunderStatusAction, ApiEndpoints, EntityAction, PremiumFunder, SurchargePayee } from '../../routes/app-adviser/client/quotes/interfaces';\r\nimport { ClaimCategoryModel, ClaimStatusActionModel, LicenceClassRefType } from '../../routes/app-adviser/client/claims/models/claim'\r\nimport { environment } from 'environment';\r\nimport { HttpClient } from 'aurelia-fetch-client';\r\nimport { autoinject } from 'aurelia-framework';\r\nimport {\r\n FieldType\r\n} from 'resources/models/lookups';\r\nimport { StorageService } from '../utilities/storage-helper';\r\nimport { Underwriter } from 'resources/models/client';\r\nimport { AllowableDocumentType } from 'components/document-management/dtos';\r\nimport orderBy from 'lodash/orderBy';\r\nimport { IFieldValueDefiniton } from 'interfaces/lookups/i-field-value-definition';\r\nimport { IMandatoryFieldValueDefinition } from 'interfaces/lookups/i-mandatory-field-value-definition';\r\nimport { IOccupationItem } from 'interfaces/lookups/i-occuptation';\r\nimport { IApiRisk } from 'interfaces/lookups/i-api-risk';\r\n\r\nconst LOCAL_STORAGE_KEY_PREFIX = 'REFDATA';\r\nconst EXPIRY_HEADER = 'X-Expiry';\r\n\r\n@autoinject()\r\nexport class LookupDataService {\r\n constructor(private http: HttpClient, private storage: StorageService) { }\r\n\r\n async acceptsElectronicDisclosureDocuments(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:yes'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:no'\r\n }\r\n ]);\r\n }\r\n\r\n async acceptsMarketingMail(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:yes'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:no'\r\n }\r\n ]);\r\n }\r\n\r\n async association(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 'One-Way',\r\n 'label': 'lookups:oneWay'\r\n },\r\n {\r\n 'id': 'Two-Way',\r\n 'label': 'lookups:twoWay'\r\n }\r\n ]);\r\n }\r\n\r\n async reportCodes(): Promise {\r\n let reportCodes = this.getRefDataFromLocalStorage('reportCodes');\r\n\r\n if (!reportCodes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/reportCodes`);\r\n reportCodes = await response.json();\r\n this.saveRefDataToLocalStorage('reportCodes', response, reportCodes);\r\n }\r\n return reportCodes;\r\n }\r\n\r\n async glPeriodTypes(): Promise {\r\n let glPeriodTypes = this.getRefDataFromLocalStorage('glPeriodTypes');\r\n\r\n if (!glPeriodTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPeriodType`);\r\n glPeriodTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glPeriodTypes', response, glPeriodTypes);\r\n }\r\n return glPeriodTypes;\r\n }\r\n\r\n async consentClientDisplayText(): Promise {\r\n let consentClientDisplayText = this.getRefDataFromLocalStorage('consentClientDisplayText');\r\n\r\n if (!consentClientDisplayText) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/consentClientdisplaytext`);\r\n\r\n // Handle 204 No Content response\r\n if (response.status === 204) {\r\n consentClientDisplayText = null;\r\n } else {\r\n consentClientDisplayText = await response.json();\r\n }\r\n\r\n this.saveRefDataToLocalStorage('consentClientDisplayText', response, consentClientDisplayText);\r\n }\r\n return consentClientDisplayText;\r\n }\r\n\r\n async consentWizardDisplayText(): Promise {\r\n let consentWizardDisplayText = this.getRefDataFromLocalStorage('consentWizardDisplayText');\r\n\r\n if (!consentWizardDisplayText) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/consentWizarddisplaytext`);\r\n\r\n // Handle 204 No Content response\r\n if (response.status === 204) {\r\n consentWizardDisplayText = null;\r\n } else {\r\n consentWizardDisplayText = await response.json();\r\n }\r\n\r\n this.saveRefDataToLocalStorage('consentWizardDisplayText', response, consentWizardDisplayText);\r\n }\r\n return consentWizardDisplayText;\r\n }\r\n\r\n async consentTypes(): Promise {\r\n let consentTypes = this.getRefDataFromLocalStorage('consentTypes');\r\n\r\n if (!consentTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ConsentType`);\r\n consentTypes = (await response.json()).filter(t => t.activeFlag).map((e) => ({ id: e.id, label: e.description, disabled: !e.userSelectableFlag }));\r\n this.saveRefDataToLocalStorage('consentTypes', response, consentTypes);\r\n }\r\n return consentTypes;\r\n }\r\n\r\n async consentVerbalScriptTextByCompanyOffice(): Promise<[]> {\r\n let consentVerbalScriptTextByCompanyOffice = this.getRefDataFromLocalStorage('consentVerbalScriptTextByCompanyOffice');\r\n\r\n if (!consentVerbalScriptTextByCompanyOffice) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/companyoffices/consentverbalscripttext `);\r\n consentVerbalScriptTextByCompanyOffice = await response.json();\r\n this.saveRefDataToLocalStorage('consentVerbalScriptTextByCompanyOffice', response, consentVerbalScriptTextByCompanyOffice);\r\n }\r\n return consentVerbalScriptTextByCompanyOffice;\r\n }\r\n\r\n async transferProcessStatusTypes(): Promise {\r\n let transferProcessStatusTypes = this.getRefDataFromLocalStorage('transferProcessStatusTypes');\r\n\r\n if (!transferProcessStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/TransferProcessStatuses`);\r\n transferProcessStatusTypes = (await response.json()).map((x) => ({id: x.transferProcessStatusId, label: x.transferProcessStatus}));\r\n this.saveRefDataToLocalStorage('transferProcessStatusTypes', response, transferProcessStatusTypes);\r\n }\r\n return transferProcessStatusTypes;\r\n }\r\n\r\n async webFormEditAction(): Promise {\r\n let webFormEditAction = this.getRefDataFromLocalStorage('webFormEditAction');\r\n\r\n if (!webFormEditAction) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/WebFormEditAction`);\r\n webFormEditAction = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('webFormEditActions', response, webFormEditAction);\r\n }\r\n return webFormEditAction;\r\n }\r\n\r\n\r\n async webFormStatusActions(): Promise {\r\n let webFormStatusActions = this.getRefDataFromLocalStorage('webFormStatusActions');\r\n\r\n if (!webFormStatusActions) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/webFormStatusActions`);\r\n webFormStatusActions = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.webFormStatusActionId, label: x.webFormStatusAction}));\r\n this.saveRefDataToLocalStorage('webFormStatusActions', response, webFormStatusActions);\r\n }\r\n return webFormStatusActions;\r\n }\r\n\r\n async WebFormStatus(): Promise {\r\n let WebFormStatus = this.getRefDataFromLocalStorage('WebFormStatus');\r\n\r\n if (!WebFormStatus) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/WebFormStatus`);\r\n WebFormStatus = (await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('WebFormStatus', response, WebFormStatus);\r\n }\r\n return WebFormStatus;\r\n }\r\n\r\n async webFormTypes(): Promise {\r\n let webFormTypes = this.getRefDataFromLocalStorage('webFormTypes');\r\n\r\n if (!webFormTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/WebFormType`);\r\n webFormTypes = (await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('webFormTypes', response, webFormTypes);\r\n }\r\n return webFormTypes;\r\n }\r\n\r\n async webFormRiskClassTypes(): Promise {\r\n let webFormRiskClassTypes = this.getRefDataFromLocalStorage('webFormRiskClassTypes');\r\n\r\n if (!webFormRiskClassTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/riskclasstypes`);\r\n webFormRiskClassTypes = (await response.json()).filter((x) => x.useOnWebFormsFlag).map((x) => ({id: x.riskClassTypeId, label: x.displayName}));\r\n this.saveRefDataToLocalStorage('webFormRiskClassTypes', response, webFormRiskClassTypes);\r\n }\r\n\r\n return webFormRiskClassTypes;\r\n }\r\n\r\n // No Caching added for insurerOfficesServiceRisks\r\n async insurerOfficesServiceRisks(companyOfficeId: number, riskByClassIds: number[]): Promise {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/insurerOffices?companyOfficeId=${companyOfficeId}&${riskByClassIds.map(rbc => `riskByClassIds=${rbc}`).join('&')}`);\r\n return (await response.json()).filter((x) => x.insurerProcessingTypeId == 1).map((x) => ({\r\n insurerId: x.insurerId,\r\n insurerOfficeId: x.insurerOfficeId,\r\n insurerOfficeCode: x.insurerOfficeCode,\r\n insurerOfficeName: x.insurerOfficeName,\r\n captureInsurerOccupationFlag: x.captureInsurerOccupationFlag\r\n }));\r\n }\r\n\r\n async webFormRisksByRiskClassTypes(riskClassTypeId): Promise {\r\n let webFormRisksByRiskClassTypes = this.getRefDataFromLocalStorage('webFormRisksByRiskClassTypes');\r\n\r\n if (!webFormRisksByRiskClassTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/RiskClassType/${riskClassTypeId}/risks`);\r\n webFormRisksByRiskClassTypes = orderBy((await response.json()).filter((x) => x.useOnWebFormsFlag), ['riskCode'], ['desc']);\r\n this.saveRefDataToLocalStorage('webFormRisksByRiskClassTypes', response, webFormRisksByRiskClassTypes, [riskClassTypeId]);\r\n }\r\n\r\n return webFormRisksByRiskClassTypes;\r\n }\r\n\r\n // No Caching added for homepage helpdesk\r\n async homepageHelpdesk(): Promise {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/helpdesk`);\r\n return await response.json();\r\n }\r\n\r\n // No Caching added for homepage urls\r\n async homepageUrls(): Promise {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/homepageurls`);\r\n return (await response.json()).map((x) => ({id: x.homePageUrlId, label: x.description, url: x.url}));\r\n }\r\n\r\n async glPaymentStatusTypes(): Promise {\r\n let glPaymentStatusTypes = this.getRefDataFromLocalStorage('glPaymentStatusTypes');\r\n\r\n if (!glPaymentStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentStatus`);\r\n glPaymentStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glPaymentStatusTypes', response, glPaymentStatusTypes);\r\n }\r\n return glPaymentStatusTypes;\r\n }\r\n\r\n\r\n async glPaymentPartyTypes(): Promise {\r\n let glPaymentPartyTypes = this.getRefDataFromLocalStorage('glPaymentPartyTypes');\r\n\r\n if (!glPaymentPartyTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentParty`);\r\n glPaymentPartyTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glPaymentPartyTypes', response, glPaymentPartyTypes);\r\n }\r\n return glPaymentPartyTypes;\r\n }\r\n\r\n async settleAllCreditTypes(): Promise {\r\n let settleAllCreditTypes = this.getRefDataFromLocalStorage('settleAllCreditTypes');\r\n\r\n if (!settleAllCreditTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SettleAllCreditsOption`);\r\n settleAllCreditTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('settleAllCreditTypes', response, settleAllCreditTypes);\r\n }\r\n return settleAllCreditTypes;\r\n }\r\n\r\n async glSettlementTypes(): Promise {\r\n let glSettlementTypes = this.getRefDataFromLocalStorage('glSettlementTypes');\r\n\r\n if (!glSettlementTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlSettlementType`);\r\n glSettlementTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glSettlementTypes', response, glSettlementTypes);\r\n }\r\n return glSettlementTypes;\r\n }\r\n\r\n async insurerWorkfileTypes(): Promise {\r\n let insurerWorkfileTypes = this.getRefDataFromLocalStorage('insurerWorkfileTypes');\r\n\r\n if (!insurerWorkfileTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerWorkfileType`);\r\n insurerWorkfileTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['id'], ['desc']);\r\n this.saveRefDataToLocalStorage('insurerWorkfileTypes', response, insurerWorkfileTypes);\r\n }\r\n return insurerWorkfileTypes;\r\n }\r\n\r\n async glWorkfileStatusTypes(): Promise {\r\n let glWorkfileStatusTypes = this.getRefDataFromLocalStorage('glWorkfileStatusTypes');\r\n\r\n if (!glWorkfileStatusTypes) {\r\n const endpoint = environment.refData.glWorkfileStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n glWorkfileStatusTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('glWorkfileStatusTypes', response, glWorkfileStatusTypes);\r\n }\r\n\r\n return glWorkfileStatusTypes;\r\n }\r\n\r\n async divisionType(): Promise {\r\n let divisionTypes = this.getRefDataFromLocalStorage('divisionTypes');\r\n\r\n if (!divisionTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/Division`);\r\n divisionTypes = (await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('divisionTypes', response, divisionTypes);\r\n }\r\n return divisionTypes;\r\n }\r\n\r\n async glBatchStatusTypes(): Promise {\r\n let glBatchStatusTypes = this.getRefDataFromLocalStorage('glBatchStatusTypes');\r\n\r\n if (!glBatchStatusTypes) {\r\n const endpoint = environment.refData.glBatchStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n glBatchStatusTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('glBatchStatusTypes', response, glBatchStatusTypes);\r\n }\r\n\r\n return glBatchStatusTypes;\r\n }\r\n\r\n async knowYourClientTypes(): Promise {\r\n let knowYourClientTypes = this.getRefDataFromLocalStorage('knowYourClientTypes');\r\n\r\n if (!knowYourClientTypes) {\r\n const endpoint = environment.refData.knowYourClientTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n knowYourClientTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('knowYourClientTypes', response, knowYourClientTypes);\r\n }\r\n\r\n return knowYourClientTypes;\r\n }\r\n\r\n async vulnerabilityTypes(): Promise {\r\n let vulnerabilityTypes = this.getRefDataFromLocalStorage('vulnerabilityTypes');\r\n\r\n if (!vulnerabilityTypes) {\r\n const endpoint = environment.refData.vulnerableClientTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n vulnerabilityTypes = (await response.json()).map((x) => ({id: x.vulnerableClientTypeId, label: `${x.vulnerableClientType}${x.synopsis ? ' - ' + x.synopsis : ''}`}));\r\n this.saveRefDataToLocalStorage('vulnerabilityTypes', response, vulnerabilityTypes);\r\n }\r\n\r\n return vulnerabilityTypes;\r\n }\r\n\r\n async webFormStatus(): Promise {\r\n let webFormStatusTypes = this.getRefDataFromLocalStorage('webFormStatus');\r\n\r\n if (!webFormStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/WebFormStatus`);\r\n webFormStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('claimStatus', response, webFormStatusTypes);\r\n }\r\n\r\n return webFormStatusTypes;\r\n }\r\n\r\n async soaTypes(): Promise {\r\n let soaTypes = this.getRefDataFromLocalStorage('soaTypes');\r\n\r\n if (!soaTypes) {\r\n const endpoint = environment.refData.soaTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n soaTypes = (await response.json()).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('soaTypes', response, soaTypes);\r\n }\r\n\r\n return soaTypes;\r\n }\r\n\r\n async premiumFunderStatusActionTypes(): Promise {\r\n let premiumFunderStatusActionTypes = this.getRefDataFromLocalStorage('premiumFunderStatusActionTypes');\r\n\r\n if (!premiumFunderStatusActionTypes) {\r\n const endpoint = environment.refData.premiumFunderStatusActionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n premiumFunderStatusActionTypes = (await response.json()).map((x) => ({id: x.premiumFunderStatusActionId, label: `${x.premumFunderStatus} - ${x.premiumFunderStatusAction}` }));\r\n this.saveRefDataToLocalStorage('premiumFunderStatusActionTypes', response, premiumFunderStatusActionTypes);\r\n }\r\n\r\n return premiumFunderStatusActionTypes;\r\n }\r\n\r\n async redPlanetStatusTypes(): Promise {\r\n let redPlanetStatusTypes = this.getRefDataFromLocalStorage('redPlanetStatusTypes');\r\n\r\n if (!redPlanetStatusTypes) {\r\n const endpoint = environment.refData.redPlanetStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n redPlanetStatusTypes = (await response.json()).map((x) => ({id: x.redPlanetStatusId, label: x.status }));\r\n this.saveRefDataToLocalStorage('redPlanetStatusTypes', response, redPlanetStatusTypes);\r\n }\r\n\r\n return redPlanetStatusTypes;\r\n }\r\n\r\n async standardWordingTypes(): Promise {\r\n let standardWordingTypes = this.getRefDataFromLocalStorage('standardWordingTypes');\r\n\r\n if (!standardWordingTypes) {\r\n const endpoint = environment.refData.standardWordingTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n standardWordingTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('standardWordingTypes', response, standardWordingTypes);\r\n }\r\n\r\n return standardWordingTypes;\r\n }\r\n\r\n async additionalPageTemplateCategoryTypes(): Promise {\r\n let additionalPageTemplateCategoryTypes = this.getRefDataFromLocalStorage('additionalPageTemplateCategoryTypes');\r\n\r\n if (!additionalPageTemplateCategoryTypes) {\r\n const endpoint = environment.refData.additionalPageTemplateCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n additionalPageTemplateCategoryTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('additionalPageTemplateCategoryTypes', response, additionalPageTemplateCategoryTypes);\r\n }\r\n\r\n return additionalPageTemplateCategoryTypes;\r\n }\r\n\r\n async redPlanetInvoiceNumberFormatTypes(): Promise {\r\n let redPlanetInvoiceNumberFormatTypes = this.getRefDataFromLocalStorage('redPlanetInvoiceNumberFormatTypes');\r\n\r\n if (!redPlanetInvoiceNumberFormatTypes) {\r\n const endpoint = environment.refData.redPlanetInvoiceNumberFormatTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n redPlanetInvoiceNumberFormatTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('redPlanetInvoiceNumberFormatTypes', response, redPlanetInvoiceNumberFormatTypes);\r\n }\r\n\r\n return redPlanetInvoiceNumberFormatTypes;\r\n }\r\n\r\n async financialServicesGuideTypes(): Promise {\r\n let financialServicesGuideTypes = this.getRefDataFromLocalStorage('financialServicesGuideTypes');\r\n\r\n if (!financialServicesGuideTypes) {\r\n const endpoint = environment.refData.financialServicesGuideTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n financialServicesGuideTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('financialServicesGuideTypes', response, financialServicesGuideTypes);\r\n }\r\n\r\n return financialServicesGuideTypes;\r\n }\r\n\r\n async insurerTypes(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerTypes');\r\n\r\n if (!insurerTypes) {\r\n const endpoint = environment.refData.insurerTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n insurerTypes = (await response.json()).map((x) => ({id: x.insurerId, label: `${x.insurerCode} - ${x.insurerName}`, paysOverrider: x.paysOverride }));\r\n this.saveRefDataToLocalStorage('insurerTypes', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n async insurerOfficeTypes(insurerId): Promise {\r\n let insurerOfficeTypes = this.getRefDataFromLocalStorage('insurerOfficeTypes');\r\n\r\n if (!insurerOfficeTypes) {\r\n const endpoint = environment.refData.insurerOffices;\r\n const uri = endpoint.uri([insurerId]);\r\n const response = await this.http.fetch(uri);\r\n insurerOfficeTypes = (await response.json()).map((x) => ({id: x.insurerOfficeId, label: `${x.insurerOfficeCode} - ${x.insurerOfficeName}` }));\r\n this.saveRefDataToLocalStorage('insurerOfficeTypes', response, insurerOfficeTypes, [insurerId]);\r\n }\r\n\r\n return insurerOfficeTypes;\r\n }\r\n\r\n async groupTypes(): Promise {\r\n let groupTypes = this.getRefDataFromLocalStorage('groupTypes');\r\n\r\n if (!groupTypes) {\r\n const endpoint = environment.refData.groupTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n groupTypes = (await response.json()).map((x) => ({id: x.securityGroupId, label: x.name}));\r\n this.saveRefDataToLocalStorage('groupTypes', response, groupTypes);\r\n }\r\n\r\n return groupTypes;\r\n }\r\n\r\n async partyInstanceTypes(): Promise {\r\n let partyInstanceTypes = this.getRefDataFromLocalStorage('partyInstanceTypes');\r\n\r\n if (!partyInstanceTypes) {\r\n const endpoint = environment.refData.partyInstanceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n partyInstanceTypes = await response.json();\r\n this.saveRefDataToLocalStorage('partyInstanceTypes', response, partyInstanceTypes);\r\n }\r\n\r\n return partyInstanceTypes;\r\n }\r\n\r\n async apraClassTypes(): Promise {\r\n let apraClassTypes = this.getRefDataFromLocalStorage('apraClassTypes');\r\n\r\n if (!apraClassTypes) {\r\n const endpoint = environment.refData.apraClassTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n apraClassTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('apraClassTypes', response, apraClassTypes);\r\n }\r\n\r\n return apraClassTypes;\r\n }\r\n\r\n // No Caching added for scheme types - used in admin\r\n async schemeTypesByRiskClassTypeId(riskClassTypeId: number): Promise {\r\n const endpoint = environment.refData.schemeTypesByRiskClassTypeId;\r\n const uri = endpoint.uri([riskClassTypeId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n // No Caching added for red planet types - used in admin\r\n async redPlanetRiskTypesByPremiumFunderId(premiumFunderId: number): Promise {\r\n const endpoint = environment.refData.redPlanetRiskTypesByPremiumFunderId;\r\n const uri = endpoint.uri([premiumFunderId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.redPlanetRiskId, label: `${x.redPlanetRiskCode} - ${x.redPlanetRiskName}`}));\r\n }\r\n\r\n // No Caching added for red planet sub status types - used in admin\r\n async redPlanetSubStatusTypesByPremiumFunderId(premiumFunderId: number): Promise {\r\n const endpoint = environment.refData.redPlanetSubStatusTypesByPremiumFunderId;\r\n const uri = endpoint.uri([premiumFunderId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.redPlanetSubStatusId, label: `${x.redPlanetStatus} - ${x.redPlanetSubStatus}`}));\r\n }\r\n\r\n // No Caching added for template types - used in admin\r\n async templateTypes(): Promise {\r\n const endpoint = environment.refData.templateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n // No Caching added for template categories - used in admin\r\n async templateCategoryTypes(): Promise {\r\n const endpoint = environment.refData.templateCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n // No Caching added for html template Types - used in admin\r\n async htmlTemplateTypes(): Promise {\r\n const endpoint = environment.refData.htmlTemplateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n async PlTermFromTypes(): Promise {\r\n let PlTermFromTypes = this.getRefDataFromLocalStorage('PlTermFromTypes');\r\n\r\n if (!PlTermFromTypes) {\r\n const endpoint = environment.refData.PlTermFromTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n PlTermFromTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('PlTermFromTypes', response, PlTermFromTypes);\r\n }\r\n\r\n return PlTermFromTypes;\r\n }\r\n\r\n\r\n\r\n async mailSortCodeTypes(): Promise {\r\n let mailSortCodeTypes = this.getRefDataFromLocalStorage('mailSortCodeTypes');\r\n\r\n if (!mailSortCodeTypes) {\r\n const endpoint = environment.refData.mailSortCodeTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n mailSortCodeTypes = (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n this.saveRefDataToLocalStorage('mailSortCodeTypes', response, mailSortCodeTypes);\r\n }\r\n\r\n return mailSortCodeTypes;\r\n }\r\n\r\n async stateTypes(): Promise {\r\n let stateTypes = this.getRefDataFromLocalStorage('stateTypes');\r\n\r\n if (!stateTypes) {\r\n const endpoint = environment.refData.stateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n stateTypes = (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n this.saveRefDataToLocalStorage('stateTypes', response, stateTypes);\r\n }\r\n\r\n return stateTypes;\r\n }\r\n\r\n async stampDutyRegionTypes(): Promise {\r\n let stampDutyRegionTypes = this.getRefDataFromLocalStorage('stampDutyRegionTypes');\r\n\r\n if (!stampDutyRegionTypes) {\r\n const endpoint = environment.refData.stampDutyRegionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n stampDutyRegionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('stampDutyRegionTypes', response, stampDutyRegionTypes);\r\n }\r\n return stampDutyRegionTypes;\r\n }\r\n\r\n async fslRegionTypes(): Promise {\r\n let fslRegionTypes = this.getRefDataFromLocalStorage('fslRegionTypes');\r\n\r\n if (!fslRegionTypes) {\r\n const endpoint = environment.refData.fslRegionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n fslRegionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('fslRegionTypes', response, fslRegionTypes);\r\n }\r\n return fslRegionTypes;\r\n }\r\n\r\n async messagePriorityTypes(): Promise {\r\n let messagePriorityTypes = this.getRefDataFromLocalStorage('messagePriorityTypes');\r\n\r\n if (!messagePriorityTypes) {\r\n const endpoint = environment.refData.messagePriorityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n messagePriorityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('messagePriorityTypes', response, messagePriorityTypes);\r\n }\r\n return messagePriorityTypes;\r\n }\r\n\r\n async messageSourceTypes(): Promise {\r\n let messageSourceTypes = this.getRefDataFromLocalStorage('messageSourceTypes');\r\n\r\n if (!messageSourceTypes) {\r\n const endpoint = environment.refData.messageSourceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n messageSourceTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('messageSourceTypes', response, messageSourceTypes);\r\n }\r\n return messageSourceTypes;\r\n }\r\n\r\n async plTermTypes(): Promise {\r\n let plTermTypes = this.getRefDataFromLocalStorage('plTermTypes');\r\n\r\n if (!plTermTypes) {\r\n const endpoint = environment.refData.plTermTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n plTermTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('plTermTypes', response, plTermTypes);\r\n }\r\n return plTermTypes;\r\n }\r\n\r\n async electronicBankingFileTypes(): Promise {\r\n let electronicBankingFileTypes = this.getRefDataFromLocalStorage('electronicBankingFileTypes');\r\n\r\n if (!electronicBankingFileTypes) {\r\n const endpoint = environment.refData.electronicBankingFileTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n electronicBankingFileTypes = (await response.json()).filter((x) => x.id !=600000001).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('electronicBankingFileTypes', response, electronicBankingFileTypes);\r\n }\r\n return electronicBankingFileTypes;\r\n }\r\n\r\n async socialMediaTypes(): Promise {\r\n let socialMediaTypes = this.getRefDataFromLocalStorage('socialMediaTypes');\r\n\r\n if (!socialMediaTypes) {\r\n const endpoint = environment.refData.socialMediaTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n socialMediaTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('socialMediaTypes', response, socialMediaTypes);\r\n }\r\n return socialMediaTypes;\r\n }\r\n\r\n async branchLocationTypes(): Promise {\r\n let branchLocationTypes = this.getRefDataFromLocalStorage('branchLocationTypes');\r\n\r\n if (!branchLocationTypes) {\r\n const endpoint = environment.refData.branchLocationTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n branchLocationTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('branchLocationTypes', response, branchLocationTypes);\r\n }\r\n return branchLocationTypes;\r\n }\r\n\r\n async branchTypes(): Promise {\r\n let branchTypes = this.getRefDataFromLocalStorage('branchTypes');\r\n\r\n if (!branchTypes) {\r\n const endpoint = environment.refData.branchTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n branchTypes = (await response.json()).map(this.refDataToFieldValueDefinition).filter((x) => x.id != 1 && x.id != 2 );;\r\n this.saveRefDataToLocalStorage('branchTypes', response, branchTypes);\r\n }\r\n return branchTypes;\r\n }\r\n\r\n async underwriterTypes(): Promise {\r\n let UnderwriterTypes = this.getRefDataFromLocalStorage('UnderwriterTypes');\r\n\r\n if (!UnderwriterTypes) {\r\n const endpoint = environment.refData.underwriterTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n UnderwriterTypes = await response.json();\r\n this.saveRefDataToLocalStorage('UnderwriterTypes', response, UnderwriterTypes);\r\n }\r\n return UnderwriterTypes;\r\n }\r\n\r\n async bankBranchTypes(): Promise {\r\n let BankBranchTypes = this.getRefDataFromLocalStorage('BankBranchTypes');\r\n\r\n if (!BankBranchTypes) {\r\n const endpoint = environment.refData.BankBranchTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n BankBranchTypes = await response.json();\r\n this.saveRefDataToLocalStorage('BankBranchTypes', response, BankBranchTypes);\r\n }\r\n return BankBranchTypes;\r\n }\r\n\r\n async claimsPayingRatingStructureTypes(): Promise {\r\n let ClaimsPayingRatingStructureTypes = this.getRefDataFromLocalStorage('ClaimsPayingRatingStructureTypes');\r\n\r\n if (!ClaimsPayingRatingStructureTypes) {\r\n const endpoint = environment.refData.ClaimsPayingRatingStructureTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n ClaimsPayingRatingStructureTypes = await response.json();\r\n this.saveRefDataToLocalStorage('ClaimsPayingRatingStructureTypes', response, ClaimsPayingRatingStructureTypes);\r\n }\r\n return ClaimsPayingRatingStructureTypes;\r\n }\r\n\r\n async claimsPayingRatingSourceTypes(): Promise {\r\n let claimsPayingRatingSourceTypes = this.getRefDataFromLocalStorage('claimsPayingRatingSourceTypes');\r\n\r\n if (!claimsPayingRatingSourceTypes) {\r\n const endpoint = environment.refData.ClaimsPayingRatingSourceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n claimsPayingRatingSourceTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('claimsPayingRatingSourceTypes', response, claimsPayingRatingSourceTypes);\r\n }\r\n return claimsPayingRatingSourceTypes;\r\n }\r\n\r\n async referralTypes(): Promise {\r\n let referralTypes = this.getRefDataFromLocalStorage('referralTypes');\r\n\r\n if (!referralTypes) {\r\n const endpoint = environment.refData.referralTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n referralTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('referralTypes', response, referralTypes);\r\n }\r\n return referralTypes;\r\n }\r\n\r\n async adviserTypes(): Promise {\r\n let adviserTypes = this.getRefDataFromLocalStorage('adviserTypes');\r\n\r\n if (!adviserTypes) {\r\n const endpoint = environment.refData.adviserTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n adviserTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('adviserTypes', response, adviserTypes);\r\n }\r\n return adviserTypes;\r\n }\r\n async authorisationReasons(): Promise {\r\n let authorisationReasons = this.getRefDataFromLocalStorage('authorisationReasons');\r\n\r\n if (!authorisationReasons) {\r\n const endpoint = environment.refData.authorisationReasons;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n authorisationReasons = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('adviserTypes', response, authorisationReasons);\r\n }\r\n\r\n return authorisationReasons;\r\n }\r\n\r\n async titleTypes(): Promise {\r\n let titleTypes = this.getRefDataFromLocalStorage('titleTypes');\r\n\r\n if (!titleTypes) {\r\n const endpoint = environment.refData.titleTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n titleTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('titleTypes', response, titleTypes);\r\n }\r\n return titleTypes;\r\n }\r\n\r\n async actionTypes(): Promise {\r\n let actionTypes = this.getRefDataFromLocalStorage('actionTypes');\r\n\r\n if (!actionTypes) {\r\n const endpoint = environment.refData.actionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n actionTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('actionTypes', response, actionTypes);\r\n }\r\n return actionTypes;\r\n }\r\n\r\n async referralCalculationMethods(): Promise {\r\n let referralCalculationMethods = this.getRefDataFromLocalStorage('referralCalculationMethods');\r\n\r\n if (!referralCalculationMethods) {\r\n const endpoint = environment.refData.referralCalculationMethods;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n referralCalculationMethods = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('referralCalculationMethods', response, referralCalculationMethods);\r\n }\r\n return referralCalculationMethods;\r\n }\r\n\r\n async bankAccountTypes(): Promise {\r\n let bankAccountTypes = this.getRefDataFromLocalStorage('bankAccountTypes');\r\n\r\n if (!bankAccountTypes) {\r\n const endpoint = environment.refData.bankAccountTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n bankAccountTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('bankAccountTypes', response, bankAccountTypes);\r\n }\r\n return bankAccountTypes;\r\n }\r\n\r\n async taxStatusTypes(): Promise {\r\n let taxStatusTypes = this.getRefDataFromLocalStorage('taxStatusTypes');\r\n\r\n if (!taxStatusTypes) {\r\n const endpoint = environment.refData.taxStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n taxStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('taxStatusTypes', response, taxStatusTypes);\r\n }\r\n return taxStatusTypes;\r\n }\r\n\r\n async settlementTypes(): Promise {\r\n let settlementTypes = this.getRefDataFromLocalStorage('settlementTypes');\r\n\r\n if (!settlementTypes) {\r\n const endpoint = environment.refData.settlementTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n settlementTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('settlementTypes', response, settlementTypes);\r\n }\r\n return settlementTypes;\r\n }\r\n\r\n async insurerCategoryTypes(): Promise {\r\n let insurerCategoryTypes = this.getRefDataFromLocalStorage('insurerCategoryTypes');\r\n\r\n if (!insurerCategoryTypes) {\r\n const endpoint = environment.refData.insurerCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n insurerCategoryTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('insurerCategoryTypes', response, insurerCategoryTypes);\r\n }\r\n return insurerCategoryTypes;\r\n }\r\n\r\n // Filter BPay (600000002) & Credit Card (600000003)\r\n async paymentOutType(): Promise {\r\n let paymentOutType = this.getRefDataFromLocalStorage('paymentOutType');\r\n\r\n if (!paymentOutType) {\r\n const endpoint = environment.refData.paymentOutType;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n paymentOutType = (await response.json()).filter((x) => x.id !== 600000002 && x.id !== 600000003).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentOutType', response, paymentOutType);\r\n }\r\n return paymentOutType;\r\n }\r\n\r\n // only use on Client Settlements in iAccounts\r\n async paymentOutTypeAll(): Promise {\r\n let paymentOutTypeAll = this.getRefDataFromLocalStorage('paymentOutTypeAll');\r\n\r\n if (!paymentOutTypeAll) {\r\n const endpoint = environment.refData.paymentOutType;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n paymentOutTypeAll = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentOutTypeAll', response, paymentOutTypeAll);\r\n }\r\n return paymentOutTypeAll;\r\n }\r\n\r\n // only use on Settlement Request modal in iAdviser\r\n async paymentOutTypeUseOnSettlementRequest(): Promise {\r\n let paymentOutTypeUseOnSettlementRequest = this.getRefDataFromLocalStorage('paymentOutTypeUseOnSettlementRequest');\r\n\r\n if (!paymentOutTypeUseOnSettlementRequest) {\r\n const endpoint = environment.refData.paymentOutType;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n paymentOutTypeUseOnSettlementRequest = (await response.json()).filter((x) => x.useOnSettlementRequest).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentOutTypeUseOnSettlementRequest', response, paymentOutTypeUseOnSettlementRequest);\r\n }\r\n return paymentOutTypeUseOnSettlementRequest;\r\n }\r\n\r\n async activityTypes(): Promise {\r\n let activityTypes = this.getRefDataFromLocalStorage('activityTypes');\r\n\r\n if (!activityTypes) {\r\n const endpoint = environment.refData.activityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n activityTypes = (await response.json()).map((a) => ({ id: a.entityDocumentActivityTypeId, label: a.activityType }));\r\n this.saveRefDataToLocalStorage('activityTypes', response, activityTypes);\r\n }\r\n return activityTypes;\r\n }\r\n\r\n async taskCategoryTypes(): Promise {\r\n let taskCategoryTypes = this.getRefDataFromLocalStorage('taskCategoryTypes');\r\n\r\n if (!taskCategoryTypes) {\r\n const endpoint = environment.refData.taskCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n taskCategoryTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('taskCategoryTypes', response, taskCategoryTypes);\r\n }\r\n return taskCategoryTypes;\r\n }\r\n\r\n async taskPriorityTypes(): Promise {\r\n let taskPriorityTypes = this.getRefDataFromLocalStorage('taskPriorityTypes');\r\n\r\n if (!taskPriorityTypes) {\r\n const endpoint = environment.refData.taskPriorityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n taskPriorityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('taskPriorityTypes', response, taskPriorityTypes);\r\n }\r\n return taskPriorityTypes;\r\n }\r\n\r\n async userDetail(): Promise {\r\n let userDetail = this.getRefDataFromLocalStorage('userDetail');\r\n\r\n if (!userDetail) {\r\n const endpoint = environment.applicationHomeEndpoints.userDetail;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n userDetail = await response.json();\r\n this.saveRefDataToLocalStorage('userDetail', response, userDetail);\r\n }\r\n\r\n return userDetail;\r\n }\r\n\r\n async journalType(): Promise {\r\n let journalTypes = this.getRefDataFromLocalStorage('journalType');\r\n\r\n if (!journalTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlJournalType`);\r\n journalTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('journalType', response, journalTypes);\r\n }\r\n\r\n return journalTypes;\r\n }\r\n\r\n async salesStatusType(): Promise {\r\n let salesStatusTypes = this.getRefDataFromLocalStorage('salesStatusType');\r\n\r\n if (!salesStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SalesStatusType`);\r\n salesStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('salesStatusType', response, salesStatusTypes);\r\n }\r\n return salesStatusTypes;\r\n }\r\n\r\n async salesRatingType(): Promise {\r\n let salesRatingTypes = this.getRefDataFromLocalStorage('salesRatingType');\r\n\r\n if (!salesRatingTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SalesRatingType`);\r\n salesRatingTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('salesRatingType', response, salesRatingTypes);\r\n }\r\n return salesRatingTypes;\r\n }\r\n\r\n async fieldTypes(fieldType: FieldType, partyInstanceId: number): Promise {\r\n let localTypes = this.getRefDataFromLocalStorage(`${partyInstanceId}__${fieldType}Type`, partyInstanceId);\r\n\r\n if (!localTypes) {\r\n const response: any = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/${fieldType}types/${partyInstanceId}`\r\n );\r\n\r\n // Email and website come back as eAddressTypeId, etc so we have to check\r\n const keyPrefix = (fieldType === 'email' || fieldType === 'website') ? 'eAddress' : fieldType;\r\n\r\n const typeIdKey = `${keyPrefix}TypeId`;\r\n const typeKey = `${keyPrefix}Type`;\r\n const mandatoryKey = 'mandatoryFlag';\r\n\r\n localTypes = (await response.json())\r\n .map((obj) => ({ id: obj[typeIdKey], label: obj[typeKey], mandatory: obj[mandatoryKey] }));\r\n\r\n this.saveRefDataToLocalStorage(`${partyInstanceId}__${fieldType}Type`, response, localTypes, partyInstanceId);\r\n }\r\n\r\n return localTypes;\r\n }\r\n\r\n async adviser(companyOfficeId?: number): Promise {\r\n if (companyOfficeId > 0) {\r\n let advisers = this.getRefDataFromLocalStorage('adviser', companyOfficeId);\r\n\r\n if (!advisers) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/companyoffices/${companyOfficeId}/advisers`\r\n );\r\n advisers = (await response.json()).map(({ adviserId, adviserCode, adviserName }) => ({\r\n id: adviserId,\r\n code: parseInt(adviserCode),\r\n label: `${adviserCode} - ${adviserName}`\r\n })).sort((a, b) => a.code - b.code);\r\n\r\n this.saveRefDataToLocalStorage('adviser', response, advisers, companyOfficeId);\r\n }\r\n\r\n return advisers;\r\n } else {\r\n return Promise.resolve([\r\n {\r\n 'id': undefined,\r\n 'label': 'lookups:pleaseSelectOffice'\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async insurerUnderwriters(insurerId: number, validUnderwriterProcessTypeIds: string = undefined): Promise {\r\n if (insurerId <= 0) return;\r\n let underwriters: Underwriter[] = this.getRefDataFromLocalStorage('insurerUnderwriters', insurerId);\r\n\r\n let uri = `${environment.apiHost}/api/refdata/insurers/${insurerId}/underwriters`\r\n\r\n if(validUnderwriterProcessTypeIds){\r\n uri += `?underwriterProcessTypeIds=${validUnderwriterProcessTypeIds}`\r\n }\r\n\r\n if (!underwriters) {\r\n const response = await this.http.fetch(uri);\r\n if (!response.ok) return;\r\n\r\n underwriters = await response.json();\r\n this.saveRefDataToLocalStorage('insurerUnderwriters', response, underwriters, insurerId);\r\n }\r\n return underwriters;\r\n }\r\n\r\n async insurerProcessType(): Promise {\r\n let insurerProcessTypes = this.getRefDataFromLocalStorage('insurerProcessType');\r\n\r\n if (!insurerProcessTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerProcessType`);\r\n\r\n insurerProcessTypes = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('insurerProcessType', response, insurerProcessTypes);\r\n }\r\n\r\n return insurerProcessTypes;\r\n }\r\n\r\n async insurerType(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerType');\r\n\r\n if (!insurerTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerType`);\r\n\r\n insurerTypes = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('insurerType', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n // No Caching added for insurer groups - used in admin\r\n async insurerGroup(): Promise {\r\n const endpoint = environment.refData.insurerGroups;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n // No Caching added for risk group types - used in admin\r\n async riskGroupType(): Promise {\r\n const endpoint = environment.refData.riskGroupTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n async paymentType(activeOnly = false): Promise {\r\n const localStorageKey = activeOnly ? 'activePaymentTypes' : 'allPaymentTypes';\r\n let paymentTypes = this.getRefDataFromLocalStorage(localStorageKey);\r\n\r\n if (!paymentTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentType`);\r\n\r\n paymentTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n if(activeOnly){\r\n paymentTypes = paymentTypes.filter(t => t.activeFlag);\r\n }\r\n\r\n paymentTypes = orderBy(paymentTypes.map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage(localStorageKey, response, paymentTypes);\r\n }\r\n\r\n return paymentTypes;\r\n }\r\n\r\n\r\n async businessEntityType(): Promise {\r\n let businessEntityTypes = this.getRefDataFromLocalStorage('businessEntityType');\r\n\r\n if (!businessEntityTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/BusinessEntityType`);\r\n businessEntityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('businessEntityType', response, businessEntityTypes);\r\n }\r\n\r\n return businessEntityTypes;\r\n }\r\n\r\n async quoteStatusType(): Promise {\r\n let quoteStatusTypes = this.getRefDataFromLocalStorage('quoteStatusType');\r\n\r\n if (!quoteStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/QtQuoteStatusType`);\r\n quoteStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('quoteStatusType', response, quoteStatusTypes);\r\n }\r\n\r\n return quoteStatusTypes;\r\n }\r\n\r\n async paymentStatus(): Promise {\r\n let paymentStatuses = this.getRefDataFromLocalStorage('paymentStatus');\r\n\r\n if (!paymentStatuses) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/PlPaymentStatus`);\r\n paymentStatuses = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentStatus', response, paymentStatuses);\r\n }\r\n\r\n return paymentStatuses;\r\n }\r\n\r\n async anzsicType(): Promise {\r\n let anzsicTypes = this.getRefDataFromLocalStorage('anzsicType');\r\n\r\n if (!anzsicTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/AnzsicType`);\r\n anzsicTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('anzsicType', response, anzsicTypes);\r\n }\r\n\r\n return anzsicTypes;\r\n }\r\n\r\n async riskClassType(): Promise {\r\n let riskClassTypes = this.getRefDataFromLocalStorage('riskClassType');\r\n\r\n if (!riskClassTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/RiskClassType`);\r\n riskClassTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('riskClassType', response, riskClassTypes);\r\n }\r\n\r\n return riskClassTypes;\r\n }\r\n\r\n async activeRiskClassTypes(): Promise {\r\n let riskClassTypes = this.getRefDataFromLocalStorage('activeRiskClassTypes');\r\n\r\n if (!riskClassTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/RiskClassType`);\r\n riskClassTypes = (await response.json()).filter((x) =>x .activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('activeRiskClassTypes', response, riskClassTypes);\r\n }\r\n\r\n return riskClassTypes;\r\n }\r\n\r\n async risksByRiskClassType(riskClassTypeId): Promise {\r\n let risksByRiskClassType = this.getRefDataFromLocalStorage('risksByRiskClassType');\r\n\r\n if (!risksByRiskClassType) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/RiskClassType/${riskClassTypeId}/risks`);\r\n risksByRiskClassType = (await response.json()).map((x) => ({id: x.riskByClassId, label: `${x.riskCode} - ${x.riskName}`}));\r\n this.saveRefDataToLocalStorage('risksByRiskClassType', response, risksByRiskClassType, [riskClassTypeId]);\r\n }\r\n\r\n return risksByRiskClassType;\r\n }\r\n\r\n async riskByClassTypes(): Promise {\r\n let riskByClassTypes = this.getRefDataFromLocalStorage('riskByClassTypes');\r\n\r\n if (!riskByClassTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/RisksByClass`);\r\n riskByClassTypes = (await response.json()).map((x) => ({id: x.riskByClassId, label: `${x.riskCode} - ${x.riskName}`}));\r\n this.saveRefDataToLocalStorage('riskByClassTypes', response, riskByClassTypes);\r\n }\r\n\r\n return riskByClassTypes;\r\n }\r\n\r\n async clientCategory(): Promise {\r\n let clientCategories = this.getRefDataFromLocalStorage('clientCategory');\r\n\r\n if (!clientCategories) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClientCategory`);\r\n clientCategories = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('clientCategory', response, clientCategories);\r\n }\r\n return clientCategories;\r\n }\r\n\r\n async clientDisclosureType(): Promise {\r\n let clientDisclosureTypes = this.getRefDataFromLocalStorage('clientDisclosureType');\r\n\r\n if (!clientDisclosureTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClientDisclosureType`);\r\n clientDisclosureTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('clientDisclosureType', response, clientDisclosureTypes);\r\n }\r\n return clientDisclosureTypes;\r\n }\r\n\r\n async clientRole(): Promise {\r\n let clientRoles = this.getRefDataFromLocalStorage('clientRole');\r\n\r\n if (!clientRoles) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClientRole`);\r\n clientRoles = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('clientRole', response, clientRoles);\r\n }\r\n return clientRoles;\r\n }\r\n\r\n async clientType(): Promise {\r\n let clientTypes = this.getRefDataFromLocalStorage('clientType');\r\n\r\n if (!clientTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClientType`);\r\n clientTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('clientType', response, clientTypes);\r\n }\r\n return clientTypes;\r\n }\r\n\r\n async companyOffice(): Promise {\r\n let companyOffices = this.getRefDataFromLocalStorage('companyOffice');\r\n\r\n if (!companyOffices) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/companyoffices`);\r\n companyOffices = (await response.json()).map(c => ({\r\n id: c.companyOfficeId,\r\n code: parseInt(c.companyOfficeCode),\r\n label: `${c.companyOfficeCode} - ${c.companyOfficeName}`\r\n })).sort((a, b) => a.code - b.code);\r\n this.saveRefDataToLocalStorage('companyOffice', response, companyOffices);\r\n }\r\n return companyOffices;\r\n }\r\n\r\n async countryCode(): Promise {\r\n let countries = this.getRefDataFromLocalStorage('countryCode');\r\n\r\n if (!countries) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/countries`);\r\n\r\n countries = (await response.json()).map(c => ({\r\n id: c.countryCode,\r\n label: c.countryName\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('countryCode', response, countries);\r\n }\r\n return countries;\r\n }\r\n\r\n async countryTypes(): Promise {\r\n let countryTypes = this.getRefDataFromLocalStorage('countryTypes');\r\n\r\n if (!countryTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/countries`);\r\n countryTypes = (await response.json()).map(c => ({\r\n id: c.countryId,\r\n label: c.countryName\r\n }));\r\n this.saveRefDataToLocalStorage('countryTypes', response, countryTypes);\r\n }\r\n\r\n return countryTypes;\r\n }\r\n\r\n async distributionType(): Promise {\r\n let distributionTypes = this.getRefDataFromLocalStorage('distributionType');\r\n\r\n if (!distributionTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/DistributionType`);\r\n distributionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('distributionType', response, distributionTypes);\r\n }\r\n return distributionTypes;\r\n }\r\n\r\n async financialServicesGuideType(): Promise {\r\n let financialServicesGuideType = this.getRefDataFromLocalStorage('financialServicesGuideType');\r\n\r\n if (!financialServicesGuideType) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/FinancialServicesGuideType`);\r\n financialServicesGuideType = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('financialServicesGuideType', response, financialServicesGuideType);\r\n }\r\n return financialServicesGuideType;\r\n }\r\n\r\n async introductionType(): Promise {\r\n let introductionTypes = this.getRefDataFromLocalStorage('introductionType');\r\n\r\n if (!introductionTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/IntroductionType`);\r\n introductionTypes = (await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('introductionType', response, introductionTypes);\r\n }\r\n return introductionTypes;\r\n }\r\n\r\n async noteType(): Promise {\r\n let noteTypes = this.getRefDataFromLocalStorage('noteType');\r\n\r\n if (!noteTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/NoteType`);\r\n noteTypes = orderBy((await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('noteType', response, noteTypes);\r\n }\r\n\r\n return noteTypes;\r\n }\r\n\r\n async declineType(): Promise {\r\n let declineTypes = this.getRefDataFromLocalStorage('declineType');\r\n\r\n if (!declineTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/DeclineType`);\r\n\r\n declineTypes = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('declineType', response, declineTypes);\r\n }\r\n\r\n return declineTypes;\r\n }\r\n\r\n async proposalStatus(): Promise {\r\n let proposalStatuses = this.getRefDataFromLocalStorage('proposalStatus');\r\n\r\n if (!proposalStatuses) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ProposalStatus`);\r\n\r\n proposalStatuses = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('proposalStatus', response, proposalStatuses);\r\n }\r\n\r\n return proposalStatuses;\r\n }\r\n\r\n async systemParameters(): Promise {\r\n let systemParameters: string = this.getRefDataFromLocalStorage('systemParameters');\r\n\r\n if (!systemParameters) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters`);\r\n systemParameters = await response.json() as string;\r\n this.saveRefDataToLocalStorage('systemParameters', response, systemParameters);\r\n }\r\n return systemParameters;\r\n }\r\n\r\n async verbalPrivacyStatement(): Promise {\r\n let verbalPrivacy: string = this.getRefDataFromLocalStorage('verbalPrivacyStatement');\r\n\r\n if (!verbalPrivacy) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/verbalprivacystatement`);\r\n verbalPrivacy = await response.json() as string;\r\n this.saveRefDataToLocalStorage('verbalPrivacyStatement', response, verbalPrivacy);\r\n }\r\n return verbalPrivacy;\r\n }\r\n\r\n async verbalFsgStatement(): Promise {\r\n let verbalFsg: string = this.getRefDataFromLocalStorage('verbalFsgStatement');\r\n\r\n if (!verbalFsg) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/verbalfsgstatement`);\r\n verbalFsg = await response.json() as string;\r\n this.saveRefDataToLocalStorage('verbalFsgStatement', response, verbalFsg);\r\n }\r\n return verbalFsg;\r\n }\r\n\r\n async verbalFsgStatementHtml(): Promise {\r\n let verbalFsg: string = this.getRefDataFromLocalStorage('verbalFsgStatementHtml');\r\n\r\n if (!verbalFsg) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/verbalfsgstatement/html`);\r\n verbalFsg = await response.json() as string;\r\n this.saveRefDataToLocalStorage('verbalFsgStatementHtml', response, verbalFsg);\r\n }\r\n return verbalFsg;\r\n }\r\n\r\n async lmiBiCalculatorLink(): Promise {\r\n let calculatorLink: string = this.getRefDataFromLocalStorage('lmiBiCalculatorLink');\r\n\r\n if (!calculatorLink) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/lmi/bicalculator`);\r\n calculatorLink = await response.json() as string;\r\n this.saveRefDataToLocalStorage('lmiBiCalculatorLink', response, calculatorLink);\r\n }\r\n return calculatorLink;\r\n }\r\n\r\n async lmiRiskCoachLink(): Promise {\r\n let riskCoachLink: string = this.getRefDataFromLocalStorage('lmiRiskCoachLink');\r\n\r\n if (!riskCoachLink) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/lmi/riskcoach`);\r\n riskCoachLink = await response.json() as string;\r\n this.saveRefDataToLocalStorage('lmiRiskCoachLink', response, riskCoachLink);\r\n }\r\n return riskCoachLink;\r\n }\r\n\r\n async lmiPolicyComparisonLink(): Promise {\r\n let policyComparisonLink: string = this.getRefDataFromLocalStorage('lmiPolicyComparisonLink');\r\n\r\n if (!policyComparisonLink) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/lmi/policycomparison`);\r\n policyComparisonLink = await response.json() as string;\r\n this.saveRefDataToLocalStorage('lmiPolicyComparisonLink', response, policyComparisonLink);\r\n }\r\n return policyComparisonLink;\r\n }\r\n\r\n async apiEndpoints(): Promise {\r\n let apiEndpoints: ApiEndpoints = this.getRefDataFromLocalStorage('apiEndpoints');\r\n const endpoint = environment.refData.endpoints;\r\n\r\n if (!apiEndpoints) {\r\n const response = await this.http.fetch(endpoint.uri());\r\n apiEndpoints = await response.json() as ApiEndpoints;\r\n this.saveRefDataToLocalStorage('apiEndpoints', response, apiEndpoints);\r\n }\r\n return apiEndpoints;\r\n }\r\n\r\n async entityActions(): Promise {\r\n let entityActions: EntityAction[] = this.getRefDataFromLocalStorage('entityActions');\r\n\r\n if (!entityActions) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/policyactions`);\r\n entityActions = (await response.json() as EntityAction[]).filter((x) => x.activeFlag);\r\n this.saveRefDataToLocalStorage('entityActions', response, entityActions);\r\n }\r\n return entityActions;\r\n }\r\n\r\n async entityReportingTypes(): Promise {\r\n let entityReportingTypes: EntityReportingType[] = this.getRefDataFromLocalStorage('entityReportingTypes');\r\n\r\n if (!entityReportingTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/policyreportingtypes`);\r\n entityReportingTypes = (await response.json() as EntityReportingType[]).filter((x) => x.activeFlag);\r\n this.saveRefDataToLocalStorage('entityReportingTypes', response, entityReportingTypes);\r\n }\r\n return entityReportingTypes;\r\n }\r\n\r\n async premiumFunderStatusTypes(): Promise {\r\n let premiumFunderStatusTypes = this.getRefDataFromLocalStorage('premiumFunderStatusTypes');\r\n\r\n if (!premiumFunderStatusTypes) {\r\n const endpoint = environment.refData.premiumFunderStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n premiumFunderStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('premiumFunderStatusTypes', response, premiumFunderStatusTypes);\r\n }\r\n return premiumFunderStatusTypes;\r\n }\r\n\r\n async premiumFunderStatusActions(): Promise {\r\n let premiumFunderStatusActions: PremiumFunderStatusAction[] = this.getRefDataFromLocalStorage('premiumFunderStatusActions');\r\n\r\n if (!premiumFunderStatusActions) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/premiumfunderstatusactions`);\r\n premiumFunderStatusActions = await response.json() as PremiumFunderStatusAction[];\r\n this.saveRefDataToLocalStorage('premiumFunderStatusActions', response, premiumFunderStatusActions);\r\n }\r\n return premiumFunderStatusActions;\r\n }\r\n\r\n async premiumFunders(includeInactive = false): Promise {\r\n const localStorageKey = includeInactive ? 'allPremiumFunders' : 'activePremiumFunders';\r\n let premiumFunders: PremiumFunder[] = this.getRefDataFromLocalStorage(localStorageKey);\r\n\r\n if (!premiumFunders) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/premiumfunders?includeInactivePremiumFunders=${includeInactive}`\r\n );\r\n premiumFunders = await response.json() as PremiumFunder[];\r\n this.saveRefDataToLocalStorage(localStorageKey, response, premiumFunders);\r\n }\r\n return premiumFunders;\r\n }\r\n\r\n async surchargePayees(includeInactive = false): Promise {\r\n const localStorageKey = includeInactive ? 'allSurchargePayees' : 'activeSurchargePayees';\r\n let surchargePayees: SurchargePayee[] = this.getRefDataFromLocalStorage(localStorageKey);\r\n\r\n if (!surchargePayees) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/surchargePayees?includeInactiveSurchargePayees=${includeInactive}`\r\n );\r\n surchargePayees = await response.json() as SurchargePayee[];\r\n this.saveRefDataToLocalStorage(localStorageKey, response, surchargePayees);\r\n }\r\n return surchargePayees;\r\n }\r\n\r\n async allowableDocumentTypes(): Promise {\r\n let allowableDocumentTypes: AllowableDocumentType[] = this.getRefDataFromLocalStorage('allowableDocumentTypes');\r\n\r\n if (!allowableDocumentTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/docmgmt/allowabletypes`);\r\n allowableDocumentTypes = (await response.json() as AllowableDocumentType[]).filter(x => !x.synopsis.includes('System HTML'));\r\n this.saveRefDataToLocalStorage('allowableDocumentTypes', response, allowableDocumentTypes);\r\n }\r\n return allowableDocumentTypes;\r\n }\r\n\r\n async allowableDocumentTypesAll(): Promise {\r\n let allowableDocumentTypes: AllowableDocumentType[] = this.getRefDataFromLocalStorage('allowableDocumentTypesAll');\r\n\r\n if (!allowableDocumentTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/docmgmt/allowabletypes`);\r\n allowableDocumentTypes = (await response.json() as AllowableDocumentType[]).filter(x => !x.synopsis.includes('System HTML Task'));\r\n this.saveRefDataToLocalStorage('allowableDocumentTypesAll', response, allowableDocumentTypes);\r\n }\r\n return allowableDocumentTypes;\r\n }\r\n\r\n async asicExemptionType(): Promise {\r\n let asicExemptionTypes = this.getRefDataFromLocalStorage('asicExemptionType');\r\n\r\n if (!asicExemptionTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/AsicExemptionType`);\r\n asicExemptionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('asicExemptionType', response, asicExemptionTypes);\r\n }\r\n\r\n return asicExemptionTypes;\r\n }\r\n\r\n async aTypicalRiskClass(): Promise {\r\n let aTypicalRiskClasses = this.getRefDataFromLocalStorage('aTypicalRiskClass');\r\n\r\n if (!aTypicalRiskClasses) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/AtypicalRiskClass`);\r\n aTypicalRiskClasses = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('aTypicalRiskClass', response, aTypicalRiskClasses);\r\n }\r\n\r\n return aTypicalRiskClasses;\r\n }\r\n\r\n async customisedReason(): Promise {\r\n let customisedReasons = this.getRefDataFromLocalStorage('customisedReason');\r\n\r\n if (!customisedReasons) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/CustomisedReason`);\r\n customisedReasons = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('customisedReason', response, customisedReasons);\r\n }\r\n\r\n return customisedReasons;\r\n }\r\n\r\n async criminalRecordsStatement(): Promise {\r\n let criminalRecords: string = this.getRefDataFromLocalStorage('criminalRecordsStatement');\r\n\r\n if (!criminalRecords) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/parameters/criminalrecordsstatement`);\r\n criminalRecords = await response.json() as string;\r\n this.saveRefDataToLocalStorage('criminalRecordsStatement', response, criminalRecords);\r\n }\r\n return criminalRecords;\r\n }\r\n\r\n async referral(companyOfficeId?: number): Promise {\r\n if (companyOfficeId > 0) {\r\n let referrals = this.getRefDataFromLocalStorage('referral', companyOfficeId);\r\n\r\n if (!referrals) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/companyoffices/${companyOfficeId}/referrers`\r\n );\r\n referrals = (await response.json()).map(({ referralId, referralCode, referralName }) => ({\r\n id: referralId,\r\n label: `${referralCode} - ${referralName}`\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('referral', response, referrals, companyOfficeId);\r\n }\r\n\r\n return referrals;\r\n } else {\r\n return Promise.resolve([\r\n {\r\n 'id': undefined,\r\n 'label': 'lookups:pleaseSelectOffice'\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async claimStatus(): Promise {\r\n let claimTypes = this.getRefDataFromLocalStorage('claimStatus');\r\n\r\n if (!claimTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimStatus`);\r\n claimTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('claimStatus', response, claimTypes);\r\n }\r\n\r\n return claimTypes;\r\n }\r\n\r\n async claimType(): Promise {\r\n let claimTypes = this.getRefDataFromLocalStorage('claimType');\r\n\r\n if (!claimTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimType`);\r\n claimTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimType', response, claimTypes);\r\n }\r\n\r\n return claimTypes;\r\n }\r\n\r\n async claimEventTypes(): Promise {\r\n let claimEventTypes = this.getRefDataFromLocalStorage('claimEventTypes');\r\n\r\n if (!claimEventTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimevents`);\r\n claimEventTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.claimEventId, label: x.claimEvent}));\r\n this.saveRefDataToLocalStorage('claimEventTypes', response, claimEventTypes);\r\n }\r\n\r\n return claimEventTypes;\r\n }\r\n\r\n async claimCategory(): Promise {\r\n let claimCategories = this.getRefDataFromLocalStorage('claimCategory');\r\n\r\n if (!claimCategories) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimcategories`);\r\n claimCategories = orderBy(await response.json(), ['claimCategory'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimCategory', response, claimCategories);\r\n }\r\n return claimCategories;\r\n }\r\n\r\n async claimStatusActions(): Promise {\r\n let items = this.getRefDataFromLocalStorage('claimStatusAction');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimstatusactions`);\r\n items = orderBy(await response.json(), ['claimStatusAction'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimStatusAction', response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async licenceClasses(): Promise {\r\n let items = this.getRefDataFromLocalStorage('licenceClasses');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/licenceClasses`);\r\n items = await response.json();\r\n this.saveRefDataToLocalStorage('licenceClasses', response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async claimNoteType(): Promise {\r\n let noteTypes = this.getRefDataFromLocalStorage('claimNoteType');\r\n\r\n if (!noteTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimNoteType`);\r\n noteTypes = orderBy((await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimNoteType', response, noteTypes);\r\n }\r\n\r\n return noteTypes;\r\n }\r\n\r\n async claimPaymentType(): Promise {\r\n let items = this.getRefDataFromLocalStorage('claimPaymentType');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimPaymentType`);\r\n items = orderBy((await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimPaymentType', response, items);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n async get(refType): Promise {\r\n let vals = this.getRefDataFromLocalStorage(refType);\r\n\r\n if (!vals) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/${refType}`);\r\n vals = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage(refType, response, vals);\r\n }\r\n return vals;\r\n }\r\n\r\n async users(companyOfficeId?: number): Promise {\r\n if (companyOfficeId > 0) {\r\n let users = this.getRefDataFromLocalStorage('user', companyOfficeId);\r\n\r\n if (!users) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/companyoffices/${companyOfficeId}/users`\r\n );\r\n users = (await response.json()).map(({ securityUsersId, fullName }) => ({\r\n id: securityUsersId,\r\n label: fullName\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('user', response, users, companyOfficeId);\r\n }\r\n\r\n return users;\r\n } else {\r\n return Promise.resolve([\r\n {\r\n 'id': undefined,\r\n 'label': 'lookups:pleaseSelectOffice'\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async groups(): Promise {\r\n let groups = this.getRefDataFromLocalStorage('group');\r\n\r\n if (!groups) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/admin/user/groups`\r\n );\r\n groups = (await response.json()).map(({ id, name }) => ({\r\n id: id,\r\n label: name\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('group', response, groups);\r\n }\r\n\r\n return groups;\r\n }\r\n\r\n\r\n async financialAdviserTypes(): Promise {\r\n let lst = this.getRefDataFromLocalStorage('financialAdviserType');\r\n\r\n if (true || !lst) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/FinancialAdviserType`\r\n );\r\n const jsn=await response.json();\r\n lst = (jsn).map(({ id, description }) => ({\r\n id: id,\r\n label: description\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('financialAdviserType', response, lst);\r\n }\r\n\r\n return lst;\r\n }\r\n\r\n async branchLocations(): Promise {\r\n return await this.adminRefData('companyoffice','locations');\r\n }\r\n\r\n async fsgType(): Promise {\r\n return await this.getValues('','FinancialServicesGuideType');\r\n }\r\n\r\n async adminRefData(controller:string, method:string): Promise {\r\n const results= await this.getValues(controller,method, 'admin')\r\n return results;\r\n }\r\n\r\n async advisers(): Promise {\r\n let advisers = this.getRefDataFromLocalStorage('advisers');\r\n\r\n if (!advisers) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/advisers`);\r\n advisers = (await response.json()).map(c => {\r\n return {\r\n id: c.adviserId,\r\n code: c.companyOfficeCode,\r\n label: `${c.companyOfficeCode} - ${c.companyOfficeName}`,\r\n active: c.active,\r\n adviserCode: c.adviserCode,\r\n adviserName: c.adviserName,\r\n companyOfficeId: c.companyOfficeId\r\n };\r\n }).sort((a, b) => a.adviserName.toLowerCase().localeCompare(b.adviserName.toLowerCase()));\r\n this.saveRefDataToLocalStorage('advisers', response, advisers);\r\n }\r\n\r\n return advisers;\r\n }\r\n\r\n async getValues(controller:string, method='', api='refdata'): Promise {\r\n // if (method==='') {throw('getValues called with blank method');}\r\n let items = this.getRefDataFromLocalStorage(method);\r\n if (!items) {\r\n const url=controller==='' ? `${environment.apiHost}/api/${api}/${method}`: `${environment.apiHost}/api/${api}/${controller}/${method}`;\r\n //console.log(`getValues ${url}`)\r\n const response = await this.http.fetch(\r\n url\r\n );\r\n const results = await response.json();\r\n items = results.map(({ id, description }) => ({\r\n id: id,\r\n label: description\r\n }));\r\n this.saveRefDataToLocalStorage(method, response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async riskCriteria(): Promise {\r\n let riskCriteriaTypes = this.getRefDataFromLocalStorage('riskCriteria');\r\n\r\n if (!riskCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.risk;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskCriteriaTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('riskCriteria', response, riskCriteriaTypes);\r\n }\r\n\r\n return riskCriteriaTypes;\r\n }\r\n\r\n async riskGroupedByRiskCriteria(): Promise {\r\n let riskCriteriaTypes = this.getRefDataFromLocalStorage('riskGroupedByRiskCriteria');\r\n\r\n if (!riskCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.riskGroupedByRisk;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskCriteriaTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('riskGroupedByRiskCriteria', response, riskCriteriaTypes);\r\n }\r\n\r\n return riskCriteriaTypes;\r\n }\r\n\r\n async riskClassTypeCriteria(): Promise {\r\n let riskClassCriteriaTypes = this.getRefDataFromLocalStorage('riskClassTypeCriteria');\r\n\r\n if (!riskClassCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.riskClassType;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskClassCriteriaTypes = ((await response.json() as ApiRefDataResponse[])).sort((a, b) => a.id - b.id);\r\n\r\n this.saveRefDataToLocalStorage('riskClassTypeCriteria', response, riskClassCriteriaTypes);\r\n }\r\n\r\n return riskClassCriteriaTypes;\r\n }\r\n\r\n async premiumFunderTypes(): Promise {\r\n let premiumFunderTypes = this.getRefDataFromLocalStorage('premiumFunderTypes');\r\n\r\n if (!premiumFunderTypes) {\r\n const endpoint = environment.reportEndpoints.reports.premiumFunder;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n premiumFunderTypes = (await response.json()).map((x) => ({id: x.id, label: x.code})).sort((a, b) => a.label.toLowerCase().localeCompare(b.label.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('premiumFunderTypes', response, premiumFunderTypes);\r\n }\r\n\r\n return premiumFunderTypes;\r\n }\r\n\r\n async reportPremiumFunder(): Promise {\r\n let reportPremiumFunders = this.getRefDataFromLocalStorage('reportPremiumFunder');\r\n\r\n if (!reportPremiumFunders) {\r\n const endpoint = environment.reportEndpoints.reports.premiumFunder;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportPremiumFunders = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('reportPremiumFunder', response, reportPremiumFunders);\r\n }\r\n\r\n return reportPremiumFunders;\r\n }\r\n\r\n async underwriterCriteria(): Promise {\r\n let reportUnderwriters = this.getRefDataFromLocalStorage('reportUnderwriter');\r\n\r\n if (!reportUnderwriters) {\r\n const endpoint = environment.reportEndpoints.reports.underwriter;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportUnderwriters = orderBy((await response.json() as ApiRefDataResponse[]), ['code'], ['asc']);\r\n\r\n this.saveRefDataToLocalStorage('reportUnderwriter', response, reportUnderwriters);\r\n }\r\n\r\n return reportUnderwriters;\r\n }\r\n\r\n async assignedTo(): Promise {\r\n let assignedTo = this.getRefDataFromLocalStorage('assignedTo');\r\n\r\n if (!assignedTo) {\r\n const endpoint = environment.reportEndpoints.reports.assignedTo;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n assignedTo = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('assignedTo', response, assignedTo);\r\n }\r\n\r\n return assignedTo;\r\n }\r\n\r\n async allUsers(): Promise {\r\n let allUsers = this.getRefDataFromLocalStorage('allUsers');\r\n\r\n if (!allUsers) {\r\n const endpoint = environment.reportEndpoints.reports.allUsers;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n allUsers = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('allUsers', response, allUsers);\r\n }\r\n\r\n return allUsers;\r\n }\r\n\r\n async reportingType(): Promise {\r\n let reportingTypes = this.getRefDataFromLocalStorage('reportingType');\r\n\r\n if (!reportingTypes) {\r\n const endpoint = environment.reportEndpoints.reports.reportingType;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportingTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('reportingTypes', response, reportingTypes);\r\n }\r\n\r\n return reportingTypes;\r\n }\r\n\r\n async occupationCriteria(): Promise {\r\n let occupationTypes = this.getRefDataFromLocalStorage('occupationCriteria');\r\n\r\n if (!occupationTypes) {\r\n const endpoint = environment.reportEndpoints.reports.occupation;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n occupationTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('occupationCriteria', response, occupationTypes);\r\n }\r\n\r\n return occupationTypes;\r\n }\r\n\r\n async referralCriteria(): Promise {\r\n let referralTypes = this.getRefDataFromLocalStorage('referralCriteria');\r\n\r\n if (!referralTypes) {\r\n const endpoint = environment.reportEndpoints.reports.referral;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n referralTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('referralCriteria', response, referralTypes);\r\n }\r\n\r\n return referralTypes;\r\n }\r\n\r\n async insurerCriteria(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerCriteria');\r\n\r\n if (!insurerTypes) {\r\n const endpoint = environment.reportEndpoints.reports.insurer;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n insurerTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n insurerTypes.sort((a, b) => a.code.toLowerCase().localeCompare(b.code.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('insurerCriteria', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n async insurerCategoryCriteria(): Promise {\r\n let insurerCategoryTypes = this.getRefDataFromLocalStorage('insurerCategoryCriteria');\r\n\r\n if (!insurerCategoryTypes) {\r\n const endpoint = environment.reportEndpoints.reports.insurerCategory;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n insurerCategoryTypes = ((await response.json() as ApiRefDataResponse[])).sort((a, b) => a.id - b.id);\r\n\r\n this.saveRefDataToLocalStorage('insurerCategoryCriteria', response, insurerCategoryTypes);\r\n }\r\n\r\n return insurerCategoryTypes;\r\n }\r\n\r\n async branch(): Promise {\r\n let branches = this.getRefDataFromLocalStorage('branch');\r\n\r\n if (!branches) {\r\n const endpoint = environment.reportEndpoints.reports.branch;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n branches = (await response.json() as ApiRefDataResponse[]);\r\n\r\n branches.sort((a, b) => a.code.toLowerCase().localeCompare(b.code.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('branch', response, branches);\r\n }\r\n\r\n return branches;\r\n }\r\n\r\n async transtype(): Promise {\r\n let transTypes = this.getRefDataFromLocalStorage('transtype');\r\n\r\n if (!transTypes) {\r\n const endpoint = environment.reportEndpoints.reports.transtype;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n transTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('transtype', response, transTypes);\r\n }\r\n\r\n return transTypes;\r\n }\r\n\r\n async yesNo(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:yes'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:no'\r\n }\r\n ]);\r\n }\r\n\r\n async searchType(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 'equals',\r\n 'label': 'lookups:equals'\r\n },\r\n {\r\n 'id': 'startsWith',\r\n 'label': 'lookups:startsWith',\r\n }, {\r\n 'id': 'endsWith',\r\n 'label': 'lookups:endsWith',\r\n },\r\n {\r\n 'id': 'like',\r\n 'label': 'lookups:like'\r\n }\r\n ]);\r\n }\r\n\r\n async activeInactive(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:active'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:inactive'\r\n }\r\n ]);\r\n }\r\n\r\n async partyTypes(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 1,\r\n 'label': 'Person'\r\n },\r\n {\r\n 'id': 2,\r\n 'label': 'Organisation'\r\n }\r\n ]);\r\n }\r\n\r\n async completeIncomplete(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:complete'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:incomplete'\r\n }\r\n ]);\r\n }\r\n\r\n async quarter(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 1,\r\n 'label': 'Q1'\r\n },\r\n {\r\n 'id': 2,\r\n 'label': 'Q2'\r\n },\r\n {\r\n 'id': 3,\r\n 'label': 'Q3'\r\n },\r\n {\r\n 'id': 4,\r\n 'label': 'Q4'\r\n }\r\n ]);\r\n }\r\n\r\n async month(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 'Jan',\r\n 'label': 'Jan'\r\n },\r\n {\r\n 'id': 'Feb',\r\n 'label': 'Feb'\r\n },\r\n {\r\n 'id': 'Mar',\r\n 'label': 'Mar'\r\n },\r\n {\r\n 'id': 'Apr',\r\n 'label': 'Apr'\r\n },\r\n {\r\n 'id': 'May',\r\n 'label': 'May'\r\n },\r\n {\r\n 'id': 'Jun',\r\n 'label': 'Jun'\r\n },\r\n {\r\n 'id': 'Jul',\r\n 'label': 'Jul'\r\n },\r\n {\r\n 'id': 'Aug',\r\n 'label': 'Aug'\r\n },\r\n {\r\n 'id': 'Sep',\r\n 'label': 'Sep'\r\n },\r\n {\r\n 'id': 'Oct',\r\n 'label': 'Oct'\r\n },\r\n {\r\n 'id': 'Nov',\r\n 'label': 'Nov'\r\n },\r\n {\r\n 'id': 'Dec',\r\n 'label': 'Dec'\r\n }\r\n ]);\r\n }\r\n\r\n refDataToFieldValueDefinition({ id, description }: { id: number, description: string }) {\r\n return {\r\n id,\r\n label: description\r\n };\r\n }\r\n\r\n buildLocalStorageKey(...parts) {\r\n return `${LOCAL_STORAGE_KEY_PREFIX}_${parts.join('_')}`;\r\n }\r\n\r\n getExpiry(response: Response) {\r\n return response.headers.get(EXPIRY_HEADER);\r\n }\r\n\r\n saveRefDataToLocalStorage(type: string, response: Response, data: any, ...params: any[]) {\r\n const localStorageKey = this.buildLocalStorageKey(type, ...params);\r\n\r\n const expiry = response.headers.get(EXPIRY_HEADER);\r\n\r\n this.storage.saveToLocalStorage(localStorageKey, { expiry, data });\r\n }\r\n\r\n getRefDataFromLocalStorage(type: string, ...params: any[]) {\r\n const localStorageKey = this.buildLocalStorageKey(type, ...params);\r\n\r\n try {\r\n const localStorageValue = this.storage.getFromLocalStorage(localStorageKey);\r\n\r\n if (localStorageValue) {\r\n const parsedData: { expiry: Date, data: any } = localStorageValue;\r\n\r\n if (parsedData.expiry) {\r\n if (new Date().getTime() < new Date(parsedData.expiry).getTime()) {\r\n return parsedData.data;\r\n } else {\r\n localStorage.removeItem(localStorageKey);\r\n }\r\n }\r\n }\r\n return null;\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n}\r\n"],"names":["EXPIRY_HEADER","LookupDataService","http","storage","this","prototype","acceptsElectronicDisclosureDocuments","Promise","resolve","id","label","acceptsMarketingMail","association","reportCodes","getRefDataFromLocalStorage","fetch","concat","environment__WEBPACK_IMPORTED_MODULE_0__","c","apiHost","response","_a","sent","json","saveRefDataToLocalStorage","glPeriodTypes","map","refDataToFieldValueDefinition","consentClientDisplayText","status","consentWizardDisplayText","consentTypes","filter","t","activeFlag","e","description","disabled","userSelectableFlag","consentVerbalScriptTextByCompanyOffice","transferProcessStatusTypes","x","transferProcessStatusId","transferProcessStatus","webFormEditAction","webFormStatusActions","webFormStatusActionId","webFormStatusAction","WebFormStatus","webFormTypes","webFormRiskClassTypes","useOnWebFormsFlag","riskClassTypeId","displayName","insurerOfficesServiceRisks","companyOfficeId","riskByClassIds","rbc","join","insurerProcessingTypeId","insurerId","insurerOfficeId","insurerOfficeCode","insurerOfficeName","captureInsurerOccupationFlag","webFormRisksByRiskClassTypes","_b","lodash_orderBy__WEBPACK_IMPORTED_MODULE_4___default","apply","homepageHelpdesk","homepageUrls","homePageUrlId","url","glPaymentStatusTypes","glPaymentPartyTypes","settleAllCreditTypes","glSettlementTypes","insurerWorkfileTypes","glWorkfileStatusTypes","endpoint","refData","uri","divisionType","divisionTypes","glBatchStatusTypes","knowYourClientTypes","vulnerabilityTypes","vulnerableClientTypes","vulnerableClientTypeId","vulnerableClientType","synopsis","webFormStatus","webFormStatusTypes","soaTypes","premiumFunderStatusActionTypes","premiumFunderStatusActionId","premumFunderStatus","premiumFunderStatusAction","redPlanetStatusTypes","redPlanetStatusId","standardWordingTypes","additionalPageTemplateCategoryTypes","redPlanetInvoiceNumberFormatTypes","financialServicesGuideTypes","insurerTypes","insurerCode","insurerName","paysOverrider","paysOverride","insurerOfficeTypes","insurerOffices","groupTypes","securityGroupId","name","partyInstanceTypes","apraClassTypes","schemeTypesByRiskClassTypeId","redPlanetRiskTypesByPremiumFunderId","premiumFunderId","redPlanetRiskId","redPlanetRiskCode","redPlanetRiskName","redPlanetSubStatusTypesByPremiumFunderId","redPlanetSubStatusId","redPlanetStatus","redPlanetSubStatus","templateTypes","templateCategoryTypes","htmlTemplateTypes","PlTermFromTypes","mailSortCodeTypes","stateTypes","stampDutyRegionTypes","fslRegionTypes","messagePriorityTypes","messageSourceTypes","plTermTypes","electronicBankingFileTypes","socialMediaTypes","branchLocationTypes","branchTypes","underwriterTypes","UnderwriterTypes","bankBranchTypes","BankBranchTypes","claimsPayingRatingStructureTypes","ClaimsPayingRatingStructureTypes","claimsPayingRatingSourceTypes","ClaimsPayingRatingSourceTypes","referralTypes","adviserTypes","authorisationReasons","titleTypes","actionTypes","referralCalculationMethods","bankAccountTypes","taxStatusTypes","settlementTypes","insurerCategoryTypes","paymentOutType","paymentOutTypeAll","paymentOutTypeUseOnSettlementRequest","useOnSettlementRequest","activityTypes","a","entityDocumentActivityTypeId","activityType","taskCategoryTypes","taskPriorityTypes","userDetail","applicationHomeEndpoints","journalType","journalTypes","salesStatusType","salesStatusTypes","salesRatingType","salesRatingTypes","fieldTypes","fieldType","partyInstanceId","localTypes","typeIdKey_1","keyPrefix","typeKey_1","mandatoryKey_1","obj","mandatory","adviser","advisers","adviserId","adviserCode","adviserName","code","parseInt","sort","b","undefined","insurerUnderwriters","insurerId_1","validUnderwriterProcessTypeIds","underwriters","ok","insurerProcessType","insurerProcessTypes","insurerType","insurerGroup","insurerGroups","riskGroupType","riskGroupTypes","paymentType","activeOnly","localStorageKey","paymentTypes","businessEntityType","businessEntityTypes","quoteStatusType","quoteStatusTypes","paymentStatus","paymentStatuses","anzsicType","anzsicTypes","riskClassType","riskClassTypes","activeRiskClassTypes","risksByRiskClassType","riskByClassId","riskCode","riskName","riskByClassTypes","clientCategory","clientCategories","clientDisclosureType","clientDisclosureTypes","clientRole","clientRoles","clientType","clientTypes","companyOffice","companyOffices","companyOfficeCode","companyOfficeName","countryCode","countries","countryName","countryTypes","countryId","distributionType","distributionTypes","financialServicesGuideType","introductionType","introductionTypes","noteType","noteTypes","declineType","declineTypes","proposalStatus","proposalStatuses","systemParameters","verbalPrivacyStatement","verbalPrivacy","verbalFsgStatement","verbalFsg","verbalFsgStatementHtml","lmiBiCalculatorLink","calculatorLink","lmiRiskCoachLink","riskCoachLink","lmiPolicyComparisonLink","policyComparisonLink","apiEndpoints","endpoints","entityActions","entityReportingTypes","premiumFunderStatusTypes","premiumFunderStatusActions","premiumFunders","includeInactive","surchargePayees","allowableDocumentTypes","includes","allowableDocumentTypesAll","asicExemptionType","asicExemptionTypes","aTypicalRiskClass","aTypicalRiskClasses","customisedReason","customisedReasons","criminalRecordsStatement","criminalRecords","referral","referrals","referralId","referralCode","referralName","claimStatus","claimTypes","claimType","claimEventTypes","claimEventId","claimEvent","claimCategory","claimCategories","claimStatusActions","items","licenceClasses","claimNoteType","claimPaymentType","get","refType","vals","users","securityUsersId","fullName","groups","financialAdviserTypes","lst","jsn","branchLocations","adminRefData","fsgType","getValues","controller","method","active","toLowerCase","localeCompare","controller_1","api","results","riskCriteria","riskCriteriaTypes","reportEndpoints","reports","risk","riskGroupedByRiskCriteria","riskGroupedByRisk","riskClassTypeCriteria","riskClassCriteriaTypes","premiumFunderTypes","premiumFunder","reportPremiumFunder","reportPremiumFunders","underwriterCriteria","reportUnderwriters","underwriter","assignedTo","allUsers","reportingType","reportingTypes","occupationCriteria","occupationTypes","occupation","referralCriteria","insurerCriteria","insurer","insurerCategoryCriteria","insurerCategory","branch","branches","transtype","transTypes","yesNo","searchType","activeInactive","partyTypes","completeIncomplete","quarter","month","buildLocalStorageKey","parts","_i","arguments","length","getExpiry","headers","type","data","params","__spreadArray","__read","expiry","saveToLocalStorage","localStorageValue","getFromLocalStorage","parsedData","Date","getTime","localStorage","removeItem","__decorate","aurelia_framework__WEBPACK_IMPORTED_MODULE_2__","autoinject","aurelia_fetch_client__WEBPACK_IMPORTED_MODULE_1__","Qq","Object","_utilities_storage_helper__WEBPACK_IMPORTED_MODULE_3__","n"],"sourceRoot":""}