{"version":3,"file":"app-071f3147.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/resources/add-client-to-recent-items.ts","webpack://iadviser/./src/resources/attributes/class-attribute.ts","webpack://iadviser/./src/resources/attributes/conditional-if.ts","webpack://iadviser/./src/resources/attributes/input-mask.ts","webpack://iadviser/./src/resources/calculate-gst.ts","webpack://iadviser/./src/resources/claims-step.ts","webpack://iadviser/./src/resources/clean-qce-model.ts","webpack://iadviser/./src/resources/constants.ts","webpack://iadviser/./src/resources/decorators/has-decorator.ts","webpack://iadviser/./src/resources/device-token-manager.ts","webpack://iadviser/./src/resources/endpoints/binary-endpoint.ts","webpack://iadviser/./src/resources/endpoints/endpoints.ts","webpack://iadviser/./src/resources/endpoints/form-endpoint.ts","webpack://iadviser/./src/resources/endpoints/json-endpoint.ts","webpack://iadviser/./src/resources/endpoints/text-endpoint.ts","webpack://iadviser/./src/resources/enums.ts"],"sourcesContent":["import { getAppClientType, getEmailAddress } from './parse-jwt';\r\n\r\nconst EMAIL = getEmailAddress();\r\nconst APP_CLIENT_TYPE = getAppClientType();\r\n\r\nexport function addClientToRecentItems(client) {\r\n const RECENT_CLIENTS = JSON.parse(localStorage.getItem('ia_recent_clients')) ?? [];\r\n\r\n if (!client) {\r\n return RECENT_CLIENTS;\r\n }\r\n\r\n const CLIENT_ID = client.entityId;\r\n const CLIENT_CODE = client.entityCode;\r\n const CLIENT_NAME = client.entityName;\r\n const COMPANY_OFFICE_CODE = client.companyOfficeCode;\r\n const ADVISER_NAME = client.adviserName;\r\n\r\n const CLIENT_EXISTS = RECENT_CLIENTS.some((c: any) => c.entityId === CLIENT_ID);\r\n\r\n if (CLIENT_EXISTS) {\r\n const CLIENT_INDEX = RECENT_CLIENTS.findIndex((c: any) => c.entityId === CLIENT_ID);\r\n\r\n RECENT_CLIENTS.splice(CLIENT_INDEX, 1);\r\n RECENT_CLIENTS.unshift({\r\n appClientType: APP_CLIENT_TYPE,\r\n emailAddress: EMAIL,\r\n entityId: CLIENT_ID,\r\n entityCode: CLIENT_CODE,\r\n entityName: CLIENT_NAME,\r\n companyOfficeCode: COMPANY_OFFICE_CODE,\r\n adviserName: ADVISER_NAME,\r\n });\r\n } else {\r\n RECENT_CLIENTS.unshift({\r\n appClientType: APP_CLIENT_TYPE,\r\n emailAddress: EMAIL,\r\n entityId: CLIENT_ID,\r\n entityCode: CLIENT_CODE,\r\n entityName: CLIENT_NAME,\r\n companyOfficeCode: COMPANY_OFFICE_CODE,\r\n adviserName: ADVISER_NAME,\r\n });\r\n }\r\n\r\n localStorage.setItem('ia_recent_clients', JSON.stringify(RECENT_CLIENTS));\r\n}\r\n\r\nexport function getRecentClientsByAppClientTypeByUserId() {\r\n const RECENT_CLIENTS = JSON.parse(localStorage.getItem('ia_recent_clients')) ?? [];\r\n return RECENT_CLIENTS.filter((x) => x.appClientType === APP_CLIENT_TYPE && x.emailAddress === EMAIL);\r\n}\r\n","/* eslint-disable @typescript-eslint/no-use-before-define */\r\nimport { inject, Parent, getContextFor } from 'aurelia-framework';\r\n\r\nconst removeClassList = (element, val) => {\r\n if (!val) {\r\n return;\r\n }\r\n\r\n element.classList.remove(val);\r\n};\r\n\r\nconst addClassList = (element, val) => {\r\n if (!val) {\r\n return;\r\n }\r\n\r\n element.classList.add(val);\r\n};\r\n\r\n@inject(Element, Parent.of(ClassCustomAttribute))\r\nexport class ClassCustomAttribute {\r\n value: string;\r\n previousClasses: string[] = [];\r\n bindingContext;\r\n parentContext;\r\n\r\n constructor(private element: Element, private parent: any) {}\r\n\r\n bind(bindingContext, overrideContext) {\r\n this.bindingContext = bindingContext;\r\n\r\n if (this.bindingContext && typeof this.bindingContext.styles === 'undefined') {\r\n this.bindingContext = this.parent.bindingContext;\r\n\r\n if (this.bindingContext && typeof this.bindingContext.styles === 'undefined') {\r\n this.bindingContext = getContextFor('styles', { bindingContext, overrideContext }, 0);\r\n }\r\n }\r\n\r\n if (!this.bindingContext || typeof this.bindingContext.styles === 'undefined') {\r\n return;\r\n }\r\n\r\n if (!this.value) {\r\n this.value = '';\r\n }\r\n\r\n // Filter out any classes that do not have substitutes found in the bindingContext styles property\r\n // this prevents them being removed and allows for use-cases where :global {} is being used\r\n const values = this.value.split(' ').filter((val) => {\r\n return this.bindingContext.styles[val];\r\n });\r\n\r\n values.forEach((x) => removeClassList(this.element, x)); // remove the initial friendly names\r\n\r\n this.valueChanged(this.value);\r\n }\r\n\r\n addClass(className: string) {\r\n this.value = `${this.value} ${className}`;\r\n }\r\n\r\n removeClass(className: string) {\r\n this.value = this.value\r\n .split(' ')\r\n .filter((x) => x !== className)\r\n .join(' ');\r\n }\r\n\r\n valueChanged(newValue: string) {\r\n this.previousClasses.forEach((x) => removeClassList(this.element, x));\r\n\r\n this.previousClasses = newValue\r\n .split(' ')\r\n .map((x) => x.trim())\r\n .map((x) => (this.bindingContext?.styles?.[x] ? this.bindingContext.styles[x] : x))\r\n .join(' ') // lookups might map to multiple classes, so join them and then split\r\n .split(' ');\r\n\r\n this.previousClasses.forEach((x) => addClassList(this.element, x));\r\n }\r\n}\r\n","import { autoinject } from 'aurelia-dependency-injection';\r\nimport { customAttribute, bindable, TaskQueue } from 'aurelia-framework';\r\n\r\nconst INPUT_TYPES = ['INPUT', 'SELECT', 'TEXTAREA'];\r\n\r\n@autoinject()\r\n@customAttribute('conditional-if')\r\nexport class ConditionalIf {\r\n @bindable() attribute = null;\r\n @bindable() value = null;\r\n\r\n constructor(private element: Element, private taskQueue: TaskQueue) {}\r\n\r\n attached() {\r\n this.valueChanged(this.value);\r\n }\r\n\r\n valueChanged(value: string) {\r\n setTimeout(() => {\r\n if (value) {\r\n this.element.setAttribute(this.attribute, value);\r\n\r\n if (this.attribute === 'focusme' || this.attribute === 'focus') {\r\n if (INPUT_TYPES.includes(this.element.tagName)) {\r\n (this.element as HTMLElement).focus();\r\n } else {\r\n INPUT_TYPES.forEach((type) => {\r\n const search = this.element.querySelector(type) as HTMLInputElement;\r\n\r\n if (search) {\r\n search.focus();\r\n }\r\n });\r\n }\r\n }\r\n } else {\r\n this.element.removeAttribute(this.attribute);\r\n }\r\n }, 150);\r\n }\r\n}\r\n","import { inject, customAttribute, DOM } from 'aurelia-framework';\r\nimport Inputmask from 'inputmask';\r\nimport { bindable } from 'aurelia-typed-observable-plugin';\r\nimport defaultsDeep from 'lodash/defaultsDeep';\r\n\r\nexport type InputMaskOptions = Inputmask.Options;\r\n\r\n@customAttribute('input-mask')\r\n@inject(DOM.Element)\r\nexport class InputMask {\r\n @bindable public options?: InputMaskOptions;\r\n\r\n private element: HTMLInputElement;\r\n private im: Inputmask.Instance;\r\n\r\n private defaultOptions: InputMaskOptions = {\r\n alias: 'numeric',\r\n digits: '2',\r\n groupSeparator: ',',\r\n digitsOptional: false,\r\n nullable: true,\r\n };\r\n\r\n constructor(element: HTMLInputElement) {\r\n this.element = element;\r\n }\r\n\r\n attached() {\r\n this.applyOptionsAndReMask();\r\n }\r\n\r\n optionsChanged(options: InputMaskOptions) {\r\n if (!options) return;\r\n this.applyOptionsAndReMask();\r\n }\r\n\r\n private applyOptionsAndReMask() {\r\n if (typeof this.options !== 'string') {\r\n defaultsDeep(this.options, this.defaultOptions);\r\n }\r\n\r\n if (this.element.inputmask) {\r\n this.element.inputmask.remove();\r\n }\r\n\r\n this.im = new Inputmask(this.options);\r\n this.im.mask(this.element);\r\n }\r\n}\r\n","import { evenRound } from './even-round';\r\n\r\nexport function calculateGst(value: number, gstRate: number) {\r\n return evenRound((value * gstRate) / 100, 2);\r\n}\r\n","import { ClaimsService } from 'resources/services/claims-service';\r\nimport { autoinject } from 'aurelia-dependency-injection';\r\nimport { Next, NavigationInstruction, Redirect } from 'aurelia-router';\r\nimport { isProd } from 'resources/utils';\r\nimport { getEmailAddress } from './parse-jwt';\r\n\r\n@autoinject()\r\nexport class ClaimsStep {\r\n constructor(private claimsService: ClaimsService) { }\r\n\r\n async run(navigationInstruction: NavigationInstruction, next: Next) {\r\n const { config: { settings } } = navigationInstruction;\r\n\r\n // prevent diagnostics access on production to non iaanyware users\r\n if (isProd() && navigationInstruction.config.route.includes('diagnostics') && !getEmailAddress().includes('iaanyware.net')) {\r\n console.log('diagnostics only available to iaanyware users')\r\n return next.cancel(new Redirect('/'));\r\n }\r\n\r\n if (settings && settings.claims) {\r\n let { claims } = settings;\r\n\r\n // If route has claims\r\n if (claims?.length) {\r\n\r\n const isNewEditClaim = navigationInstruction.config.name === 'newClaim' || navigationInstruction.config.name === 'claimWizard';\r\n\r\n // separate claims required when routing to policy or quote wizard - ignore new/edit claim route\r\n if (navigationInstruction.params.parentEntityId > 0 && !isNewEditClaim) {\r\n claims = claims.filter(x => x.includes('Policy'));\r\n\r\n if (navigationInstruction.fragment.includes('new') || navigationInstruction.fragment.includes('edit')) {\r\n claims = claims.filter(x => x.includes('Edit'));\r\n }\r\n\r\n } else if (navigationInstruction.params.parentEntityId == 0 && !isNewEditClaim) {\r\n claims = claims.filter(x => x.includes('Quote'));\r\n\r\n if (navigationInstruction.fragment.includes('edit')) {\r\n claims = claims.filter(x => x.includes('Edit'));\r\n }\r\n } else if(isNewEditClaim){\r\n if (navigationInstruction.fragment.includes('edit')) {\r\n claims = claims.filter(x => x.includes('Edit'));\r\n }\r\n }\r\n\r\n const has = await this.claimsService.hasAsync(claims);\r\n\r\n // Does the user have the required claims?\r\n if (has) {\r\n // User has valid claims, allow route to proceed\r\n return next();\r\n } else {\r\n\r\n // User doesn't have stipulated claim\r\n const name = ['clientHome', 'preRenewal', 'app-admin', 'app-admin-view', 'app-accounts', 'app-accounts-view']\r\n if (name.includes(navigationInstruction.config.name)) {\r\n return next.cancel(new Redirect('/'));\r\n } else {\r\n return next.cancel(new Redirect(`/client/${navigationInstruction.params.id}`));\r\n }\r\n }\r\n }\r\n }\r\n\r\n return next();\r\n }\r\n}\r\n","import { IQceResponse, IQceResponseGroup } from 'components/qce/qce-typings';\r\nimport cloneDeep from 'lodash/cloneDeep';\r\nimport moment from 'moment';\r\nimport { generateGuidString } from './utilities/insecure-guid';\r\n\r\nexport function cleanQceModel(model: IQceResponse, saving = false) {\r\n if (!model) {\r\n return model;\r\n }\r\n\r\n // reset questions that have been disabled by flow \r\n const newModel = cloneDeep(model);\r\n\r\n if (newModel.guid === '00000000-0000-0000-0000-000000000000') {\r\n newModel.guid = generateGuidString();\r\n }\r\n\r\n if (newModel.groups) {\r\n newModel.groups.forEach((group) => {\r\n group.questions.forEach((question, index) => {\r\n\r\n if (question.disabledByQuestionFlowFlag) {\r\n question.currentResponse.responsePresent = false;\r\n question.currentResponse.answerId = null;\r\n question.currentResponse.anzsicOccupationInsurerId = null;\r\n question.currentResponse.glassId = null;\r\n question.currentResponse.gridResponses = null;\r\n question.currentResponse.occupationId = null;\r\n question.currentResponse.propertyOwnersAnzsicOccupationId = null;\r\n question.currentResponse.responseTypeId = null;\r\n question.currentResponse.responseValue = null;\r\n\r\n return;\r\n }\r\n\r\n if (question.currentResponse && question.currentResponse.gridResponses && question.currentResponse.gridResponses.length) {\r\n question.currentResponse.gridResponses.forEach((response: any) => {\r\n if (response.ClaimDate && response.ClaimDate.includes('/')) {\r\n response.ClaimDate = moment.utc(response.ClaimDate, 'DD/MM/YYYY').toISOString();\r\n }\r\n\r\n if (response.DateOfOffence && response.DateOfOffence.includes('/')) {\r\n response.DateOfOffence = moment.utc(response.DateOfOffence, 'DD/MM/YYYY').toISOString();\r\n }\r\n\r\n if (response.DateOfLoss && response.DateOfLoss.includes('/')) {\r\n response.DateOfLoss = moment.utc(response.DateOfLoss, 'DD/MM/YYYY').toISOString();\r\n }\r\n\r\n if (response.ItemDate && response.ItemDate.includes('/')) {\r\n response.ItemDate = moment.utc(response.ItemDate, 'DD/MM/YYYY').toISOString();\r\n }\r\n\r\n if (response.YearPurchased && response.YearPurchased.includes != undefined && response.YearPurchased.includes('y')) {\r\n response.YearPurchased = null;\r\n }\r\n\r\n if (response.PeriodEndingInYear && response.PeriodEndingInYear.includes != undefined && response.PeriodEndingInYear.includes('y')) {\r\n response.PeriodEndingInYear = null;\r\n }\r\n });\r\n }\r\n\r\n // Date format component\r\n if (question.displayTypeId === 2 || question.displayTypeId === 600000006) {\r\n question.currentResponse.responseValue = question.currentResponse.responseValue ? moment.utc(question.currentResponse.responseValue, 'DD/MM/YYYY').format('DD/MM/YYYY') : null;\r\n }\r\n\r\n // Date format free text component and date entered\r\n if (question.displayTypeId === 11 && question.currentResponse.responseTypeId === 600000003) {\r\n question.currentResponse.responseValue = moment.utc(question.currentResponse.responseValue, 'DD/MM/YYYY').format('DD/MM/YYYY');\r\n }\r\n\r\n if (question.currentResponse && question.currentResponse.gridResponses && !question.currentResponse.gridResponses.length) {\r\n question.currentResponse.gridResponses = null;\r\n }\r\n\r\n if (question.currentResponse && question.currentResponse.responsePresent === false) {\r\n question.currentResponse.responseValue = null;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if (saving && newModel.groups) {\r\n newModel.groups = newModel.groups.map(group => {\r\n return {\r\n guid: group.guid,\r\n questions: group.questions.map(question => {\r\n return {\r\n guid: question.guid,\r\n currentResponse: question.currentResponse,\r\n questionId: question.questionId\r\n }\r\n })\r\n };\r\n }) as Partial;\r\n }\r\n\r\n return newModel;\r\n}\r\n\r\nexport function setupDefaultQceAnswers(model: IQceResponse) {\r\n const newModel = cloneDeep(model);\r\n\r\n if (newModel.groups) {\r\n newModel.groups.forEach((group) => {\r\n group.questions.forEach((question, index) => {\r\n if (question.disabledByQuestionFlowFlag) {\r\n if (question.defaultAnswerId) {\r\n const answer = question.answerOptions.find(a => a.answerId === question.defaultAnswerId);\r\n\r\n if (answer) {\r\n question.currentResponse.answerId = answer.answerId;\r\n question.currentResponse.responseValue = answer.answerText;\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n return newModel;\r\n}\r\n","import { CountryCode } from 'libphonenumber-js';\r\nimport { getAppClientType } from './parse-jwt';\r\nexport const AUTH_TOKEN_KEY = 'iaAuthToken';\r\n\r\nexport const localeMap = new Map([\r\n ['AU', 'en-AU'],\r\n ['NZ', 'en-NZ'],\r\n]);\r\n\r\nexport enum eventAggregatorEvents {\r\n sideBarClicked = 'side-bar-clicked',\r\n clientCounts = 'client-counts',\r\n clientSaved = 'client-saved',\r\n clientActiveStatus = 'client-active-status',\r\n}\r\n\r\nexport const NO_TOKEN_FOUND = 'No authorization token found';\r\n\r\nexport const DEFAULT_DATE_TIME_FORMAT_OPTIONS = {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n};\r\nexport const DEFAULT_DATE_FORMAT_OPTIONS = { year: 'numeric', month: '2-digit', day: '2-digit' };\r\n\r\nexport const MAX_INTEGER_VALUE_32_BIT = 2147483647;\r\n\r\nexport const BSB_MASK_AU = '[9][9][9]-[9][9][9]';\r\nexport const BSB_MASK_NZ = '[9][9]-[9][9][9][9]';\r\n\r\nexport const BSB_MASK_OPTIONS = {\r\n alias: '',\r\n mask: getAppClientType() == 'AU' ? BSB_MASK_AU : BSB_MASK_NZ,\r\n};\r\n\r\nexport const ACCOUNT_NUMBER_MASK_AU = '[9][9][9][9][9][9][9][9][9][9][9][9][9][9][9]';\r\nexport const ACCOUNT_NUMBER_MASK_NZ = '[9][9][9][9][9][9][9]-[9][9][9]';\r\n\r\nexport const ACCOUNT_NUMBER_MASK_OPTIONS = {\r\n alias: '',\r\n mask: getAppClientType() == 'AU' ? ACCOUNT_NUMBER_MASK_AU : ACCOUNT_NUMBER_MASK_NZ,\r\n};\r\n","import { Container } from 'aurelia-framework';\r\nimport { ClaimsService } from 'resources/services/claims-service';\r\n\r\nconst HAS_DECORATOR_SYMBOL = Symbol('has_decorated_properties');\r\n\r\nexport function has(...permissions: string[]) {\r\n return function (target: any, key: string) {\r\n const getter = async function () {\r\n const claimsService = Container.instance.get(ClaimsService);\r\n try {\r\n const hasPermission = await claimsService.hasAsync(permissions);\r\n Object.defineProperty(this, key, {\r\n value: hasPermission,\r\n writable: false,\r\n configurable: false,\r\n });\r\n return hasPermission;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n // Define the property on the target\r\n defineProperty(target, key, getter);\r\n\r\n // Record the decorated property\r\n recordDecoratedProperty(target, key);\r\n };\r\n}\r\n\r\nfunction defineProperty(target: any, key: string, getter: () => any) {\r\n Object.defineProperty(target, key, {\r\n get: getter,\r\n enumerable: true,\r\n configurable: true,\r\n });\r\n}\r\n\r\nfunction recordDecoratedProperty(target: any, key: string) {\r\n if (!target[HAS_DECORATOR_SYMBOL]) {\r\n target[HAS_DECORATOR_SYMBOL] = new Set();\r\n }\r\n\r\n target[HAS_DECORATOR_SYMBOL].add(key);\r\n}\r\n\r\nexport async function waitForHas(target: any): Promise {\r\n const hasDecoratedProperties = target[HAS_DECORATOR_SYMBOL];\r\n\r\n if (!hasDecoratedProperties || hasDecoratedProperties.size === 0) {\r\n return Promise.resolve([]);\r\n }\r\n\r\n const decoratedProperties = Array.from(hasDecoratedProperties);\r\n const propertyPromises = decoratedProperties.map(async (prop: string) => {\r\n try {\r\n const result = await target[prop];\r\n return result;\r\n } catch (e) {\r\n return false;\r\n }\r\n });\r\n\r\n return Promise.all(propertyPromises);\r\n}\r\n","export function addDeviceTokenForUser(emailAddress: string, deviceToken: string) { \r\n const DEVICE_TOKENS = JSON.parse(localStorage.getItem('device_tokens')) ?? [];\r\n \r\n const EMAIL_ADDRESS = emailAddress;\r\n const DEVICE_TOKEN = deviceToken;\r\n\r\n const TOKEN_EXISTS = DEVICE_TOKENS.some((dt: any) => dt.emailAddress === emailAddress);\r\n\r\n if (TOKEN_EXISTS) {\r\n const TOKEN_INDEX = DEVICE_TOKENS.findIndex((dt: any) => dt.emailAddress === emailAddress);\r\n\r\n DEVICE_TOKENS.splice(TOKEN_INDEX, 1);\r\n DEVICE_TOKENS.unshift({ emailAddress: EMAIL_ADDRESS, deviceToken: DEVICE_TOKEN });\r\n } else {\r\n DEVICE_TOKENS.unshift({ emailAddress: EMAIL_ADDRESS, deviceToken: DEVICE_TOKEN });\r\n }\r\n\r\n localStorage.setItem('device_tokens', JSON.stringify(DEVICE_TOKENS));\r\n}\r\n\r\nexport function getDeviceTokenForUser(emailAddress: string): string { \r\n const DEVICE_TOKENS = JSON.parse(localStorage.getItem('device_tokens')) ?? [];\r\n \r\n const TOKEN_EXISTS = DEVICE_TOKENS.some((dt: any) => dt.emailAddress === emailAddress);\r\n\r\n if (TOKEN_EXISTS) {\r\n const TOKEN_INDEX = DEVICE_TOKENS.findIndex((dt: any) => dt.emailAddress === emailAddress);\r\n return DEVICE_TOKENS[TOKEN_INDEX].deviceToken;\r\n }\r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\nimport { HttpClient } from 'aurelia-fetch-client';\r\nimport { RequestMethod } from './endpoints';\r\nimport { IEndpoint } from './i-endpoint';\r\n\r\n@autoinject()\r\nexport abstract class BinaryEndpoint\r\n implements IEndpoint\r\n{\r\n protected abstract readonly method: RequestMethod;\r\n protected headers: Record = {};\r\n\r\n private readonly http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n protected abstract uri(routeParameters?: RouteParameters): string;\r\n\r\n public async fetch(\r\n routeParameters: RouteParameters | null | undefined,\r\n body: RequestType | null = null,\r\n queryParams: Record | null = null,\r\n additionalHeaders: Record | null = null,\r\n ): Promise<{ data: Blob; response: Response }> {\r\n const headers = {\r\n ...this.headers,\r\n ...(additionalHeaders || {}),\r\n };\r\n\r\n const init: RequestInit = {\r\n method: this.method,\r\n headers,\r\n ...(body !== null && body !== undefined ? { body: body as any } : {}),\r\n };\r\n\r\n const params = queryParams ? `?${new URLSearchParams(queryParams)}` : '';\r\n const uri = `${this.uri(routeParameters)}${params}`;\r\n\r\n const response = await this.http.fetch(uri, init);\r\n\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n const responseBlob = await response.blob();\r\n\r\n return { data: responseBlob, response };\r\n }\r\n}\r\n","export enum RequestMethod {\r\n get = 'GET',\r\n post = 'POST',\r\n put = 'PUT',\r\n delete = 'DELETE',\r\n auto = 'AUTO',\r\n patch = 'PATCH',\r\n}\r\n\r\nexport enum RequestEncoding {\r\n none = '',\r\n form = 'application/x-www-form-urlencoded',\r\n json = 'application/json',\r\n}\r\n\r\nexport interface Endpoint {\r\n method: RequestMethod;\r\n uri: (input?: any[]) => string;\r\n headers?: any;\r\n mode?: string;\r\n}\r\n","import { HttpClient } from 'aurelia-fetch-client';\r\nimport { RequestEncoding, RequestMethod } from './endpoints';\r\nimport { IEndpoint } from './i-endpoint';\r\nimport { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject()\r\nexport abstract class FormEndpoint\r\n implements IEndpoint, ResponseType>\r\n{\r\n protected abstract readonly method: RequestMethod;\r\n protected headers: Record = {\r\n 'Content-Type': RequestEncoding.form,\r\n };\r\n\r\n public response: Response;\r\n\r\n private readonly http: HttpClient;\r\n\r\n public constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n protected abstract uri(routeParameters: RouteParameters): string;\r\n\r\n public async fetch(\r\n routeParameters: RouteParameters,\r\n fields: Record,\r\n additionalHeaders?: Record,\r\n ): Promise<{ data: ResponseType; response: Response }> {\r\n const searchParams = new URLSearchParams();\r\n for (const [key, value] of Object.entries(fields)) {\r\n searchParams.append(key, value as string);\r\n }\r\n\r\n const uri = this.uri(routeParameters);\r\n\r\n const combinedHeaders = {\r\n ...this.headers,\r\n ...additionalHeaders\r\n };\r\n\r\n const init: RequestInit = {\r\n method: this.method,\r\n headers: combinedHeaders,\r\n body: searchParams.toString(),\r\n };\r\n\r\n const response = await this.http.fetch(uri, init);\r\n\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n const data = (await response.json()) as ResponseType;\r\n\r\n return { data, response };\r\n }\r\n}\r\n","import { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { RequestMethod } from './endpoints';\r\nimport { IEndpoint } from './i-endpoint';\r\nimport { autoinject } from 'aurelia-framework';\r\n\r\n@autoinject()\r\nexport abstract class JsonEndpoint\r\n implements IEndpoint\r\n{\r\n protected abstract readonly method: RequestMethod;\r\n protected headers: Record = {};\r\n\r\n private readonly http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n protected abstract uri(routeParameters?: RouteParameters): string;\r\n\r\n public async fetch(\r\n routeParameters?: RouteParameters,\r\n body: RequestType | null = null,\r\n queryParams: Record | null = null,\r\n additionalHeaders: Record | null = null,\r\n ): Promise<{ data: ResponseType | null; response: Response }> {\r\n const headers = {\r\n ...this.headers,\r\n ...(additionalHeaders || {}),\r\n };\r\n\r\n const init: RequestInit = {\r\n method: this.method,\r\n headers: headers,\r\n ...(body !== null && body !== undefined ? { body: json(body) } : {}),\r\n };\r\n\r\n const params = queryParams ? `?${new URLSearchParams(queryParams)}` : '';\r\n const uri = `${this.uri(routeParameters)}${params}`;\r\n\r\n const response = await this.http.fetch(uri, init);\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n // If the response body is empty, we don't want to try to parse it as JSON\r\n let responseBody = await response.json().catch(() => null);\r\n\r\n if (responseBody === null) {\r\n responseBody = undefined;\r\n }\r\n\r\n return { data: responseBody, response };\r\n }\r\n}\r\n","import { autoinject } from 'aurelia-framework';\r\nimport { HttpClient } from 'aurelia-fetch-client';\r\nimport { RequestMethod } from './endpoints';\r\nimport { IEndpoint } from './i-endpoint';\r\n\r\n@autoinject()\r\nexport abstract class TextEndpoint\r\n implements IEndpoint\r\n{\r\n protected abstract readonly method: RequestMethod;\r\n protected headers: Record = {};\r\n\r\n private readonly http: HttpClient;\r\n\r\n constructor(http: HttpClient) {\r\n this.http = http;\r\n }\r\n\r\n protected abstract uri(routeParameters?: RouteParameters): string;\r\n\r\n public async fetch(\r\n routeParameters: RouteParameters | null | undefined,\r\n body: RequestType | null = null,\r\n queryParams: Record | null = null,\r\n additionalHeaders: Record | null = null,\r\n ): Promise<{ data: string; response: Response }> {\r\n const headers = {\r\n ...this.headers,\r\n ...(additionalHeaders || {}),\r\n };\r\n\r\n const init: RequestInit = {\r\n method: this.method,\r\n headers,\r\n ...(body !== null && body !== undefined ? { body: body as any } : {}),\r\n };\r\n\r\n const params = queryParams ? `?${new URLSearchParams(queryParams)}` : '';\r\n const uri = `${this.uri(routeParameters)}${params}`;\r\n\r\n const response = await this.http.fetch(uri, init);\r\n\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n\r\n const responseText = await response.text();\r\n\r\n return { data: responseText, response };\r\n }\r\n}\r\n","export enum AppTheme {\r\n LIGHT = 'light',\r\n BLUE = 'blue',\r\n}\r\n\r\nexport enum ProfilePages {\r\n GENERAL = 1,\r\n SALES = 2,\r\n BRANCH = 3,\r\n CONTACT = 4,\r\n FSG = 5,\r\n QUESTIONS = 6,\r\n ASSOCIATIONS = 7,\r\n NOTES = 8,\r\n CONSENT = 9\r\n}\r\n\r\nexport const enum PageMode {\r\n EDIT = 'edit',\r\n READONLY = 'readonly',\r\n}\r\n\r\nexport const enum ClientType {\r\n CLIENT = 600000000,\r\n PROSPECT = 600000001,\r\n}\r\n\r\nexport const enum EAddressType {\r\n email = 601000000,\r\n website = 2,\r\n}\r\n\r\nexport enum ButtonTranslationKeys {\r\n EDIT = 'buttonLabels:edit',\r\n CANCEL = 'buttonLabels:cancel',\r\n}\r\n\r\nexport enum ApplicationCountryCodes {\r\n AUSTRALIA = 'AU',\r\n NEW_ZEALAND = 'NZ',\r\n}\r\n\r\nexport enum TaskNotificationTypes {\r\n ALL = 0,\r\n OVERDUE = 1,\r\n DUE_TODAY = 2,\r\n UPCOMING = 3,\r\n COMPLETE = 4,\r\n}\r\n\r\nexport enum DocType {\r\n Document = 1,\r\n Task = 2,\r\n FileNote = 3,\r\n}\r\n\r\nexport enum GenerationStatus {\r\n NotFound = 0,\r\n DeQueued = 1,\r\n Queued = 2,\r\n Processing = 3,\r\n Ready = 4,\r\n Aborted = 5,\r\n Error = 6,\r\n New = 7,\r\n}\r\n\r\nexport enum PartyInstanceType {\r\n Adviser = 600000000,\r\n Bank = 600000001,\r\n BankBranch = 600000002,\r\n Client = 600000003,\r\n Company = 600000005,\r\n CompanyOffice = 600000007,\r\n Insurer = 600000008,\r\n InsurerOffice = 600000009,\r\n PremiumFunder = 600000010,\r\n Referral = 600000011,\r\n Underwriter = 600000012,\r\n InsuredName = 600000013,\r\n Prospect = 600000014,\r\n Payee = 600000015,\r\n SurchargePayee = 600000016,\r\n}\r\n\r\nexport enum DocCreationProgress {\r\n Error = -99,\r\n Not_Submitted = -2,\r\n Submitted = -1,\r\n New = 0,\r\n Started = 1,\r\n Fetching_Model = 2,\r\n Model_Fetched = 3,\r\n Rendering_Html = 4,\r\n Html_Rendered = 5,\r\n Rendering_Pdf = 6,\r\n Pdf_Rendered = 7,\r\n Rendering_Csv = 8,\r\n Csv_Rendered = 9,\r\n Completed = 10,\r\n}\r\n\r\nexport enum ReportType {\r\n View = 1,\r\n Pdf = 2,\r\n Csv = 4,\r\n}\r\n\r\nexport enum MandatoryDocType {\r\n Fsg = 0,\r\n Toe = 1,\r\n}\r\n"],"names":["EMAIL","APP_CLIENT_TYPE","addClientToRecentItems","client","RECENT_CLIENTS","JSON","parse","localStorage","getItem","CLIENT_ID","entityId","CLIENT_CODE","entityCode","CLIENT_NAME","entityName","COMPANY_OFFICE_CODE","companyOfficeCode","ADVISER_NAME","adviserName","some","c","CLIENT_INDEX","findIndex","splice","unshift","appClientType","emailAddress","setItem","stringify","getRecentClientsByAppClientTypeByUserId","filter","x","removeClassList","element","val","classList","remove","parent","previousClasses","bind","bindingContext","overrideContext","this","styles","getContextFor","value","split","forEach","valueChanged","addClass","className","removeClass","join","newValue","map","trim","add","inject","Element","Parent","of","ClassCustomAttribute","INPUT_TYPES","taskQueue","attribute","attached","setTimeout","setAttribute","includes","tagName","focus","type","search","querySelector","removeAttribute","bindable","autoinject","customAttribute","TaskQueue","ConditionalIf","defaultOptions","alias","digits","groupSeparator","digitsOptional","nullable","applyOptionsAndReMask","optionsChanged","options","inputmask","im","mask","InputMaskOptions","DOM","HTMLInputElement","InputMask","calculateGst","gstRate","claimsService","run","navigationInstruction","next","settings","config","route","console","log","cancel","claims","length","isNewEditClaim","name","params","parentEntityId","fragment","hasAsync","id","ClaimsStep","cleanQceModel","model","saving","newModel","guid","groups","group","questions","question","index","disabledByQuestionFlowFlag","currentResponse","responsePresent","answerId","anzsicOccupationInsurerId","glassId","gridResponses","occupationId","propertyOwnersAnzsicOccupationId","responseTypeId","responseValue","response","ClaimDate","toISOString","DateOfOffence","DateOfLoss","ItemDate","YearPurchased","undefined","PeriodEndingInYear","displayTypeId","format","questionId","eventAggregatorEvents","localeMap","Map","MAX_INTEGER_VALUE_32_BIT","BSB_MASK_OPTIONS","ACCOUNT_NUMBER_MASK_OPTIONS","HAS_DECORATOR_SYMBOL","Symbol","has","target","key","getter","Object","defineProperty","get","enumerable","configurable","Container","instance","permissions","hasPermission","writable","Set","recordDecoratedProperty","waitForHas","Promise","hasDecoratedProperties","size","decoratedProperties","Array","from","propertyPromises","prop","all","resolve","addDeviceTokenForUser","deviceToken","DEVICE_TOKENS","EMAIL_ADDRESS","DEVICE_TOKEN","dt","TOKEN_INDEX","getDeviceTokenForUser","http","headers","fetch","routeParameters","body","queryParams","additionalHeaders","init","method","URLSearchParams","uri","ok","blob","data","BinaryEndpoint","RequestMethod","RequestEncoding","form","fields","searchParams","entries","append","combinedHeaders","toString","json","FormEndpoint","catch","responseBody","JsonEndpoint","text","TextEndpoint","AppTheme","ProfilePages","PageMode","ClientType","EAddressType","ButtonTranslationKeys","ApplicationCountryCodes","TaskNotificationTypes","DocType","GenerationStatus","PartyInstanceType","DocCreationProgress","ReportType","MandatoryDocType"],"sourceRoot":""}