{"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 // No Caching added for homepage helpdesk\r\n async homepageHelpdesk(): Promise {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/helpdesk`);\r\n return await response.json();\r\n }\r\n\r\n // No Caching added for homepage urls\r\n async homepageUrls(): Promise {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/homepageurls`);\r\n return (await response.json()).map((x) => ({id: x.homePageUrlId, label: x.description, url: x.url}));\r\n }\r\n\r\n async glPaymentStatusTypes(): Promise {\r\n let glPaymentStatusTypes = this.getRefDataFromLocalStorage('glPaymentStatusTypes');\r\n\r\n if (!glPaymentStatusTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentStatus`);\r\n glPaymentStatusTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glPaymentStatusTypes', response, glPaymentStatusTypes);\r\n }\r\n return glPaymentStatusTypes;\r\n }\r\n\r\n\r\n async glPaymentPartyTypes(): Promise {\r\n let glPaymentPartyTypes = this.getRefDataFromLocalStorage('glPaymentPartyTypes');\r\n\r\n if (!glPaymentPartyTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlPaymentParty`);\r\n glPaymentPartyTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glPaymentPartyTypes', response, glPaymentPartyTypes);\r\n }\r\n return glPaymentPartyTypes;\r\n }\r\n\r\n async settleAllCreditTypes(): Promise {\r\n let settleAllCreditTypes = this.getRefDataFromLocalStorage('settleAllCreditTypes');\r\n\r\n if (!settleAllCreditTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/SettleAllCreditsOption`);\r\n settleAllCreditTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('settleAllCreditTypes', response, settleAllCreditTypes);\r\n }\r\n return settleAllCreditTypes;\r\n }\r\n\r\n async glSettlementTypes(): Promise {\r\n let glSettlementTypes = this.getRefDataFromLocalStorage('glSettlementTypes');\r\n\r\n if (!glSettlementTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/GlSettlementType`);\r\n glSettlementTypes = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('glSettlementTypes', response, glSettlementTypes);\r\n }\r\n return glSettlementTypes;\r\n }\r\n\r\n async insurerWorkfileTypes(): Promise {\r\n let insurerWorkfileTypes = this.getRefDataFromLocalStorage('insurerWorkfileTypes');\r\n\r\n if (!insurerWorkfileTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/InsurerWorkfileType`);\r\n insurerWorkfileTypes = orderBy((await response.json()).map(this.refDataToFieldValueDefinition), ['id'], ['desc']);\r\n this.saveRefDataToLocalStorage('insurerWorkfileTypes', response, insurerWorkfileTypes);\r\n }\r\n return insurerWorkfileTypes;\r\n }\r\n\r\n async glWorkfileStatusTypes(): Promise {\r\n let glWorkfileStatusTypes = this.getRefDataFromLocalStorage('glWorkfileStatusTypes');\r\n\r\n if (!glWorkfileStatusTypes) {\r\n const endpoint = environment.refData.glWorkfileStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n glWorkfileStatusTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('glWorkfileStatusTypes', response, glWorkfileStatusTypes);\r\n }\r\n\r\n return glWorkfileStatusTypes;\r\n }\r\n\r\n async divisionType(): Promise {\r\n let divisionTypes = this.getRefDataFromLocalStorage('divisionTypes');\r\n\r\n if (!divisionTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/Division`);\r\n divisionTypes = (await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage('divisionTypes', response, divisionTypes);\r\n }\r\n return divisionTypes;\r\n }\r\n\r\n async glBatchStatusTypes(): Promise {\r\n let glBatchStatusTypes = this.getRefDataFromLocalStorage('glBatchStatusTypes');\r\n\r\n if (!glBatchStatusTypes) {\r\n const endpoint = environment.refData.glBatchStatusTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n glBatchStatusTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('glBatchStatusTypes', response, glBatchStatusTypes);\r\n }\r\n\r\n return glBatchStatusTypes;\r\n }\r\n\r\n async knowYourClientTypes(): Promise {\r\n let knowYourClientTypes = this.getRefDataFromLocalStorage('knowYourClientTypes');\r\n\r\n if (!knowYourClientTypes) {\r\n const endpoint = environment.refData.knowYourClientTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n knowYourClientTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.id, label: x.description}));\r\n this.saveRefDataToLocalStorage('knowYourClientTypes', response, knowYourClientTypes);\r\n }\r\n\r\n return knowYourClientTypes;\r\n }\r\n\r\n async vulnerabilityTypes(): Promise {\r\n let vulnerabilityTypes = this.getRefDataFromLocalStorage('vulnerabilityTypes');\r\n\r\n if (!vulnerabilityTypes) {\r\n const endpoint = environment.refData.vulnerableClientTypes;\r\n const uri = endpoint.uri();\r\n const response = await this.http.fetch(uri);\r\n vulnerabilityTypes = (await response.json()).map((x) => ({id: x.vulnerableClientTypeId, label: `${x.vulnerableClientType}${x.synopsis ? ' - ' + x.synopsis : ''}`}));\r\n this.saveRefDataToLocalStorage('vulnerabilityTypes', response, vulnerabilityTypes);\r\n }\r\n\r\n return vulnerabilityTypes;\r\n }\r\n\r\n async 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 claimEventTypes(): Promise {\r\n let claimEventTypes = this.getRefDataFromLocalStorage('claimEventTypes');\r\n\r\n if (!claimEventTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimevents`);\r\n claimEventTypes = (await response.json()).filter(t => t.activeFlag).map((x) => ({id: x.claimEventId, label: x.claimEvent}));\r\n this.saveRefDataToLocalStorage('claimEventTypes', response, claimEventTypes);\r\n }\r\n\r\n return claimEventTypes;\r\n }\r\n\r\n async claimCategory(): Promise {\r\n let claimCategories = this.getRefDataFromLocalStorage('claimCategory');\r\n\r\n if (!claimCategories) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimcategories`);\r\n claimCategories = orderBy(await response.json(), ['claimCategory'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimCategory', response, claimCategories);\r\n }\r\n return claimCategories;\r\n }\r\n\r\n async claimStatusActions(): Promise {\r\n let items = this.getRefDataFromLocalStorage('claimStatusAction');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/claimstatusactions`);\r\n items = orderBy(await response.json(), ['claimStatusAction'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimStatusAction', response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async licenceClasses(): Promise {\r\n let items = this.getRefDataFromLocalStorage('licenceClasses');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/licenceClasses`);\r\n items = await response.json();\r\n this.saveRefDataToLocalStorage('licenceClasses', response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async claimNoteType(): Promise {\r\n let noteTypes = this.getRefDataFromLocalStorage('claimNoteType');\r\n\r\n if (!noteTypes) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimNoteType`);\r\n noteTypes = orderBy((await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimNoteType', response, noteTypes);\r\n }\r\n\r\n return noteTypes;\r\n }\r\n\r\n async claimPaymentType(): Promise {\r\n let items = this.getRefDataFromLocalStorage('claimPaymentType');\r\n\r\n if (!items) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/ClClaimPaymentType`);\r\n items = orderBy((await response.json()).filter(t => t.activeFlag).map(this.refDataToFieldValueDefinition), ['label'], ['asc']);\r\n this.saveRefDataToLocalStorage('claimPaymentType', response, items);\r\n }\r\n\r\n return items;\r\n }\r\n\r\n async get(refType): Promise {\r\n let vals = this.getRefDataFromLocalStorage(refType);\r\n\r\n if (!vals) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/${refType}`);\r\n vals = (await response.json()).map(this.refDataToFieldValueDefinition);\r\n this.saveRefDataToLocalStorage(refType, response, vals);\r\n }\r\n return vals;\r\n }\r\n\r\n async users(companyOfficeId?: number): Promise {\r\n if (companyOfficeId > 0) {\r\n let users = this.getRefDataFromLocalStorage('user', companyOfficeId);\r\n\r\n if (!users) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/companyoffices/${companyOfficeId}/users`\r\n );\r\n users = (await response.json()).map(({ securityUsersId, fullName }) => ({\r\n id: securityUsersId,\r\n label: fullName\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('user', response, users, companyOfficeId);\r\n }\r\n\r\n return users;\r\n } else {\r\n return Promise.resolve([\r\n {\r\n 'id': undefined,\r\n 'label': 'lookups:pleaseSelectOffice'\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n async groups(): Promise {\r\n let groups = this.getRefDataFromLocalStorage('group');\r\n\r\n if (!groups) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/admin/user/groups`\r\n );\r\n groups = (await response.json()).map(({ id, name }) => ({\r\n id: id,\r\n label: name\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('group', response, groups);\r\n }\r\n\r\n return groups;\r\n }\r\n\r\n\r\n async financialAdviserTypes(): Promise {\r\n let lst = this.getRefDataFromLocalStorage('financialAdviserType');\r\n\r\n if (true || !lst) {\r\n const response = await this.http.fetch(\r\n `${environment.apiHost}/api/refdata/FinancialAdviserType`\r\n );\r\n const jsn=await response.json();\r\n lst = (jsn).map(({ id, description }) => ({\r\n id: id,\r\n label: description\r\n }));\r\n\r\n this.saveRefDataToLocalStorage('financialAdviserType', response, lst);\r\n }\r\n\r\n return lst;\r\n }\r\n\r\n async branchLocations(): Promise {\r\n return await this.adminRefData('companyoffice','locations');\r\n }\r\n\r\n async fsgType(): Promise {\r\n return await this.getValues('','FinancialServicesGuideType');\r\n }\r\n\r\n async adminRefData(controller:string, method:string): Promise {\r\n const results= await this.getValues(controller,method, 'admin')\r\n return results;\r\n }\r\n\r\n async advisers(): Promise {\r\n let advisers = this.getRefDataFromLocalStorage('advisers');\r\n\r\n if (!advisers) {\r\n const response = await this.http.fetch(`${environment.apiHost}/api/refdata/advisers`);\r\n advisers = (await response.json()).map(c => {\r\n return {\r\n id: c.adviserId,\r\n code: c.companyOfficeCode,\r\n label: `${c.companyOfficeCode} - ${c.companyOfficeName}`,\r\n active: c.active,\r\n adviserCode: c.adviserCode,\r\n adviserName: c.adviserName,\r\n companyOfficeId: c.companyOfficeId\r\n };\r\n }).sort((a, b) => a.adviserName.toLowerCase().localeCompare(b.adviserName.toLowerCase()));\r\n this.saveRefDataToLocalStorage('advisers', response, advisers);\r\n }\r\n\r\n return advisers;\r\n }\r\n\r\n async getValues(controller:string, method='', api='refdata'): Promise {\r\n // if (method==='') {throw('getValues called with blank method');}\r\n let items = this.getRefDataFromLocalStorage(method);\r\n if (!items) {\r\n const url=controller==='' ? `${environment.apiHost}/api/${api}/${method}`: `${environment.apiHost}/api/${api}/${controller}/${method}`;\r\n //console.log(`getValues ${url}`)\r\n const response = await this.http.fetch(\r\n url\r\n );\r\n const results = await response.json();\r\n items = results.map(({ id, description }) => ({\r\n id: id,\r\n label: description\r\n }));\r\n this.saveRefDataToLocalStorage(method, response, items);\r\n }\r\n return items;\r\n }\r\n\r\n async riskCriteria(): Promise {\r\n let riskCriteriaTypes = this.getRefDataFromLocalStorage('riskCriteria');\r\n\r\n if (!riskCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.risk;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskCriteriaTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('riskCriteria', response, riskCriteriaTypes);\r\n }\r\n\r\n return riskCriteriaTypes;\r\n }\r\n\r\n async riskGroupedByRiskCriteria(): Promise {\r\n let riskCriteriaTypes = this.getRefDataFromLocalStorage('riskGroupedByRiskCriteria');\r\n\r\n if (!riskCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.riskGroupedByRisk;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskCriteriaTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('riskGroupedByRiskCriteria', response, riskCriteriaTypes);\r\n }\r\n\r\n return riskCriteriaTypes;\r\n }\r\n\r\n async riskClassTypeCriteria(): Promise {\r\n let riskClassCriteriaTypes = this.getRefDataFromLocalStorage('riskClassTypeCriteria');\r\n\r\n if (!riskClassCriteriaTypes) {\r\n const endpoint = environment.reportEndpoints.reports.riskClassType;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n riskClassCriteriaTypes = ((await response.json() as ApiRefDataResponse[])).sort((a, b) => a.id - b.id);\r\n\r\n this.saveRefDataToLocalStorage('riskClassTypeCriteria', response, riskClassCriteriaTypes);\r\n }\r\n\r\n return riskClassCriteriaTypes;\r\n }\r\n\r\n async premiumFunderTypes(): Promise {\r\n let premiumFunderTypes = this.getRefDataFromLocalStorage('premiumFunderTypes');\r\n\r\n if (!premiumFunderTypes) {\r\n const endpoint = environment.reportEndpoints.reports.premiumFunder;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n premiumFunderTypes = (await response.json()).map((x) => ({id: x.id, label: x.code})).sort((a, b) => a.label.toLowerCase().localeCompare(b.label.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('premiumFunderTypes', response, premiumFunderTypes);\r\n }\r\n\r\n return premiumFunderTypes;\r\n }\r\n\r\n async reportPremiumFunder(): Promise {\r\n let reportPremiumFunders = this.getRefDataFromLocalStorage('reportPremiumFunder');\r\n\r\n if (!reportPremiumFunders) {\r\n const endpoint = environment.reportEndpoints.reports.premiumFunder;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportPremiumFunders = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('reportPremiumFunder', response, reportPremiumFunders);\r\n }\r\n\r\n return reportPremiumFunders;\r\n }\r\n\r\n async underwriterCriteria(): Promise {\r\n let reportUnderwriters = this.getRefDataFromLocalStorage('reportUnderwriter');\r\n\r\n if (!reportUnderwriters) {\r\n const endpoint = environment.reportEndpoints.reports.underwriter;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportUnderwriters = orderBy((await response.json() as ApiRefDataResponse[]), ['code'], ['asc']);\r\n\r\n this.saveRefDataToLocalStorage('reportUnderwriter', response, reportUnderwriters);\r\n }\r\n\r\n return reportUnderwriters;\r\n }\r\n\r\n async assignedTo(): Promise {\r\n let assignedTo = this.getRefDataFromLocalStorage('assignedTo');\r\n\r\n if (!assignedTo) {\r\n const endpoint = environment.reportEndpoints.reports.assignedTo;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n assignedTo = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('assignedTo', response, assignedTo);\r\n }\r\n\r\n return assignedTo;\r\n }\r\n\r\n async allUsers(): Promise {\r\n let allUsers = this.getRefDataFromLocalStorage('allUsers');\r\n\r\n if (!allUsers) {\r\n const endpoint = environment.reportEndpoints.reports.allUsers;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n allUsers = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('allUsers', response, allUsers);\r\n }\r\n\r\n return allUsers;\r\n }\r\n\r\n async reportingType(): Promise {\r\n let reportingTypes = this.getRefDataFromLocalStorage('reportingType');\r\n\r\n if (!reportingTypes) {\r\n const endpoint = environment.reportEndpoints.reports.reportingType;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n reportingTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('reportingTypes', response, reportingTypes);\r\n }\r\n\r\n return reportingTypes;\r\n }\r\n\r\n async occupationCriteria(): Promise {\r\n let occupationTypes = this.getRefDataFromLocalStorage('occupationCriteria');\r\n\r\n if (!occupationTypes) {\r\n const endpoint = environment.reportEndpoints.reports.occupation;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n occupationTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('occupationCriteria', response, occupationTypes);\r\n }\r\n\r\n return occupationTypes;\r\n }\r\n\r\n async referralCriteria(): Promise {\r\n let referralTypes = this.getRefDataFromLocalStorage('referralCriteria');\r\n\r\n if (!referralTypes) {\r\n const endpoint = environment.reportEndpoints.reports.referral;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n referralTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('referralCriteria', response, referralTypes);\r\n }\r\n\r\n return referralTypes;\r\n }\r\n\r\n async insurerCriteria(): Promise {\r\n let insurerTypes = this.getRefDataFromLocalStorage('insurerCriteria');\r\n\r\n if (!insurerTypes) {\r\n const endpoint = environment.reportEndpoints.reports.insurer;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n insurerTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n insurerTypes.sort((a, b) => a.code.toLowerCase().localeCompare(b.code.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('insurerCriteria', response, insurerTypes);\r\n }\r\n\r\n return insurerTypes;\r\n }\r\n\r\n async insurerCategoryCriteria(): Promise {\r\n let insurerCategoryTypes = this.getRefDataFromLocalStorage('insurerCategoryCriteria');\r\n\r\n if (!insurerCategoryTypes) {\r\n const endpoint = environment.reportEndpoints.reports.insurerCategory;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n insurerCategoryTypes = ((await response.json() as ApiRefDataResponse[])).sort((a, b) => a.id - b.id);\r\n\r\n this.saveRefDataToLocalStorage('insurerCategoryCriteria', response, insurerCategoryTypes);\r\n }\r\n\r\n return insurerCategoryTypes;\r\n }\r\n\r\n async branch(): Promise {\r\n let branches = this.getRefDataFromLocalStorage('branch');\r\n\r\n if (!branches) {\r\n const endpoint = environment.reportEndpoints.reports.branch;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n branches = (await response.json() as ApiRefDataResponse[]);\r\n\r\n branches.sort((a, b) => a.code.toLowerCase().localeCompare(b.code.toLowerCase()));\r\n\r\n this.saveRefDataToLocalStorage('branch', response, branches);\r\n }\r\n\r\n return branches;\r\n }\r\n\r\n async transtype(): Promise {\r\n let transTypes = this.getRefDataFromLocalStorage('transtype');\r\n\r\n if (!transTypes) {\r\n const endpoint = environment.reportEndpoints.reports.transtype;\r\n const response = await this.http.fetch(endpoint.uri(), {\r\n method: endpoint.method\r\n });\r\n\r\n transTypes = (await response.json() as ApiRefDataResponse[]);\r\n\r\n this.saveRefDataToLocalStorage('transtype', response, transTypes);\r\n }\r\n\r\n return transTypes;\r\n }\r\n\r\n async yesNo(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:yes'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:no'\r\n }\r\n ]);\r\n }\r\n\r\n async searchType(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 'equals',\r\n 'label': 'lookups:equals'\r\n },\r\n {\r\n 'id': 'startsWith',\r\n 'label': 'lookups:startsWith',\r\n }, {\r\n 'id': 'endsWith',\r\n 'label': 'lookups:endsWith',\r\n },\r\n {\r\n 'id': 'like',\r\n 'label': 'lookups:like'\r\n }\r\n ]);\r\n }\r\n\r\n async activeInactive(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:active'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:inactive'\r\n }\r\n ]);\r\n }\r\n\r\n async partyTypes(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': 1,\r\n 'label': 'Person'\r\n },\r\n {\r\n 'id': 2,\r\n 'label': 'Organisation'\r\n }\r\n ]);\r\n }\r\n\r\n async completeIncomplete(): Promise {\r\n return Promise.resolve([\r\n {\r\n 'id': true,\r\n 'label': 'lookups:complete'\r\n },\r\n {\r\n 'id': false,\r\n 'label': 'lookups:incomplete'\r\n }\r\n ]);\r\n }\r\n\r\n 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_type'] = user.appClientType;\r\n params['app_client_instance'] = user.appClientInstance;\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","homepageHelpdesk","fetch","json","homepageUrls","map","x","homePageUrlId","label","description","url","glPaymentStatusTypes","getRefDataFromLocalStorage","response","refDataToFieldValueDefinition","saveRefDataToLocalStorage","glPaymentPartyTypes","settleAllCreditTypes","glSettlementTypes","insurerWorkfileTypes","glWorkfileStatusTypes","endpoint","uri","filter","t","activeFlag","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","claimEventTypes","claimEventId","claimEvent","claimCategory","claimCategories","claimStatusActions","items","licenceClasses","claimNoteType","claimPaymentType","get","refType","vals","users","groups","financialAdviserTypes","lst","jsn","branchLocations","adminRefData","fsgType","getValues","controller","method","active","toLowerCase","localeCompare","api","results","riskCriteria","riskCriteriaTypes","riskGroupedByRiskCriteria","riskClassTypeCriteria","riskClassCriteriaTypes","premiumFunderTypes","reportPremiumFunder","reportPremiumFunders","underwriterCriteria","reportUnderwriters","assignedTo","allUsers","reportingType","reportingTypes","occupationCriteria","occupationTypes","referralCriteria","insurerCriteria","insurerCategoryCriteria","branch","branches","transtype","transTypes","yesNo","searchType","activeInactive","partyTypes","completeIncomplete","buildLocalStorageKey","parts","join","getExpiry","headers","type","data","params","expiry","saveToLocalStorage","localStorageValue","getFromLocalStorage","parsedData","Date","getTime","localStorage","removeItem","e","LookupDataService","createAuthToken","user","username","password","appClientType","appClientInstance","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":""}