devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
161 lines (160 loc) • 6.96 kB
TypeScript
import { RangeCopy } from './model/manipulators/range/create-range-copy-operation';
import { DomEventHandlersHolder } from '@devexpress/utils/lib/class/event-handlers-holder';
import { IEventManager } from './interfaces/i-event-manager';
import { IRichEditControl } from './interfaces/i-rich-edit-core';
import { HtmlBuilder } from './formats/html/export/html-builder';
export declare const INPUT_CLASS_NAME = "dxreInputTarget";
declare enum IMEState {
None = 0,
Start = 1,
Process = 2
}
export declare abstract class InputEditorBase<TInpElement extends HTMLElement> {
private newLineRegexp;
eventManager: IEventManager;
control: IRichEditControl;
inputElement: TInpElement;
previousText: string;
canInsertTextOnInputEvent: boolean;
needProcessShortcut: boolean;
initializedIfNotReadOnly: boolean;
prevKeyCode: number;
IMEState: IMEState;
private inputWithAlt;
private processTextOnKeyPress;
protected evtHandlersHolder: DomEventHandlersHolder;
private keyPressTimerId;
private imeTimerId;
private onInputTimerId;
private onBlurTimerId;
private onKeyUpTimerId;
constructor(control: IRichEditControl, eventManager: IEventManager, parent: HTMLElement);
dispose(): void;
initialize(): void;
initializeIfNotReadOnly(): void;
initializeIfNotReadOnlyCore(): void;
initEvents(): void;
createHierarchy(parent: HTMLElement): void;
createHierarchyCore(): void;
createInputElement(): TInpElement;
onInput(evt: InputEvent): void;
onBlur(_evt: FocusEvent): void;
onFocus(): void;
onKeyDown(evt: KeyboardEvent): void;
protected isProcessShortcut(keyCode: number): boolean;
onKeyUp(evt: KeyboardEvent): void;
onKeyPress(evt: KeyboardEvent): void;
onContextMenu(evt: MouseEvent): void;
onShortcut(evt: KeyboardEvent): boolean;
onShortcutCore(evt: KeyboardEvent, shortcutCode: number): void;
onText(text: string, currentText: string, isUpdated: boolean): void;
onTextReplace(_text: string, currentText: string): void;
onTextInput(_data: string | undefined): void;
tryObtainCodeFromChar(char: string): number;
captureFocus(): void;
canUseInputEvent(): boolean;
getEditableDocumentText(keepLineBreakes?: boolean): string;
getEditableTextOwner(): HTMLElement;
setPosition(left: number, top: number): void;
clearInputElement(): void;
setEditableDocumentContent(_content: string | NodeListOf<ChildNode>): void;
setEditableDocumentCursorPosition(_cursorPosition: number): void;
selectEditableDocumentContent(): void;
getEditableDocumentContent(): string | NodeListOf<ChildNode>;
abstract getEditableDocument(): HTMLElement | Document;
getNormalizedEvent(evt: Event): any;
recreateIfNeeded(): void;
private getShortcutCode;
}
export declare class DivInputEditor extends InputEditorBase<HTMLElement> {
private canSkipInputEvent;
private canSkipFocusAndBlur;
private handled;
private cursorWasSetOnLastPosition;
private clearInputTimerId;
private lastCursorPosition;
private composUpdateTimerId;
private composEndTimerId;
private onTextInputTimerId;
constructor(control: IRichEditControl, eventManager: IEventManager, parent: HTMLElement);
dispose(): void;
initializeIfNotReadOnlyCore(): void;
setPosition(left: number, top: number): void;
createInputElement(): HTMLElement;
initEvents(): void;
onKeyDown(evt: KeyboardEvent): void;
onKeyUp(evt: KeyboardEvent): void;
onInput(evt: InputEvent): void;
onFocus(): void;
onBlur(evt: FocusEvent): void;
onShortcutCore(evt: KeyboardEvent, shortcutCode: number): void;
onTextReplace(text: string, currentText: string): void;
onTextInput(data: string): void;
private tryHandleShortcutByInputString;
getEditableTextOwner(): HTMLElement;
captureFocus(): void;
getEditableDocument(): HTMLElement | Document;
clearInputElement(): void;
setEditableDocumentContent(content: string | NodeListOf<ChildNode>): void;
setEditableDocumentCursorPosition(cursorPosition: number): void;
getEditableDocumentText(): string;
getEditableDocumentFullText(): string;
getEditableDocumentContent(): string | NodeListOf<ChildNode>;
getEditableDocumentCursorPosition(): number;
selectEditableDocumentContent(): void;
onCompositionStart(_evt: KeyboardEvent): void;
onCompositionUpdate(_evt: KeyboardEvent): void;
onCompositionEnd(_evt: KeyboardEvent): void;
}
export declare class IFrameInputEditor extends InputEditorBase<HTMLIFrameElement> {
editableDocument: Document;
private onTextInputTimerId;
private composUpdateTimerId;
private composEndTimerId;
constructor(control: IRichEditControl, eventManager: IEventManager, parent: HTMLElement);
dispose(): void;
createHierarchyCore(): void;
initializeIfNotReadOnlyCore(): void;
createInputElement(): HTMLIFrameElement;
initEvents(): void;
private isModifyEnabled;
captureFocus(): void;
setPosition(left: number, top: number, force?: boolean): void;
clearInputElement(): void;
setEditableDocumentContent(content: string | NodeListOf<ChildNode>): void;
getEditableDocumentContent(): string | NodeListOf<ChildNode>;
selectEditableDocumentContent(): void;
getEditableDocument(): HTMLElement | Document;
getEditableTextOwner(): HTMLElement;
onBlur(evt: FocusEvent): void;
onShortcutCore(evt: KeyboardEvent, shortcutCode: number): void;
onTextInput(data: string): void;
onTextReplace(text: string, currentText: string): void;
recreateIfNeeded(): void;
onCompositionStart(_evt: KeyboardEvent): void;
onCompositionUpdate(_evt: KeyboardEvent): void;
onCompositionEnd(_evt: KeyboardEvent): void;
startInputIME(): any;
updateInputIME(): any;
endInputIME(): void;
}
export declare class InputController {
control: IRichEditControl;
inputEditor: InputEditorBase<HTMLElement>;
private exporter;
constructor(control: IRichEditControl, eventManager: IEventManager, parent: HTMLElement);
initExporter(): void;
dispose(): void;
private createInputEditor;
getEditableDocument(): HTMLElement | Document;
getExportedRangeCopy(): RangeCopy;
captureFocus(): void;
setPosition(left: number, top: number): void;
renderSelectionToEditableDocument(): void;
static getCopyPasteHtmlContentForEditable(html: string | HtmlBuilder, guidLabel: string): HTMLElement;
setEditableDocumentContent(content: string | NodeListOf<ChildNode>): void;
setEditableDocumentCursorPosition(cursorPosition: number): void;
getEditableDocumentContent(): string | NodeListOf<ChildNode>;
selectEditableDocumentContent(): void;
}
export {};