jodit
Version:
Jodit is an awesome and useful wysiwyg editor with filebrowser
56 lines (55 loc) • 1.67 kB
TypeScript
/*!
* Jodit Editor (https://xdsoft.net/jodit/)
* Released under MIT see LICENSE.txt in the project root for license information.
* Copyright (c) 2013-2025 Valeriy Chupurnov. All rights reserved. https://xdsoft.net
*/
/**
* @module types
*/
import type { IDestructible, IInitable } from "./types";
import type { IViewBased } from "./view";
import type { ButtonGroup, IControlType } from "./toolbar";
export interface IPluginButton {
name: string;
group?: ButtonGroup;
position?: number;
options?: IControlType;
}
export class IPlugin<T extends IViewBased = IViewBased> implements IDestructible, IInitable {
static requires?: string[];
hasStyle?: boolean;
/**
* Additional plugin styles can be written simply as inline styles
* ```js
* class A extends Jodit.modules.Plugin {
* styles = 'h1{color: red}';
* }
* ```
* Will only be applied if the plugin is activated
*/
styles?: string;
/**
* Plugin buttons
*/
buttons?: IPluginButton[];
init(jodit: T): void;
destruct(jodit?: T): void;
constructor(jodit?: T);
}
interface PluginFunction {
// eslint-disable-next-line @typescript-eslint/no-misused-new
constructor(jodit: IViewBased): void;
}
export type PluginType = typeof IPlugin | IPlugin | PluginFunction | Function;
export type PluginInstance = IPlugin | object;
export interface IExtraPlugin {
name: string;
url?: string;
}
export interface IPluginSystem {
readonly size: number;
add(name: string, plugin: any): void;
wait(name: string): Promise<void>;
get(name: string): PluginType | void;
remove(name: string): void;
}