novo-elements
Version:
1 lines • 16 kB
Source Map (JSON)
{"version":3,"file":"novo-elements-addons-ckeditor.mjs","sources":["../../../projects/novo-elements/src/addons/ckeditor/CKEditor.ts","../../../projects/novo-elements/src/addons/ckeditor/CKEditor.module.ts","../../../projects/novo-elements/src/addons/ckeditor/novo-elements-addons-ckeditor.ts"],"sourcesContent":["// NG2\nimport { AfterViewInit, Component, EventEmitter, forwardRef, Input, NgZone, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fixCkEditorInputEvent } from 'novo-elements/utils';\n\n// Value accessor for the component (supports ngModel)\nconst CKEDITOR_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoCKEditorElement),\n multi: true,\n};\n\ndeclare const CKEDITOR: any;\n\n// Prevents CKEDITOR from querying the page for all [contenteditable] elements (fixes a conflict against Codemirror Editor)\ntry {\n CKEDITOR.disableAutoInline = true;\n} catch (err) {\n // may be running in a context without CKEDITOR - ignore\n}\n\n/**\n * CKEditor component\n * Usage :\n * <novo-editor [(ngModel)]=\"data\" [config]=\"{...}\" debounce=\"500\"></novo-editor>\n */\n@Component({\n selector: 'novo-editor',\n providers: [CKEDITOR_CONTROL_VALUE_ACCESSOR],\n template: '<textarea [name]=\"name\" [id]=\"name\" #host></textarea>',\n styleUrls: ['./CKEditor.scss'],\n standalone: false,\n})\nexport class NovoCKEditorElement implements OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input()\n config;\n @Input()\n debounce;\n @Input()\n name;\n @Input()\n minimal;\n @Input()\n startupFocus: boolean = false;\n @Input()\n fileBrowserImageUploadUrl: string = '';\n @Input()\n disabled: boolean = false;\n\n @Output()\n change = new EventEmitter();\n @Output()\n ready = new EventEmitter();\n @Output()\n blur = new EventEmitter();\n @Output()\n focus = new EventEmitter();\n @Output()\n paste = new EventEmitter();\n @Output()\n loaded = new EventEmitter();\n @ViewChild('host')\n host;\n\n _value: string = '';\n instance;\n debounceTimeout;\n private _ckEditorFixRemoveListener?: () => void;\n\n constructor(private zone: NgZone) {}\n\n get value() {\n return this._value;\n }\n\n @Input()\n set value(v) {\n if (v !== this._value) {\n this._value = v;\n this.onChange(v);\n }\n }\n\n ngOnDestroy() {\n if (this.instance) {\n this.instance.focusManager.blur(true); // Remove focus from editor\n this._ckEditorFixRemoveListener?.();\n setTimeout(() => {\n this.instance.removeAllListeners();\n const aInstance = CKEDITOR.instances[this.instance.name];\n if (aInstance) {\n aInstance.destroy();\n }\n this.instance.destroy();\n this.instance = null;\n });\n }\n }\n\n ngAfterViewInit() {\n const config = Object.assign(this.getBaseConfig(), this.config);\n if (this.startupFocus) {\n config.startupFocus = true;\n }\n if (this.disabled) {\n config.readOnly = true;\n }\n this.ckeditorInit(config);\n }\n\n updateValue(value) {\n this.zone.run(() => {\n this.value = value;\n this.onChange(value);\n this.onTouched();\n this.change.emit(value);\n });\n }\n\n private ckeditorInit(config) {\n if (!CKEDITOR) {\n console.error('Make sure to include CKEditor sources in your dependencies!');\n return;\n }\n\n // CKEditor replace textarea\n this.instance = CKEDITOR.replace(this.host.nativeElement, config);\n this._ckEditorFixRemoveListener = fixCkEditorInputEvent(this.instance);\n\n // Set initial value\n this.instance.setData(this.value);\n\n // listen for instanceReady event\n this.instance.on('instanceReady', (evt) => {\n // send the evt to the EventEmitter\n this.ready.emit(evt);\n });\n\n // CKEditor change event\n this.instance.on('change', () => {\n this.onTouched();\n const value = this.instance.getData();\n\n // Debounce update\n if (this.debounce) {\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n this.updateValue(value);\n this.debounceTimeout = null;\n }, parseInt(this.debounce, 10));\n } else {\n this.updateValue(value);\n }\n });\n this.instance.on('blur', (event) => {\n this.blur.emit(event);\n });\n this.instance.on('focus', (event) => {\n this.focus.emit(event);\n });\n this.instance.on('paste', (event) => {\n this.paste.emit(event);\n });\n this.instance.on('loaded', (event) => {\n this.loaded.emit(event);\n });\n }\n\n getBaseConfig(): { [key: string]: any } {\n const baseConfig = {\n enterMode: CKEDITOR.ENTER_BR,\n entities: false,\n shiftEnterMode: CKEDITOR.ENTER_P,\n disableNativeSpellChecker: false,\n removePlugins: 'liststyle,tabletools,contextmenu,tableselection', // allows browser based spell checking\n extraAllowedContent: '*(*){*};table tbody tr td th[*];', // allows class names (*) and inline styles {*} for all and attributes [*] on tables\n font_names:\n 'Arial/Arial, Helvetica, sans-serif;' +\n 'Calibri/Calibri, Verdana, Geneva, sans-serif;' +\n 'Comic Sans MS/Comic Sans MS, cursive;' +\n 'Courier New/Courier New, Courier, monospace;' +\n 'Georgia/Georgia, serif;' +\n 'Lucida Sans Unicode/Lucida Sans Unicode, Lucida Grande, sans-serif;' +\n 'Tahoma/Tahoma, Geneva, sans-serif;' +\n 'Times New Roman/Times New Roman, Times, serif;' +\n 'Trebuchet MS/Trebuchet MS, Helvetica, sans-serif;' +\n 'Verdana/Verdana, Geneva, sans-serif',\n };\n\n const minimalConfig = {\n toolbar: [\n {\n name: 'basicstyles',\n items: [\n 'Styles',\n 'FontSize',\n 'Bold',\n 'Italic',\n 'Underline',\n 'TextColor',\n '-',\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Link',\n ],\n },\n ],\n };\n\n const extendedConfig = {\n toolbar: [\n { name: 'clipboard', items: ['Paste', 'PasteText', 'PasteFromWord', 'Undo', 'Redo'] },\n {\n name: 'paragraph',\n items: [\n 'NumberedList',\n 'BulletedList',\n 'Outdent',\n 'Indent',\n 'Blockquote',\n 'JustifyLeft',\n 'JustifyCenter',\n 'JustifyRight',\n 'JustifyBlock',\n 'BidiLtr',\n 'BidiRtl',\n ],\n },\n { name: 'links', items: ['Link'] },\n { name: 'insert', items: ['Image', 'Table', 'HorizontalRule'] },\n { name: 'tools', items: ['Maximize', 'Source'] },\n '/', // line break\n { name: 'basicstyles', items: ['Bold', 'Italic', 'Underline', 'Strike', 'Subscript', 'Superscript'] },\n { name: 'styles', items: ['Styles', 'Format', 'Font', 'FontSize'] },\n { name: 'colors', items: ['TextColor', 'BGColor'] },\n ],\n filebrowserImageUploadUrl: this.fileBrowserImageUploadUrl,\n };\n\n return Object.assign(baseConfig, this.minimal ? minimalConfig : extendedConfig);\n }\n\n writeValue(value) {\n this._value = value;\n if (this.instance) {\n this.instance.setData(value);\n }\n }\n\n onChange(value?: any) {}\n\n onTouched(event?) {}\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n setDisabledState(disabled: boolean): void {\n this.disabled = disabled;\n if (this.instance) {\n CKEDITOR.instances[this.instance.name].setReadOnly(disabled);\n }\n }\n\n insertText(text) {\n const trimmedText = text.trim();\n this.instance.insertText(trimmedText);\n }\n}\n","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n// APP\nimport { NovoCKEditorElement } from './CKEditor';\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [NovoCKEditorElement],\n exports: [NovoCKEditorElement],\n})\nexport class NovoNovoCKEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}