@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
102 lines (101 loc) • 4.61 kB
TypeScript
import { IWebComponentInstance, OmniaContext } from "../../";
import { IRichTextEditor, RichTextEditorExtension, RichTextEditorPlaceHolder, IRichTextEditorInstance } from ".";
import "./RichTextEditor.css";
import { RichTextModes } from "../../models";
import { RichTextEditorStyles } from "../models";
import { RichTextEditorExtensionRegistration, RichTextEditorSettingsModel } from "../../models";
import { SettingsService } from "../../services";
import { RichTextContentHelper } from ".";
import { VueComponentBase } from "..";
import { IRichTextEditorExtensionHelper } from "./IRichTextEditorExtensionHelper";
import { DirectionRuleStore } from "../../stores";
export default class RichTextEditor extends VueComponentBase implements IWebComponentInstance, IRichTextEditor, IRichTextEditorInstance {
initialContent: string;
onContentChange: (content: string) => void;
onContentDataChange?: (richtextHelper: RichTextContentHelper) => void;
onInstanceCreated?: (inst: IRichTextEditorInstance) => void;
onBlur?: () => void;
onFocus?: () => void;
placeholder: RichTextEditorPlaceHolder;
styles?: typeof RichTextEditorStyles;
disabled: boolean;
outlined: boolean;
bodyClass: string;
resetContent?: boolean;
autoFocus?: boolean;
disableAutofocus?: boolean;
mode: RichTextModes;
onConfigureAutomaticFormatCleaning?: () => boolean;
onConfigureExtensions?: (currentExtensions: Array<RichTextEditorExtension>, registrationResolver?: (registration: RichTextEditorExtensionRegistration) => RichTextEditorExtension, extensionHelper?: IRichTextEditorExtensionHelper) => Array<RichTextEditorExtension>;
onConfiguredExtensions?: (currentExtensions: Array<RichTextEditorExtension>, registrationResolver?: (registration: RichTextEditorExtensionRegistration) => RichTextEditorExtension) => Promise<Array<RichTextEditorExtension>>;
ariaDescribedby?: string;
ariaInvalid?: boolean;
registerFocus?: (callback: () => void) => void;
omniaCtx: OmniaContext;
settingsService: SettingsService<RichTextEditorSettingsModel>;
directionStore: DirectionRuleStore;
private editorClasses;
private editorDefaultStyle;
private updateToolbar;
private editor;
private paddingTop;
private lastScrollTop;
private selectionDebounce;
private content;
private isLoading;
private nodes;
private toolbarItems;
private isShowToolbar;
private data;
private contentHelper;
private bubbleMenuItems;
private pastedMenuItem;
private pastedPosition;
private pastedContext;
private isSticky;
private parentScrollOffset;
private stickyElmScrollableParent;
private scrollCallback;
private uniqueEditorId;
private extensions;
private allExtensions;
private isRightToLeft;
private enableAutoCleanTextFormatAfterPaste;
private extensionOnBlurFuncs;
private hasLanguagePicker;
onTopicIdChange(newValue: boolean, oldValue: boolean): void;
onDisabledChange(): void;
created(): void;
mounted(): void;
beforeDestroy(): void;
private focusEditor;
updateContent(content: string): void;
initSubscribedExtensions(): void;
registrationResolver(registration: RichTextEditorExtensionRegistration): RichTextEditorExtension;
loadFromExtensionRegistrations(extensionSettings: RichTextEditorExtensionRegistration[]): Promise<Array<RichTextEditorExtension>>;
buildExtensionList(extensionListFromTenantSettings: RichTextEditorExtensionRegistration[]): RichTextEditorExtension[];
initExtensions(): void;
private ensureHeadingNode;
handleCursorPosition(formatedText: any, formatedHtml: any, view: any, from: any, to: any, onCompleted?: (transaction: any) => void): void;
setupEditor(): void;
private currentEmitedContent;
private onEditorUpdated;
private onContentChangedFromToolbar;
private setExtensionData;
get builtInExtensions(): any[];
get elementWidth(): number;
render(): VueTsxSupport.JSX.Element;
renderEditor(): VueTsxSupport.JSX.Element;
renderToolbarItem(menubar: any, config: any): import("vue").VNode;
renderBubbleMenuToolbarItem(bubbleMenu: any, config: any): import("vue").VNode;
renderPastedBubbleMenuToolbarItem(bubbleMenu: any, config: any): import("vue").VNode;
private onSelectionChange;
private parseHtml;
private hideBubbleMenu;
getBrowerSupport(): any;
setPastedCursorPosition(): void;
getDeepNode(node: Node): Node;
registerScrollEvent(): void;
checkSticky(): void;
getMenuBarElement(): Promise<unknown>;
}