@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
92 lines (91 loc) • 3.68 kB
TypeScript
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<RichTextEditorExtensionDefinition>;
}
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<NodeExtension | MarkExtension | EditorExtension>;
toolbarItems?: Array<ToolbarConfiguration>;
bubbleMenuItems?: Array<BubbleMenuConfiguration>;
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<RichTextEditorExtension>, registrationResolver?: (registration: RichTextEditorExtensionRegistration) => RichTextEditorExtension, extensionHelper?: IRichTextEditorExtensionHelper) => Array<RichTextEditorExtension>;
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<IRichTextEditor>;
}
}
}