{"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.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.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;","// Imports\nimport ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \"../../../node_modules/html-loader/dist/runtime/getUrl.js\";\nvar ___HTML_LOADER_IMPORT_0___ = new URL(\"../../img/eclipse-loader.svg\", import.meta.url);\n// Module\nvar ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\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://clone-templategenerator-cgddayhnbma7a3e0.australiaeast-01.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