{"version":3,"file":"app-e63a5411.xxxxxxxx.bundle.js","mappings":"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","sources":["webpack://iadviser/./src/components/ia-dropdown/ia-dropdown.html","webpack://iadviser/./src/components/ia-froala-editor/doc-template-modal.html","webpack://iadviser/./src/components/ia-froala-editor/ia-froala-editor.html","webpack://iadviser/./src/components/ia-froala-editor/template-modal.html","webpack://iadviser/./src/components/ia-html-editor/doc-template-modal.html","webpack://iadviser/./src/components/ia-html-editor/ia-html-editor-v1.html","webpack://iadviser/./src/components/ia-html-editor/ia-html-editor.html","webpack://iadviser/./src/components/ia-html-editor/template-modal.html","webpack://iadviser/./src/components/ia-html-editor/styles.css?5fde","webpack://iadviser/./src/components/ia-dropdown/ia-dropdown.css?a5d7","webpack://iadviser/./src/components/ia-dropdown/ia-dropdown.ts","webpack://iadviser/./src/components/ia-froala-editor/doc-template-modal.ts","webpack://iadviser/./src/components/ia-froala-editor/ia-froala-editor.ts","webpack://iadviser/./src/components/ia-froala-editor/template-modal.ts","webpack://iadviser/./src/components/ia-html-editor/api.ts","webpack://iadviser/./src/components/ia-html-editor/doc-template-modal.ts","webpack://iadviser/./src/components/ia-html-editor/ia-html-editor-v1.ts","webpack://iadviser/./src/components/ia-html-editor/ia-html-editor.ts","webpack://iadviser/./src/components/ia-html-editor/maxchars-plugin.ts","webpack://iadviser/./src/components/ia-html-editor/template-modal.ts"],"sourcesContent":["// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// Module\nvar code = \"\\r\\n\";\n// Exports\nexport default code;","// extracted by mini-css-extract-plugin\nexport default {\"iframe-container\":\"iframe-container____aia4B\"};","// extracted by mini-css-extract-plugin\nexport default {\"dropdown\":\"dropdown____ytEVv\",\"select\":\"select____h_ivx\",\"open\":\"open____aDbrY\",\"default\":\"default____BPWw3\"};","import { customElement, bindable, children } from 'aurelia-framework';\r\n\r\nimport styles from './ia-dropdown.css';\r\n\r\n@customElement('ia-dropdown')\r\nexport class IaDropdown {\r\n\r\n static inject = [Element];\r\n\r\n @bindable placeholder = null;\r\n @bindable items = [];\r\n\r\n @children('.select-marker') dropdownItems;\r\n\r\n private dropdown: HTMLUListElement;\r\n private element: Element;\r\n private styles = styles;\r\n\r\n constructor(element: Element) {\r\n this.element = element;\r\n }\r\n\r\n menuClicked() {\r\n if (this.dropdown.classList.contains('open')) {\r\n this.collapse();\r\n } else {\r\n this.expand();\r\n }\r\n }\r\n\r\n itemClicked(item, $index) {\r\n const event = new CustomEvent('clicked', {\r\n bubbles: true,\r\n detail: {\r\n item,\r\n index: $index\r\n }\r\n });\r\n\r\n this.element.dispatchEvent(event);\r\n }\r\n\r\n private collapse() {\r\n this.dropdown.classList.remove('open');\r\n this.dropdown.classList.add('closed');\r\n\r\n this.dropdownItems.forEach((item, index) => {\r\n const len = this.dropdownItems.length - index;\r\n\r\n item.style.zIndex = len;\r\n item.style.top = `${2 * index}px`;\r\n item.style.width = `${230 - 2 * index}`;\r\n item.style.marginLeft = `${-115 + index}`;\r\n });\r\n }\r\n\r\n private expand() {\r\n this.dropdown.classList.remove('closed');\r\n this.dropdown.classList.add('open');\r\n\r\n this.dropdownItems.forEach((item, index) => {\r\n const len = this.dropdownItems.length - index;\r\n\r\n item.style.top = `${40 * index}px`;\r\n item.style.width = `230px`;\r\n item.style.marginLeft = `-115`;\r\n item.style.zIndex = `1`;\r\n });\r\n }\r\n}\r\n","/* istanbul ignore file */\r\n\r\nimport { ModalService } from 'components/modal/modal-service';\r\nimport { PLATFORM, autoinject, useView } from 'aurelia-framework';\r\nimport { observable } from 'aurelia-typed-observable-plugin';\r\nimport { DocMgmtGetTemplateEndpoint } from 'endpoints/docmgmt/docmgmt-get-template-endpoint';\r\n\r\nimport 'select2/dist/js/select2';\r\n\r\nPLATFORM.moduleName('./doc-template-modal');\r\n\r\n@autoinject()\r\n@useView(PLATFORM.moduleName('components/ia-froala-editor/doc-template-modal.html'))\r\nexport class FroalaDocTemplateModal {\r\n private templates = [];\r\n private select: HTMLSelectElement;\r\n private editor: any;\r\n private iframeSrc = '';\r\n private clientId: number;\r\n private entityId: number;\r\n private contentCss = '';\r\n\r\n @observable() template;\r\n\r\n private iframeContainer: HTMLDivElement;\r\n\r\n public constructor(private modal: ModalService, private docMgmtGetTemplateEndpoint: DocMgmtGetTemplateEndpoint) {}\r\n\r\n public activate(data) {\r\n this.editor = data.editor;\r\n this.templates = data.templates || [];\r\n\r\n if (data?.model?.clientId) {\r\n this.clientId = Number(data.model.clientId);\r\n }\r\n\r\n this.entityId = !data?.model?.document ? data?.model?.currentFolder?.entityId : data?.model?.document?.entityId;\r\n\r\n const urls: string[] = Array.isArray(data.contentCssUrls) ? data.contentCssUrls : [];\r\n if (urls.length) {\r\n this.contentCss = urls\r\n .filter(Boolean)\r\n .map((u) => {\r\n try {\r\n return new URL(u, window.location.origin).toString();\r\n } catch {\r\n return u;\r\n }\r\n })\r\n .map((u) => ``)\r\n .join('');\r\n }\r\n }\r\n\r\n public attached() {\r\n // @ts-ignore\r\n $('.templateModalSelect').select2().on('select2:select', () => {\r\n const event = new Event('change');\r\n this.select.dispatchEvent(event);\r\n });\r\n }\r\n\r\n public templateChanged(template) {\r\n if (template?.key) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.loadTemplate(template.key);\r\n } else {\r\n this.updatePreview('');\r\n }\r\n }\r\n\r\n private async loadTemplate(key: string) {\r\n if (!this.clientId || !this.entityId) return;\r\n const { data: html } = await this.docMgmtGetTemplateEndpoint.fetch(\r\n { clientId: this.clientId, templateKey: key } as any,\r\n JSON.stringify({ entityId: this.entityId }),\r\n null,\r\n { 'Content-Type': 'application/json' },\r\n );\r\n\r\n if (!html) {\r\n this.updatePreview('');\r\n return;\r\n }\r\n\r\n const templateDom = new DOMParser().parseFromString(\r\n html.replace(/(?:\\\\r\\\\n|\\\\r|\\\\n)/g, '').replace(/\\\\\"/g, '\"'),\r\n 'text/html',\r\n );\r\n\r\n const templateParsed = templateDom.querySelector('section')?.innerHTML || '';\r\n this.updatePreview(templateParsed);\r\n }\r\n\r\n private updatePreview(html: string) {\r\n const iframe = document.createElement('iframe');\r\n iframe.frameBorder = 'none';\r\n\r\n const finalHtml = `\r\n \r\n \r\n ${this.contentCss}\r\n ${html}\r\n `;\r\n\r\n iframe.src = `data:text/html;charset=utf-8,${encodeURIComponent(finalHtml)}`;\r\n\r\n if (this.iframeContainer) {\r\n this.iframeContainer.innerHTML = '';\r\n this.iframeContainer.appendChild(iframe);\r\n }\r\n\r\n this.iframeSrc = html;\r\n }\r\n\r\n private insertTemplate(html: string) {\r\n if (!this.editor || !html) return;\r\n\r\n if (this.editor.selection) {\r\n this.editor.selection.restore();\r\n }\r\n\r\n this.editor.html.insert(html);\r\n this.editor.events && this.editor.events.trigger('contentChanged');\r\n }\r\n\r\n public cancel() {\r\n this.modal.hide('secondaryModal');\r\n }\r\n\r\n public save() {\r\n this.insertTemplate(this.iframeSrc);\r\n this.modal.hide('secondaryModal');\r\n }\r\n}\r\n\r\n","/* istanbul ignore file */\r\n\r\nimport { PLATFORM, autoinject, bindingMode, customElement, TaskQueue } from 'aurelia-framework';\r\nimport { bindable } from 'aurelia-typed-observable-plugin';\r\nimport { DOM } from 'aurelia-pal';\r\nimport defaultsDeep from 'lodash/defaultsDeep';\r\nimport { generateHtmlIdGuid } from 'resources/utilities/insecure-guid';\r\nimport { ModalService } from 'components/modal/modal-service';\r\nimport { ApiEndpointsEndpoint } from 'endpoints/refdata/api-endpoints-endpoint';\r\nimport { getAppClientInstance, getAppClientType } from 'resources/parse-jwt';\r\nimport { CountryCode } from 'libphonenumber-js';\r\nimport { AppRouter } from 'aurelia-router';\r\nimport { LookupDataService } from 'resources/services/lookup-data';\r\nimport { FolderType } from 'components/document-management/dtos';\r\nimport { TemplateGetTemplatesEndpoint } from 'endpoints/template/template-get-templates-endpoint';\r\nimport { TemplateGetTemplateHtmlEndpoint } from 'endpoints/template/template-get-template-html-endpoint';\r\nimport { DocMgmtGetTemplatesEndpoint } from 'endpoints/docmgmt/docmgmt-get-templates-endpoint';\r\nimport { DocMgmtGetTemplateEndpoint } from 'endpoints/docmgmt/docmgmt-get-template-endpoint';\r\nimport { ConvertHtmlToPdfEndpoint } from 'endpoints/convert/convert-html-to-pdf-endpoint';\r\nimport { HtmlBase64ImageUploadEndpoint } from 'endpoints/images/html-base64-image-upload-endpoint';\r\n\r\nimport FroalaEditor from 'froala-editor/js/froala_editor.pkgd.min.js';\r\nimport 'froala-editor/css/froala_editor.pkgd.min.css';\r\nimport 'froala-editor/css/froala_style.min.css';\r\nimport CodeMirror from 'codemirror';\r\nimport 'codemirror/lib/codemirror.css';\r\nimport { FroalaTemplateModal } from './template-modal';\r\nimport { FroalaDocTemplateModal } from './doc-template-modal';\r\nimport styles from 'components/ia-html-editor/styles.css';\r\n\r\nexport interface IaFroalaEditorTemplate {\r\n title: string;\r\n description?: string;\r\n content?: string;\r\n url?: string;\r\n}\r\n\r\nexport interface IaFroalaEditorSettings extends Record {\r\n templates?: IaFroalaEditorTemplate[];\r\n}\r\n\r\ninterface UploadedImage {\r\n html: string;\r\n src: string;\r\n attributes: Record;\r\n}\r\n\r\nexport enum IaFroalaEditorContext {\r\n AdditionalPage = 'additionalPage',\r\n DocManagement = 'docManagement',\r\n ClientAdvice = 'clientAdvice',\r\n Soa = 'soa',\r\n RelevantRelationships = 'relevantRelationships',\r\n RemunerationDetails = 'remunerationDetails',\r\n TermsOfEngagement = 'termsOfEngagement',\r\n Task = 'task',\r\n Default = 'default',\r\n}\r\n\r\n@autoinject()\r\n@customElement('ia-froala-editor')\r\nexport class IaFroalaEditor {\r\n @bindable({ defaultBindingMode: bindingMode.oneTime }) public id: string = generateHtmlIdGuid();\r\n @bindable({ defaultBindingMode: bindingMode.twoWay }) public content = '';\r\n @bindable public settings: IaFroalaEditorSettings = {};\r\n @bindable public context: IaFroalaEditorContext | string = IaFroalaEditorContext.Default;\r\n @bindable.booleanAttr public disabled = false;\r\n @bindable.booleanAttr public inline = false;\r\n @bindable.booleanAttr public refreshContentOnce = false;\r\n @bindable.booleanAttr public enableSource = false;\r\n @bindable public cssClasses = '';\r\n @bindable public maxChars = null;\r\n @bindable public model = {};\r\n\r\n public editor: any = null;\r\n public editorElement: HTMLElement;\r\n\r\n private isInitialized = false;\r\n private isSettingContent = false;\r\n\r\n private static templateCommandRegistered = false;\r\n private static pdfPreviewCommandRegistered = false;\r\n private static pageBreakCommandRegistered = false;\r\n private templates: IaFroalaEditorTemplate[] = [];\r\n private modalStyles = styles;\r\n private pdfPreviewEnabled = false;\r\n private appClientType: CountryCode = 'AU';\r\n private appClientInstance;\r\n private readonly defaultTemplateGeneratorHost = 'https://prod1-templategenerator.azurewebsites.net';\r\n private _templateGeneratorHost = '';\r\n\r\n private readonly defaultSettings: Record = {\r\n height: 300,\r\n editorClass: 'ia-html-editor',\r\n iframe: true,\r\n toolbarButtons: [\r\n ['paragraphFormat', 'fontFamily', 'fontSize'],\r\n ['bold', 'italic', 'underline', 'strikeThrough'],\r\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\r\n ['outdent', 'indent', 'formatOL', 'formatUL'],\r\n ['insertLink', 'insertTable', 'insertImage', 'insertHR'],\r\n ['undo', 'redo', 'selectAll', 'clearFormatting'],\r\n ['pagebreak', 'template', 'pdfpreview', 'html', 'fullscreen', 'help'],\r\n ],\r\n toolbarButtonsMD: [\r\n ['paragraphFormat', 'fontFamily', 'fontSize'],\r\n ['bold', 'italic', 'underline', 'strikeThrough'],\r\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\r\n ['outdent', 'indent', 'formatOL', 'formatUL'],\r\n ['insertLink', 'insertTable', 'insertImage', 'insertHR'],\r\n ['undo', 'redo', 'selectAll', 'clearFormatting'],\r\n ['pagebreak', 'template', 'pdfpreview', 'html', 'fullscreen', 'help'],\r\n ],\r\n toolbarButtonsSM: [\r\n ['paragraphFormat', 'fontFamily', 'fontSize'],\r\n ['bold', 'italic', 'underline', 'strikeThrough'],\r\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\r\n ['outdent', 'indent', 'formatOL', 'formatUL'],\r\n ['insertLink', 'insertTable', 'insertImage', 'insertHR'],\r\n ['undo', 'redo', 'selectAll', 'clearFormatting'],\r\n ['pagebreak', 'template', 'pdfpreview', 'html', 'fullscreen', 'help'],\r\n ],\r\n toolbarButtonsXS: [\r\n ['paragraphFormat', 'fontFamily', 'fontSize'],\r\n ['bold', 'italic', 'underline', 'strikeThrough'],\r\n ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'],\r\n ['outdent', 'indent', 'formatOL', 'formatUL'],\r\n ['insertLink', 'insertTable', 'insertImage', 'insertHR'],\r\n ['undo', 'redo', 'selectAll', 'clearFormatting'],\r\n ['pagebreak', 'template', 'pdfpreview', 'html', 'fullscreen', 'help'],\r\n ],\r\n toolbarResponsiveToEditor: true,\r\n paragraphFormatSelection: true,\r\n fontFamilySelection: true,\r\n fontFamilyDefaultSelection: 'Roboto',\r\n fontSizeSelection: true,\r\n fontSizeDefaultSelection: '10',\r\n fontSizeUnit: 'pt',\r\n paragraphFormat: {\r\n N: 'Normal',\r\n H1: 'Heading 1',\r\n H2: 'Heading 2',\r\n H3: 'Heading 3',\r\n H4: 'Heading 4',\r\n H5: 'Heading 5',\r\n H6: 'Heading 6',\r\n },\r\n fontFamily: {\r\n 'Roboto,sans-serif': 'Roboto',\r\n '\"Andale Mono\",monospace': 'Andale Mono',\r\n 'Arial,Helvetica,sans-serif': 'Arial',\r\n '\"Arial Black\",sans-serif': 'Arial Black',\r\n '\"Book Antiqua\",Palatino,serif': 'Book Antiqua',\r\n '\"Comic Sans MS\",sans-serif': 'Comic Sans MS',\r\n '\"Courier New\",Courier,monospace': 'Courier New',\r\n 'Georgia,Palatino,serif': 'Georgia',\r\n 'Helvetica,Arial,sans-serif': 'Helvetica',\r\n 'Impact,sans-serif': 'Impact',\r\n 'Symbol': 'Symbol',\r\n 'Tahoma,Arial,Helvetica,sans-serif': 'Tahoma',\r\n 'Terminal,Monaco,monospace': 'Terminal',\r\n '\"Times New Roman\",Times,serif': 'Times New Roman',\r\n '\"Trebuchet MS\",Geneva,sans-serif': 'Trebuchet MS',\r\n 'Verdana,Geneva,sans-serif': 'Verdana',\r\n 'Webdings': 'Webdings',\r\n 'Wingdings': 'Wingdings',\r\n },\r\n fontSize: [\r\n '8',\r\n '9',\r\n '10',\r\n '11',\r\n '12',\r\n '14',\r\n '18',\r\n '24',\r\n '36',\r\n ],\r\n toolbarInline: false,\r\n toolbarVisibleWithoutSelection: true,\r\n charCounterCount: true,\r\n attribution: false,\r\n quickInsertEnabled: false,\r\n spellcheck: true,\r\n wordPasteModal: true,\r\n wordPasteKeepFormatting: true,\r\n };\r\n\r\n public constructor(\r\n private taskQueue: TaskQueue,\r\n private modal: ModalService,\r\n private apiEndpointsEndpoint: ApiEndpointsEndpoint,\r\n private templateGetTemplatesEndpoint: TemplateGetTemplatesEndpoint,\r\n private templateGetTemplateHtmlEndpoint: TemplateGetTemplateHtmlEndpoint,\r\n private docMgmtGetTemplatesEndpoint: DocMgmtGetTemplatesEndpoint,\r\n private docMgmtGetTemplateEndpoint: DocMgmtGetTemplateEndpoint,\r\n private convertHtmlToPdfEndpoint: ConvertHtmlToPdfEndpoint,\r\n private htmlBase64ImageUploadEndpoint: HtmlBase64ImageUploadEndpoint,\r\n private lookups: LookupDataService,\r\n private router: AppRouter,\r\n ) {}\r\n\r\n public async attached() {\r\n this.appClientType = getAppClientType();\r\n this.appClientInstance = getAppClientInstance();\r\n\r\n try {\r\n const { data } = await this.apiEndpointsEndpoint.fetch();\r\n this._templateGeneratorHost = data?.templateGeneratorHost ?? '';\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n this.taskQueue.queueMicroTask(async () => {\r\n await this.configureEditorBasedOnContext();\r\n this.initializeEditor();\r\n });\r\n }\r\n\r\n public detached() {\r\n this.destroyEditor();\r\n }\r\n\r\n public refreshContent() {\r\n if (!this.editor || !this.taskQueue) return;\r\n\r\n this.taskQueue.queueMicroTask(() => {\r\n this.setEditorContent(this.content || '');\r\n });\r\n }\r\n\r\n protected disabledChanged(disabled: boolean) {\r\n this.enableOrDisableEditor(disabled);\r\n }\r\n\r\n protected contentChanged(content: string, oldVal) {\r\n if (!this.editor || !this.isInitialized || this.isSettingContent) return;\r\n\r\n const current = this.editor.html.get();\r\n\r\n if (!content) {\r\n this.setEditorContent('');\r\n } else if (typeof oldVal === 'undefined' || content !== current) {\r\n this.setEditorContent(content);\r\n }\r\n\r\n if (this.refreshContentOnce && content) {\r\n this.refreshContent();\r\n this.refreshContentOnce = false;\r\n }\r\n\r\n this.propagateChangeEvent();\r\n }\r\n\r\n private async initializeEditor() {\r\n if (!this.editorElement) return;\r\n\r\n if (this.enableSource) {\r\n (window as any).CodeMirror = CodeMirror;\r\n }\r\n\r\n const settings = this.buildEditorSettings();\r\n\r\n this.editor = new (FroalaEditor as any)(this.editorElement, settings, () => {\r\n this.isInitialized = true;\r\n if (this.content) {\r\n this.setEditorContent(this.content);\r\n }\r\n this.setupEditorEvents();\r\n this.enableOrDisableEditor(this.disabled);\r\n this.updatePdfPreviewButtonState();\r\n this.dispatchInitEvent();\r\n });\r\n }\r\n\r\n private buildEditorSettings(): Record {\r\n const { templates, ...rest } = this.settings || {};\r\n const settings = defaultsDeep({}, rest, this.defaultSettings);\r\n this.templates = Array.isArray(templates) ? templates : [];\r\n\r\n if (this.inline || (settings as any).inline) {\r\n settings.toolbarInline = true;\r\n settings.toolbarVisibleWithoutSelection = true;\r\n settings.iframe = false;\r\n }\r\n\r\n if (this.maxChars) {\r\n settings.charCounterMax = parseInt(this.maxChars, 10);\r\n settings.charCounterCount = true;\r\n }\r\n\r\n this.configureImageUpload(settings);\r\n\r\n if (this.enableSource) {\r\n this.updateToolbarButtons(settings, 'html', 'add');\r\n } else {\r\n this.updateToolbarButtons(settings, 'html', 'remove');\r\n }\r\n\r\n const noPreviewButtonForContexts = [\r\n IaFroalaEditorContext.Soa,\r\n IaFroalaEditorContext.RelevantRelationships,\r\n IaFroalaEditorContext.RemunerationDetails,\r\n ];\r\n const allowPreview = !noPreviewButtonForContexts.includes(this.context as IaFroalaEditorContext) && !settings.inline;\r\n this.pdfPreviewEnabled = allowPreview;\r\n if (allowPreview) {\r\n this.registerPdfPreviewCommand();\r\n this.updateToolbarButtons(settings, 'pdfpreview', 'add');\r\n settings.iaPdfPreviewOpen = () => this.openPdfPreview();\r\n settings.iaPdfPreviewDisabled = () => this.isPdfPreviewDisabled();\r\n } else {\r\n this.updateToolbarButtons(settings, 'pdfpreview', 'remove');\r\n }\r\n\r\n this.registerPageBreakCommand();\r\n\r\n // Match TinyMCE behavior: editor content is isolated (no outer page CSS leaks in).\r\n // Also apply the same content styles TinyMCE uses for document previews.\r\n if (settings.iframe) {\r\n const defaults = ['/skins/content/document/content.min.css', this.styleGuideCssUrl].filter(Boolean);\r\n const existing = Array.isArray((settings as any).iframeStyleFiles) ? (settings as any).iframeStyleFiles : [];\r\n const merged = [...existing];\r\n for (const cssFile of defaults) {\r\n if (!merged.includes(cssFile)) merged.push(cssFile);\r\n }\r\n (settings as any).iframeStyleFiles = merged;\r\n }\r\n\r\n if (this.templates.length > 0) {\r\n this.registerTemplateCommand();\r\n this.updateToolbarButtons(settings, 'template', 'add');\r\n settings.iaTemplateOpen = () => this.openTemplateModal();\r\n } else {\r\n this.updateToolbarButtons(settings, 'template', 'remove');\r\n }\r\n\r\n return settings;\r\n }\r\n\r\n private configureImageUpload(settings: Record) {\r\n const component = this;\r\n const existingEvents = settings.events && typeof settings.events === 'object'\r\n ? settings.events as Record unknown>\r\n : {};\r\n const existingBeforeUpload = existingEvents['image.beforeUpload'];\r\n\r\n settings.events = {\r\n ...existingEvents,\r\n 'image.beforeUpload': function (this: any, files: FileList | File[]) {\r\n if (typeof existingBeforeUpload === 'function') {\r\n const args = Array.prototype.slice.call(arguments);\r\n const result = existingBeforeUpload.apply(this, args);\r\n\r\n if (result === false) {\r\n return false;\r\n }\r\n }\r\n\r\n return component.handleFroalaImageBeforeUpload(this, files);\r\n },\r\n };\r\n }\r\n\r\n private handleFroalaImageBeforeUpload(editor: any, files: FileList | File[]): boolean {\r\n const file = files?.[0];\r\n if (!file) return false;\r\n\r\n void this.uploadFroalaImage(editor, file);\r\n return false;\r\n }\r\n\r\n private async uploadFroalaImage(editor: any, file: File) {\r\n try {\r\n editor?.image?.showProgressBar?.();\r\n\r\n const uploadedHtml = await this.uploadImageFile(file);\r\n const uploadedImage = this.parseUploadedImage(uploadedHtml);\r\n\r\n if (!uploadedImage) return;\r\n\r\n this.insertUploadedFroalaImage(editor, uploadedImage);\r\n } catch (error) {\r\n console.log(error);\r\n } finally {\r\n editor?.image?.hideProgressBar?.(true);\r\n }\r\n }\r\n\r\n private async uploadImageFile(file: Blob): Promise {\r\n const formData = new FormData();\r\n formData.append('file', file, file instanceof File && file.name ? file.name : 'image');\r\n\r\n const { data } = await this.htmlBase64ImageUploadEndpoint.fetch(\r\n undefined,\r\n formData,\r\n );\r\n\r\n return data;\r\n }\r\n\r\n private parseUploadedImage(uploadedHtml: string): UploadedImage | null {\r\n const normalisedHtml = this.normaliseUploadedImageHtml(uploadedHtml);\r\n if (!normalisedHtml) return null;\r\n\r\n const dom = new DOMParser().parseFromString(normalisedHtml, 'text/html');\r\n const img = dom.querySelector('img');\r\n if (!img) return null;\r\n\r\n const src = this.normaliseUploadedImageSrc(img.getAttribute('src'));\r\n if (!src) return null;\r\n\r\n img.setAttribute('src', src);\r\n\r\n return {\r\n html: img.outerHTML,\r\n src,\r\n attributes: this.getImageAttributes(img),\r\n };\r\n }\r\n\r\n private normaliseUploadedImageHtml(uploadedHtml: string): string {\r\n const trimmed = uploadedHtml?.trim();\r\n if (!trimmed) return '';\r\n\r\n if (trimmed.startsWith('\"') && trimmed.endsWith('\"')) {\r\n try {\r\n const parsed = JSON.parse(trimmed);\r\n if (typeof parsed === 'string') {\r\n return parsed.trim();\r\n }\r\n } catch {\r\n // Fall through to the escaped-fragment cleanup below.\r\n }\r\n }\r\n\r\n return trimmed\r\n .replace(/\\\\\"/g, '\"')\r\n .replace(/\\\\'/g, \"'\");\r\n }\r\n\r\n private normaliseUploadedImageSrc(src: string | null | undefined): string {\r\n const trimmed = src?.trim() ?? '';\r\n const base64Match = trimmed.match(/^(data:image\\/[^;,]+;base64,)([\\s\\S]*)$/i);\r\n\r\n if (!base64Match) {\r\n return trimmed;\r\n }\r\n\r\n return `${base64Match[1]}${base64Match[2].replace(/\\s+/g, '')}`;\r\n }\r\n\r\n private getImageAttributes(img: HTMLImageElement): Record {\r\n const attributes: Record = {};\r\n const imageAttributes = Array.prototype.slice.call(img.attributes) as Attr[];\r\n\r\n for (const attribute of imageAttributes) {\r\n if (attribute.name === 'src') continue;\r\n attributes[attribute.name] = attribute.value;\r\n }\r\n\r\n return attributes;\r\n }\r\n\r\n private insertUploadedFroalaImage(editor: any, uploadedImage: UploadedImage) {\r\n const existingImage = this.getSelectedFroalaImage(editor);\r\n\r\n if (editor?.image?.insert) {\r\n editor.image.insert(\r\n uploadedImage.src,\r\n false,\r\n uploadedImage.attributes,\r\n existingImage,\r\n { html: uploadedImage.html },\r\n );\r\n } else if (editor?.html?.insert) {\r\n editor.html.insert(uploadedImage.html, false);\r\n }\r\n\r\n editor?.undo?.saveStep?.();\r\n editor?.events?.trigger?.('contentChanged');\r\n this.syncContentFromEditor(editor);\r\n }\r\n\r\n private getSelectedFroalaImage(editor: any) {\r\n const selectedImage = editor?.image?.get?.();\r\n if (!selectedImage) return null;\r\n\r\n if (typeof selectedImage.length === 'number') {\r\n return selectedImage.length > 0 ? selectedImage : null;\r\n }\r\n\r\n return selectedImage;\r\n }\r\n\r\n private syncContentFromEditor(editor: any) {\r\n const html = editor?.html?.get?.();\r\n if (typeof html !== 'string' || html === this.content) return;\r\n\r\n this.content = html;\r\n this.propagateChangeEvent();\r\n }\r\n\r\n private ensureToolbarButton(toolbarButtons: unknown, button: string) {\r\n if (Array.isArray(toolbarButtons)) {\r\n if (!this.toolbarHasButton(toolbarButtons, button)) {\r\n const last = toolbarButtons[toolbarButtons.length - 1];\r\n if (Array.isArray(last)) {\r\n last.push(button);\r\n } else {\r\n toolbarButtons.push(button);\r\n }\r\n }\r\n return toolbarButtons;\r\n }\r\n\r\n if (!toolbarButtons) {\r\n return [button];\r\n }\r\n\r\n return toolbarButtons;\r\n }\r\n\r\n private removeToolbarButton(toolbarButtons: unknown, button: string) {\r\n if (Array.isArray(toolbarButtons)) {\r\n return toolbarButtons\r\n .map((entry) => {\r\n if (Array.isArray(entry)) {\r\n return entry.filter((item) => item !== button);\r\n }\r\n return entry === button ? null : entry;\r\n })\r\n .filter((entry) => entry !== null && (!Array.isArray(entry) || entry.length > 0));\r\n }\r\n return toolbarButtons;\r\n }\r\n\r\n private updateToolbarButtons(settings: Record, button: string, action: 'add' | 'remove') {\r\n const keys = ['toolbarButtons', 'toolbarButtonsMD', 'toolbarButtonsSM', 'toolbarButtonsXS'];\r\n for (const key of keys) {\r\n const current = settings[key];\r\n if (action === 'add') {\r\n settings[key] = this.ensureToolbarButton(current, button);\r\n } else {\r\n settings[key] = this.removeToolbarButton(current, button);\r\n }\r\n }\r\n }\r\n\r\n private toolbarHasButton(toolbarButtons: unknown[], button: string): boolean {\r\n for (const entry of toolbarButtons) {\r\n if (Array.isArray(entry)) {\r\n if (entry.includes(button)) {\r\n return true;\r\n }\r\n } else if (entry === button) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private registerTemplateCommand() {\r\n if (IaFroalaEditor.templateCommandRegistered) return;\r\n\r\n // Froala's default icon template is `svg` and expects PATH data (not a full string).\r\n (FroalaEditor as any).DefineIcon('template', {\r\n NAME: 'template',\r\n VIEWBOX: '0 0 24 24',\r\n PATH: 'M19 19v-1H5v1h14zM9 16v-4a5 5 0 116 0v4h4a2 2 0 012 2v3H3v-3c0-1.1.9-2 2-2h4zm4 0v-5l.8-.6a3 3 0 10-3.6 0l.8.6v5h2z',\r\n });\r\n (FroalaEditor as any).RegisterCommand('template', {\r\n title: 'Templates',\r\n icon: 'template',\r\n callback: function () {\r\n if (this.opts && typeof this.opts.iaTemplateOpen === 'function') {\r\n this.opts.iaTemplateOpen();\r\n }\r\n },\r\n });\r\n\r\n IaFroalaEditor.templateCommandRegistered = true;\r\n }\r\n\r\n private openTemplateModal() {\r\n if (!this.editor || this.templates.length === 0) return;\r\n\r\n if (this.editor.selection) {\r\n this.editor.selection.save();\r\n }\r\n\r\n const contentCssUrls = ['/skins/content/document/content.min.css', this.styleGuideCssUrl];\r\n\r\n const hasDocTemplateKey = (this.templates as any[]).some((t) => typeof (t as any)?.key === 'string');\r\n if ((this.context as any) === IaFroalaEditorContext.DocManagement || (hasDocTemplateKey && this.router.currentInstruction?.fragment?.includes('/documents'))) {\r\n this.modal\r\n .show('secondaryModal')\r\n .content(FroalaDocTemplateModal, {\r\n templates: this.templates,\r\n editor: this.editor,\r\n model: this.model,\r\n contentCssUrls,\r\n })\r\n .withOptions({ type: 'wide-lg' })\r\n .styles(this.modalStyles);\r\n return;\r\n }\r\n\r\n this.modal\r\n .show('secondaryModal')\r\n .content(FroalaTemplateModal, {\r\n templates: this.templates,\r\n editor: this.editor,\r\n contentCssUrls,\r\n })\r\n .withOptions({ type: 'wide-lg' })\r\n .styles(this.modalStyles);\r\n }\r\n\r\n private setupEditorEvents() {\r\n if (!this.editor) return;\r\n\r\n this.editor.events.on('contentChanged', () => {\r\n if (!this.editor || this.isSettingContent) return;\r\n const html = this.editor.html.get();\r\n if (html !== this.content) {\r\n this.content = html;\r\n }\r\n\r\n this.updatePdfPreviewButtonState();\r\n });\r\n\r\n this.editor.events.on('blur', () => {\r\n this.dispatchBlurEvent();\r\n });\r\n }\r\n\r\n private setEditorContent(html: string) {\r\n if (!this.editor) return;\r\n\r\n this.isSettingContent = true;\r\n this.editor.html.set(html);\r\n this.isSettingContent = false;\r\n }\r\n\r\n private destroyEditor() {\r\n if (!this.editor) return;\r\n try {\r\n this.editor.destroy();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n this.editor = null;\r\n this.isInitialized = false;\r\n }\r\n\r\n private enableOrDisableEditor(disabled: boolean) {\r\n if (!this.editor) return;\r\n disabled ? this.editor.edit.off() : this.editor.edit.on();\r\n }\r\n\r\n private propagateChangeEvent() {\r\n const changeEvent = DOM.createCustomEvent('change', {\r\n bubbles: true,\r\n cancelable: true,\r\n });\r\n\r\n this.editorElement?.dispatchEvent(changeEvent);\r\n }\r\n\r\n private dispatchInitEvent() {\r\n const initEvent = DOM.createCustomEvent('init', {\r\n bubbles: true,\r\n });\r\n\r\n this.editorElement?.dispatchEvent(initEvent);\r\n }\r\n\r\n private dispatchBlurEvent() {\r\n const blurEvent = DOM.createCustomEvent('blur', {\r\n bubbles: true,\r\n });\r\n\r\n this.editorElement?.dispatchEvent(blurEvent);\r\n }\r\n\r\n private registerPdfPreviewCommand() {\r\n if (IaFroalaEditor.pdfPreviewCommandRegistered) return;\r\n\r\n // TinyMCE's preview icon path (kept identical).\r\n (FroalaEditor as any).DefineIcon('pdfpreview', {\r\n NAME: 'pdfpreview',\r\n VIEWBOX: '0 0 24 24',\r\n PATH: 'M3.5 12.5c.5.8 1.1 1.6 1.8 2.3 2 2 4.2 3.2 6.7 3.2s4.7-1.2 6.7-3.2a16.2 16.2 0 002.1-2.8 15.7 15.7 0 00-2.1-2.8c-2-2-4.2-3.2-6.7-3.2a9.3 9.3 0 00-6.7 3.2A16.2 16.2 0 003.2 12c0 .2.2.3.3.5zm-2.4-1l.7-1.2L4 7.8C6.2 5.4 8.9 4 12 4c3 0 5.8 1.4 8.1 3.8a18.2 18.2 0 012.8 3.7v1l-.7 1.2-2.1 2.5c-2.3 2.4-5 3.8-8.1 3.8-3 0-5.8-1.4-8.1-3.8a18.2 18.2 0 01-2.8-3.7 1 1 0 010-1zm12-3.3a2 2 0 102.7 2.6 4 4 0 11-2.6-2.6z',\r\n });\r\n (FroalaEditor as any).RegisterCommand('pdfpreview', {\r\n title: 'PDF Preview',\r\n icon: 'pdfpreview',\r\n callback: function () {\r\n if (this.opts && typeof this.opts.iaPdfPreviewDisabled === 'function' && this.opts.iaPdfPreviewDisabled()) {\r\n return;\r\n }\r\n if (this.opts && typeof this.opts.iaPdfPreviewOpen === 'function') {\r\n this.opts.iaPdfPreviewOpen();\r\n }\r\n },\r\n refresh: function ($btn) {\r\n if (this.opts && typeof this.opts.iaPdfPreviewDisabled === 'function') {\r\n const disabled = this.opts.iaPdfPreviewDisabled();\r\n $btn.toggleClass('fr-disabled', disabled);\r\n $btn.attr('aria-disabled', disabled ? 'true' : 'false');\r\n }\r\n },\r\n });\r\n\r\n IaFroalaEditor.pdfPreviewCommandRegistered = true;\r\n }\r\n\r\n private isPdfPreviewDisabled(): boolean {\r\n if (!this.editor) return true;\r\n if (this.context === IaFroalaEditorContext.ClientAdvice) return false;\r\n return !this.content;\r\n }\r\n\r\n private updatePdfPreviewButtonState() {\r\n if (!this.editor || !this.pdfPreviewEnabled) return;\r\n const button = this.editor.$tb?.find('.fr-command[data-cmd=\"pdfpreview\"]');\r\n if (!button || !button.length) return;\r\n const disabled = this.isPdfPreviewDisabled();\r\n button.toggleClass('fr-disabled', disabled);\r\n button.attr('aria-disabled', disabled ? 'true' : 'false');\r\n }\r\n\r\n private async openPdfPreview() {\r\n if (!this.editor) return;\r\n if (this.isPdfPreviewDisabled()) return;\r\n\r\n let header = '';\r\n let title = '';\r\n\r\n if (this.context === IaFroalaEditorContext.AdditionalPage) {\r\n header = '

Additional Policy Information

';\r\n title = 'Additional Page Preview';\r\n }\r\n\r\n if (this.context === IaFroalaEditorContext.ClientAdvice) {\r\n header = '

Advice and Recommendations

';\r\n title = 'Advice and Recommendations Preview';\r\n }\r\n\r\n const html = this.editor.html.get();\r\n if (!html) return;\r\n\r\n const styledContent = `\r\n \r\n
\r\n ${header}\r\n ${html}\r\n
\r\n `;\r\n\r\n try {\r\n const headers = { Accept: 'application/pdf' };\r\n const { data: pdfBlob } = await this.convertHtmlToPdfEndpoint.fetch({ addWatermark: true }, JSON.stringify(styledContent), null, headers);\r\n if (!pdfBlob) return;\r\n\r\n const pdfBlobUrl = URL.createObjectURL(pdfBlob);\r\n const routeFragment = this.router.generate('pdfPreview', { title, url: pdfBlobUrl });\r\n const openPreview = PLATFORM.global.open(routeFragment, '_blank');\r\n if (!openPreview) {\r\n console.log('Additional page HTML preview popup blocked');\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n private get templateGeneratorHost() {\r\n return this._templateGeneratorHost || this.defaultTemplateGeneratorHost;\r\n }\r\n\r\n private get styleGuideCssUrl() {\r\n if (this.appClientInstance === 'IA') {\r\n return `${this.templateGeneratorHost}/content/document_css/${this.appClientType.toLowerCase()}_document.css`;\r\n }\r\n return `${this.templateGeneratorHost}/content/styles/${this.appClientType.toLowerCase()}-${this.appClientInstance.toLowerCase()}.css`;\r\n }\r\n\r\n private registerPageBreakCommand() {\r\n if (IaFroalaEditor.pageBreakCommandRegistered) return;\r\n\r\n (FroalaEditor as any).DefineIcon('pagebreak', {\r\n NAME: 'pagebreak',\r\n VIEWBOX: '0 0 24 24',\r\n // TinyMCE pagebreak icon.\r\n template: 'svgMultiplePath',\r\n PATHS: '',\r\n });\r\n (FroalaEditor as any).RegisterCommand('pagebreak', {\r\n title: 'Page Break',\r\n icon: 'pagebreak',\r\n undo: true,\r\n focus: true,\r\n callback: function () {\r\n this.html.insert('
');\r\n this.events && this.events.trigger('contentChanged');\r\n },\r\n });\r\n\r\n IaFroalaEditor.pageBreakCommandRegistered = true;\r\n }\r\n\r\n private async configureEditorBasedOnContext() {\r\n if (!this.context) return;\r\n\r\n // Align with TinyMCE behavior: only fetch when templates were not provided explicitly.\r\n const templatesProvided = typeof this.settings.templates !== 'undefined';\r\n\r\n switch (this.context) {\r\n case IaFroalaEditorContext.AdditionalPage:\r\n case IaFroalaEditorContext.Soa:\r\n case IaFroalaEditorContext.RelevantRelationships:\r\n case IaFroalaEditorContext.ClientAdvice:\r\n case IaFroalaEditorContext.TermsOfEngagement:\r\n case IaFroalaEditorContext.Task:\r\n if (!templatesProvided) {\r\n this.settings.templates = await this.getTemplates(this.context as IaFroalaEditorContext);\r\n }\r\n break;\r\n case IaFroalaEditorContext.DocManagement:\r\n if (!templatesProvided) {\r\n this.settings.templates = (await this.getDocTemplates(this.model)) as any;\r\n }\r\n break;\r\n case IaFroalaEditorContext.RemunerationDetails:\r\n case IaFroalaEditorContext.Default:\r\n default:\r\n if (!templatesProvided) {\r\n this.settings.templates = null;\r\n }\r\n }\r\n\r\n (this.settings as any).inline = this.inline;\r\n\r\n // Match TinyMCE: inline mode hides template + pdf preview.\r\n if (this.inline) {\r\n this.settings.templates = null;\r\n }\r\n }\r\n\r\n private async getTemplates(templateType: IaFroalaEditorContext): Promise {\r\n const { data: apiTemplates } = await this.templateGetTemplatesEndpoint.fetch({ templateType } as any);\r\n const templates: IaFroalaEditorTemplate[] = [];\r\n\r\n templates.push({ title: 'Please select...', description: '', content: '' });\r\n\r\n if (!apiTemplates?.templatesWithCategories?.length) {\r\n return templates;\r\n }\r\n\r\n // Load template HTML in the background and mutate the array (same behavior as TinyMCE).\r\n for (const tc of apiTemplates.templatesWithCategories) {\r\n for (const t of tc.templates) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.getTemplateHtmlContent(t.id, templateType)\r\n .then((content) => {\r\n templates.push({\r\n title: `${tc.category}: ${t.name}`,\r\n description: '',\r\n content: content || '',\r\n });\r\n })\r\n .catch(() => {\r\n templates.push({\r\n title: `${tc.category}: ${t.name}`,\r\n description: '',\r\n content: '',\r\n });\r\n });\r\n }\r\n }\r\n\r\n return templates;\r\n }\r\n\r\n private async getDocTemplates(model: any) {\r\n const folderType = !model.document ? model.currentFolder.folderType : model.document.entityTypeId;\r\n const entityId = !model.document ? model.currentFolder.entityId : model.document.entityId;\r\n\r\n const { data: apiTemplates } = await this.docMgmtGetTemplatesEndpoint.fetch({\r\n clientId: Number(model.clientId),\r\n folderType: FolderType[folderType],\r\n entityId,\r\n } as any);\r\n\r\n const templates = [];\r\n templates.push({ title: 'Please select...', group: null, key: null });\r\n\r\n if (!apiTemplates?.length) {\r\n return templates;\r\n }\r\n\r\n for (const template of apiTemplates) {\r\n templates.push({ title: template.templateName, group: template.groupId, key: template.templateKey });\r\n }\r\n\r\n return templates;\r\n }\r\n\r\n private async getTemplateHtmlContent(templateId: number, templateType: IaFroalaEditorContext): Promise {\r\n if (templateId <= 0) return '';\r\n\r\n const templateKey = `${templateType}Template`;\r\n let templateString: string = this.lookups.getRefDataFromLocalStorage(templateKey, templateId);\r\n\r\n if (!templateString) {\r\n const { data: html, response } = await this.templateGetTemplateHtmlEndpoint.fetch({ templateType, templateId } as any);\r\n if (!html) return '';\r\n\r\n const templateDom = new DOMParser().parseFromString(\r\n html.replace(/(?:\\\\r\\\\n|\\\\r|\\\\n)/g, '').replace(/\\\\\"/g, '\"'),\r\n 'text/html',\r\n );\r\n\r\n templateString = templateDom.querySelector('section.template')?.outerHTML || '';\r\n\r\n // Advice templates may not return a .template section.\r\n if (templateString === '') {\r\n templateString = templateDom.querySelector('section:first-child')?.outerHTML || '';\r\n }\r\n\r\n this.lookups.saveRefDataToLocalStorage(templateKey, response, templateString, templateId);\r\n }\r\n\r\n return templateString;\r\n }\r\n}\r\n","/* istanbul ignore file */\r\n\r\nimport { ModalService } from 'components/modal/modal-service';\r\nimport { PLATFORM, autoinject, useView } from 'aurelia-framework';\r\nimport { observable } from 'aurelia-typed-observable-plugin';\r\n\r\nimport 'select2/dist/js/select2';\r\n\r\nPLATFORM.moduleName('./template-modal');\r\n\r\n@autoinject()\r\n@useView(PLATFORM.moduleName('components/ia-froala-editor/template-modal.html'))\r\nexport class FroalaTemplateModal {\r\n private templates = [];\r\n private select: HTMLSelectElement;\r\n private editor;\r\n private iframeSrc = '';\r\n private contentCss = '';\r\n\r\n @observable() template;\r\n\r\n private iframeContainer: HTMLDivElement;\r\n\r\n constructor(private modal: ModalService) {}\r\n\r\n activate(data) {\r\n this.editor = data.editor;\r\n this.templates = data.templates || [];\r\n const urls: string[] = Array.isArray(data.contentCssUrls) ? data.contentCssUrls : [];\r\n if (urls.length) {\r\n this.contentCss = urls\r\n .filter(Boolean)\r\n .map((u) => {\r\n try {\r\n return new URL(u, window.location.origin).toString();\r\n } catch {\r\n return u;\r\n }\r\n })\r\n .map((u) => ``)\r\n .join('');\r\n }\r\n }\r\n\r\n attached() {\r\n // @ts-ignore\r\n $('.templateModalSelect').select2().on('select2:select', () => {\r\n const event = new Event('change');\r\n this.select.dispatchEvent(event);\r\n });\r\n }\r\n\r\n templateChanged(template) {\r\n if (template?.content) {\r\n this.updatePreview(template.content);\r\n } else {\r\n this.updatePreview('');\r\n }\r\n }\r\n\r\n updatePreview(html: string) {\r\n const iframe = document.createElement('iframe');\r\n iframe.frameBorder = 'none';\r\n\r\n const finalHtml = `\r\n \r\n \r\n ${this.contentCss}\r\n ${html}\r\n `;\r\n\r\n iframe.src = `data:text/html;charset=utf-8,${encodeURIComponent(finalHtml)}`;\r\n\r\n this.iframeContainer.innerHTML = '';\r\n this.iframeContainer.appendChild(iframe);\r\n\r\n this.iframeSrc = html;\r\n }\r\n\r\n insertTemplate(html) {\r\n if (!this.editor || !html) return;\r\n\r\n if (this.editor.selection) {\r\n this.editor.selection.restore();\r\n }\r\n\r\n this.editor.html.insert(html);\r\n\r\n if (this.editor.events) {\r\n this.editor.events.trigger('contentChanged');\r\n }\r\n }\r\n\r\n cancel() {\r\n this.modal.hide('secondaryModal');\r\n }\r\n\r\n save() {\r\n this.insertTemplate(this.iframeSrc);\r\n this.modal.hide('secondaryModal');\r\n }\r\n}\r\n","/* istanbul ignore file */\r\n\r\nimport { autoinject } from 'aurelia-framework';\r\nimport { HttpClient, json } from 'aurelia-fetch-client';\r\nimport { environment } from 'environment';\r\nimport { IaHtmlEditorContext } from './ia-html-editor';\r\n\r\nexport interface Template {\r\n id: number;\r\n name: string;\r\n content?: string;\r\n templateType: number;\r\n}\r\n\r\nexport interface TemplatesWithCategories {\r\n category: string;\r\n templates: Template[];\r\n}\r\n\r\nexport interface Templates {\r\n templatesWithCategories: TemplatesWithCategories[];\r\n templateType: number;\r\n}\r\n\r\n@autoinject()\r\nexport class Api {\r\n constructor(private http: HttpClient) { }\r\n\r\n public async getTemplates(templateType: IaHtmlEditorContext): Promise {\r\n if (templateType === IaHtmlEditorContext.Default) {\r\n return;\r\n }\r\n\r\n const endpoint = environment.templateEndpoints.getTemplates;\r\n const uri = endpoint.uri([templateType]);\r\n\r\n const result = await this.http.fetch(uri, { method: endpoint.method });\r\n\r\n if (result.ok) {\r\n return result.json();\r\n }\r\n }\r\n\r\n public async getDocTemplates(clientId: number, folderType: string, entityId: number): Promise {\r\n const endpoint = environment.documentManagement.document.getTemplates;\r\n const uri = endpoint.uri([clientId, folderType, entityId]);\r\n\r\n const result = await this.http.fetch(uri, { method: endpoint.method });\r\n\r\n if (result.ok) {\r\n return result.json();\r\n }\r\n }\r\n\r\n public async getDocTemplate(clientId: number, templateKey: string, entityId: number): Promise {\r\n const endpoint = environment.documentManagement.document.getTemplate;\r\n const uri = endpoint.uri([clientId, templateKey]);\r\n\r\n const result = await this.http.fetch(uri, { method: endpoint.method, body: json({entityId}) });\r\n\r\n if (result.ok) {\r\n return result.text();\r\n }\r\n }\r\n\r\n public async getTemplateHtml(templateType: IaHtmlEditorContext, templateId: number, returnResponse = true): Promise {\r\n if (templateType === IaHtmlEditorContext.Default) return;\r\n\r\n const endpoint = environment.templateEndpoints.getTemplateHtml;\r\n const uri = endpoint.uri([templateType, templateId]);\r\n\r\n const result = await this.http.fetch(uri, { method: endpoint.method });\r\n if (returnResponse) return result;\r\n if (result.ok) { return result.text(); }\r\n }\r\n\r\n public async getTemplateHtmlWithMetaData(templateType: IaHtmlEditorContext, templateId: number): Promise