devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
537 lines (406 loc) • 23.9 kB
TypeScript
/*!
* devextreme-angular
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file in the root of the project for details.
*
* https://github.com/DevExpress/devextreme-angular
*/
import { TransferState, ElementRef, NgZone, OnDestroy, EventEmitter, OnChanges, DoCheck, SimpleChanges, QueryList } from '@angular/core';
import { AIIntegration } from 'devextreme/common/ai-integration';
import { Converter, dxHtmlEditorImageUpload, dxHtmlEditorMediaResizing, dxHtmlEditorMention, ContentReadyEvent, DisposingEvent, FocusInEvent, FocusOutEvent, InitializedEvent, OptionChangedEvent, ValueChangedEvent, dxHtmlEditorTableContextMenu, dxHtmlEditorTableResizing, dxHtmlEditorToolbar, dxHtmlEditorVariables } from 'devextreme/ui/html_editor';
import { EditorStyle, ValidationMessageMode, Position, ValidationStatus } from 'devextreme/common';
import DxHtmlEditor from 'devextreme/ui/html_editor';
import { ControlValueAccessor } from '@angular/forms';
import { DxComponent, DxTemplateHost, NestedOptionHost, IterableDifferHelper, WatcherHelper, CollectionNestedOption } from 'devextreme-angular/core';
import type * as DxHtmlEditorTypes from "devextreme/ui/html_editor_types";
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/ui/nested";
import * as i2 from "devextreme-angular/ui/html-editor/nested";
import * as i3 from "devextreme-angular/core";
/**
* HTML Editor is a WYSIWYG editor that allows you to format textual and visual content and to output it in HTML. HTML Editor is built on top of and requires the DevExtreme Quill.
*/
export declare class DxHtmlEditorComponent extends DxComponent implements OnDestroy, ControlValueAccessor, OnChanges, DoCheck {
private _watcherHelper;
private _idh;
set _commandsContentChildren(value: QueryList<CollectionNestedOption>);
set _itemsContentChildren(value: QueryList<CollectionNestedOption>);
set _mentionsContentChildren(value: QueryList<CollectionNestedOption>);
set _tabsContentChildren(value: QueryList<CollectionNestedOption>);
instance: DxHtmlEditor;
/**
* Specifies the shortcut key that sets focus on the UI component.
*/
get accessKey(): string | undefined;
set accessKey(value: string | undefined);
/**
* Specifies whether the UI component changes its visual state as a result of user interaction.
*/
get activeStateEnabled(): boolean;
set activeStateEnabled(value: boolean);
/**
* Binds the AI service to the HTML Editor.
*/
get aiIntegration(): AIIntegration | undefined;
set aiIntegration(value: AIIntegration | undefined);
/**
* Allows users to break content into multiple lines within a single block element. The Shift + Enter key combination generates the new line.
*/
get allowSoftLineBreak(): boolean;
set allowSoftLineBreak(value: boolean);
/**
* Allows you to convert an HTML Editor value between different markups.
*/
get converter(): Converter | undefined;
set converter(value: Converter | undefined);
/**
* Allows you to customize the DevExtreme Quill and 3rd-party modules.
*/
get customizeModules(): ((config: any) => void);
set customizeModules(value: ((config: any) => void));
/**
* Specifies whether the UI component responds to user interaction.
*/
get disabled(): boolean;
set disabled(value: boolean);
/**
* Specifies the global attributes to be attached to the UI component's container element.
*/
get elementAttr(): Record<string, any>;
set elementAttr(value: Record<string, any>);
/**
* Specifies whether the UI component can be focused using keyboard navigation.
*/
get focusStateEnabled(): boolean;
set focusStateEnabled(value: boolean);
/**
* Specifies the UI component's height.
*/
get height(): number | string | undefined;
set height(value: number | string | undefined);
/**
* Specifies text for a hint that appears when a user pauses on the UI component.
*/
get hint(): string | undefined;
set hint(value: string | undefined);
/**
* Specifies whether the UI component changes its state when a user pauses on it.
*/
get hoverStateEnabled(): boolean;
set hoverStateEnabled(value: boolean);
/**
* Configures the image upload.
*/
get imageUpload(): dxHtmlEditorImageUpload;
set imageUpload(value: dxHtmlEditorImageUpload);
/**
* Specifies whether the component's current value differs from the initial value.
*/
get isDirty(): boolean;
set isDirty(value: boolean);
/**
* Specifies or indicates whether the editor's value is valid.
*/
get isValid(): boolean;
set isValid(value: boolean);
/**
* Configures media resizing.
*/
get mediaResizing(): dxHtmlEditorMediaResizing;
set mediaResizing(value: dxHtmlEditorMediaResizing);
/**
* Configures mentions.
*/
get mentions(): Array<dxHtmlEditorMention>;
set mentions(value: Array<dxHtmlEditorMention>);
/**
* The value to be assigned to the `name` attribute of the underlying HTML element.
*/
get name(): string;
set name(value: string);
/**
* Specifies the text displayed when the input field is empty.
*/
get placeholder(): string;
set placeholder(value: string);
/**
* Specifies whether the editor is read-only.
*/
get readOnly(): boolean;
set readOnly(value: boolean);
/**
* Switches the UI component to a right-to-left representation.
*/
get rtlEnabled(): boolean;
set rtlEnabled(value: boolean);
/**
* Specifies how the HTML Editor's toolbar and content field are styled.
*/
get stylingMode(): EditorStyle;
set stylingMode(value: EditorStyle);
/**
* Specifies the number of the element when the Tab key is used for navigating.
*/
get tabIndex(): number;
set tabIndex(value: number);
/**
* Configures table context menu settings.
*/
get tableContextMenu(): dxHtmlEditorTableContextMenu;
set tableContextMenu(value: dxHtmlEditorTableContextMenu);
/**
* Configures table resize.
*/
get tableResizing(): dxHtmlEditorTableResizing;
set tableResizing(value: dxHtmlEditorTableResizing);
/**
* Configures the UI component's toolbar.
*/
get toolbar(): dxHtmlEditorToolbar;
set toolbar(value: dxHtmlEditorToolbar);
/**
* Information on the broken validation rule. Contains the first item from the validationErrors array.
*/
get validationError(): any;
set validationError(value: any);
/**
* An array of validation errors.
*/
get validationErrors(): Array<any>;
set validationErrors(value: Array<any>);
/**
* Specifies how the message about the validation rules that are not satisfied by this editor's value is displayed.
*/
get validationMessageMode(): ValidationMessageMode;
set validationMessageMode(value: ValidationMessageMode);
/**
* Specifies the position of a validation message relative to the component. The validation message describes the validation rules that this component's value does not satisfy.
*/
get validationMessagePosition(): Position;
set validationMessagePosition(value: Position);
/**
* Indicates or specifies the current validation status.
*/
get validationStatus(): ValidationStatus;
set validationStatus(value: ValidationStatus);
/**
* Specifies the UI component's value.
*/
get value(): any;
set value(value: any);
/**
* Configures variables that are placeholders for values created once text is processed.
*/
get variables(): dxHtmlEditorVariables;
set variables(value: dxHtmlEditorVariables);
/**
* Specifies whether the UI component is visible.
*/
get visible(): boolean;
set visible(value: boolean);
/**
* Specifies the UI component's width.
*/
get width(): number | string | undefined;
set width(value: number | string | undefined);
/**
* A function that is executed when the UI component is rendered and each time the component is repainted.
*/
onContentReady: EventEmitter<ContentReadyEvent>;
/**
* A function that is executed before the UI component is disposed of.
*/
onDisposing: EventEmitter<DisposingEvent>;
/**
* A function that is executed when the UI component gets focus.
*/
onFocusIn: EventEmitter<FocusInEvent>;
/**
* A function that is executed when the UI component loses focus.
*/
onFocusOut: EventEmitter<FocusOutEvent>;
/**
* A function used in JavaScript frameworks to save the UI component instance.
*/
onInitialized: EventEmitter<InitializedEvent>;
/**
* A function that is executed after a UI component property is changed.
*/
onOptionChanged: EventEmitter<OptionChangedEvent>;
/**
* A function that is executed after the UI component's value is changed.
*/
onValueChanged: EventEmitter<ValueChangedEvent>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
accessKeyChange: EventEmitter<string | undefined>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
activeStateEnabledChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
aiIntegrationChange: EventEmitter<AIIntegration | undefined>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
allowSoftLineBreakChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
converterChange: EventEmitter<Converter | undefined>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
customizeModulesChange: EventEmitter<((config: any) => void)>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
disabledChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
elementAttrChange: EventEmitter<Record<string, any>>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
focusStateEnabledChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
heightChange: EventEmitter<number | string | undefined>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
hintChange: EventEmitter<string | undefined>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
hoverStateEnabledChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
imageUploadChange: EventEmitter<dxHtmlEditorImageUpload>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
isDirtyChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
isValidChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
mediaResizingChange: EventEmitter<dxHtmlEditorMediaResizing>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
mentionsChange: EventEmitter<Array<dxHtmlEditorMention>>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
nameChange: EventEmitter<string>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
placeholderChange: EventEmitter<string>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
readOnlyChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
rtlEnabledChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
stylingModeChange: EventEmitter<EditorStyle>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
tabIndexChange: EventEmitter<number>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
tableContextMenuChange: EventEmitter<dxHtmlEditorTableContextMenu>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
tableResizingChange: EventEmitter<dxHtmlEditorTableResizing>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
toolbarChange: EventEmitter<dxHtmlEditorToolbar>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationErrorChange: EventEmitter<any>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationErrorsChange: EventEmitter<Array<any>>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationMessageModeChange: EventEmitter<ValidationMessageMode>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationMessagePositionChange: EventEmitter<Position>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
validationStatusChange: EventEmitter<ValidationStatus>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
valueChange: EventEmitter<any>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
variablesChange: EventEmitter<dxHtmlEditorVariables>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
visibleChange: EventEmitter<boolean>;
/**
* This member supports the internal infrastructure and is not intended to be used directly from your code.
*/
widthChange: EventEmitter<number | string | undefined>;
/**
*
*/
onBlur: EventEmitter<any>;
change(_: any): void;
touched: (_: any) => void;
constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any);
protected _createInstance(element: any, options: any): DxHtmlEditor;
writeValue(value: any): void;
setDisabledState(isDisabled: boolean): void;
registerOnChange(fn: (_: any) => void): void;
registerOnTouched(fn: () => void): void;
_createWidget(element: any): void;
ngOnDestroy(): void;
ngOnChanges(changes: SimpleChanges): void;
setupChanges(prop: string, changes: SimpleChanges): void;
ngDoCheck(): void;
_setOption(name: string, value: any): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DxHtmlEditorComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<DxHtmlEditorComponent, "dx-html-editor", never, { "accessKey": { "alias": "accessKey"; "required": false; }; "activeStateEnabled": { "alias": "activeStateEnabled"; "required": false; }; "aiIntegration": { "alias": "aiIntegration"; "required": false; }; "allowSoftLineBreak": { "alias": "allowSoftLineBreak"; "required": false; }; "converter": { "alias": "converter"; "required": false; }; "customizeModules": { "alias": "customizeModules"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "elementAttr": { "alias": "elementAttr"; "required": false; }; "focusStateEnabled": { "alias": "focusStateEnabled"; "required": false; }; "height": { "alias": "height"; "required": false; }; "hint": { "alias": "hint"; "required": false; }; "hoverStateEnabled": { "alias": "hoverStateEnabled"; "required": false; }; "imageUpload": { "alias": "imageUpload"; "required": false; }; "isDirty": { "alias": "isDirty"; "required": false; }; "isValid": { "alias": "isValid"; "required": false; }; "mediaResizing": { "alias": "mediaResizing"; "required": false; }; "mentions": { "alias": "mentions"; "required": false; }; "name": { "alias": "name"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "rtlEnabled": { "alias": "rtlEnabled"; "required": false; }; "stylingMode": { "alias": "stylingMode"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "tableContextMenu": { "alias": "tableContextMenu"; "required": false; }; "tableResizing": { "alias": "tableResizing"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; "validationError": { "alias": "validationError"; "required": false; }; "validationErrors": { "alias": "validationErrors"; "required": false; }; "validationMessageMode": { "alias": "validationMessageMode"; "required": false; }; "validationMessagePosition": { "alias": "validationMessagePosition"; "required": false; }; "validationStatus": { "alias": "validationStatus"; "required": false; }; "value": { "alias": "value"; "required": false; }; "variables": { "alias": "variables"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, { "onContentReady": "onContentReady"; "onDisposing": "onDisposing"; "onFocusIn": "onFocusIn"; "onFocusOut": "onFocusOut"; "onInitialized": "onInitialized"; "onOptionChanged": "onOptionChanged"; "onValueChanged": "onValueChanged"; "accessKeyChange": "accessKeyChange"; "activeStateEnabledChange": "activeStateEnabledChange"; "aiIntegrationChange": "aiIntegrationChange"; "allowSoftLineBreakChange": "allowSoftLineBreakChange"; "converterChange": "converterChange"; "customizeModulesChange": "customizeModulesChange"; "disabledChange": "disabledChange"; "elementAttrChange": "elementAttrChange"; "focusStateEnabledChange": "focusStateEnabledChange"; "heightChange": "heightChange"; "hintChange": "hintChange"; "hoverStateEnabledChange": "hoverStateEnabledChange"; "imageUploadChange": "imageUploadChange"; "isDirtyChange": "isDirtyChange"; "isValidChange": "isValidChange"; "mediaResizingChange": "mediaResizingChange"; "mentionsChange": "mentionsChange"; "nameChange": "nameChange"; "placeholderChange": "placeholderChange"; "readOnlyChange": "readOnlyChange"; "rtlEnabledChange": "rtlEnabledChange"; "stylingModeChange": "stylingModeChange"; "tabIndexChange": "tabIndexChange"; "tableContextMenuChange": "tableContextMenuChange"; "tableResizingChange": "tableResizingChange"; "toolbarChange": "toolbarChange"; "validationErrorChange": "validationErrorChange"; "validationErrorsChange": "validationErrorsChange"; "validationMessageModeChange": "validationMessageModeChange"; "validationMessagePositionChange": "validationMessagePositionChange"; "validationStatusChange": "validationStatusChange"; "valueChange": "valueChange"; "variablesChange": "variablesChange"; "visibleChange": "visibleChange"; "widthChange": "widthChange"; "onBlur": "onBlur"; }, ["_commandsContentChildren", "_itemsContentChildren", "_mentionsContentChildren", "_tabsContentChildren"], ["*"], true, never>;
}
export declare class DxHtmlEditorModule {
static ɵfac: i0.ɵɵFactoryDeclaration<DxHtmlEditorModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<DxHtmlEditorModule, never, [typeof DxHtmlEditorComponent, typeof i1.DxoConverterModule, typeof i1.DxoImageUploadModule, typeof i1.DxoFileUploaderOptionsModule, typeof i1.DxiTabModule, typeof i1.DxoMediaResizingModule, typeof i1.DxiMentionModule, typeof i1.DxoTableContextMenuModule, typeof i1.DxiItemModule, typeof i1.DxoTableResizingModule, typeof i1.DxoToolbarModule, typeof i1.DxiCommandModule, typeof i1.DxoVariablesModule, typeof i2.DxiHtmlEditorCommandModule, typeof i2.DxoHtmlEditorConverterModule, typeof i2.DxoHtmlEditorFileUploaderOptionsModule, typeof i2.DxoHtmlEditorImageUploadModule, typeof i2.DxiHtmlEditorItemModule, typeof i2.DxoHtmlEditorMediaResizingModule, typeof i2.DxiHtmlEditorMentionModule, typeof i2.DxiHtmlEditorTabModule, typeof i2.DxoHtmlEditorTableContextMenuModule, typeof i2.DxiHtmlEditorTableContextMenuItemModule, typeof i2.DxoHtmlEditorTableResizingModule, typeof i2.DxoHtmlEditorToolbarModule, typeof i2.DxiHtmlEditorToolbarItemModule, typeof i2.DxoHtmlEditorVariablesModule, typeof i3.DxIntegrationModule, typeof i3.DxTemplateModule], [typeof DxHtmlEditorComponent, typeof i1.DxoConverterModule, typeof i1.DxoImageUploadModule, typeof i1.DxoFileUploaderOptionsModule, typeof i1.DxiTabModule, typeof i1.DxoMediaResizingModule, typeof i1.DxiMentionModule, typeof i1.DxoTableContextMenuModule, typeof i1.DxiItemModule, typeof i1.DxoTableResizingModule, typeof i1.DxoToolbarModule, typeof i1.DxiCommandModule, typeof i1.DxoVariablesModule, typeof i2.DxiHtmlEditorCommandModule, typeof i2.DxoHtmlEditorConverterModule, typeof i2.DxoHtmlEditorFileUploaderOptionsModule, typeof i2.DxoHtmlEditorImageUploadModule, typeof i2.DxiHtmlEditorItemModule, typeof i2.DxoHtmlEditorMediaResizingModule, typeof i2.DxiHtmlEditorMentionModule, typeof i2.DxiHtmlEditorTabModule, typeof i2.DxoHtmlEditorTableContextMenuModule, typeof i2.DxiHtmlEditorTableContextMenuItemModule, typeof i2.DxoHtmlEditorTableResizingModule, typeof i2.DxoHtmlEditorToolbarModule, typeof i2.DxiHtmlEditorToolbarItemModule, typeof i2.DxoHtmlEditorVariablesModule, typeof i3.DxTemplateModule]>;
static ɵinj: i0.ɵɵInjectorDeclaration<DxHtmlEditorModule>;
}
export * from 'devextreme-angular/ui/html-editor/nested';
export { DxHtmlEditorTypes };