import './style.css'; import { IToolbar, SylApi, Types } from '@syllepsis/adapter'; import { IRenderer } from '../../renderer'; interface IToolbarOption { mount?: Element | null; tools: Array; tooltips?: Types.StringMap | false; showNames?: Types.StringMap; icons?: Types.StringMap; className?: string; tipDirection?: 'up' | 'left' | 'down' | 'right' | string; tipDistance?: number; onToolClick?: (editor: SylApi, name: string) => void; Component?: any; trigger?: TTrigger; menuDirection?: 'up' | 'down' | 'up-start' | 'down-start' | string; menuDistance?: number; RenderBridge: Types.Ctor>; } interface IToolbarLibProps { editor: SylApi; option: IToolbarOption; } declare type Tooltip = string | boolean | ((icon: any) => any); declare type TTrigger = 'click' | 'hover' | string; declare type TSupportToolConfig = string | CustomTool | TCustomMoreTool; interface TCustomMoreTool { name?: string; icon?: any; showName?: IToolbar['showName']; tooltip?: Tooltip; trigger?: TTrigger; content: Types.DeepArray; contentOption?: Partial; } interface CustomTool { name?: string; tooltip?: Tooltip; render: (node: SylApi) => any; } declare type ToolConfig = TSupportToolConfig | Types.DeepArray; interface TContent { type: string; name?: string; showName?: IToolbar['showName']; tooltip?: Tooltip; toolbar?: IToolbar; } interface TCustomContent { name: string; type: string; tooltip?: Tooltip; render: (editor: SylApi) => any; } interface TMoreContent { name?: string; type: string; trigger?: TTrigger; icon?: any; tooltip?: Tooltip; content: Array; contentOption?: Partial; [key: string]: any; } declare type ToolContent = TContent | TCustomContent | TMoreContent; interface TPluginConfig { name: string; toolbar: IToolbar; disable?: (editor: SylApi) => boolean; active?: (editor: SylApi) => boolean; } interface IToolbarUtil { name: string; icon?: any; tooltip?: string; handler: (editor: SylApi, name: string, attrs: Types.StringMap) => void; disable?: (editor: SylApi) => boolean; active?: (editor: SylApi) => boolean; } declare const TOOL_TYPE: { BUTTON: string; DIVIDER: string; DROPDOWN: string; SELECT: string; COLOR: string; CUSTOM: string; MORE: string; }; declare class ToolbarLib { contents: ToolContent[]; editor: SylApi; option: IToolbarOption; constructor(props: IToolbarLibProps); unmount(): void; getTools(): void; formatTools(toolName: ToolConfig): ToolContent | undefined; getSylPluginConfigByName(name: string): { name: string; toolbar: IToolbar; disable: ((editor: SylApi) => boolean) | undefined; active: ((editor: SylApi) => boolean) | undefined; } | undefined; buildMoreTools(config: TCustomMoreTool): TMoreContent; buildButtonTool(toolName: string, pluginConfig: TPluginConfig): TContent; } export { IToolbarLibProps, IToolbarOption, IToolbarUtil, TContent, TCustomContent, TMoreContent, TOOL_TYPE, ToolbarLib, ToolConfig, ToolContent, Tooltip, TTrigger, }; export * from './loader';