{"version":3,"file":"app-0317b5b5.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(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('consentTypes', response, consentTypes);\r\n }\r\n return consentTypes;\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()).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()).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()).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()).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 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\r\n // Some environments return an empty body for this endpoint.\r\n // Avoid throwing during route activation when JSON is absent.\r\n if (response.status === 204) {\r\n userDetail = null;\r\n } else {\r\n try {\r\n userDetail = await response.json();\r\n } catch {\r\n userDetail = null;\r\n }\r\n }\r\n\r\n if (userDetail) {\r\n this.saveRefDataToLocalStorage('userDetail', response, userDetail);\r\n }\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":["LOCAL_STORAGE_KEY_PREFIX","EXPIRY_HEADER","http","storage","acceptsElectronicDisclosureDocuments","Promise","resolve","acceptsMarketingMail","association","reportCodes","this","getRefDataFromLocalStorage","fetch","response","json","saveRefDataToLocalStorage","glPeriodTypes","map","refDataToFieldValueDefinition","consentClientDisplayText","status","consentWizardDisplayText","consentTypes","filter","t","activeFlag","transferProcessStatusTypes","x","id","transferProcessStatusId","label","transferProcessStatus","webFormEditAction","description","webFormStatusActions","webFormStatusActionId","webFormStatusAction","WebFormStatus","webFormTypes","webFormRiskClassTypes","useOnWebFormsFlag","riskClassTypeId","displayName","insurerOfficesServiceRisks","companyOfficeId","riskByClassIds","rbc","join","insurerProcessingTypeId","insurerId","insurerOfficeId","insurerOfficeCode","insurerOfficeName","captureInsurerOccupationFlag","webFormRisksByRiskClassTypes","homepageHelpdesk","homepageUrls","homePageUrlId","url","glPaymentStatusTypes","glPaymentPartyTypes","settleAllCreditTypes","glSettlementTypes","insurerWorkfileTypes","glWorkfileStatusTypes","endpoint","uri","divisionType","divisionTypes","glBatchStatusTypes","knowYourClientTypes","vulnerabilityTypes","vulnerableClientTypeId","vulnerableClientType","synopsis","webFormStatus","webFormStatusTypes","soaTypes","premiumFunderStatusActionTypes","premiumFunderStatusActionId","premumFunderStatus","premiumFunderStatusAction","redPlanetStatusTypes","redPlanetStatusId","standardWordingTypes","additionalPageTemplateCategoryTypes","redPlanetInvoiceNumberFormatTypes","financialServicesGuideTypes","insurerTypes","insurerCode","insurerName","paysOverrider","paysOverride","insurerOfficeTypes","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","referralTypes","adviserTypes","authorisationReasons","titleTypes","actionTypes","referralCalculationMethods","bankAccountTypes","taxStatusTypes","settlementTypes","insurerCategoryTypes","paymentOutType","paymentOutTypeAll","paymentOutTypeUseOnSettlementRequest","useOnSettlementRequest","activityTypes","a","entityDocumentActivityTypeId","activityType","taskCategoryTypes","taskPriorityTypes","userDetail","journalType","journalTypes","salesStatusType","salesStatusTypes","salesRatingType","salesRatingTypes","fieldTypes","fieldType","partyInstanceId","localTypes","keyPrefix","obj","mandatory","adviser","advisers","adviserId","adviserCode","adviserName","code","parseInt","sort","b","undefined","insurerUnderwriters","validUnderwriterProcessTypeIds","underwriters","ok","insurerProcessType","insurerProcessTypes","insurerType","insurerGroup","riskGroupType","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","c","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","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","groups","financialAdviserTypes","lst","jsn","branchLocations","adminRefData","fsgType","getValues","controller","method","active","toLowerCase","localeCompare","api","results","riskCriteria","riskCriteriaTypes","riskGroupedByRiskCriteria","riskClassTypeCriteria","riskClassCriteriaTypes","premiumFunderTypes","reportPremiumFunder","reportPremiumFunders","underwriterCriteria","reportUnderwriters","assignedTo","allUsers","reportingType","reportingTypes","occupationCriteria","occupationTypes","referralCriteria","insurerCriteria","insurerCategoryCriteria","branch","branches","transtype","transTypes","yesNo","searchType","activeInactive","partyTypes","completeIncomplete","quarter","month","buildLocalStorageKey","parts","getExpiry","headers","type","data","params","expiry","saveToLocalStorage","localStorageValue","getFromLocalStorage","parsedData","Date","getTime","localStorage","removeItem","e","autoinject","LookupDataService"],"sourceRoot":""}