UNPKG

@syncfusion/ej2-richtexteditor

Version:
1,347 lines (1,346 loc) 36.1 kB
/** * Specifies common models interfaces. * * @hidden * @private */ import { EmitType, KeyboardEventArgs, Observer } from '@syncfusion/ej2-base'; import { EditorMode, EnterKey, ExportDocumentType, SelectionDirection, TriggerType } from './types'; import { MarkdownSelection } from '../markdown-parser/plugin/markdown-selection'; import { UndoRedoManager } from '../editor-manager/plugin/undo'; import { UndoRedoCommands } from '../markdown-parser/plugin/undo'; import { NodeSelection } from '../selection/selection'; import { MDSelectionFormats } from '../markdown-parser/plugin/md-selection-formats'; import { AIAssistantActions, AutoFormatPlugin, AudioCommand, CodeBlockPlugin, DOMNode, EmojiPickerAction, FormatPainterActions, IFormatPainterEditor, ImageCommand, LinkCommand, NodeCutter, PasteCleanupAction, TableCommand, VideoCommand } from '../editor-manager'; import { DOMMethods } from '../editor-manager/plugin/dom-tree'; import { MDLink, MDTable } from '../markdown-parser'; import { CustomUserAgentData } from './user-agent'; import { DropDownButton, ItemModel as DropDownItemModel } from '@syncfusion/ej2-splitbuttons'; import { ItemModel } from '@syncfusion/ej2-navigations'; import { EmojiSettingsModel } from '../models/emoji-settings-model'; import { FormatPainterSettingsModel, IFrameSettingsModel, ImageSettingsModel, PasteCleanupSettingsModel, QuickToolbarSettingsModel, TableSettingsModel } from '../models/models'; import { ClickEventArgs } from '@syncfusion/ej2-navigations'; import { Popup, Dialog } from '@syncfusion/ej2-popups'; import { ColorPickerEventArgs, ColorPickerModel } from '@syncfusion/ej2-inputs'; import { ImageInputSource, MediaInputSource } from './enum'; /** * @private */ export interface IAdvanceListItem { listStyle?: string; listImage?: string; type?: string; action?: string; } /** * @private */ export interface ICodeBlockItem { language?: string; action?: string; label?: string; enterAction?: string; currentFormat?: ICodeBlockItem; codeBlockElement?: HTMLElement; id?: string; } /** * @private */ export interface IMarkdownFormatterCallBack { selectedText?: string; editorMode?: EditorMode; action?: string; event?: KeyboardEvent | MouseEvent; requestType?: string; } /** * @private */ export interface IHtmlFormatterCallBack { selectedNode?: Element; requestType?: string; range?: Range; editorMode?: EditorMode; action?: string; elements?: Element | Element[]; imgElem?: Element | Element[]; event?: KeyboardEvent | MouseEvent | ClipboardEvent; isKeyboardEvent?: boolean; } /** * @private */ export interface IMarkdownToolbarStatus { OrderedList: boolean; UnorderedList: boolean; Formats: string; } /** * @private */ export interface IUndoCallBack { callBack?: Function; event?: Object; } /** * @private */ export interface IToolbarStatus { bold?: boolean; italic?: boolean; underline?: boolean; strikethrough?: boolean; superscript?: boolean; subscript?: boolean; fontcolor?: string; fontname?: string; fontsize?: string; backgroundcolor?: string; formats?: string; alignments?: string; lineHeight?: string; orderedlist?: boolean; unorderedlist?: boolean; inlinecode?: boolean; uppercase?: boolean; lowercase?: boolean; createlink?: boolean; insertcode?: boolean; blockquote?: boolean; numberFormatList?: string | boolean; bulletFormatList?: string | boolean; InlineCode?: boolean; isCodeBlock?: boolean; isCheckList?: boolean; } /** * @private * * * */ export interface IImageResizeFactor { topLeft: [number, number]; topRight: [number, number]; botLeft: [number, number]; botRight: [number, number]; } /** * The `ImageOrTableCursor` is used to specify the image or table cursor in Enter key Module. * * @private * @hidden * * * */ export interface ImageOrTableCursor { start: boolean; startName: string; end: boolean; endName: string; startNode?: HTMLElement; endNode?: HTMLElement; } /** * The `ImageDimension` is used to specify the width and height of the editor image. * * @private * @hidden */ export interface ImageDimension { width: number; height: number; } /** * List item properties for the list conversion in MS Word cleanup * * @private * @hidden */ export interface ListItemProperties { listType: string; content: string[]; nestedLevel: number; listFormatOverride: number; class: string; listStyle: string; listStyleTypeName: string; start: number; styleMarginLeft: string; } /** * File Info for PasteCleanup Action. * * @private * @hidden */ export interface FileInfo { /** * Returns the upload file name. */ name: string; /** * Returns the details about upload file. * */ rawFile: string | Blob; /** * Returns the size of file in bytes. */ size: number; /** * Returns the status of the file. */ status: string; /** * Returns the MIME type of file as a string. Returns empty string if the file’s type is not determined. */ type: string; /** * Returns the list of validation errors (if any). */ validationMessages: ValidationMessages; /** * Returns the current state of the file such as Failed, Canceled, Selected, Uploaded, or Uploading. */ statusCode: string; } export interface ValidationMessages { /** * Returns the minimum file size validation message, if selected file size is less than specified minFileSize property. */ minSize?: string; /** * Returns the maximum file size validation message, if selected file size is less than specified maxFileSize property. */ maxSize?: string; } /** * Provides information about a EditorModel. * * @hidden */ export interface IEditorModel { currentDocument?: Document; execCommand?: Function; observer?: Observer; markdownSelection?: MarkdownSelection; undoRedoManager?: UndoRedoManager | UndoRedoCommands; nodeSelection?: NodeSelection; mdSelectionFormats?: MDSelectionFormats; domNode?: DOMNode; nodeCutter?: NodeCutter; formatPainterEditor?: IFormatPainterEditor; domTree?: DOMMethods; linkObj?: LinkCommand | MDLink; videoObj?: VideoCommand; autoFormatObj?: AutoFormatPlugin; audioObj?: AudioCommand; imgObj?: ImageCommand; formatPainterObj?: FormatPainterActions; tableObj?: TableCommand | MDTable; pasteObj?: PasteCleanupAction; emojiPickerObj?: EmojiPickerAction; editableElement?: Element; userAgentData?: CustomUserAgentData; destroy?(): void; beforeSlashMenuApplyFormat?(): void; codeBlockObj?: CodeBlockPlugin; aiAssistantActionObj?: AIAssistantActions; } /** * Interface for checklist item model */ export interface IChecklistItemModel { /** Defines the type of the checklist item */ text: string; iconCss: string; } /** * @hidden * @private */ export interface IDropDownItemModel extends DropDownItemModel { cssClass?: string; command?: string; subCommand?: string; value?: string; text?: string; } /** * @hidden * @private */ export interface IToolbarItemModel extends ItemModel { command?: string; subCommand?: string; } /** * Represents the details of an image integrated into the Rich Text Editor. */ export interface IImageCommandsArgs { /** Specifies the `src` attribute of the image. */ url?: string; /** Represents the current selection instance. */ selection?: NodeSelection; /** Specifies the minimum, maximum, and actual width of the image. */ width?: { minWidth?: string | number; maxWidth?: string | number; width?: string | number; }; /** Specifies the minimum, maximum, and actual height of the image. */ height?: { minHeight?: string | number; maxHeight?: string | number; height?: string | number; }; /** Describes the alternate text attribute for the image. */ altText?: string; /** Defines the CSS class names to be applied to the image. */ cssClass?: string; /** Refers to the image element that is to be edited. */ selectParent?: Node[]; } /** * Provides details about an audio element added to the Rich Text Editor. */ export interface IAudioCommandsArgs { /** Specifies the source URL of the audio. */ url?: string; /** Represents the instance of the current selection within the editor. */ selection?: NodeSelection; /** Specifies the file name of the audio. */ fileName?: string; /** Specifies the CSS class to be applied to the audio element. */ cssClass?: string; /** Represents the selected parent node of the audio element to be edited. */ selectParent?: Node[]; /** Specifies the title attribute for the audio element. */ title?: string; } /** * Provides details about a video element added to the Rich Text Editor. */ export interface IVideoCommandsArgs { /** Specifies the source URL of the video. */ url?: string; /** Represents the instance of the current selection within the editor. */ selection?: NodeSelection; /** Defines the minimum, maximum, and current width of the video. */ width?: { minWidth?: string | number; maxWidth?: string | number; width?: string | number; }; /** Defines the minimum, maximum, and current height of the video. */ height?: { minHeight?: string | number; maxHeight?: string | number; height?: string | number; }; /** Specifies the file name of the video, which can be a string or a DocumentFragment. */ fileName?: string | DocumentFragment; /** Indicates whether the video link is an embedded URL. */ isEmbedUrl?: boolean; /** Specifies the CSS class to be applied to the video element. */ cssClass?: string; /** Represents the selected parent node of the video element to be edited. */ selectParent?: Node[]; /** Specifies the title attribute for the video element. */ title?: string; } /** * Provides information about a TouchData. */ export interface ITouchData { prevClientX?: number; prevClientY?: number; clientX?: number; clientY?: number; } /** * Provides details about a table added to the Rich Text Editor. */ export interface ITableCommandsArgs { /** * @private * This argument deprecated. Use `rows` argument. */ row?: number; /** Specifies the number of rows to be inserted in the table. */ rows?: number; /** Specifies the number of columns to be inserted in the table. */ columns?: number; /** Defines the minimum width, maximum width, and width of the table. */ width?: { minWidth?: string | number; maxWidth?: string | number; width?: string | number; }; /** Represents the instance of the current selection. */ selection?: NodeSelection; } /** * Provides information about a ExecuteCommandOption. */ export interface ExecuteCommandOption { undo?: boolean; } /** * @hidden * @private */ export interface StatusArgs { html: Object; markdown: Object; } /** * @hidden * @private */ export interface CleanupResizeElemArgs { name?: string; value: string; callBack(value: string): void; } /** * @hidden * @private */ export interface ICodeBlockLanguageModel { label?: string; language?: string; } /** * Provides detailed information about an actionBegin event. */ export interface ActionBeginEventArgs { /** Specifies the type of the current action. */ requestType?: string; /** Indicates whether to cancel the current action. */ cancel?: boolean; /** * Specifies the current toolbar or dropdown item involved in the action. * * @private */ item?: IToolbarItemModel | IDropDownItemModel; /** Specifies the event that initiated the action, such as mouse, keyboard, or drag events. */ originalEvent?: MouseEvent | KeyboardEvent | DragEvent; /** Specifies the name of the event. */ name?: string; /** Specifies whether the selection type is a dropdown. */ selectType?: string; /** * Provides details about URL actions. * * @private */ itemCollection?: IItemCollectionArgs; /** * Defines the emoji picker details. * * @private */ emojiPickerArgs?: IEmojiPickerArgs; /** * Defines the content to be exported. * * @private */ exportValue?: string; } export interface IEmojiPickerArgs { emojiSettings: EmojiSettingsModel; } /** * Provides detailed information about a Print event in the Rich Text Editor (RTE). */ export interface PrintEventArgs extends ActionBeginEventArgs { /** Defines the Rich Text Editor (RTE) element associated with the Print event. */ element?: Element; } /** * @private */ export interface IItemCollectionArgs { /** Defines the instance of the current selection */ selection?: NodeSelection; /** Defines the HTML elements of currently selected content */ selectNode?: Node[]; /** Defines the parent HTML elements of current selection */ selectParent?: Node[]; /** Defines the URL action details for link element */ url?: string; /** Defines the Display Text action details for link element */ text?: string; /** Defines the title of the link action details */ title?: string; /** Defines the target as string for link element */ target?: string; /** Defines the element to be inserted */ insertElement?: Element; } /** * @private */ export interface IExecutionGroup { command: string; subCommand?: string; value?: string; } /** * Provides information about a notification event in the rich text editor. */ export interface NotifyArgs { module?: string; args?: KeyboardEvent | MouseEvent | ClickEventArgs | ClipboardEvent | TouchEvent; cancel?: boolean; requestType?: string; enable?: boolean; properties?: object; selection?: NodeSelection; link?: HTMLInputElement; selectNode?: Node[]; selectParent?: Node[]; url?: string; text?: string; isWordPaste?: boolean; title?: string; target?: string; member?: string; /** Specifies the name of the notifier handling the event. */ name?: string; /** Represents the range of text selection involved in the notification. */ range?: Range; /** Describes the action associated with the notification event. */ action?: string; callBack?(args?: string | IImageCommandsArgs, cropImageData?: { [key: string]: string | boolean | number; }[], pasteTableSource?: string): void; file?: Blob; insertElement?: Element; touchData?: ITouchData; allowedStylePropertiesArray?: string[]; isPlainPaste?: boolean; formatPainterSettings?: FormatPainterSettingsModel; ariaLabel?: string; /** * Defines the source of the Table content. * * @private */ pasteTableSource?: string; } /** * Provides details about a link added to the Rich Text Editor. */ export interface ILinkCommandsArgs { /** Specifies the URL attribute of the link. */ url?: string; /** Represents the instance of the current selection. */ selection?: NodeSelection; /** Indicates the title for the link to be inserted. */ title?: string; /** Specifies the text for the link to be inserted. */ text?: string; /** Indicates the target attribute of the link. */ target?: string; /** Identifies the link element to be edited. */ selectParent?: Node[]; } /** * @hidden * @private */ export interface IDropDownItem extends ItemModel { command?: string; subCommand?: string; controlParent?: DropDownButton; listImage?: string; value?: string; label?: string; } /** * @hidden * @private */ export interface IDropDownClickArgs extends ClickEventArgs { item: IDropDownItem; } /** * @private */ export interface IToolsItems { id: string; icon?: string; tooltip?: string; command?: string; subCommand?: string; value?: string; } /** * @private */ export interface ClipboardWriteEventArgs { htmlContent: string; plainTextContent: string; operation?: string; } /** * Provides detailed information about an ActionComplete event. */ export interface ActionCompleteEventArgs { /** Specifies the type of the current action. */ requestType?: string; /** Specifies the name of the event. */ name?: string; /** Specifies the current mode of the editor. */ editorMode?: string; /** * Defines the selected elements. * * @private */ elements?: Node[]; /** Specifies the event associated with the action, such as a mouse or keyboard event. */ event?: MouseEvent | KeyboardEvent; /** * Defines the selected range. * * @private */ range?: Range; } /** * Provides details about an code block element added to the Rich Text Editor. */ export interface ICodeBlockCommandsArgs { /** Specifies the language of the code block. */ language?: string; /** Specifies the label for the code block. */ label?: string; } /** * Provides information about a BeforeSanitizeHtml event. */ export interface BeforeSanitizeHtmlArgs { /** Indicates whether the current action needs to be prevented. */ cancel?: boolean; /** A callback function executed before the inbuilt action, which should return HTML as a string. * * @function * @param {string} value - The input value. * @returns {string} - The HTML string. */ helper?: Function; /** Returns the selectors object containing both tags and attribute selectors to block cross-site scripting attacks. * It is also possible to modify the block list within this event. */ selectors?: SanitizeSelectors; } /** * Provides information about SanitizeSelectors. */ export interface SanitizeSelectors { /** Returns the list of tags. */ tags?: string[]; /** Returns the list of attributes to be removed. */ attributes?: SanitizeRemoveAttrs[]; } /** * Provides information about a SanitizeRemoveAttributes. */ export interface SanitizeRemoveAttrs { /** Defines the attribute name to sanitize. */ attribute?: string; /** Defines the selector that sanitizes the specified attributes within the selector. */ selector?: string; } /** * Provides information about a ToolbarClick event in the RichTextEditor. */ export interface ToolbarClickEventArgs { /** * Determines if the current toolbar click action can be canceled. */ cancel: boolean; /** * Defines the current Toolbar Item Object being clicked. */ item: ItemModel; /** * Contains the original mouse event arguments related to the toolbar click. */ originalEvent: MouseEvent; /** * Specifies the request type associated with the toolbar click event. */ requestType: string; /** * Specifies the name of the event. */ name?: string; } /** * @private */ export interface IShowPopupArgs { args?: MouseEvent | TouchEvent | KeyboardEvent; type?: string; isNotify: boolean; elements?: Element | Element[]; } /** * @private */ export interface OffsetPosition { left: number; top: number; } /** * Provides information about a Resize event. */ export interface ResizeArgs { /** Specifies the resize event arguments. */ event?: MouseEvent | TouchEvent; /** Describes the type of request. */ requestType?: string; /** Indicates whether the action should be canceled. */ cancel?: boolean; } /** * Provides information related to a DialogClose event in the RichTextEditor. */ export interface DialogCloseEventArgs { /** * Identifies if the current action can be canceled. */ cancel: boolean; /** * Returns the root container element of the dialog being closed. */ container: HTMLElement; /** * Provides reference to the dialog element being closed. */ element: Element; /** * Returns the original event arguments, if any. */ event: Event; /** * Determines if the dialog close event is triggered by user interaction. */ isInteracted: boolean; /** * DEPRECATED-Determines whether the event is triggered by interaction. */ isInteraction: boolean; /** * Specifies the event name, if available. */ name?: String; /** * Determines if action can be prevented; target details. */ target: HTMLElement | String; } /** * Provides information about a TableModel. */ export interface ITableModel { rteElement?: HTMLElement; tableSettings?: TableSettingsModel; readonly?: boolean; enableRtl?: boolean; enterKey?: EnterKey | string; editorMode?: EditorMode | string; quickToolbarSettings?: QuickToolbarSettingsModel; getEditPanel?(): Element; getDocument?(): Document; getCssClass(isSpace?: boolean): string; preventDefaultResize(e?: PointerEvent | MouseEvent, isDefault?: boolean): void; resizeStart(args?: ResizeArgs): void; resizing(args?: ResizeArgs): void; resizeEnd(args?: ResizeArgs): void; addRow(selectCell?: NodeSelection, e?: ClickEventArgs | KeyboardEvent, tabkey?: boolean): void; hideTableQuickToolbar(): void; removeTable(selection?: NodeSelection, args?: ClickEventArgs | KeyboardEventArgs, delKey?: boolean): void; isTableQuickToolbarVisible(): boolean; enableUndo(): void; } export interface IColorPickerModel extends ColorPickerModel { element?: HTMLElement; value?: string; command?: string; subCommand?: string; target?: string; iconCss?: string; cssClass?: string; } /** * @hidden * @private */ export interface IColorPickerEventArgs extends ColorPickerEventArgs { item?: IColorPickerModel; originalEvent: string; cancel?: boolean; } /** * @private */ export interface ITableArgs { rows?: number; columns?: number; width?: { minWidth?: string | number; maxWidth?: string | number; width?: string | number; }; selection?: NodeSelection; selectNode?: Node[]; selectParent?: Node[]; subCommand?: string; } /** * @private */ export interface ImageDragEvent extends DragEvent { rangeParent?: Element; rangeOffset?: number; } /** * @private */ export interface IMarkdownFormatterModel { element?: Element; formatTags?: { [key: string]: string; }; listTags?: { [key: string]: string; }; keyConfig?: { [key: string]: string; }; options?: { [key: string]: number; }; selectionTags?: { [key: string]: string; }; } /** * @private */ export interface IHtmlFormatterModel { currentDocument?: Document; element?: Element; keyConfig?: { [key: string]: string; }; options?: { [key: string]: number; }; formatPainterSettings?: FormatPainterSettingsModel; } /** * Provides detailed information about an image uploading event. */ export interface ImageUploadingEventArgs { /** * Defines whether the current image upload action can be prevented. */ cancel: boolean; /** * Defines the additional data in a key and value pair format that will be submitted with the upload action. */ customFormData: { [key: string]: Object; }[]; /** * Returns the XMLHttpRequest instance that is associated with the current upload action. */ currentRequest?: { [key: string]: string; }[]; /** * Returns the list of files that are scheduled to be uploaded. */ filesData: FileInfo[]; } /** * Provides information about a Paste Cleanup Action Model. */ export interface IPasteModel { rteElement?: HTMLElement; enterKey?: EnterKey | string; rootContainer?: HTMLElement; enableXhtml?: boolean; iframeSettings?: IFrameSettingsModel; pasteCleanupSettings?: PasteCleanupSettingsModel; insertImageSettings?: ImageSettingsModel; getInsertImgMaxWidth?(): string | number; getDocument?(): Document; getEditPanel?(): Element; updateValue?(): void; imageUpload?(): void; getCropImageData?(): CropImageDataItem[]; } export interface CropImageDataItem { goalWidth?: number | string | boolean; goalHeight?: number | string | boolean; cropLength?: number | string | boolean; cropTop?: number | string | boolean; cropR?: number | string | boolean; cropB?: number | string | boolean; } /** * @private */ export interface IDropDownModel { content?: string; items: IDropDownItemModel[]; iconCss?: string; itemName: string; cssClass: string; element: HTMLElement; activeElement?: HTMLElement; } /** * @private */ export interface ISplitButtonModel { content?: string; items: DropDownItemModel[]; iconCss?: string; itemName: string; cssClass: string; element: HTMLElement; } /** * @hidden * @private */ export interface IFormatPainter { /** Stores the previous action. */ previousAction: string; destroy: Function; } /** * @private */ export interface IFormatPainterArgs { /** * Defines the action to be performed. * Allowed values are 'format-copy', 'format-paste', 'escape'. */ formatPainterAction: string; } /** * Provides information about a ToolbarItems. */ export interface IToolbarItems { template?: string; tooltipText?: string; command?: string; subCommand?: string; undo?: boolean; click?: EmitType<ClickEventArgs>; } /** * Provides information about a ToolbarItemConfig. */ export interface IToolsItemConfigs { icon?: string; tooltip?: string; command?: string; subCommand?: string; value?: string; } /** * @hidden * @private */ export interface IListDropDownModel extends DropDownItemModel { cssClass?: string; command?: string; subCommand?: string; value?: string; text?: string; listStyle?: string; listImage?: string; } /** * Provides detailed information about the `beforeQuickToolbarOpen` event in the editor. */ export interface BeforeQuickToolbarOpenArgs { /** * Defines the instance of the current popup element. * * @private */ popup?: Popup; /** Determine whether the quick toolbar should be prevented from opening. */ cancel?: boolean; /** Defines the target element on which the quick toolbar is triggered. */ targetElement?: Element; /** * @private * * Defines the X-coordinate position where the quick toolbar will appear. */ positionX?: number; /** * @private * * Defines the Y-coordinate position where the quick toolbar will appear. */ positionY?: number; /** * @hidden * * Defines the trigger type of the Quick toolbar action. */ type?: TriggerType; } /** * The interface helps to generate necessary arguments for calculating the offsetX and offsetY values. * * @hidden */ export interface QuickToolbarOffsetParam { /** * Specifies the relative element of the popup. */ blockElement: HTMLElement; /** * Specifies the DOMRect of the popup relative element. */ blockRect: DOMRect; /** * Specifies the range of the editor instance. */ range: Range; /** * Specifies the current range DOMRect of the editor. */ rangeRect: DOMRect; /** * Specifies the iframe element DOMRect, when the editor is in `iframe` mode. */ iframeRect?: DOMRect; /** * Specifies the content panel element. */ contentPanelElement?: HTMLElement; /** * Specifies the editable element DOMRect. */ editPanelDomRect?: DOMRect; /** * Specifies the selection direction. */ direction: SelectionDirection; /** * Specifies the Quick toolbar trigger type. */ type: TriggerType; } /** * Provides specific details about a successful Image upload event in the RichTextEditor. */ export interface ImageSuccessEventArgs { /** * Returns the original event arguments. */ e?: object; /** * Details about the file that was successfully uploaded. */ file: FileInfo; /** * Provides the status text describing the image upload. */ statusText?: string; /** * Describes the operation performed during the upload event. */ operation: string; /** * Returns the response details of the upload event, if any. */ response?: ResponseEventArgs; /** * Specifies the name of the event. */ name?: string; /** * Specifies the HTML element related to the event. */ element?: HTMLElement; /** * Provides the detected image source related to the event. */ detectImageSource?: ImageInputSource; } /** * Provides specific details about a successful media upload event in the RichTextEditor. */ export interface MediaSuccessEventArgs { /** * Returns the original event arguments. */ e?: object; /** * Details about the media file that was successfully uploaded. */ file: FileInfo; /** * Provides the status text describing the media upload. */ statusText?: string; /** * Describes the operation performed during the upload event. */ operation: string; /** * Returns the response details of the upload event, if any. */ response?: ResponseEventArgs; /** * Specifies the name of the event. */ name?: string; /** * Specifies the HTML element related to the event. */ element?: HTMLElement; /** * Provides the detected media source related to the event. */ detectMediaSource?: MediaInputSource; } /** * Provides information about a response received after an Image upload event in the RichTextEditor. */ export interface ResponseEventArgs { /** * Returns upload image headers information, if available. */ headers?: string; /** * Returns readyState information of the upload process. */ readyState?: object; /** * Provides the status code returned for the uploaded image. */ statusCode?: object; /** * Returns the status text of the uploaded image. */ statusText?: string; /** * Indicates if the upload was performed with credentials. */ withCredentials?: boolean; } /** * @private */ export interface IColorPickerRenderArgs { items?: string[]; containerType?: string; container?: HTMLElement; } /** * Provides information about the image drop event in a rich text editor. */ export interface ImageDropEventArgs extends DragEvent { /** Determines whether the action should be prevented. */ cancel: boolean; /** Refers to the parent element of the drop range. */ rangeParent?: Element; /** Specifies the offset value for the drop range. */ rangeOffset?: number; } /** * Provides information about the media drop event in a rich text editor. */ export interface MediaDropEventArgs extends DragEvent { /** Determines whether the action should be prevented. */ cancel: boolean; /** Refers to the parent element of the drop range. */ rangeParent?: Element; /** Specifies the offset value for the drop range. */ rangeOffset?: number; /** Determines the type of media */ mediaType?: string; } /** * @private */ export interface ITableNotifyArgs { module?: string; args?: ClickEventArgs | MouseEvent | KeyboardEventArgs | TouchEvent; selection?: NodeSelection; selectNode?: Node[]; selectParent?: Node[]; cancel?: boolean; requestType?: string; enable?: boolean; properties?: object; self?: ITableModule; } /** * @hidden * @private */ export interface MetaTag { /** * The name attribute of the meta tag. */ name?: string; /** * The content attribute of the meta tag. */ content?: string; /** * The charset attribute of the meta tag. */ charset?: string; /** * The http-equiv attribute of the meta tag. */ httpEquiv?: string; /** * The property attribute of the meta tag. */ property?: string; } /** * @hidden * @private */ export interface EditTableModel { width: number; padding: number; spacing: number; } /** * @hidden * @private */ export interface ITableModule { tableObj?: TableCommand; element?: HTMLElement; popupObj?: Popup; editdlgObj?: Dialog; createTablePopupOpened?(): void; customTable?(rowValue: number, columnValue: number): void; applyTableProperties?(model: EditTableModel): void; showDialog?(isExternal: boolean, e?: NotifyArgs): void; destroy?(): void; } export interface IEmojiIcons { /** Specifies the description of the emoji icon. */ desc: string; /** Specifies the Unicode representation of the emoji icon. */ code: string; } export interface EmojiIconsSet { /** Specifies the name of the category for the Unicode. */ name: string; /** Specifies the Unicode representation of the icon displayed in the emoji picker toolbar item. */ code: string; /** Specifies the CSS class for styling the emoji icon. */ iconCss?: string; /** Specifies the collection of emoji icons. */ icons: IEmojiIcons[]; } /** * Specifies the custom slash menu item configuration. * */ export interface ISlashMenuItem { /** * Specifies the text to be displayed in the slash menu item. */ text: string; /** * Specifies the command to be executed when the slash menu item is clicked. */ command: string; /** * Specifies the icon class to be added in the slash menu item for visual representation. */ iconCss: string; /** * Specifies the description to be displayed in the slash menu item. */ description?: string; /** * Specifies the type of the slash menu item. Grouping will be done based on the type. */ type: string; } /** * Specifies the list style type and command to be executed. * * @hidden * @private */ export interface IListCommandArgs { /** * Specifies the type of the list style. */ listStyle: string; /** * Specifies the type of the list subcommand. */ type: string; } /** * Provides information about the selectionChanged event in the Rich Text Editor. */ export interface SelectionChangedEventArgs { /** * The HTML string representation of the current non-empty selection, including any inline styles and semantic tags. */ selectedContent: string; /** * The browser Selection object representing the current selection range within the editor. */ selection?: Selection; /** * Indicates if the editor is currently in HTML or Markdown mode. */ editorMode?: EditorMode | string; } /** * Provides information about the exportingDocument event in the Rich Text Editor. */ export interface ExportingEventArgs { /** * Indicates whether the editor is exporting to PDF or Word. */ exportType: ExportDocumentType; /** * Indicates the collection of form-data entries to include with the export request. * Each entry represents a key/value pair appended to the request body. */ customFormData?: { [key: string]: Object; }[]; /** * Indicates set of HTTP headers that will be merged into the export request. * Use this to add authentication tokens or any custom header values. */ currentRequest?: { [key: string]: string; }[]; }