{"version":3,"file":"eui-components-externals-quill.mjs","sources":["../../externals/quill/quill-defaults.ts","../../externals/quill/quill-editor.interfaces.ts","../../externals/quill/loader.service.ts","../../externals/quill/quill-editor.component.ts","../../externals/quill/quill.module.ts","../../externals/quill/eui-components-externals-quill.ts"],"sourcesContent":["export const defaultModules = {\n    toolbar: [\n        ['bold', 'italic', 'underline', 'strike'], // toggled buttons\n        ['blockquote', 'code-block'],\n\n        [{ header: 1 }, { header: 2 }], // custom button values\n        [{ list: 'ordered' }, { list: 'bullet' }],\n        [{ script: 'sub' }, { script: 'super' }], // superscript/subscript\n        [{ indent: '-1' }, { indent: '+1' }], // outdent/indent\n        [{ direction: 'rtl' }], // text direction\n\n        [{ size: ['small', false, 'large', 'huge'] }], // custom dropdown\n        [{ header: [1, 2, 3, 4, 5, 6, false] }],\n\n        [{ color: [] }, { background: [] }], // dropdown with defaults from theme\n        [{ font: [] }],\n        [{ align: [] }],\n\n        ['clean'], // remove formatting button\n        ['table'], // adds the insert table button\n        ['link', 'image', 'video'], // link and image, video\n    ],\n};\n","import { InjectionToken } from '@angular/core';\n\nexport type QuillToolbarConfig = Array<\n    Array<\n        | string\n        | {\n              indent?: string;\n              list?: string;\n              direction?: string;\n              header?: number | Array<boolean | number>;\n              color?: string[];\n              background?: string[];\n              align?: string[];\n              script?: string;\n              font?: string[];\n              size?: Array<boolean | string>;\n          }\n    >\n>;\n\nexport interface QuillModules {\n    [key: string]: any;\n    clipboard?:\n        | {\n              mathers?: any[];\n              matchVisual?: boolean;\n          }\n        | boolean;\n    history?:\n        | {\n              delay?: number;\n              maxStack?: number;\n              userOnly?: boolean;\n          }\n        | boolean;\n    keyboard?:\n        | {\n              bindings?: any;\n          }\n        | boolean;\n    syntax?: boolean;\n    table?: boolean;\n    toolbar?:\n        | QuillToolbarConfig\n        | string\n        | {\n              container?: string | string[] | QuillToolbarConfig;\n              handlers?: {\n                  [key: string]: any;\n              };\n          }\n        | boolean;\n}\n\nexport type QuillFormat = 'object' | 'json' | 'html' | 'text';\n\nexport interface QuillConfig {\n    bounds?: HTMLElement | string;\n    debug?: 'error' | 'warn' | 'log' | false;\n    format?: QuillFormat;\n    formats?: any;\n    modules?: QuillModules;\n    placeholder?: string;\n    readOnly?: boolean;\n    scrollingContainer?: HTMLElement | string | null;\n    theme?: string;\n    // Custom Config to track all changes or only changes by 'user'\n    trackChanges?: 'user' | 'all';\n}\n\nexport interface QuillDynamicConfig {\n    /** path for scripts and css e.g. '/assets/quill/' */\n    path: string;\n    /** path for scripts e.g. ['/assets/quill.min.js'] */\n    // scripts: string[];\n    /** path for css e.g. ['/assets/quill.snow.css'] */\n    // css: string[];\n}\n\nexport const QUILL_CONFIG_TOKEN = new InjectionToken<QuillConfig>('config');\nexport const QUILL_DYNAMIC_CONFIG_TOKEN = new InjectionToken<QuillDynamicConfig>('Dynamic loading config');\n","import { inject, Injectable } from \"@angular/core\";\n\nimport { Observable } from 'rxjs';\nimport { QUILL_DYNAMIC_CONFIG_TOKEN, QuillDynamicConfig } from \"./quill-editor.interfaces\";\nimport { DOCUMENT } from \"@angular/common\";\n\ndeclare const window: { Quill: any | undefined; quillBetterTable: any | undefined };\n\n/**\n * @internal This service is not part of the public API of the component\n */\n@Injectable({ providedIn: 'root'})\nexport class LoaderService {\n    private dynamicConfig: QuillDynamicConfig = inject(QUILL_DYNAMIC_CONFIG_TOKEN, { optional: true });\n\n    /**\n     * Load the Quill.js library\n     *\n     * @param path Path to the Quill.js library e.g. \"assets/quill/dist\". The path must contain the \"quill.js\"\n     * and \"quillEditor.min.css\" files and also the css ones.\n     */\n    load(): Observable<boolean> {\n        let loaded: boolean = false;\n        return new Observable(observer => {\n\n            // check if window.Quill is defined other load it\n            if (window.Quill === undefined) {\n                const loadResult = { mainScript: false, style: false, secondaryScript: false, };\n\n                // style\n                const quillEditorStyle: HTMLLinkElement = document.createElement('link');\n                quillEditorStyle.href = `${this.dynamicConfig?.path}/quill.core.css`;\n                quillEditorStyle.rel = 'stylesheet';\n                const quillEditorStyleOnload = () => {\n                    quillEditorStyle.removeEventListener('load', quillEditorStyleOnload);\n                    quillEditorStyle.removeEventListener('error', quillEditorOnerror);\n                    loadResult.style = true;\n                    if (Object.values(loadResult).every(v => v === true)) {\n                        observer.next(true);\n                        observer.complete();\n                        loaded = true;\n                    }\n                };\n                const quillEditorSnowStyle: HTMLLinkElement = document.createElement('link');\n                quillEditorSnowStyle.href = `${this.dynamicConfig?.path}/quill.snow.css`;\n                quillEditorSnowStyle.rel = 'stylesheet';\n\n                // script to inject into page the Quill.js\n                let quillEditorScript: HTMLScriptElement = document.createElement('script');\n                quillEditorScript.src = `${this.dynamicConfig?.path}/quill.js`;\n                quillEditorScript.type = 'application/javascript';\n                quillEditorScript.async = true;\n                const quillEditorScriptOnload = () => {\n                    quillEditorScript.removeEventListener('load', quillEditorScriptOnload);\n                    quillEditorScript.removeEventListener('error', quillEditorOnerror);\n                    loadResult.mainScript = true;\n                    document.body.append(quillBetterTableScript);\n                    if (Object.values(loadResult).every(v => v === true)) {\n                        observer.next(true);\n                        observer.complete();\n                        loaded = true;\n                    }\n                };\n\n                // script to inject into page the Quill-better-table\"node_modules/quill-better-table/dist/quill-better-table.min.js\",\n                const quillBetterTableScript: HTMLScriptElement = document.createElement('script');\n                quillBetterTableScript.src = `${this.dynamicConfig?.path}/quill-better-table.js`;\n                quillBetterTableScript.type = 'application/javascript';\n                quillBetterTableScript.async = true;\n                const quillBetterTableScriptOnload = () => {\n                    quillBetterTableScript.removeEventListener('load', quillBetterTableScriptOnload);\n                    quillBetterTableScript.removeEventListener('error', quillEditorOnerror);\n                    loadResult.secondaryScript = true;\n                    if (Object.values(loadResult).every(v => v === true)) {\n                        observer.next(true);\n                        observer.complete();\n                        loaded = true;\n                    }\n                };\n\n                const quillEditorOnerror = () => {\n                    quillEditorStyle.removeEventListener('load', quillEditorStyleOnload);\n                    quillEditorStyle.removeEventListener('error', quillEditorOnerror);\n                    quillEditorScript.removeEventListener('load', quillEditorScriptOnload);\n                    quillEditorScript.removeEventListener('error', quillEditorOnerror);\n                    observer.next(false);\n                    observer.complete();\n                };\n\n                quillEditorStyle.addEventListener('load', quillEditorStyleOnload);\n                quillEditorStyle.addEventListener('error', quillEditorOnerror);\n                quillEditorSnowStyle.addEventListener('load', quillEditorStyleOnload);\n                quillEditorSnowStyle.addEventListener('error', quillEditorOnerror);\n                quillEditorScript.addEventListener('load', quillEditorScriptOnload);\n                quillEditorScript.addEventListener('error', quillEditorOnerror);\n                quillBetterTableScript.addEventListener('load', quillBetterTableScriptOnload);\n                quillBetterTableScript.addEventListener('error', quillEditorOnerror);\n\n                // check if the script is already loaded. Take into account the Hostname on to src\n                if (document.querySelector(`script[src=\"${this.dynamicConfig?.path}/quill.js\"]`) === null) {\n                    document.body.append(quillEditorScript);\n                } else {\n                    // interval timer to check when the script is loaded\n                    const interval = setInterval(() => {\n                        if (loaded) {\n                            clearInterval(interval);\n                        } else if (window.Quill !== undefined && window.quillBetterTable !== undefined) {\n                            observer.next(true);\n                            observer.complete();\n                            loaded = true;\n                            clearInterval(interval);\n                        }\n                    }, 100);\n                }\n                // check if style is already loaded\n                if (document.querySelector(`link[href=\"${this.dynamicConfig?.path}/quill.core.css\"]`) === null) {\n                    document.body.append(quillEditorStyle);\n                }\n                // check if style is already loaded\n                if (document.querySelector(`link[href=\"${this.dynamicConfig?.path}/quill.snow.css\"]`) === null) {\n                    document.body.append(quillEditorSnowStyle);\n                }\n            } else {\n                observer.next(true);\n                observer.complete();\n            }\n        });\n    }\n}\n","import { isPlatformServer } from '@angular/common';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport {\n    QUILL_CONFIG_TOKEN,\n    QuillConfig,\n    QuillFormat,\n    QuillModules,\n} from './quill-editor.interfaces';\n\nimport {\n    AfterViewInit,\n    booleanAttribute,\n    Component,\n    ElementRef,\n    EventEmitter,\n    forwardRef,\n    Input,\n    NgZone,\n    OnChanges,\n    OnDestroy,\n    Output,\n    PLATFORM_ID,\n    Renderer2,\n    SecurityContext,\n    SimpleChanges,\n    ViewEncapsulation,\n    inject,\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\n\nimport { DOCUMENT } from '@angular/common';\nimport { defaultModules } from './quill-defaults';\nimport { ContentChange, SelectionChange, Range } from './models/editor.model';\nimport { LoaderService } from './loader.service';\n\n// Because quill uses `document` directly, we cannot `import` during SSR\n// instead, we load dynamically via `require('quill')` in `ngAfterViewInit()`\n// eslint-disable-next-line no-var\ndeclare var require: any;\n// eslint-disable-next-line no-var\ndeclare var Quill: any;\n// let Quill: any = window['Quill'];\n\nexport interface CustomOption {\n    import: string;\n    whitelist: any[];\n}\n\nconst getFormat = (format?: QuillFormat, configFormat?: QuillFormat): QuillFormat => {\n    const passedFormat = format || configFormat;\n    return passedFormat || 'html';\n};\n\n@Component({\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            multi: true,\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => QuillEditorComponent),\n        },\n        {\n            multi: true,\n            provide: NG_VALIDATORS,\n            useExisting: forwardRef(() => QuillEditorComponent),\n        },\n    ],\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'quill-editor',\n    template: `<ng-content select=\"[quill-editor-toolbar]\" />`,\n})\nexport class QuillEditorComponent implements AfterViewInit, ControlValueAccessor, OnChanges, OnDestroy, Validator {\n    quillEditor: any;\n    editorElem: HTMLElement | undefined;\n    content: any;\n    protected loaded = false;\n\n    @Input() id: string;\n    @Input() format?: 'object' | 'html' | 'text' | 'json';\n    @Input() theme?: string;\n    @Input() modules?: QuillModules;\n    @Input() debug?: 'warn' | 'log' | 'error' | false;\n    @Input() placeholder?: string;\n    @Input() maxLength?: number;\n    @Input() minLength?: number;\n    @Input() formats?: string[] | null;\n    @Input() customToolbarPosition: 'top' | 'bottom' = 'top';\n    @Input() styles: any = null;\n    @Input() scrollingContainer?: HTMLElement | string | null;\n    @Input() bounds?: HTMLElement | string;\n    @Input() customOptions: CustomOption[] = [];\n    @Input() trackChanges?: 'user' | 'all';\n    @Input() hasImageFeature: boolean;\n\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    @Output() onEditorCreated: EventEmitter<any> = new EventEmitter();\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    @Output() onContentChanged: EventEmitter<ContentChange> = new EventEmitter();\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    @Output() onSelectionChanged: EventEmitter<SelectionChange> = new EventEmitter();\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    @Output() onFocus: EventEmitter<{\n        editor: any;\n        source: string;\n    }> = new EventEmitter();\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n    @Output() onBlur: EventEmitter<{\n        editor: any;\n        source: string;\n    }> = new EventEmitter();\n\n    @Input({ transform: booleanAttribute }) readOnly?: boolean;\n    @Input({ transform: booleanAttribute }) required = false;\n    @Input({ transform: booleanAttribute }) sanitize = false;\n    @Input({ transform: booleanAttribute }) strict = true;\n    @Input({ transform: booleanAttribute }) preserveWhitespace = false;\n\n    private disabled = false;\n    private elementRef = inject(ElementRef);\n    private domSanitizer = inject(DomSanitizer);\n    private doc = inject(DOCUMENT);\n    private platformId = inject(PLATFORM_ID);\n    private renderer = inject(Renderer2);\n    private zone = inject(NgZone);\n    private config = inject<QuillConfig>(QUILL_CONFIG_TOKEN);\n    private loader = inject(LoaderService);\n\n    // eslint-disable-next-line no-empty,no-empty-function,@typescript-eslint/no-empty-function, @typescript-eslint/explicit-function-return-type\n    onModelChange(_modelValue?: any) {}\n    // eslint-disable-next-line no-empty, no-empty-function, @typescript-eslint/no-empty-function, @typescript-eslint/explicit-function-return-type\n    onModelTouched() {}\n\n    @Input()\n    valueGetter = (quillEditor: any, editorElement: HTMLElement): string | any => {\n        let html: string | null = editorElement.querySelector('.ql-editor')?.innerHTML;\n        if (html === '<p><br></p>' || html === '<div><br><div>') {\n            html = null;\n        }\n        let modelValue = html;\n        const format = getFormat(this.format, this.config.format);\n\n        if (format === 'text') {\n            modelValue = quillEditor.getText();\n        } else if (format === 'object') {\n            modelValue = quillEditor.getContents();\n        } else if (format === 'json') {\n            try {\n                modelValue = JSON.stringify(quillEditor.getContents());\n            } catch (e) {\n                modelValue = quillEditor.getText();\n            }\n        }\n\n        return modelValue;\n    };\n\n    @Input()\n    valueSetter = (quillEditor: any, value: any): any => {\n        const format = getFormat(this.format, this.config.format);\n        if (format === 'html') {\n            if (this.sanitize) {\n                value = this.domSanitizer.sanitize(SecurityContext.HTML, value);\n            }\n            return quillEditor.clipboard.convert({ html: value });\n        } else if (format === 'json') {\n            try {\n                return JSON.parse(value);\n            } catch (e) {\n                return [{ insert: value }];\n            }\n        }\n\n        return value;\n    };\n\n    ngAfterViewInit(): void {\n        // const loader = new LoaderService();\n        this.loader.load().subscribe({\n            complete: () => {\n                // setup keyboard bindings from BetterTable if present\n                const QuillBetterTable = window['quillBetterTable'];\n                if(QuillBetterTable) {\n                    // check if already registered\n                    if(!window['Quill'].imports.hasOwnProperty('modules/better-table')) {\n                        window['Quill'].register({ 'modules/better-table': QuillBetterTable });\n                    }\n                    if(!this.config.modules.keyboard) {\n                        this.config.modules.keyboard = {\n                            bindings: QuillBetterTable?.keyboardBindings,\n                        };\n                    }\n                }\n\n                if (isPlatformServer(this.platformId)) {\n                    return;\n                }\n                if (!Quill) {\n                    // Quill = require('quill')\n                    Quill = window['Quill'];\n                }\n\n                // The formats feature has changed since prod version 2.0.0.rc-3 and is now reflecting the allowed formats (white list)\n                // We no more need this function. See: https://github.com/slab/quill/releases/tag/v2.0.0-rc.3\n                // this.overrideScrollBehavior(Quill);\n\n                this.loaded = true;\n\n                this.elementRef.nativeElement.insertAdjacentHTML(\n                    this.customToolbarPosition === 'top' ? 'beforeend' : 'afterbegin',\n                    this.preserveWhitespace ? '<pre quill-editor-element></pre>' : '<div quill-editor-element></div>'\n                );\n\n                this.editorElem = this.elementRef.nativeElement.querySelector('[quill-editor-element]');\n\n                const toolbarElem = this.elementRef.nativeElement.querySelector('[quill-editor-toolbar]');\n                let modules = this.modules || this.config.modules || defaultModules;\n                if (modules.toolbar === undefined) {\n                    modules.toolbar = defaultModules.toolbar;\n                }\n\n                let placeholder = this.placeholder !== undefined ? this.placeholder : this.config.placeholder;\n                if (placeholder === undefined) {\n                    placeholder = 'Insert text here ...';\n                }\n\n                if (toolbarElem) {\n                    // eslint-disable-next-line dot-notation,@typescript-eslint/dot-notation\n                    modules['toolbar'] = toolbarElem;\n                }\n\n                if (!this.hasImageFeature) {\n                    modules['uploader'] = { handler: () => false };\n                } else {\n                    modules['uploader'] = { mimetypes: ['image/png', 'image/jpeg'] };\n                }\n\n                if (this.styles) {\n                    Object.keys(this.styles).forEach((key: string) => {\n                        this.renderer.setStyle(this.editorElem, key, this.styles[key]);\n                    });\n                }\n\n                this.customOptions.forEach((customOption) => {\n                    const newCustomOption = Quill.import(customOption.import);\n                    newCustomOption.whitelist = customOption.whitelist;\n                    Quill.register(newCustomOption, true);\n                });\n\n                let bounds = this.bounds && this.bounds === 'self' ? this.editorElem : this.bounds;\n                if (!bounds) {\n                    bounds = this.config.bounds ? this.config.bounds : this.doc.body;\n                }\n\n                let debug = this.debug;\n                if (!debug && debug !== false && this.config.debug) {\n                    debug = this.config.debug;\n                }\n\n                let readOnly = this.readOnly;\n                if (!readOnly && this.readOnly !== false) {\n                    readOnly = this.config.readOnly !== undefined ? this.config.readOnly : false;\n                }\n\n                let scrollingContainer = this.scrollingContainer;\n                if (!scrollingContainer && this.scrollingContainer !== null) {\n                    scrollingContainer =\n                        this.config.scrollingContainer === null || this.config.scrollingContainer ? this.config.scrollingContainer : null;\n                }\n\n                let formats = this.formats;\n                if (!formats && formats === undefined) {\n                    formats = this.config.formats || this.config.formats === null ? this.config.formats : undefined;\n                }\n                Quill.formats = { ...Quill.formats, [this.id]: formats };\n\n                if (formats && formats.indexOf('table') !== -1) {\n                    modules = {\n                        ...modules,\n                        'better-table': false,\n                    }\n                }\n\n                this.quillEditor = new Quill(this.editorElem, {\n                    bounds,\n                    debug,\n                    formats,\n                    modules,\n                    placeholder,\n                    readOnly,\n                    scrollingContainer,\n                    strict: this.strict,\n                    theme: this.theme || (this.config.theme ? this.config.theme : 'snow'),\n                });\n                this.quillEditor.container.firstChild.id = this.id;\n\n                if (this.content) {\n                    const format = getFormat(this.format, this.config.format);\n                    if (format === 'object') {\n                        this.quillEditor.setContents(this.content, 'silent');\n                    } else if (format === 'text') {\n                        this.quillEditor.setText(this.content, 'silent');\n                    } else if (format === 'json') {\n                        try {\n                            this.quillEditor.setContents(JSON.parse(this.content), 'silent');\n                        } catch (e) {\n                            this.quillEditor.setText(this.content, 'silent');\n                        }\n                    } else {\n                        if (this.sanitize) {\n                            this.content = this.domSanitizer.sanitize(SecurityContext.HTML, this.content);\n                        }\n                        const contents = this.quillEditor.clipboard.convert(this.content);\n                        this.quillEditor.setContents(contents, 'silent');\n                    }\n\n                    this.quillEditor.history.clear();\n                }\n\n                // initialize disabled status based on this.disabled as default value\n                this.setDisabledState();\n\n                this.onEditorCreated.emit(this.quillEditor);\n\n                // mark model as touched if editor lost focus\n                this.quillEditor.on('selection-change', this.selectionChangeHandler);\n\n                // update model if text changes\n                this.quillEditor.on('text-change', this.textChangeHandler);\n            }\n        });\n    }\n\n    selectionChangeHandler = (range: Range | null, oldRange: Range | null, source: string): void => {\n        this.zone.run(() => {\n            if (range === null) {\n                this.onBlur.emit({\n                    editor: this.quillEditor,\n                    source,\n                });\n            } else if (oldRange === null) {\n                this.onFocus.emit({\n                    editor: this.quillEditor,\n                    source,\n                });\n            }\n\n            this.onSelectionChanged.emit({\n                editor: this.quillEditor,\n                oldRange,\n                range,\n                source,\n            });\n\n            if (!range && this.onModelTouched) {\n                this.onModelTouched();\n            }\n        });\n    };\n\n    textChangeHandler = (delta: any, oldDelta: any, source: string): void => {\n        // only emit changes emitted by user interactions\n\n        const text = this.quillEditor.getText();\n        const content = this.quillEditor.getContents();\n\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        let html: string | null = this.editorElem!.querySelector('.ql-editor')!.innerHTML;\n        if (html === '<p><br></p>' || html === '<div><br><div>') {\n            html = null;\n        }\n\n        this.zone.run(() => {\n            const trackChanges = this.trackChanges || this.config.trackChanges;\n            if ((source === Quill.sources.USER || (trackChanges && trackChanges === 'all')) && this.onModelChange) {\n                this.onModelChange(\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                    this.valueGetter(this.quillEditor, this.editorElem!)\n                );\n            }\n\n            this.onContentChanged.emit({\n                content,\n                delta,\n                editor: this.quillEditor,\n                html,\n                oldDelta,\n                source,\n                text,\n            });\n        });\n    };\n\n    ngOnDestroy(): void {\n        if (this.quillEditor) {\n            this.quillEditor.off('selection-change', this.selectionChangeHandler);\n            this.quillEditor.off('text-change', this.textChangeHandler);\n        }\n    }\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if (!this.quillEditor) {\n            return;\n        }\n        if (changes.id) {\n            this.quillEditor.container.firstChild.id = changes.id.currentValue;\n            Quill.formats = { ...Quill.formats, [this.id]: this.formats };\n        }\n        if (changes['readOnly']) {\n            this.quillEditor.enable(!changes['readOnly'].currentValue);\n        }\n        if (changes['placeholder']) {\n            this.quillEditor.root.dataset.placeholder = changes['placeholder'].currentValue;\n        }\n        if (changes['styles']) {\n            const currentStyling = changes['styles'].currentValue;\n            const previousStyling = changes['styles'].previousValue;\n\n            if (previousStyling) {\n                Object.keys(previousStyling).forEach((key: string) => {\n                    this.renderer.removeStyle(this.editorElem, key);\n                });\n            }\n            if (currentStyling) {\n                Object.keys(currentStyling).forEach((key: string) => {\n                    this.renderer.setStyle(this.editorElem, key, this.styles[key]);\n                });\n            }\n        }\n        if (changes['formats']) {\n            const currentFormats = changes['formats'].currentValue;\n            Quill.formats = { ...Quill.formats, [this.id]: currentFormats };\n        }\n    }\n\n    writeValue(currentValue: any): void {\n        this.content = currentValue;\n        const format = getFormat(this.format, this.config.format);\n\n        if (this.quillEditor) {\n            if (currentValue) {\n                if (format === 'text') {\n                    this.quillEditor.setText(currentValue);\n                } else {\n                    this.quillEditor.setContents(this.valueSetter(this.quillEditor, this.content));\n                }\n                return;\n            }\n            this.quillEditor.setText('');\n        }\n    }\n\n    setDisabledState(isDisabled: boolean = this.disabled): void {\n        // store initial value to set appropriate disabled status after ViewInit\n        this.disabled = isDisabled;\n        if (this.quillEditor) {\n            if (isDisabled) {\n                this.quillEditor.disable();\n                this.renderer.setAttribute(this.elementRef.nativeElement, 'disabled', 'disabled');\n            } else {\n                if (!this.readOnly) {\n                    this.quillEditor.enable();\n                }\n                this.renderer.removeAttribute(this.elementRef.nativeElement, 'disabled');\n            }\n        }\n    }\n\n    registerOnChange(fn: (modelValue: any) => void): void {\n        this.onModelChange = fn;\n    }\n\n    registerOnTouched(fn: () => void): void {\n        this.onModelTouched = fn;\n    }\n\n    validate(): any {\n        if (!this.quillEditor) {\n            return null;\n        }\n\n        const err: {\n            minLengthError?: {\n                given: number;\n                minLength: number;\n            };\n            maxLengthError?: {\n                given: number;\n                maxLength: number;\n            };\n            requiredError?: { empty: boolean };\n        } = {};\n        let valid = true;\n\n        const textLength = this.quillEditor.getText().trim().length;\n\n        if (this.minLength && textLength && textLength < this.minLength) {\n            err.minLengthError = {\n                given: textLength,\n                minLength: this.minLength,\n            };\n\n            valid = false;\n        }\n\n        if (this.maxLength && textLength > this.maxLength) {\n            err.maxLengthError = {\n                given: textLength,\n                maxLength: this.maxLength,\n            };\n\n            valid = false;\n        }\n\n        if (this.required && !textLength) {\n            err.requiredError = {\n                empty: true,\n            };\n\n            valid = false;\n        }\n\n        return valid ? null : err;\n    }\n\n    /**\n     * Override the default Quill scroll behavior to take into account the formats array and skip non-found ones. Then\n     * registers the plugin to the Quill editor.\n     *\n     * @param QuillInstance The Quill class (not the instance)\n     * @private\n     */\n    private overrideScrollBehavior(QuillInstance: any): void {\n        // the Built-in Scroll Class is not exported, so we need to import it\n        const BuiltinScroll = QuillInstance.import('blots/scroll');\n        /**\n         * Override the default Quill scroll behavior to take into account the formats array and skip non-found ones.\n         */\n        class Scroll extends BuiltinScroll {\n            formatAt(index: number, length: number, format: string, value: any): void {\n                const elementId = this.domNode.id;\n                const instanceFormats = QuillInstance.formats[elementId];\n                // checks the formats array to see if the format is blacklisted\n                if (instanceFormats && instanceFormats.find((f) => f === format)) {\n                    return;\n                }\n                // continue with default behavior\n                super.formatAt(index, length, format, value);\n            }\n        }\n        /** register the Scroll override */\n        QuillInstance.register('blots/scroll', Scroll, true);\n    }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { defaultModules } from './quill-defaults';\nimport { QuillEditorComponent } from './quill-editor.component';\nimport { QUILL_CONFIG_TOKEN, QuillConfig } from './quill-editor.interfaces';\nimport { CommonModule } from \"@angular/common\";\n\n// TODO: integrate that module and all related code with the eui-editor module.\n//     Remove this sub-entry and move all the code to the eui-editor.\n\n/**\n * @deprecated please don't use it. It will be removed\n */\n@NgModule({\n    exports: [QuillEditorComponent],\n    imports: [CommonModule, QuillEditorComponent],\n    providers: [\n        {\n            provide: QUILL_CONFIG_TOKEN,\n            useValue: { modules: defaultModules },\n        },\n    ],\n})\nexport class QuillModule {\n    static forRoot(config?: QuillConfig): ModuleWithProviders<QuillModule> {\n        return {\n            ngModule: QuillModule,\n            providers: [\n                {\n                    provide: QUILL_CONFIG_TOKEN,\n                    // eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n                    useValue: config || { modules: defaultModules },\n                },\n            ],\n        };\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}