UNPKG

@editorjs/editorjs

Version:

Editor.js — open source block-style WYSIWYG editor with JSON output

71 lines (61 loc) 1.56 kB
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>; }