{"version":3,"file":"ckeditor-ckeditor5-angular.mjs","sources":["../../src/ckeditor/ckeditor.ts","../../src/ckeditor/uid.ts","../../src/ckeditor/ckeditor.component.ts","../../src/ckeditor/ckeditor.module.ts","../../src/ckeditor/index.ts","../../src/ckeditor/ckeditor-ckeditor5-angular.ts"],"sourcesContent":["/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\ntype AnyFunction = ( ...args: Array<any> ) => any;\n\n/**\n * Basic typings for the CKEditor5 elements.\n */\nexport namespace CKEditor5 {\n\n\t/**\n\t * The CKEditor5 editor config.\n\t */\n\texport interface Config {\n\t\t[ key: string ]: any;\n\t}\n\n\t/**\n\t * The event object passed to CKEditor5 event callbacks.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor5/latest/api/module_utils_eventinfo-EventInfo.html\n\t */\n\texport interface EventInfo<EventName extends string> {\n\t\treadonly name: EventName;\n\t\treadonly path: Array<any>;\n\t\treadonly source: any;\n\t\treturn?: any;\n\n\t\toff(): void;\n\t\tstop(): void;\n\t}\n\n\t/**\n\t * The base Editor class.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html\n\t */\n\texport interface BaseEditor {\n\t\treadonly commands: any;\n\t\treadonly config: any;\n\t\treadonly conversion: any;\n\t\treadonly data: any;\n\t\treadonly editing: any;\n\t\treadonly keystrokes: any;\n\t\treadonly locale: any;\n\t\treadonly model: any;\n\t\treadonly plugins: any;\n\t\treadonly state: 'initializing' | 'ready' | 'destroyed';\n\t\treadonly isReadOnly: boolean;\n\n\t\tenableReadOnlyMode( lockId: string | symbol ): void;\n\t\tdisableReadOnlyMode( lockId: string | symbol ): void;\n\t\tdelegate( events: Array<string> ): any;\n\t\tdestroy(): Promise<void>;\n\t\texecute( commandName: string, ...params: Array<any> ): any;\n\t\tfire( eventName: string, args?: any ): any;\n\t\tlistenTo( emitter: any, eventName: string, callback: AnyFunction, options?: any ): void;\n\t\toff( eventName: string, callback: AnyFunction ): void;\n\t\ton( eventName: string, callback: AnyFunction, options?: any ): void;\n\t\tonce( eventName: string, callback: AnyFunction, options?: any ): void;\n\t\tstopListening( emitter: any, eventName: string, callback: AnyFunction ): void;\n\t\tt( ...args: Array<any> ): void;\n\n\t\t[ property: string ]: any;\n\t}\n\n\t/**\n\t * The CKEditor5 DataApi interface.\n\t *\n\t * See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_utils_dataapimixin-DataApi.html.\n\t */\n\texport interface DataApi {\n\t\tgetData(): string;\n\t\tsetData( data: string ): void;\n\t}\n\n\t/**\n\t * A CKEditor5 editor that implements the\n\t * [DataApi interface](https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_utils_dataapimixin-DataApi.html).\n\t * E.g. the `ClassicEditor`, `InlineEditor`, etc.\n\t */\n\texport interface Editor extends BaseEditor, DataApi {}\n\n\t/**\n\t * The CKEditor5 editor constructor.\n\t */\n\texport interface EditorConstructor {\n\t\tcreate( sourceElementOrData: HTMLElement | string, config?: Config ): Promise<Editor>;\n\t}\n\n\texport interface Watchdog<T> {\n\t\tsetCreator( creator: ( ...args: Array<any> ) => Promise<T> ): void;\n\t\tsetDestructor( destructor: ( item: T ) => Promise<void> ): void;\n\t\ton( event: string, callback: ( ...args: Array<any> ) => any ): void;\n\t\tdestroy(): Promise<void>;\n\t\tcreate( ...args: Array<any> ): Promise<void>;\n\t}\n\n\texport interface EditorWatchdog extends Watchdog<Editor> {\n\t\teditor: Editor;\n\t}\n\n\texport interface ContextWatchdog extends Watchdog<any> {\n\t\tcontext: any;\n\t\t_watchdogs: Map<string, EditorWatchdog>;\n\t\tadd( items: any ): Promise<void>;\n\t\tremove( items: string | Array<string> ): Promise<void>;\n\t\tgetItem( itemId: string ): Editor;\n\t\taddItemWatchdog( itemId: string, itemType: string, watchdog: Watchdog<any> ): Promise<void>;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n// A copy of @ckeditor/ckeditor5-utils/src/uid.js\n\n// A hash table of hex numbers to avoid using toString() in uid() which is costly.\n// [ '00', '01', '02', ..., 'fe', 'ff' ]\nconst HEX_NUMBERS = new Array( 256 ).fill( 0 )\n\t.map( ( val, index ) => ( '0' + ( index ).toString( 16 ) ).slice( -2 ) );\n\n/**\n * Returns a unique id. The id starts with an \"e\" character and a randomly generated string of\n * 32 alphanumeric characters.\n *\n * **Note**: The characters the unique id is built from correspond to the hex number notation\n * (from \"0\" to \"9\", from \"a\" to \"f\"). In other words, each id corresponds to an \"e\" followed\n * by 16 8-bit numbers next to each other.\n *\n * @returns An unique id string.\n */\nexport default function uid(): string {\n\t// Let's create some positive random 32bit integers first.\n\t//\n\t// 1. Math.random() is a float between 0 and 1.\n\t// 2. 0x100000000 is 2^32 = 4294967296.\n\t// 3. >>> 0 enforces integer (in JS all numbers are floating point).\n\t//\n\t// For instance:\n\t//\t\tMath.random() * 0x100000000 = 3366450031.853859\n\t// but\n\t//\t\tMath.random() * 0x100000000 >>> 0 = 3366450031.\n\tconst r1 = Math.random() * 0x100000000 >>> 0;\n\tconst r2 = Math.random() * 0x100000000 >>> 0;\n\tconst r3 = Math.random() * 0x100000000 >>> 0;\n\tconst r4 = Math.random() * 0x100000000 >>> 0;\n\n\t// Make sure that id does not start with number.\n\treturn 'e' +\n\t\tHEX_NUMBERS[ r1 >> 0 & 0xFF ] +\n\t\tHEX_NUMBERS[ r1 >> 8 & 0xFF ] +\n\t\tHEX_NUMBERS[ r1 >> 16 & 0xFF ] +\n\t\tHEX_NUMBERS[ r1 >> 24 & 0xFF ] +\n\t\tHEX_NUMBERS[ r2 >> 0 & 0xFF ] +\n\t\tHEX_NUMBERS[ r2 >> 8 & 0xFF ] +\n\t\tHEX_NUMBERS[ r2 >> 16 & 0xFF ] +\n\t\tHEX_NUMBERS[ r2 >> 24 & 0xFF ] +\n\t\tHEX_NUMBERS[ r3 >> 0 & 0xFF ] +\n\t\tHEX_NUMBERS[ r3 >> 8 & 0xFF ] +\n\t\tHEX_NUMBERS[ r3 >> 16 & 0xFF ] +\n\t\tHEX_NUMBERS[ r3 >> 24 & 0xFF ] +\n\t\tHEX_NUMBERS[ r4 >> 0 & 0xFF ] +\n\t\tHEX_NUMBERS[ r4 >> 8 & 0xFF ] +\n\t\tHEX_NUMBERS[ r4 >> 16 & 0xFF ] +\n\t\tHEX_NUMBERS[ r4 >> 24 & 0xFF ];\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport type {\n\tAfterViewInit, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport {\n\tComponent,\n\tInput,\n\tOutput,\n\tNgZone,\n\tEventEmitter,\n\tforwardRef,\n\tElementRef\n} from '@angular/core';\n\nimport EditorWatchdog from '@ckeditor/ckeditor5-watchdog/src/editorwatchdog';\nimport WatchdogConfig from '@ckeditor/ckeditor5-watchdog/src/watchdog';\nimport { first } from 'rxjs/operators';\n\nimport uid from './uid';\n\nimport type {\n\tControlValueAccessor } from '@angular/forms';\nimport {\n\tNG_VALUE_ACCESSOR\n} from '@angular/forms';\n\nimport { CKEditor5 } from './ckeditor';\n\nconst ANGULAR_INTEGRATION_READ_ONLY_LOCK_ID = 'Lock from Angular integration (@ckeditor/ckeditor5-angular)';\n\nexport interface BlurEvent {\n\tevent: CKEditor5.EventInfo<'blur'>;\n\teditor: CKEditor5.Editor;\n}\n\nexport interface FocusEvent {\n\tevent: CKEditor5.EventInfo<'focus'>;\n\teditor: CKEditor5.Editor;\n}\n\nexport interface ChangeEvent {\n\tevent: CKEditor5.EventInfo<'change:data'>;\n\teditor: CKEditor5.Editor;\n}\n\n@Component( {\n\tselector: 'ckeditor',\n\ttemplate: '<ng-template></ng-template>',\n\n\t// Integration with @angular/forms.\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tuseExisting: forwardRef( () => CKEditorComponent ),\n\t\t\tmulti: true\n\t\t}\n\t]\n} )\nexport class CKEditorComponent implements AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\t/**\n\t * The reference to the DOM element created by the component.\n\t */\n\tprivate elementRef!: ElementRef<HTMLElement>;\n\n\t/**\n\t * The constructor of the editor to be used for the instance of the component.\n\t * It can be e.g. the `ClassicEditorBuild`, `InlineEditorBuild` or some custom editor.\n\t */\n\t@Input() public editor?: CKEditor5.EditorConstructor;\n\n\t/**\n\t * The configuration of the editor.\n\t * See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editorconfig-EditorConfig.html\n\t * to learn more.\n\t */\n\t@Input() public config: CKEditor5.Config = {};\n\n\t/**\n\t * The initial data of the editor. Useful when not using the ngModel.\n\t * See https://angular.io/api/forms/NgModel to learn more.\n\t */\n\t@Input() public data = '';\n\n\t/**\n\t * Tag name of the editor component.\n\t *\n\t * The default tag is 'div'.\n\t */\n\t@Input() public tagName = 'div';\n\n\t/**\n\t * The context watchdog.\n\t */\n\t@Input() public watchdog?: CKEditor5.ContextWatchdog;\n\n\t/**\n\t * Config for the EditorWatchdog.\n\t */\n\t@Input() public editorWatchdogConfig?: WatchdogConfig;\n\n\t/**\n\t * Allows disabling the two-way data binding mechanism. Disabling it can boost performance for large documents.\n\t *\n\t * When a component is connected using the [(ngModel)] or [formControl] directives and this value is set to true then none of the data\n\t * will ever be synchronized.\n\t *\n\t * An integrator must call `editor.getData()` manually once the application needs the editor's data.\n\t * An editor instance can be received in the `ready()` callback.\n\t */\n\t@Input() public disableTwoWayDataBinding = false;\n\n\t/**\n\t * When set `true`, the editor becomes read-only.\n\t * See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html#member-isReadOnly\n\t * to learn more.\n\t */\n\t@Input() public set disabled( isDisabled: boolean ) {\n\t\tthis.setDisabledState( isDisabled );\n\t}\n\n\tpublic get disabled(): boolean {\n\t\tif ( this.editorInstance ) {\n\t\t\treturn this.editorInstance.isReadOnly;\n\t\t}\n\n\t\treturn this.initiallyDisabled;\n\t}\n\n\t/**\n\t * Fires when the editor is ready. It corresponds with the `editor#ready`\n\t * https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html#event-ready\n\t * event.\n\t */\n\t@Output() public ready = new EventEmitter<CKEditor5.Editor>();\n\n\t/**\n\t * Fires when the content of the editor has changed. It corresponds with the `editor.model.document#change`\n\t * https://ckeditor.com/docs/ckeditor5/latest/api/module_engine_model_document-Document.html#event-change\n\t * event.\n\t */\n\t@Output() public change: EventEmitter<ChangeEvent> = new EventEmitter<ChangeEvent>();\n\n\t/**\n\t * Fires when the editing view of the editor is blurred. It corresponds with the `editor.editing.view.document#blur`\n\t * https://ckeditor.com/docs/ckeditor5/latest/api/module_engine_view_document-Document.html#event-event:blur\n\t * event.\n\t */\n\t@Output() public blur: EventEmitter<BlurEvent> = new EventEmitter<BlurEvent>();\n\n\t/**\n\t * Fires when the editing view of the editor is focused. It corresponds with the `editor.editing.view.document#focus`\n\t * https://ckeditor.com/docs/ckeditor5/latest/api/module_engine_view_document-Document.html#event-event:focus\n\t * event.\n\t */\n\t@Output() public focus: EventEmitter<FocusEvent> = new EventEmitter<FocusEvent>();\n\n\t/**\n\t * Fires when the editor component crashes.\n\t */\n\t@Output() public error: EventEmitter<void> = new EventEmitter<void>();\n\n\t/**\n\t * The instance of the editor created by this component.\n\t */\n\tpublic get editorInstance(): CKEditor5.Editor | null {\n\t\tlet editorWatchdog = this.editorWatchdog;\n\n\t\tif ( this.watchdog ) {\n\t\t\t// Temporarily use the `_watchdogs` internal map as the `getItem()` method throws\n\t\t\t// an error when the item is not registered yet.\n\t\t\t// See https://github.com/ckeditor/ckeditor5-angular/issues/177.\n\t\t\teditorWatchdog = this.watchdog._watchdogs.get( this.id );\n\t\t}\n\n\t\tif ( editorWatchdog ) {\n\t\t\treturn editorWatchdog.editor;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * The editor watchdog. It is created when the context watchdog is not passed to the component.\n\t * It keeps the editor running.\n\t */\n\tprivate editorWatchdog?: CKEditor5.EditorWatchdog;\n\n\t/**\n\t * If the component is read–only before the editor instance is created, it remembers that state,\n\t * so the editor can become read–only once it is ready.\n\t */\n\tprivate initiallyDisabled = false;\n\n\t/**\n\t * An instance of https://angular.io/api/core/NgZone to allow the interaction with the editor\n\t * withing the Angular event loop.\n\t */\n\tprivate ngZone: NgZone;\n\n\t/**\n\t * A callback executed when the content of the editor changes. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tprivate cvaOnChange?: ( data: string ) => void;\n\n\t/**\n\t * A callback executed when the editor has been blurred. Part of the\n\t * `ControlValueAccessor` (https://angular.io/api/forms/ControlValueAccessor) interface.\n\t *\n\t * Note: Unset unless the component uses the `ngModel`.\n\t */\n\tprivate cvaOnTouched?: () => void;\n\n\t/**\n\t * Reference to the source element used by the editor.\n\t */\n\tprivate editorElement?: HTMLElement;\n\n\t/**\n\t * A lock flag preventing from calling the `cvaOnChange()` during setting editor data.\n\t */\n\tprivate isEditorSettingData = false;\n\n\tprivate id = uid();\n\n\tpublic constructor( elementRef: ElementRef, ngZone: NgZone ) {\n\t\tthis.ngZone = ngZone;\n\t\tthis.elementRef = elementRef;\n\n\t\t// To avoid issues with the community typings and CKEditor 5, let's treat window as any. See #342.\n\t\tconst { CKEDITOR_VERSION } = ( window as any );\n\n\t\t// Starting from v34.0.0, CKEditor 5 introduces a lock mechanism enabling/disabling the read-only mode.\n\t\t// As it is a breaking change between major releases of the integration, the component requires using\n\t\t// CKEditor 5 in version 34 or higher.\n\t\tif ( CKEDITOR_VERSION ) {\n\t\t\tconst [ major ] = CKEDITOR_VERSION.split( '.' ).map( Number );\n\n\t\t\tif ( major < 34 ) {\n\t\t\t\tconsole.warn( 'The <CKEditor> component requires using CKEditor 5 in version 34 or higher.' );\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn( 'Cannot find the \"CKEDITOR_VERSION\" in the \"window\" scope.' );\n\t\t}\n\t}\n\n\t// Implementing the OnChanges interface. Whenever the `data` property is changed, update the editor content.\n\tpublic ngOnChanges( changes: SimpleChanges ): void {\n\t\tif ( Object.prototype.hasOwnProperty.call( changes, 'data' ) && changes.data && !changes.data.isFirstChange() ) {\n\t\t\tthis.writeValue( changes.data.currentValue );\n\t\t}\n\t}\n\n\t// Implementing the AfterViewInit interface.\n\tpublic ngAfterViewInit(): void {\n\t\tthis.attachToWatchdog();\n\t}\n\n\t// Implementing the OnDestroy interface.\n\tpublic async ngOnDestroy(): Promise<void> {\n\t\tif ( this.watchdog ) {\n\t\t\tawait this.watchdog.remove( this.id );\n\t\t} else if ( this.editorWatchdog && this.editorWatchdog.editor ) {\n\t\t\tawait this.editorWatchdog.destroy();\n\n\t\t\tthis.editorWatchdog = undefined;\n\t\t}\n\t}\n\n\t// Implementing the ControlValueAccessor interface (only when binding to ngModel).\n\tpublic writeValue( value: string | null ): void {\n\t\t// This method is called with the `null` value when the form resets.\n\t\t// A component's responsibility is to restore to the initial state.\n\t\tif ( value === null ) {\n\t\t\tvalue = '';\n\t\t}\n\n\t\t// If already initialized.\n\t\tif ( this.editorInstance ) {\n\t\t\t// The lock mechanism prevents from calling `cvaOnChange()` during changing\n\t\t\t// the editor state. See #139\n\t\t\tthis.isEditorSettingData = true;\n\t\t\tthis.editorInstance.setData( value );\n\t\t\tthis.isEditorSettingData = false;\n\t\t}\n\t\t// If not, wait for it to be ready; store the data.\n\t\telse {\n\t\t\t// If the editor element is already available, then update its content.\n\t\t\tthis.data = value;\n\n\t\t\t// If not, then wait until it is ready\n\t\t\t// and change data only for the first `ready` event.\n\t\t\tthis.ready\n\t\t\t\t.pipe( first() )\n\t\t\t\t.subscribe( ( editor: CKEditor5.Editor ) => {\n\t\t\t\t\teditor.setData( this.data );\n\t\t\t\t} );\n\t\t}\n\t}\n\n\t// Implementing the ControlValueAccessor interface (only when binding to ngModel).\n\tpublic registerOnChange( callback: ( data: string ) => void ): void {\n\t\tthis.cvaOnChange = callback;\n\t}\n\n\t// Implementing the ControlValueAccessor interface (only when binding to ngModel).\n\tpublic registerOnTouched( callback: () => void ): void {\n\t\tthis.cvaOnTouched = callback;\n\t}\n\n\t// Implementing the ControlValueAccessor interface (only when binding to ngModel).\n\tpublic setDisabledState( isDisabled: boolean ): void {\n\t\t// If already initialized.\n\t\tif ( this.editorInstance ) {\n\t\t\tif ( isDisabled ) {\n\t\t\t\tthis.editorInstance.enableReadOnlyMode( ANGULAR_INTEGRATION_READ_ONLY_LOCK_ID );\n\t\t\t} else {\n\t\t\t\tthis.editorInstance.disableReadOnlyMode( ANGULAR_INTEGRATION_READ_ONLY_LOCK_ID );\n\t\t\t}\n\t\t}\n\n\t\t// Store the state anyway to use it once the editor is created.\n\t\tthis.initiallyDisabled = isDisabled;\n\t}\n\n\t/**\n\t * Creates the editor instance, sets initial editor data, then integrates\n\t * the editor with the Angular component. This method does not use the `editor.setData()`\n\t * because of the issue in the collaboration mode (#6).\n\t */\n\tprivate attachToWatchdog() {\n\t\tconst creator = async ( element: HTMLElement, config: CKEditor5.Config ) => {\n\t\t\treturn this.ngZone.runOutsideAngular( async () => {\n\t\t\t\tthis.elementRef.nativeElement.appendChild( element );\n\n\t\t\t\tconst editor = await this.editor!.create( element, config );\n\n\t\t\t\tif ( this.initiallyDisabled ) {\n\t\t\t\t\teditor.enableReadOnlyMode( ANGULAR_INTEGRATION_READ_ONLY_LOCK_ID );\n\t\t\t\t}\n\n\t\t\t\tthis.ngZone.run( () => {\n\t\t\t\t\tthis.ready.emit( editor );\n\t\t\t\t} );\n\n\t\t\t\tthis.setUpEditorEvents( editor );\n\n\t\t\t\treturn editor;\n\t\t\t} );\n\t\t};\n\n\t\tconst destructor = async ( editor: CKEditor5.Editor ) => {\n\t\t\tawait editor.destroy();\n\n\t\t\tthis.elementRef.nativeElement.removeChild( this.editorElement! );\n\t\t};\n\n\t\tconst emitError = () => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.error.emit();\n\t\t\t} );\n\t\t};\n\n\t\tconst element = document.createElement( this.tagName );\n\t\tconst config = this.getConfig();\n\n\t\tthis.editorElement = element;\n\n\t\t// Based on the presence of the watchdog decide how to initialize the editor.\n\t\tif ( this.watchdog ) {\n\t\t\t// When the context watchdog is passed add the new item to it based on the passed configuration.\n\t\t\tthis.watchdog.add( {\n\t\t\t\tid: this.id,\n\t\t\t\ttype: 'editor',\n\t\t\t\tcreator,\n\t\t\t\tdestructor,\n\t\t\t\tsourceElementOrData: element,\n\t\t\t\tconfig\n\t\t\t} );\n\n\t\t\tthis.watchdog.on( 'itemError', ( _, { itemId } ) => {\n\t\t\t\tif ( itemId === this.id ) {\n\t\t\t\t\temitError();\n\t\t\t\t}\n\t\t\t} );\n\t\t} else {\n\t\t\t// In the other case create the watchdog by hand to keep the editor running.\n\t\t\tconst editorWatchdog: CKEditor5.EditorWatchdog = new EditorWatchdog( this.editor, this.editorWatchdogConfig );\n\n\t\t\teditorWatchdog.setCreator( creator );\n\t\t\teditorWatchdog.setDestructor( destructor );\n\t\t\teditorWatchdog.on( 'error', emitError );\n\n\t\t\tthis.editorWatchdog = editorWatchdog;\n\n\t\t\tthis.editorWatchdog.create( element, config );\n\t\t}\n\t}\n\n\tprivate getConfig() {\n\t\tif ( this.data && this.config.initialData ) {\n\t\t\tthrow new Error( 'Editor data should be provided either using `config.initialData` or `data` properties.' );\n\t\t}\n\n\t\tconst config = { ...this.config };\n\n\t\t// Merge two possible ways of providing data into the `config.initialData` field.\n\t\tconst initialData = this.config.initialData || this.data;\n\n\t\tif ( initialData ) {\n\t\t\t// Define the `config.initialData` only when the initial content is specified.\n\t\t\tconfig.initialData = initialData;\n\t\t}\n\n\t\treturn config;\n\t}\n\n\t/**\n\t * Integrates the editor with the component by attaching related event listeners.\n\t */\n\tprivate setUpEditorEvents( editor: CKEditor5.Editor ): void {\n\t\tconst modelDocument = editor.model.document;\n\t\tconst viewDocument = editor.editing.view.document;\n\n\t\tmodelDocument.on( 'change:data', ( evt: CKEditor5.EventInfo<'change:data'> ) => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tif ( this.disableTwoWayDataBinding ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( this.cvaOnChange && !this.isEditorSettingData ) {\n\t\t\t\t\tconst data = editor.getData();\n\n\t\t\t\t\tthis.cvaOnChange( data );\n\t\t\t\t}\n\n\t\t\t\tthis.change.emit( { event: evt, editor } );\n\t\t\t} );\n\t\t} );\n\n\t\tviewDocument.on( 'focus', ( evt: CKEditor5.EventInfo<'focus'> ) => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tthis.focus.emit( { event: evt, editor } );\n\t\t\t} );\n\t\t} );\n\n\t\tviewDocument.on( 'blur', ( evt: CKEditor5.EventInfo<'blur'> ) => {\n\t\t\tthis.ngZone.run( () => {\n\t\t\t\tif ( this.cvaOnTouched ) {\n\t\t\t\t\tthis.cvaOnTouched();\n\t\t\t\t}\n\n\t\t\t\tthis.blur.emit( { event: evt, editor } );\n\t\t\t} );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CKEditorComponent } from './ckeditor.component';\n\n@NgModule( {\n\timports: [ FormsModule, CommonModule ],\n\tdeclarations: [ CKEditorComponent ],\n\texports: [ CKEditorComponent ]\n} )\nexport class CKEditorModule {}\n","/**\n * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\nexport * from './ckeditor';\nexport * from './ckeditor.component';\nexport * from './ckeditor.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}