UNPKG

angular-rich-text-editor

Version:

A lightweight, configurable rich-text editor component for Angular applications.

78 lines (77 loc) 3.79 kB
import { ElementRef, OnDestroy, OnInit, AfterViewInit, Injector, ChangeDetectorRef, NgZone } from '@angular/core'; import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms'; import { RichTextEditorService } from './rich-text-editor.service'; import { RTEImageTool, RTEPreset } from './rich-text-editor.constant'; import * as i0 from "@angular/core"; /** * Configuration options for the toolbar */ export interface RichTextEditorConfig { height?: number; width?: number | string; toolbar?: string; toolbar_custom?: string; [key: string]: any; } export declare class RichTextEditorComponent implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor, Validator { private injector; private rteService; private cdr; private ngZone; private globalLicenseKey; editorContainer: ElementRef; licenseKey: string; config: RichTextEditorConfig; rtePreset: RTEPreset | null; imageToolbarItems: (RTEImageTool | '/')[] | null; excludedToolbarItems: string[]; initialContent: string; errorMessages: { [key: string]: string; }; fileUploadHandler: (file: File, callback: (url: string | null, errorCode?: string) => void, optionalIndex?: number, optionalFiles?: File[]) => void; enableImageUpload: boolean; enableVideoEmbed: boolean; readonly: boolean; private eventManager; private editorInstance; private value; private ngControl; private changeTimer; private isDestroyed; private cleanupAttempts; private eventListeners; private domCleanupTimer; onChange: (value: any) => void; onTouched: () => void; constructor(injector: Injector, rteService: RichTextEditorService, cdr: ChangeDetectorRef, ngZone: NgZone, globalLicenseKey: string); ngOnInit(): void; ngAfterViewInit(): void; private initEditor; private cleanupExistingEditor; private setupEventListeners; private removeAllEventListeners; private updateImageToolbar; private checkImageSelection; writeValue(value: any): void; private normalizeHtml; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState?(isDisabled: boolean): void; ngOnDestroy(): void; private performCleanup; validate(control: AbstractControl): ValidationErrors | null; private fixCharacterCount; getCharacterCount(): number; get showError(): boolean; get currentErrorMessage(): string | null; private getMobileExpandedToolbar; private getDefaultMobileExpandedToolbar; private prepareConfiguration; private _applyCustomStyles; insertContentAtCursor(content: string): void; hideAllFloatPanels(): void; excludeToolbarItems(toolbar: string): string; static ɵfac: i0.ɵɵFactoryDeclaration<RichTextEditorComponent, [null, null, null, null, { optional: true; }]>; static ɵcmp: i0.ɵɵComponentDeclaration<RichTextEditorComponent, "lib-rich-text-editor", never, { "licenseKey": { "alias": "licenseKey"; "required": false; }; "config": { "alias": "config"; "required": false; }; "rtePreset": { "alias": "rtePreset"; "required": false; }; "imageToolbarItems": { "alias": "imageToolbarItems"; "required": false; }; "excludedToolbarItems": { "alias": "excludedToolbarItems"; "required": false; }; "initialContent": { "alias": "initialContent"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "fileUploadHandler": { "alias": "fileUploadHandler"; "required": false; }; "enableImageUpload": { "alias": "enableImageUpload"; "required": false; }; "enableVideoEmbed": { "alias": "enableVideoEmbed"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; }, {}, never, never, false, never>; }