@editorjs/editorjs
Version:
Editor.js — open source block-style WYSIWYG editor with JSON output
71 lines (61 loc) • 1.56 kB
TypeScript
import {API, BlockAPI, SanitizerConfig, ToolConfig} from '../index';
import { BlockTuneData } from './block-tune-data';
import { MenuConfig } from '../tools';
/**
* Describes BLockTune blueprint
*/
export interface BlockTune {
/**
* Returns BlockTune's UI.
* Should return either MenuConfig (recommended) (@see https://editorjs.io/menu-config/)
* or HTMLElement (UI consitency is not guaranteed)
*/
render(): HTMLElement | MenuConfig;
/**
* Method called on Tool render. Pass Tool content as an argument.
*
* You can wrap Tool's content with any wrapper you want to provide Tune's UI
*
* @param {HTMLElement} pluginsContent — Tool's content wrapper
*/
wrap?(pluginsContent: HTMLElement): HTMLElement;
/**
* Called on Tool's saving. Should return any data Tune needs to save
*
* @return {BlockTuneData}
*/
save?(): BlockTuneData;
}
/**
* Describes BlockTune class constructor function
*/
export interface BlockTuneConstructable {
/**
* Flag show Tool is Block Tune
*/
isTune: boolean;
/**
* Tune's sanitize configuration
*/
sanitize?: SanitizerConfig;
/**
* @constructor
*
* @param config - Block Tune config
*/
new(config: {
api: API,
config?: ToolConfig,
block: BlockAPI,
data: BlockTuneData,
}): BlockTune;
/**
* Tune`s prepare method. Can be async
* @param data
*/
prepare?(): Promise<void> | void;
/**
* Tune`s reset method to clean up anything set by prepare. Can be async
*/
reset?(): void | Promise<void>;
}