{"version":3,"file":"app-b3d7f9d6.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/resources/services/ia-toast-service.ts","webpack://iadviser/./src/resources/services/log-service.ts","webpack://iadviser/./src/resources/services/lookup-data.ts","webpack://iadviser/./src/resources/services/token-service.ts","webpack://iadviser/./src/resources/startup/console-appender.ts","webpack://iadviser/./src/resources/startup/i18tn-validation.ts","webpack://iadviser/./src/resources/tab-scroll.ts","webpack://iadviser/./src/resources/timer.ts"],"sourcesContent":["import { autoinject } from 'aurelia-dependency-injection';\r\nimport izitoast, { IziToastSettings, IziToastProgress } from 'izitoast';\r\nimport '!style-loader!css-loader!izitoast/dist/css/iziToast.css';\r\nimport '!style-loader!css-loader!styles/ia-toast.css';\r\nimport { computedFrom } from 'aurelia-binding';\r\nimport { TaskQueue } from 'aurelia-framework';\r\n\r\n/**\r\n * `iaAnyware` toast messenger service for global/component user messages\r\n *\r\n * Message types include success, error, warning, info, progress and question\r\n *\r\n * @see {@link IaToast} interface for available functionality (methods and options)\r\n * @see {@link router-layouts/client-nav/components.ClientDetails ClientDetails} component for an example usage\r\n */\r\n@autoinject()\r\nexport class IaToastService implements IaToast {\r\n private defaultOptions: IaToastOptions = {\r\n class: 'ia-toast',\r\n position: 'bottomRight',\r\n theme: 'light',\r\n layout: 1,\r\n title: '',\r\n titleColor: '#FFFFFF',\r\n messageColor: '#FFFFFF',\r\n iconColor: '#FFFFFF',\r\n backgroundColor: '#09A47A',\r\n close: true,\r\n closeOnEscape: false,\r\n closeOnClick: false,\r\n timeout: 3000,\r\n overlay: false,\r\n overlayClose: false,\r\n overlayColor: 'rgba(255,255,255,0.24)',\r\n transitionIn: 'fadeInUp',\r\n transitionOut: 'fadeOutDown',\r\n animateInside: false,\r\n progressBar: true,\r\n image: '',\r\n imageWidth: 50,\r\n maxWidth: null,\r\n displayMode: 0,\r\n drag: false,\r\n };\r\n\r\n private loader: IaToastMessage;\r\n private loaderOpen = false;\r\n\r\n constructor(private taskQueue: TaskQueue) {\r\n if (!izitoast)\r\n throw new Error('IziToast: Sorry but it seems the IziToast plugin is not available for the IaToastService!');\r\n izitoast.settings(this.defaultOptions);\r\n if (this.loader && this.loader.overrideOptions) return;\r\n this.bootstrapLoader();\r\n }\r\n\r\n setDefaultOptions(options: IaToastOptions): void {\r\n this.defaultOptions = { ...this.defaultOptions, ...options };\r\n izitoast.settings(this.defaultOptions);\r\n }\r\n\r\n getDefaultOptions(): IaToastOptions {\r\n return this.defaultOptions;\r\n }\r\n\r\n destroyAllToasts(): void {\r\n izitoast.destroy();\r\n }\r\n\r\n @computedFrom('loaderOpen')\r\n get isLoaderOpen() {\r\n return this.loaderOpen;\r\n }\r\n\r\n show(toast: IaToastMessage, toastMessageIsRequired = true): boolean | void {\r\n return izitoast.show(this.mergeToastSettings(toast, toastMessageIsRequired));\r\n }\r\n\r\n hide(toastRef: string | HTMLDivElement, toast?: IaToastMessage, closedBy?: string): void {\r\n let toastElement: HTMLDivElement;\r\n\r\n if (typeof toastRef === 'string' || toastRef instanceof String) {\r\n toastElement = document.querySelector(toastRef.toString());\r\n } else {\r\n toastElement = toastRef;\r\n }\r\n\r\n if (!toastElement) return;\r\n izitoast.hide(this.mergeToastSettings(toast, false), toastElement, closedBy);\r\n }\r\n\r\n public info(toast: IaToastMessage): void {\r\n toast.overrideOptions.timeout = false;\r\n toast.overrideOptions.layout = 2;\r\n\r\n izitoast.info(this.mergeToastSettings(toast));\r\n }\r\n\r\n progress(toastRef: HTMLDivElement, toast?: IaToastMessage, callback?: () => void): IaToastProgress {\r\n return izitoast.progress(this.mergeToastSettings(toast, false), toastRef, callback);\r\n }\r\n\r\n success(toast: IaToastMessage): void {\r\n toast.overrideOptions.layout = 2;\r\n\r\n izitoast.success(this.mergeToastSettings(toast));\r\n }\r\n\r\n warning(toast: IaToastMessage): void {\r\n toast.overrideOptions.timeout = false;\r\n toast.overrideOptions.layout = 2;\r\n\r\n izitoast.warning(this.mergeToastSettings(toast));\r\n }\r\n\r\n error(toast: IaToastMessage): void {\r\n toast.overrideOptions.timeout = false;\r\n toast.overrideOptions.layout = 2;\r\n\r\n izitoast.error(this.mergeToastSettings(toast));\r\n\r\n this.restoreDefaultSettings(toast);\r\n }\r\n\r\n question(toast: IaToastMessage): void {\r\n izitoast.question(this.mergeToastSettings(toast));\r\n }\r\n\r\n getLoaderPath(loader: Loader) {\r\n return require(`img/loaders/${loader}`);\r\n }\r\n\r\n showLoader(loader?: Loader, loaderText = '') {\r\n this.taskQueue.queueMicroTask(() => {\r\n if (this.loaderOpen) return;\r\n\r\n if (loader) {\r\n this.loader.overrideOptions.image = this.getLoaderPath(loader);\r\n }\r\n this.loader.overrideOptions.$loaderText = loaderText;\r\n\r\n this.show(this.loader, false);\r\n this.loaderOpen = true;\r\n });\r\n }\r\n\r\n hideLoader(showStatusIcon = false, statusSuccess = true, statusIconTimeout = 1000) {\r\n this.taskQueue.queueMicroTask(() => {\r\n if (!this.loaderOpen) return;\r\n\r\n this.hide(`.${this.loader.overrideOptions.class}`);\r\n this.loaderOpen = false;\r\n\r\n if (showStatusIcon) {\r\n this.showStatusIcon(statusSuccess, statusIconTimeout);\r\n }\r\n });\r\n }\r\n\r\n private showStatusIcon(statusSuccess: boolean, statusIconTimeout: number) {\r\n const existingImage = this.loader.overrideOptions.image;\r\n const existingTransIn = this.loader.overrideOptions.transitionIn;\r\n const existingTimeout = this.loader.overrideOptions.timeout;\r\n const existingOnClosed = this.loader.overrideOptions.onClosed;\r\n\r\n this.loader.overrideOptions.timeout = statusIconTimeout;\r\n this.loader.overrideOptions.transitionIn = statusSuccess ? 'bounceInUp' : 'bounceInDown';\r\n\r\n this.loader.overrideOptions.onClosed = () => {\r\n this.hide(`.${this.loader.overrideOptions.class}`);\r\n this.loader.overrideOptions.image = existingImage;\r\n this.loader.overrideOptions.transitionIn = existingTransIn;\r\n this.loader.overrideOptions.timeout = existingTimeout;\r\n this.loader.overrideOptions.onClosed = existingOnClosed;\r\n };\r\n\r\n this.showLoader(statusSuccess ? Loader.GreenTick : Loader.RedCross);\r\n }\r\n\r\n private bootstrapLoader(loader = Loader.TailSpin) {\r\n this.loader = new IaToastMessage();\r\n\r\n this.loader.overrideOptions = {\r\n id: 'iaToastLoader',\r\n overlay: true,\r\n overlayClose: false,\r\n overlayColor: 'rgba(255,255,255,0.84)',\r\n close: false,\r\n class: 'ia-loader-toast',\r\n timeout: false,\r\n closeOnClick: false,\r\n closeOnEscape: false,\r\n position: 'center',\r\n transitionIn: 'fadeIn',\r\n transitionOut: 'fadeOut',\r\n animateInside: false,\r\n drag: false,\r\n backgroundColor: 'transparent',\r\n progressBar: false,\r\n image: this.getLoaderPath(loader),\r\n imageWidth: 50,\r\n maxWidth: 50,\r\n displayMode: 1,\r\n $loaderText: '',\r\n $loaderTextClass: 'ia-loader-text',\r\n };\r\n\r\n this.loader.overrideOptions.onOpening = () => {\r\n this.addLoaderText();\r\n this.loaderOpen = true;\r\n };\r\n\r\n this.loader.overrideOptions.onClosing = () => {\r\n this.removeLoaderText();\r\n this.loaderOpen = false;\r\n };\r\n }\r\n\r\n private addLoaderText() {\r\n if (!this.loader.overrideOptions.$loaderText) return;\r\n\r\n const loaderText = document.createElement('h3');\r\n loaderText.classList.add(this.loader.overrideOptions.$loaderTextClass);\r\n\r\n loaderText.appendChild(document.createTextNode(this.loader.overrideOptions.$loaderText));\r\n document.querySelector(`.${this.loader.overrideOptions.class}`)?.parentNode?.appendChild(loaderText);\r\n }\r\n\r\n private removeLoaderText() {\r\n if (!this.loader.overrideOptions.$loaderText) return;\r\n\r\n document.querySelector(`.${this.loader.overrideOptions.$loaderTextClass}`)?.remove();\r\n this.loader.overrideOptions.$loaderText = '';\r\n }\r\n\r\n private restoreDefaultSettings(toast: IaToastMessage) {\r\n toast.overrideOptions = { ...this.defaultOptions };\r\n }\r\n\r\n private mergeToastSettings(toast: IaToastMessage, toastMessageIsRequired = true): IziToastSettings {\r\n if (toastMessageIsRequired && (!toast || !toast.message || !toast.message.length)) {\r\n throw new Error('IA Toast: Toast message cannot be empty if \"toastMessageIsRequired\" is true!');\r\n }\r\n return toast ? { ...toast.overrideOptions, ...{ message: toast.message || '', title: toast.title || '' } } : {};\r\n }\r\n}\r\n\r\n/**\r\n * From `T` pick all properties except the set of properties `K`\r\n */\r\nexport type Omit = Pick>;\r\n/**\r\n * Various toast options available to change the toast behaviour\r\n */\r\nexport type IaToastOptions = Omit;\r\n/**\r\n * Toast progress bar interface\r\n */\r\nexport type IaToastProgress = IziToastProgress;\r\n\r\n/**\r\n * Method parameters object for different types of toast messages\r\n */\r\nexport class IaToastMessage {\r\n constructor(\r\n /**\r\n * Toast message body - required except for `progress` and `hide`\r\n */\r\n public message?: string,\r\n /**\r\n * Toast message title (optional)\r\n */\r\n public title?: string,\r\n /**\r\n * Toast message override options (optional)\r\n */\r\n public overrideOptions: IaToastOptions & { $loaderText?: string; $loaderTextClass?: string } = {},\r\n ) {}\r\n}\r\n\r\n/**\r\n * iaAnyware toast messenger interface for various message types\r\n */\r\nexport interface IaToast {\r\n /**\r\n * Sets the default options object for all toast messages\r\n *\r\n * Merges the provided options with existing standard defaults\r\n *\r\n * @param options default option values\r\n */\r\n setDefaultOptions(options: IaToastOptions): void;\r\n /**\r\n * Gets the current default options object for all toast messages\r\n */\r\n getDefaultOptions(): IaToastOptions;\r\n /**\r\n * Destroys all toast messages\r\n */\r\n destroyAllToasts(): void;\r\n /**\r\n * Opens a generic toast message; returns false if toast cannot be opened\r\n */\r\n show(toast: IaToastMessage): void | boolean;\r\n /**\r\n * Closes the specific toast message identified by `toastRef`\r\n *\r\n * Toast parameter `IaToastMessage` is optional and defaults to `{}`\r\n *\r\n * Set new `hide` options by passing `IaToastMessage.overrideOptions`\r\n *\r\n * @param toastRef Toast html element or string selector to close\r\n * @param toast toast message params (optional); default = `{}`\r\n * @param closedBy Custom closed by meta information (optional)\r\n */\r\n hide(toastRef: HTMLDivElement | string, toast?: IaToastMessage, closedBy?: string): void;\r\n /**\r\n * Toast control progress bar time identified by `toastRef`\r\n *\r\n * Toast parameter `IaToastMessage` is optional and defaults to `{}`\r\n *\r\n * Set `progress` options by passing `IaToastMessage.overrideOptions`\r\n *\r\n * @param toastRef Toast html element\r\n * @param toast toast message params (optional); default = `{}`\r\n * @param callback handler triggered for `IaToast.progress(...)`\r\n */\r\n progress(toastRef: HTMLDivElement, toast?: IaToastMessage, callback?: () => void): IaToastProgress;\r\n /**\r\n * Shows an information toast message\r\n */\r\n info(toast: IaToastMessage): void;\r\n /**\r\n * Shows a success toast message\r\n */\r\n success(toast: IaToastMessage): void;\r\n /**\r\n * Shows a warning toast message\r\n */\r\n warning(toast: IaToastMessage): void;\r\n /**\r\n * Shows an error toast message\r\n *\r\n * Message remains open until user dismisses it\r\n */\r\n error(toast: IaToastMessage): void;\r\n /**\r\n * Shows a question toast message\r\n */\r\n question(toast: IaToastMessage): void;\r\n}\r\n\r\n/**\r\n * All available loading indicators\r\n */\r\nexport enum Loader {\r\n Audio = 'audio.svg',\r\n BallTriangle = 'ball-triangle.svg',\r\n Bars = 'bars.svg',\r\n Circles = 'circles.svg',\r\n Grid = 'grid.svg',\r\n Hearts = 'hearts.svg',\r\n Oval = 'oval.svg',\r\n Puff = 'puff.svg',\r\n Rings = 'rings.svg',\r\n SpinningCircles = 'spinning-circles.svg',\r\n TailSpin = 'tail-spin.svg',\r\n ThreeDots = 'three-dots.svg',\r\n GreenTick = 'green-tick.svg',\r\n RedCross = 'red-cross.svg',\r\n}\r\n","import { LogManager } from 'aurelia-framework';\r\n\r\nexport const log = LogManager.getLogger('iAdviser');\r\n","import { ApiRefDataResponse, EntityReportingType, PremiumFunderStatusAction, ApiEndpoints, EntityAction, PremiumFunder } 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 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 soaTypes(): Promise {\r\n let soaTypes = this.getRefDataFromLocalStorage('soaTypes');\r\n\r\n if (!soaTypes) {\r\n const endpoint = environment.refData.soaTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n soaTypes = (await response.json()).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('soaTypes', response, soaTypes);\r\n }\r\n\r\n return soaTypes;\r\n }\r\n\r\n async premiumFunderStatusActionTypes(): Promise {\r\n let premiumFunderStatusActionTypes = this.getRefDataFromLocalStorage('premiumFunderStatusActionTypes');\r\n\r\n if (!premiumFunderStatusActionTypes) {\r\n const endpoint = environment.refData.premiumFunderStatusActionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n premiumFunderStatusActionTypes = (await response.json()).map((x) => ({id: x.premiumFunderStatusActionId, label: `${x.premumFunderStatus} - ${x.premiumFunderStatusAction}` }));\r\n this.saveRefDataToLocalStorage('premiumFunderStatusActionTypes', response, premiumFunderStatusActionTypes);\r\n }\r\n\r\n return premiumFunderStatusActionTypes;\r\n }\r\n\r\n async redPlanetStatusTypes(): Promise {\r\n let redPlanetStatusTypes = this.getRefDataFromLocalStorage('redPlanetStatusTypes');\r\n\r\n if (!redPlanetStatusTypes) {\r\n const endpoint = environment.refData.redPlanetStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n redPlanetStatusTypes = (await response.json()).map((x) => ({id: x.redPlanetStatusId, label: x.status }));\r\n this.saveRefDataToLocalStorage('redPlanetStatusTypes', response, redPlanetStatusTypes);\r\n }\r\n\r\n return redPlanetStatusTypes;\r\n }\r\n\r\n async standardWordingTypes(): Promise {\r\n let standardWordingTypes = this.getRefDataFromLocalStorage('standardWordingTypes');\r\n\r\n if (!standardWordingTypes) {\r\n const endpoint = environment.refData.standardWordingTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n standardWordingTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('standardWordingTypes', response, standardWordingTypes);\r\n }\r\n\r\n return standardWordingTypes;\r\n }\r\n\r\n async additionalPageTemplateCategoryTypes(): Promise {\r\n let additionalPageTemplateCategoryTypes = this.getRefDataFromLocalStorage('additionalPageTemplateCategoryTypes');\r\n\r\n if (!additionalPageTemplateCategoryTypes) {\r\n const endpoint = environment.refData.additionalPageTemplateCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n additionalPageTemplateCategoryTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('additionalPageTemplateCategoryTypes', response, additionalPageTemplateCategoryTypes);\r\n }\r\n\r\n return additionalPageTemplateCategoryTypes;\r\n }\r\n\r\n async redPlanetInvoiceNumberFormatTypes(): Promise {\r\n let redPlanetInvoiceNumberFormatTypes = this.getRefDataFromLocalStorage('redPlanetInvoiceNumberFormatTypes');\r\n\r\n if (!redPlanetInvoiceNumberFormatTypes) {\r\n const endpoint = environment.refData.redPlanetInvoiceNumberFormatTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n redPlanetInvoiceNumberFormatTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('redPlanetInvoiceNumberFormatTypes', response, redPlanetInvoiceNumberFormatTypes);\r\n }\r\n\r\n return redPlanetInvoiceNumberFormatTypes;\r\n }\r\n\r\n async financialServicesGuideTypes(): Promise {\r\n let financialServicesGuideTypes = this.getRefDataFromLocalStorage('financialServicesGuideTypes');\r\n\r\n if (!financialServicesGuideTypes) {\r\n const endpoint = environment.refData.financialServicesGuideTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n financialServicesGuideTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('financialServicesGuideTypes', response, financialServicesGuideTypes);\r\n }\r\n\r\n return financialServicesGuideTypes;\r\n }\r\n\r\n async insurerTypes(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerTypes');\r\n\r\n if (!insurerTypes) {\r\n const endpoint = environment.refData.insurerTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n insurerTypes = (await response.json()).map((x) => ({id: x.insurerId, label: `${x.insurerCode} - ${x.insurerName}`, paysOverrider: x.paysOverride }));\r\n this.saveRefDataToLocalStorage('insurerTypes', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n async insurerOfficeTypes(insurerId): Promise {\r\n let insurerOfficeTypes = this.getRefDataFromLocalStorage('insurerOfficeTypes');\r\n\r\n if (!insurerOfficeTypes) {\r\n const endpoint = environment.refData.insurerOffices;\r\n const uri = endpoint.uri([insurerId]);\r\n const response = await this.http.fetch(uri);\r\n insurerOfficeTypes = (await response.json()).map((x) => ({id: x.insurerOfficeId, label: `${x.insurerOfficeCode} - ${x.insurerOfficeName}` }));\r\n this.saveRefDataToLocalStorage('insurerOfficeTypes', response, insurerOfficeTypes, [insurerId]);\r\n }\r\n\r\n return insurerOfficeTypes;\r\n }\r\n\r\n async groupTypes(): Promise {\r\n let groupTypes = this.getRefDataFromLocalStorage('groupTypes');\r\n\r\n if (!groupTypes) {\r\n const endpoint = environment.refData.groupTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n groupTypes = (await response.json()).map((x) => ({id: x.securityGroupId, label: x.name}));\r\n this.saveRefDataToLocalStorage('groupTypes', response, groupTypes);\r\n }\r\n\r\n return groupTypes;\r\n }\r\n\r\n async partyInstanceTypes(): Promise {\r\n let partyInstanceTypes = this.getRefDataFromLocalStorage('partyInstanceTypes');\r\n\r\n if (!partyInstanceTypes) {\r\n const endpoint = environment.refData.partyInstanceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n partyInstanceTypes = await response.json();\r\n this.saveRefDataToLocalStorage('partyInstanceTypes', response, partyInstanceTypes);\r\n }\r\n\r\n return partyInstanceTypes;\r\n }\r\n\r\n async apraClassTypes(): Promise {\r\n let apraClassTypes = this.getRefDataFromLocalStorage('apraClassTypes');\r\n\r\n if (!apraClassTypes) {\r\n const endpoint = environment.refData.apraClassTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n apraClassTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('apraClassTypes', response, apraClassTypes);\r\n }\r\n\r\n return apraClassTypes;\r\n }\r\n\r\n // No Caching added for scheme types - used in admin\r\n async schemeTypesByRiskClassTypeId(riskClassTypeId: number): Promise {\r\n const endpoint = environment.refData.schemeTypesByRiskClassTypeId;\r\n const uri = endpoint.uri([riskClassTypeId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n // No Caching added for red planet types - used in admin\r\n async redPlanetRiskTypesByPremiumFunderId(premiumFunderId: number): Promise {\r\n const endpoint = environment.refData.redPlanetRiskTypesByPremiumFunderId;\r\n const uri = endpoint.uri([premiumFunderId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.redPlanetRiskId, label: `${x.redPlanetRiskCode} - ${x.redPlanetRiskName}`}));\r\n }\r\n\r\n // No Caching added for red planet sub status types - used in admin\r\n async redPlanetSubStatusTypesByPremiumFunderId(premiumFunderId: number): Promise {\r\n const endpoint = environment.refData.redPlanetSubStatusTypesByPremiumFunderId;\r\n const uri = endpoint.uri([premiumFunderId]);\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.redPlanetSubStatusId, label: `${x.redPlanetStatus} - ${x.redPlanetSubStatus}`}));\r\n }\r\n\r\n // No Caching added for template types - used in admin\r\n async templateTypes(): Promise {\r\n const endpoint = environment.refData.templateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n // No Caching added for template categories - used in admin\r\n async templateCategoryTypes(): Promise {\r\n const endpoint = environment.refData.templateCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n // No Caching added for html template Types - used in admin\r\n async htmlTemplateTypes(): Promise {\r\n const endpoint = environment.refData.htmlTemplateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n }\r\n\r\n async PlTermFromTypes(): Promise {\r\n let PlTermFromTypes = this.getRefDataFromLocalStorage('PlTermFromTypes');\r\n\r\n if (!PlTermFromTypes) {\r\n const endpoint = environment.refData.PlTermFromTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n PlTermFromTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('PlTermFromTypes', response, PlTermFromTypes);\r\n }\r\n\r\n return PlTermFromTypes;\r\n }\r\n\r\n\r\n\r\n async mailSortCodeTypes(): Promise {\r\n let mailSortCodeTypes = this.getRefDataFromLocalStorage('mailSortCodeTypes');\r\n\r\n if (!mailSortCodeTypes) {\r\n const endpoint = environment.refData.mailSortCodeTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n mailSortCodeTypes = (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n this.saveRefDataToLocalStorage('mailSortCodeTypes', response, mailSortCodeTypes);\r\n }\r\n\r\n return mailSortCodeTypes;\r\n }\r\n\r\n async stateTypes(): Promise {\r\n let stateTypes = this.getRefDataFromLocalStorage('stateTypes');\r\n\r\n if (!stateTypes) {\r\n const endpoint = environment.refData.stateTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n stateTypes = (await response.json()).map((x) => ({id: x.id, label: x.name}));\r\n this.saveRefDataToLocalStorage('stateTypes', response, stateTypes);\r\n }\r\n\r\n return stateTypes;\r\n }\r\n\r\n async stampDutyRegionTypes(): Promise {\r\n let stampDutyRegionTypes = this.getRefDataFromLocalStorage('stampDutyRegionTypes');\r\n\r\n if (!stampDutyRegionTypes) {\r\n const endpoint = environment.refData.stampDutyRegionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n stampDutyRegionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('stampDutyRegionTypes', response, stampDutyRegionTypes);\r\n }\r\n return stampDutyRegionTypes;\r\n }\r\n\r\n async fslRegionTypes(): Promise {\r\n let fslRegionTypes = this.getRefDataFromLocalStorage('fslRegionTypes');\r\n\r\n if (!fslRegionTypes) {\r\n const endpoint = environment.refData.fslRegionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n fslRegionTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('fslRegionTypes', response, fslRegionTypes);\r\n }\r\n return fslRegionTypes;\r\n }\r\n\r\n async messagePriorityTypes(): Promise {\r\n let messagePriorityTypes = this.getRefDataFromLocalStorage('messagePriorityTypes');\r\n\r\n if (!messagePriorityTypes) {\r\n const endpoint = environment.refData.messagePriorityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n messagePriorityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('messagePriorityTypes', response, messagePriorityTypes);\r\n }\r\n return messagePriorityTypes;\r\n }\r\n\r\n async messageSourceTypes(): Promise {\r\n let messageSourceTypes = this.getRefDataFromLocalStorage('messageSourceTypes');\r\n\r\n if (!messageSourceTypes) {\r\n const endpoint = environment.refData.messageSourceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n messageSourceTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('messageSourceTypes', response, messageSourceTypes);\r\n }\r\n return messageSourceTypes;\r\n }\r\n\r\n async plTermTypes(): Promise {\r\n let plTermTypes = this.getRefDataFromLocalStorage('plTermTypes');\r\n\r\n if (!plTermTypes) {\r\n const endpoint = environment.refData.plTermTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n plTermTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('plTermTypes', response, plTermTypes);\r\n }\r\n return plTermTypes;\r\n }\r\n\r\n async electronicBankingFileTypes(): Promise {\r\n let electronicBankingFileTypes = this.getRefDataFromLocalStorage('electronicBankingFileTypes');\r\n\r\n if (!electronicBankingFileTypes) {\r\n const endpoint = environment.refData.electronicBankingFileTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n electronicBankingFileTypes = (await response.json()).filter((x) => x.id !=600000001).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('electronicBankingFileTypes', response, electronicBankingFileTypes);\r\n }\r\n return electronicBankingFileTypes;\r\n }\r\n\r\n async socialMediaTypes(): Promise {\r\n let socialMediaTypes = this.getRefDataFromLocalStorage('socialMediaTypes');\r\n\r\n if (!socialMediaTypes) {\r\n const endpoint = environment.refData.socialMediaTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n socialMediaTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('socialMediaTypes', response, socialMediaTypes);\r\n }\r\n return socialMediaTypes;\r\n }\r\n\r\n async branchLocationTypes(): Promise {\r\n let branchLocationTypes = this.getRefDataFromLocalStorage('branchLocationTypes');\r\n\r\n if (!branchLocationTypes) {\r\n const endpoint = environment.refData.branchLocationTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n branchLocationTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('branchLocationTypes', response, branchLocationTypes);\r\n }\r\n return branchLocationTypes;\r\n }\r\n\r\n async branchTypes(): Promise {\r\n let branchTypes = this.getRefDataFromLocalStorage('branchTypes');\r\n\r\n if (!branchTypes) {\r\n const endpoint = environment.refData.branchTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n branchTypes = (await response.json()).map(this.refDataToFieldValueDefinition).filter((x) => x.id != 1 && x.id != 2 );;\r\n this.saveRefDataToLocalStorage('branchTypes', response, branchTypes);\r\n }\r\n return branchTypes;\r\n }\r\n\r\n async underwriterTypes(): Promise {\r\n let UnderwriterTypes = this.getRefDataFromLocalStorage('UnderwriterTypes');\r\n\r\n if (!UnderwriterTypes) {\r\n const endpoint = environment.refData.underwriterTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n UnderwriterTypes = await response.json();\r\n this.saveRefDataToLocalStorage('UnderwriterTypes', response, UnderwriterTypes);\r\n }\r\n return UnderwriterTypes;\r\n }\r\n\r\n async bankBranchTypes(): Promise {\r\n let BankBranchTypes = this.getRefDataFromLocalStorage('BankBranchTypes');\r\n\r\n if (!BankBranchTypes) {\r\n const endpoint = environment.refData.BankBranchTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n BankBranchTypes = await response.json();\r\n this.saveRefDataToLocalStorage('BankBranchTypes', response, BankBranchTypes);\r\n }\r\n return BankBranchTypes;\r\n }\r\n\r\n async claimsPayingRatingStructureTypes(): Promise {\r\n let ClaimsPayingRatingStructureTypes = this.getRefDataFromLocalStorage('ClaimsPayingRatingStructureTypes');\r\n\r\n if (!ClaimsPayingRatingStructureTypes) {\r\n const endpoint = environment.refData.ClaimsPayingRatingStructureTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n ClaimsPayingRatingStructureTypes = await response.json();\r\n this.saveRefDataToLocalStorage('ClaimsPayingRatingStructureTypes', response, ClaimsPayingRatingStructureTypes);\r\n }\r\n return ClaimsPayingRatingStructureTypes;\r\n }\r\n\r\n async claimsPayingRatingSourceTypes(): Promise {\r\n let claimsPayingRatingSourceTypes = this.getRefDataFromLocalStorage('claimsPayingRatingSourceTypes');\r\n\r\n if (!claimsPayingRatingSourceTypes) {\r\n const endpoint = environment.refData.ClaimsPayingRatingSourceTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n claimsPayingRatingSourceTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('claimsPayingRatingSourceTypes', response, claimsPayingRatingSourceTypes);\r\n }\r\n return claimsPayingRatingSourceTypes;\r\n }\r\n\r\n async referralTypes(): Promise {\r\n let referralTypes = this.getRefDataFromLocalStorage('referralTypes');\r\n\r\n if (!referralTypes) {\r\n const endpoint = environment.refData.referralTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n referralTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('referralTypes', response, referralTypes);\r\n }\r\n return referralTypes;\r\n }\r\n\r\n async adviserTypes(): Promise {\r\n let adviserTypes = this.getRefDataFromLocalStorage('adviserTypes');\r\n\r\n if (!adviserTypes) {\r\n const endpoint = environment.refData.adviserTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n adviserTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('adviserTypes', response, adviserTypes);\r\n }\r\n return adviserTypes;\r\n }\r\n async authorisationReasons(): Promise {\r\n let authorisationReasons = this.getRefDataFromLocalStorage('authorisationReasons');\r\n\r\n if (!authorisationReasons) {\r\n const endpoint = environment.refData.authorisationReasons;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n authorisationReasons = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('adviserTypes', response, authorisationReasons);\r\n }\r\n\r\n return authorisationReasons;\r\n }\r\n\r\n async titleTypes(): Promise {\r\n let titleTypes = this.getRefDataFromLocalStorage('titleTypes');\r\n\r\n if (!titleTypes) {\r\n const endpoint = environment.refData.titleTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n titleTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('titleTypes', response, titleTypes);\r\n }\r\n return titleTypes;\r\n }\r\n\r\n async actionTypes(): Promise {\r\n let actionTypes = this.getRefDataFromLocalStorage('actionTypes');\r\n\r\n if (!actionTypes) {\r\n const endpoint = environment.refData.actionTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n actionTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('actionTypes', response, actionTypes);\r\n }\r\n return actionTypes;\r\n }\r\n\r\n async 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 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()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentOutType', response, paymentOutType);\r\n }\r\n return paymentOutType;\r\n }\r\n\r\n async activityTypes(): Promise {\r\n let activityTypes = this.getRefDataFromLocalStorage('activityTypes');\r\n\r\n if (!activityTypes) {\r\n const endpoint = environment.refData.activityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n activityTypes = (await response.json()).map((a) => ({ id: a.entityDocumentActivityTypeId, label: a.activityType }));\r\n this.saveRefDataToLocalStorage('activityTypes', response, activityTypes);\r\n }\r\n return activityTypes;\r\n }\r\n\r\n async taskCategoryTypes(): Promise {\r\n let taskCategoryTypes = this.getRefDataFromLocalStorage('taskCategoryTypes');\r\n\r\n if (!taskCategoryTypes) {\r\n const endpoint = environment.refData.taskCategoryTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n taskCategoryTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('taskCategoryTypes', response, taskCategoryTypes);\r\n }\r\n return taskCategoryTypes;\r\n }\r\n\r\n async taskPriorityTypes(): Promise {\r\n let taskPriorityTypes = this.getRefDataFromLocalStorage('taskPriorityTypes');\r\n\r\n if (!taskPriorityTypes) {\r\n const endpoint = environment.refData.taskPriorityTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n taskPriorityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('taskPriorityTypes', response, taskPriorityTypes);\r\n }\r\n return taskPriorityTypes;\r\n }\r\n\r\n async userDetail(): Promise {\r\n let userDetail = this.getRefDataFromLocalStorage('userDetail');\r\n\r\n if (!userDetail) {\r\n const endpoint = environment.applicationHomeEndpoints.userDetail;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n userDetail = await response.json();\r\n this.saveRefDataToLocalStorage('userDetail', response, userDetail);\r\n }\r\n\r\n return userDetail;\r\n }\r\n\r\n async journalType(): Promise {\r\n let journalTypes = this.getRefDataFromLocalStorage('journalType');\r\n\r\n if (!journalTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlJournalType`);\r\n journalTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('journalType', response, journalTypes);\r\n }\r\n\r\n return journalTypes;\r\n }\r\n\r\n async salesStatusType(): Promise {\r\n let salesStatusTypes = this.getRefDataFromLocalStorage('salesStatusType');\r\n\r\n if (!salesStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SalesStatusType`);\r\n salesStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('salesStatusType', response, salesStatusTypes);\r\n }\r\n return salesStatusTypes;\r\n }\r\n\r\n async salesRatingType(): Promise {\r\n let salesRatingTypes = this.getRefDataFromLocalStorage('salesRatingType');\r\n\r\n if (!salesRatingTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SalesRatingType`);\r\n salesRatingTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('salesRatingType', response, salesRatingTypes);\r\n }\r\n return salesRatingTypes;\r\n }\r\n\r\n async fieldTypes(fieldType: FieldType, partyInstanceId: number): Promise {\r\n let localTypes = this.getRefDataFromLocalStorage(`${partyInstanceId}__${fieldType}Type`, partyInstanceId);\r\n\r\n if (!localTypes) {\r\n const response: any = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/${fieldType}types/${partyInstanceId}`\r\n );\r\n\r\n // Email and website come back as eAddressTypeId, etc so we have to check\r\n const keyPrefix = (fieldType === 'email' || fieldType === 'website') ? 'eAddress' : fieldType;\r\n\r\n const typeIdKey = `${keyPrefix}TypeId`;\r\n const typeKey = `${keyPrefix}Type`;\r\n const mandatoryKey = 'mandatoryFlag';\r\n\r\n localTypes = (await response.json())\r\n .map((obj) => ({ id: obj[typeIdKey], label: obj[typeKey], mandatory: obj[mandatoryKey] }));\r\n\r\n this.saveRefDataToLocalStorage(`${partyInstanceId}__${fieldType}Type`, response, localTypes, partyInstanceId);\r\n }\r\n\r\n return localTypes;\r\n }\r\n\r\n async adviser(companyOfficeId?: number): Promise {\r\n if (companyOfficeId > 0) {\r\n let advisers = this.getRefDataFromLocalStorage('adviser', companyOfficeId);\r\n\r\n if (!advisers) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/companyoffices/${companyOfficeId}/advisers`\r\n );\r\n advisers = (await response.json()).map(({ adviserId, adviserCode, adviserName }) => ({\r\n id: adviserId,\r\n code: parseInt(adviserCode),\r\n label: `${adviserCode} - ${adviserName}`\r\n })).sort((a, b) => a.code - b.code);\r\n\r\n this.saveRefDataToLocalStorage('adviser', response, advisers, companyOfficeId);\r\n }\r\n\r\n return advisers;\r\n } else {\r\n return Promise.resolve([\r\n {\r\n 'id': undefined,\r\n 'label': 'lookups:pleaseSelectOffice'\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async insurerUnderwriters(insurerId: number, validUnderwriterProcessTypeIds: string = undefined): Promise {\r\n if (insurerId <= 0) return;\r\n let underwriters: Underwriter[] = this.getRefDataFromLocalStorage('insurerUnderwriters', insurerId);\r\n\r\n let uri = `${environment.apiHost}/api/refdata/insurers/${insurerId}/underwriters`\r\n\r\n if(validUnderwriterProcessTypeIds){\r\n uri += `?underwriterProcessTypeIds=${validUnderwriterProcessTypeIds}`\r\n }\r\n\r\n if (!underwriters) {\r\n const response = await this.http.fetch(uri);\r\n if (!response.ok) return;\r\n\r\n underwriters = await response.json();\r\n this.saveRefDataToLocalStorage('insurerUnderwriters', response, underwriters, insurerId);\r\n }\r\n return underwriters;\r\n }\r\n\r\n async insurerProcessType(): Promise {\r\n let insurerProcessTypes = this.getRefDataFromLocalStorage('insurerProcessType');\r\n\r\n if (!insurerProcessTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerProcessType`);\r\n\r\n insurerProcessTypes = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('insurerProcessType', response, insurerProcessTypes);\r\n }\r\n\r\n return insurerProcessTypes;\r\n }\r\n\r\n async insurerType(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerType');\r\n\r\n if (!insurerTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerType`);\r\n\r\n insurerTypes = (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n\r\n this.saveRefDataToLocalStorage('insurerType', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n // No Caching added for insurer groups - used in admin\r\n async insurerGroup(): Promise {\r\n const endpoint = environment.refData.insurerGroups;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n // No Caching added for risk group types - used in admin\r\n async riskGroupType(): Promise {\r\n const endpoint = environment.refData.riskGroupTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n return (await response.json() as ApiRefDataResponse[])\r\n .filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n }\r\n\r\n async paymentType(activeOnly = false): Promise {\r\n const localStorageKey = activeOnly ? 'activePaymentTypes' : 'allPaymentTypes';\r\n let paymentTypes = this.getRefDataFromLocalStorage(localStorageKey);\r\n\r\n if (!paymentTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentType`);\r\n\r\n paymentTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n if(activeOnly){\r\n paymentTypes = paymentTypes.filter(t => t.activeFlag);\r\n }\r\n\r\n paymentTypes = orderBy(paymentTypes.map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage(localStorageKey, response, paymentTypes);\r\n }\r\n\r\n return paymentTypes;\r\n }\r\n\r\n\r\n async businessEntityType(): Promise {\r\n let businessEntityTypes = this.getRefDataFromLocalStorage('businessEntityType');\r\n\r\n if (!businessEntityTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/BusinessEntityType`);\r\n businessEntityTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('businessEntityType', response, businessEntityTypes);\r\n }\r\n\r\n return businessEntityTypes;\r\n }\r\n\r\n async quoteStatusType(): Promise {\r\n let quoteStatusTypes = this.getRefDataFromLocalStorage('quoteStatusType');\r\n\r\n if (!quoteStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/QtQuoteStatusType`);\r\n quoteStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('quoteStatusType', response, quoteStatusTypes);\r\n }\r\n\r\n return quoteStatusTypes;\r\n }\r\n\r\n async paymentStatus(): Promise {\r\n let paymentStatuses = this.getRefDataFromLocalStorage('paymentStatus');\r\n\r\n if (!paymentStatuses) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/PlPaymentStatus`);\r\n paymentStatuses = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('paymentStatus', response, paymentStatuses);\r\n }\r\n\r\n return paymentStatuses;\r\n }\r\n\r\n async anzsicType(): Promise {\r\n let anzsicTypes = this.getRefDataFromLocalStorage('anzsicType');\r\n\r\n if (!anzsicTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/AnzsicType`);\r\n anzsicTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);;\r\n this.saveRefDataToLocalStorage('anzsicType', response, anzsicTypes);\r\n }\r\n\r\n return anzsicTypes;\r\n }\r\n\r\n async anzsicTypeByRiskClassType(riskClassTypeId): Promise {\r\n let anzsicTypes = this.getRefDataFromLocalStorage(`anzsicTypeByRiskClassType_${riskClassTypeId}`);\r\n\r\n if (!anzsicTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/AnzsicType/${riskClassTypeId}`);\r\n anzsicTypes = orderBy((await response.json()).map(x => {return {id: x.anzsicTypeId, label: x.anzsicType}}), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage(`anzsicTypeByRiskClassType_${riskClassTypeId}`, 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 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[];\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[];\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 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 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: parseInt(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 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","import { environment } from 'environment';\r\nimport { inject } from 'aurelia-framework';\r\nimport { User } from '../models/user';\r\nimport { getDeviceTokenForUser, addDeviceTokenForUser } from 'resources/device-token-manager';\r\nimport { AuthTokenEndpoint, ITokenResponse } from 'endpoints/auth/token-endpoint';\r\n\r\n@inject(AuthTokenEndpoint)\r\nexport class TokenService {\r\n constructor(private endpoint: AuthTokenEndpoint) {}\r\n\r\n async createAuthToken(user: User): Promise {\r\n const params = {};\r\n params['grant_type'] = 'password';\r\n params['password_hashed'] = 'false';\r\n params['username'] = user.username;\r\n params['password'] = user.password;\r\n params['app_client'] = user.client;\r\n params['client_id'] = environment.client;\r\n\r\n const headers: Record = {};\r\n\r\n const deviceToken = getDeviceTokenForUser(user.username);\r\n if (deviceToken) {\r\n headers['X-Device-Token'] = deviceToken;\r\n }\r\n\r\n const { data, response } = await this.endpoint.fetch(null, params, headers);\r\n\r\n this.saveToLocalStorage(data);\r\n\r\n if (response.headers.has('X-Password-Requires-Changing')) {\r\n const passwordRequiresChanging = response.headers.get('X-Password-Requires-Changing');\r\n localStorage.setItem('userRequiresPasswordChange', passwordRequiresChanging);\r\n }\r\n\r\n if (response.headers.has('X-Device-Id')) {\r\n const deviceId = response.headers.get('X-Device-Id');\r\n localStorage.setItem('deviceId', deviceId);\r\n }\r\n\r\n if (response.headers.has('X-Device-Token')) {\r\n const returnedDeviceToken = response.headers.get('X-Device-Token');\r\n addDeviceTokenForUser(user.username, returnedDeviceToken);\r\n }\r\n\r\n if (response.headers.has('X-2FA-Setup-Reqd')) {\r\n const twoFactorSetupRequired = response.headers.get('X-2FA-Setup-Reqd');\r\n localStorage.setItem('twoFactorSetupRequired', twoFactorSetupRequired);\r\n } else {\r\n /* istanbul ignore next */\r\n localStorage.removeItem('twoFactorSetupRequired');\r\n }\r\n\r\n if (response.headers.has('X-2FA-Code-Reqd')) {\r\n const twoFactorCodeRequired = response.headers.get('X-2FA-Code-Reqd');\r\n localStorage.setItem('twoFactorCodeRequired', twoFactorCodeRequired);\r\n } else {\r\n /* istanbul ignore next */\r\n localStorage.removeItem('twoFactorCodeRequired');\r\n }\r\n\r\n if (response.headers.has('X-Password-Expiry-Days')) {\r\n localStorage.setItem('daysUntilPasswordExpiry', response.headers.get('X-Password-Expiry-Days'));\r\n }\r\n\r\n if (response.headers.has('X-Licence-Acceptance-Reqd')) {\r\n localStorage.setItem('acceptLicenceAgreement', response.headers.get('X-Licence-Acceptance-Reqd'));\r\n }\r\n\r\n return data;\r\n }\r\n\r\n /* istanbul ignore next */\r\n getAuthToken() {\r\n return localStorage.getItem('access_token');\r\n }\r\n\r\n /* istanbul ignore next */\r\n getRefreshToken() {\r\n return localStorage.getItem('refresh_token');\r\n }\r\n\r\n /* istanbul ignore next */\r\n getDeviceId() {\r\n return localStorage.getItem('deviceId');\r\n }\r\n\r\n /* istanbul ignore next */\r\n getDeviceTokens() {\r\n return localStorage.getItem('device_tokens');\r\n }\r\n\r\n /* istanbul ignore next */\r\n async refreshAuthToken() {\r\n const params = {};\r\n params['grant_type'] = 'refresh_token';\r\n params['client_id'] = environment.client;\r\n params['refresh_token'] = localStorage.getItem('refresh_token');\r\n\r\n const result = (await this.endpoint.fetch(null, params)).data;\r\n\r\n this.saveToLocalStorage(result);\r\n\r\n return result;\r\n }\r\n\r\n saveToLocalStorage(token) {\r\n localStorage.setItem('access_token', token.access_token);\r\n localStorage.setItem('refresh_token', token.refresh_token);\r\n localStorage.setItem('access_token_expiry', token['.expires']);\r\n }\r\n}\r\n","/*\r\n * An implementation of the Appender interface.\r\n */\r\nexport class ConsoleAppender {\r\n /**\r\n * Appends a debug log.\r\n *\r\n * @param logger The source logger.\r\n * @param rest The data to log.\r\n */\r\n debug(logger: { id: string }, ...rest: any[]): void {\r\n console.debug(`DEBUG [${logger.id}]`, ...rest);\r\n }\r\n\r\n /**\r\n * Appends an info log.\r\n *\r\n * @param logger The source logger.\r\n * @param rest The data to log.\r\n */\r\n info(logger: { id: string }, ...rest: any[]): void {\r\n console.info(`INFO [${logger.id}]`, ...rest);\r\n }\r\n\r\n /**\r\n * Appends a warning log.\r\n *\r\n * @param logger The source logger.\r\n * @param rest The data to log.\r\n */\r\n warn(logger: { id: string }, ...rest: any[]): void {\r\n console.warn(`WARN [${logger.id}]`, ...rest);\r\n }\r\n\r\n /**\r\n * Appends an error log.\r\n *\r\n * @param logger The source logger.\r\n * @param rest The data to log.\r\n */\r\n error(logger: { id: string }, ...rest: any[]): void {\r\n console.error(`ERROR [${logger.id}]`, ...rest);\r\n }\r\n}\r\n","import { Aurelia } from 'aurelia-framework';\r\nimport { I18N } from 'aurelia-i18n';\r\nimport { ValidationMessageProvider } from 'aurelia-validation';\r\n\r\nexport function i18tnValidation(aurelia: Aurelia) {\r\n const originalGetMessage = ValidationMessageProvider.prototype.getMessage;\r\n const originalGetDisplayName = ValidationMessageProvider.prototype.getDisplayName;\r\n ValidationMessageProvider.prototype.getMessage = function (key) {\r\n const i18n = aurelia.container.get(I18N);\r\n const translation = i18n.tr(`errorMessages.${key}`);\r\n const message = this.parser.parse(translation);\r\n\r\n if (message.value === translation) {\r\n return originalGetMessage.call(this, key);\r\n }\r\n return message;\r\n };\r\n\r\n ValidationMessageProvider.prototype.getDisplayName = function (propertyName, displayName) {\r\n const i18n = aurelia.container.get(I18N);\r\n\r\n if (displayName !== null && displayName !== undefined) {\r\n const translation = i18n.tr(displayName as string);\r\n\r\n if (translation === displayName) {\r\n return originalGetDisplayName.call(this, propertyName, displayName);\r\n }\r\n\r\n return translation;\r\n }\r\n const translation = i18n.tr(propertyName as string);\r\n\r\n if (translation === propertyName) {\r\n return originalGetDisplayName.call(this, propertyName, displayName);\r\n }\r\n\r\n return translation;\r\n };\r\n}\r\n","/* istanbul ignore file */\r\n\r\nexport function initScrollTabs(context) {\r\n context.tabPosition = 50;\r\n context.isRightChevronDisabled = false;\r\n\r\n if (context.tabUI) {\r\n // move tabs over\r\n const allTabs = context.tabUI.querySelectorAll(context.tabClass);\r\n\r\n if (allTabs.length) {\r\n allTabs.forEach((element) => {\r\n element.setAttribute('style', `position: relative; left: 50px;`);\r\n });\r\n\r\n context.tabUI.onwheel = (event) => {\r\n event.preventDefault();\r\n event.deltaY < 0 ? context.scrollTabs('left') : context.scrollTabs('right');\r\n };\r\n\r\n // Disabled right chevron when last tab becomes visible\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting === true) {\r\n context.isRightChevronDisabled = true;\r\n }\r\n },\r\n { threshold: [1] },\r\n );\r\n\r\n allTabs[allTabs.length - 1].classList.add('lastTab');\r\n observer.observe(document.querySelector('.lastTab'));\r\n }\r\n }\r\n}\r\n\r\nexport function scrollTabs(context, direction) {\r\n if (context.tabUI) {\r\n const allTabs = context.tabUI.querySelectorAll(context.tabClass);\r\n\r\n if (allTabs.length) {\r\n if (direction === 'left') {\r\n if (context.isLeftChevronDisabled) return;\r\n\r\n if (context.isRightChevronDisabled) {\r\n context.isRightChevronDisabled = false;\r\n }\r\n\r\n context.tabPosition = context.tabPosition + 200;\r\n allTabs.forEach((element) => {\r\n element.setAttribute('style', `position: relative; left: ${context.tabPosition}px;`);\r\n });\r\n }\r\n\r\n if (direction === 'right') {\r\n if (context.isRightChevronDisabled) return;\r\n\r\n context.tabPosition = context.tabPosition - 200;\r\n allTabs.forEach((element) => {\r\n element.setAttribute('style', `position: relative; left: ${context.tabPosition}px;`);\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","export async function timer(msec): Promise {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, msec);\r\n });\r\n}\r\n"],"names":["Loader","taskQueue","defaultOptions","class","position","theme","layout","title","titleColor","messageColor","iconColor","backgroundColor","close","closeOnEscape","closeOnClick","timeout","overlay","overlayClose","overlayColor","transitionIn","transitionOut","animateInside","progressBar","image","imageWidth","maxWidth","displayMode","drag","loaderOpen","Error","this","loader","overrideOptions","bootstrapLoader","setDefaultOptions","options","getDefaultOptions","destroyAllToasts","show","toast","toastMessageIsRequired","mergeToastSettings","hide","toastRef","closedBy","toastElement","String","document","querySelector","toString","info","progress","callback","success","warning","error","restoreDefaultSettings","question","getLoaderPath","showLoader","loaderText","queueMicroTask","$loaderText","hideLoader","showStatusIcon","statusSuccess","statusIconTimeout","existingImage","existingTransIn","existingTimeout","existingOnClosed","onClosed","GreenTick","RedCross","TailSpin","IaToastMessage","id","$loaderTextClass","onOpening","addLoaderText","onClosing","removeLoaderText","createElement","classList","add","appendChild","createTextNode","parentNode","remove","message","length","autoinject","TaskQueue","IaToastService","log","LogManager","LOCAL_STORAGE_KEY_PREFIX","EXPIRY_HEADER","http","storage","acceptsElectronicDisclosureDocuments","Promise","resolve","acceptsMarketingMail","association","glPaymentStatusTypes","getRefDataFromLocalStorage","fetch","response","json","map","refDataToFieldValueDefinition","saveRefDataToLocalStorage","glPaymentPartyTypes","settleAllCreditTypes","glSettlementTypes","insurerWorkfileTypes","glWorkfileStatusTypes","endpoint","uri","filter","t","activeFlag","x","label","description","divisionType","divisionTypes","glBatchStatusTypes","knowYourClientTypes","vulnerabilityTypes","vulnerableClientTypeId","vulnerableClientType","synopsis","soaTypes","premiumFunderStatusActionTypes","premiumFunderStatusActionId","premumFunderStatus","premiumFunderStatusAction","redPlanetStatusTypes","redPlanetStatusId","status","standardWordingTypes","additionalPageTemplateCategoryTypes","redPlanetInvoiceNumberFormatTypes","financialServicesGuideTypes","insurerTypes","insurerId","insurerCode","insurerName","paysOverrider","paysOverride","insurerOfficeTypes","insurerOfficeId","insurerOfficeCode","insurerOfficeName","groupTypes","securityGroupId","name","partyInstanceTypes","apraClassTypes","schemeTypesByRiskClassTypeId","riskClassTypeId","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","bankAccountTypes","taxStatusTypes","settlementTypes","insurerCategoryTypes","paymentOutType","activityTypes","a","entityDocumentActivityTypeId","activityType","taskCategoryTypes","taskPriorityTypes","userDetail","journalType","journalTypes","salesStatusType","salesStatusTypes","salesRatingType","salesRatingTypes","fieldTypes","fieldType","partyInstanceId","localTypes","keyPrefix","obj","mandatory","adviser","companyOfficeId","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","anzsicTypeByRiskClassType","anzsicTypeId","riskClassType","riskClassTypes","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","allowableDocumentTypes","includes","allowableDocumentTypesAll","asicExemptionType","asicExemptionTypes","aTypicalRiskClass","aTypicalRiskClasses","customisedReason","customisedReasons","criminalRecordsStatement","criminalRecords","referral","referrals","referralId","referralCode","referralName","claimStatus","claimTypes","claimType","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","url","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","buildLocalStorageKey","parts","join","getExpiry","headers","type","data","params","expiry","saveToLocalStorage","localStorageValue","getFromLocalStorage","parsedData","Date","getTime","localStorage","removeItem","e","LookupDataService","createAuthToken","user","username","password","client","deviceToken","has","passwordRequiresChanging","setItem","deviceId","returnedDeviceToken","twoFactorSetupRequired","twoFactorCodeRequired","getAuthToken","getItem","getRefreshToken","getDeviceId","getDeviceTokens","refreshAuthToken","result","token","access_token","refresh_token","inject","TokenService","debug","logger","console","rest","warn","i18tnValidation","aurelia","originalGetMessage","ValidationMessageProvider","originalGetDisplayName","key","translation","container","I18N","tr","parser","parse","value","call","propertyName","displayName","i18n","initScrollTabs","context","tabPosition","isRightChevronDisabled","tabUI","allTabs","querySelectorAll","tabClass","forEach","element","setAttribute","onwheel","event","preventDefault","deltaY","scrollTabs","observer","IntersectionObserver","entries","isIntersecting","threshold","observe","direction","isLeftChevronDisabled","timer","msec","setTimeout"],"sourceRoot":""}