import { TsxAllowUnknowProperties, RichTextEditorStyles } from "../../ux"; import { NodeExtension } from "./NodeExtension"; import { ToolbarExtension, BubbleMenuToolbarExtension } from "./ToolbarExtension"; import { MarkExtension } from "./MarkExtension"; import { EditorExtension } from "./EditorExtension"; import { GuidValue, MultilingualString, RichTextEditorExtensionRegistration, RichTextModes, TipTapEditor } from "../../models"; import { RichTextContentExtensionData, RichTextContentHelper } from "./RichTextContentHelper"; import { IRichTextEditorExtensionHelper } from "./IRichTextEditorExtensionHelper"; export interface IRichTextEditorInstance { /** * @param content to update */ updateContent(content: string | MultilingualString): any; } export declare abstract class RichTextEditorExtension { abstract getDefition(options: { onEditorUpdated: any; }): Promise; } export interface ToolbarConfigurationBase { } export interface MenuConfiguration extends ToolbarConfigurationBase { } export interface ToolbarConfiguration { configuration: ToolbarConfigurationBase; toolbar?: new () => ToolbarExtension; hidden?: boolean; isSubToolBar?: boolean; } export interface BubbleMenuConfiguration { menuItem: new () => BubbleMenuToolbarExtension; configuration: MenuConfiguration; showOnPasted?: boolean; } export interface RichTextEditorExtensionDefinition { nodes?: Array; toolbarItems?: Array; bubbleMenuItems?: Array; id?: GuidValue; onBlur?: (editor: TipTapEditor, setExtensionData: (data: RichTextContentExtensionData) => void) => void; } export interface RichTextEditorPlaceHolder { emptyNodeText: string; emptyClass?: string; showOnlyWhenEditable?: boolean; } export interface NodeAndToolbarExtension extends RichTextEditorExtension { } export interface IRichTextEditor { /** * * */ initialContent: string; bodyClass?: string; onContentChange: (content: string, extenres: any) => void; onContentDataChange?: (richtextHelper: RichTextContentHelper) => void; onInstanceCreated?: (instance: IRichTextEditorInstance) => void; onBlur?: () => void; onFocus?: () => void; registerFocus?: (callback: () => void) => void; /** * Configure all extesions before passing into RTE * @param {RichTextEditorExtension[]} currentExtensions The first number to add. * @param {function} registrationResolver Using this callback function to configure extension before passing it to RTE, return null if cannot resolve. * @return {RichTextEditorExtension[]} List of extension after configured */ onConfigureExtensions?: (currentExtensions: Array, registrationResolver?: (registration: RichTextEditorExtensionRegistration) => RichTextEditorExtension, extensionHelper?: IRichTextEditorExtensionHelper) => Array; /** * Configure the automatic format cleaning status before passing into RTE * @return {boolean} the status of automatic format cleaning after configured */ onConfigureAutomaticFormatCleaning?: () => boolean; styles?: typeof RichTextEditorStyles; placeholder?: RichTextEditorPlaceHolder; disabled?: boolean; outlined?: boolean; mode?: RichTextModes; resetContent?: boolean; autoFocus?: boolean; ariaDescribedby?: string; ariaInvalid?: boolean; disableAutofocus?: boolean; } declare global { namespace VueTsxSupport.JSX { interface Element { } interface ElementClass { } interface ElementAttributesProperty { } interface IntrinsicElements { "omfx-rich-text-editor": TsxAllowUnknowProperties; } } }