Types
A collection of types.
KeyValue
ts
type KeyValue = Record<string, string>;
ContentRules
ts
type ContentStyleValue = string | string[] | RegExp;
type ContentStyle = Record<string, ContentStyleValue>;
type ContentAttributeValue = string | string[] | RegExp | ContentStyle;
type ContentAttribute = Record<string, ContentAttributeValue>;
type ContentRules = Record<string, string | ContentAttribute>;
NodePath
ts
type NodePath = number[];
BoxValue
ts
export type BoxValue = Record<string, any>;
BoxComponent
ts
type BoxComponent = {
type: 'inline' | 'block';
name: string;
value?: BoxValue;
render: (box: Box) => Nodes | string | void;
};
ActiveItem
ts
type ActiveItem = {
node: Nodes;
name: string;
attributes: KeyValue;
styles: KeyValue;
};
SelectionState
ts
type SelectionState = {
activeItems: ActiveItem[];
disabledNameMap?: Map<string, boolean>;
selectedNameMap?: Map<string, boolean>;
selectedValuesMap?: Map<string, string[]>;
};
CommandItem
ts
type CommandItem = {
isDisabled?: (activeItems: ActiveItem[]) => boolean;
isSelected?: (activeItems: ActiveItem[]) => boolean;
selectedValues?: (activeItems: ActiveItem[]) => string[];
execute: (...data: any[]) => void;
};
UnmountPlugin
ts
type UnmountPlugin = () => void;
InitializePlugin
ts
type InitializePlugin = (editor: Editor) => UnmountPlugin | void;
DropdownMenuItem
ts
type DropdownMenuItem = {
value: string;
icon?: string;
text: string | ((locale: TranslationFunctions) => string);
};
DropdownItem
ts
type DropdownItem = {
name: string;
icon?: string;
accentIcon?: string;
downIcon?: string;
defaultValue?: string;
tooltip: string | ((locale: TranslationFunctions) => string);
width?: string;
menuType: 'list' | 'icon' | 'character' | 'color';
menuItems: DropdownMenuItem[];
menuWidth?: string;
menuHeight?: string;
menuCheck?: boolean;
};
ToolbarButtonItem
ts
type ToolbarButtonItem = {
name: string;
type: 'button';
icon?: string;
tooltip: string | ((locale: TranslationFunctions) => string);
isSelected?: (activeItems: ActiveItem[]) => boolean;
isDisabled?: (activeItems: ActiveItem[]) => boolean;
onClick: (editor: Editor, value: string) => void;
};
ToolbarDropdownItem
ts
type ToolbarDropdownItem = DropdownItem & {
name: string;
type: 'dropdown';
selectedValues?: (activeItems: ActiveItem[]) => string[];
isDisabled?: (activeItems: ActiveItem[]) => boolean;
onSelect: (editor: Editor, value: string) => void;
}
ToolbarUploadItem
ts
type ToolbarUploadItem = {
name: string;
type: 'upload';
icon?: string;
tooltip: string | ((locale: TranslationFunctions) => string);
accept?: string;
multiple?: boolean;
};
ToolbarItem
ts
type ToolbarItem = ToolbarButtonItem | ToolbarDropdownItem | ToolbarUploadItem;
MentionItem
ts
type MentionItem = {
id: string;
name: string;
nickname?: string;
avatar?: string;
};
SlashButtonItem
ts
type SlashButtonItem = {
name: string;
type: 'button';
icon?: string;
title: string | ((locale: TranslationFunctions) => string);
description: string | ((locale: TranslationFunctions) => string);
onClick: (editor: Editor, value: string) => void;
};
SlashUploadItem
ts
type SlashUploadItem = {
name: string;
type: 'upload';
icon?: string;
title: string | ((locale: TranslationFunctions) => string);
description: string | ((locale: TranslationFunctions) => string);
accept?: string;
multiple?: boolean;
};
SlashItem
ts
type SlashItem = SlashButtonItem | SlashUploadItem;