diff --git a/packages/ckeditor5-mermaid/src/augmentation.ts b/packages/ckeditor5-mermaid/src/augmentation.ts index 29d4f5304..727e99a84 100644 --- a/packages/ckeditor5-mermaid/src/augmentation.ts +++ b/packages/ckeditor5-mermaid/src/augmentation.ts @@ -3,17 +3,8 @@ import MermaidEditing from './mermaidediting.js'; import MermaidToolbar from './mermaidtoolbar.js'; import MermaidUI from './mermaidui.js'; -declare module 'ckeditor5' { - interface PluginsMap { - [ Mermaid.pluginName ]: Mermaid; - [ MermaidEditing.pluginName ]: MermaidEditing; - [ MermaidToolbar.pluginName ]: MermaidToolbar; - [ MermaidUI.pluginName]: MermaidUI; - } -} - declare global { - interface Mermaid { + interface MermaidInstance { init(config: MermaidConfig, element: HTMLElement): void; } @@ -23,3 +14,21 @@ declare global { var mermaid: Mermaid | null | undefined; } + +declare module 'ckeditor5' { + interface PluginsMap { + [ Mermaid.pluginName ]: Mermaid; + [ MermaidEditing.pluginName ]: MermaidEditing; + [ MermaidToolbar.pluginName ]: MermaidToolbar; + [ MermaidUI.pluginName]: MermaidUI; + } + + interface EditorConfig { + "mermaid"?: { + lazyLoad?: () => Promise | MermaidInstance; + config: MermaidConfig; + } + } + +} + diff --git a/packages/ckeditor5-mermaid/src/mermaidediting.ts b/packages/ckeditor5-mermaid/src/mermaidediting.ts index bf19a19da..1e2fc2e88 100644 --- a/packages/ckeditor5-mermaid/src/mermaidediting.ts +++ b/packages/ckeditor5-mermaid/src/mermaidediting.ts @@ -8,24 +8,19 @@ import MermaidPreviewCommand from './commands/mermaidPreviewCommand.js'; import MermaidSourceViewCommand from './commands/mermaidSourceViewCommand.js'; import MermaidSplitViewCommand from './commands/mermaidSplitViewCommand.js'; import InsertMermaidCommand from './commands/insertMermaidCommand.js'; -import { DowncastAttributeEvent, DowncastConversionApi, Element, EventInfo, Item, Node, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5'; +import { DowncastAttributeEvent, DowncastConversionApi, EditorConfig, Element, EventInfo, Item, Node, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5'; // Time in milliseconds. const DEBOUNCE_TIME = 300; /* global window */ -interface MermaidConfig { - lazyLoad?: () => Promise | Mermaid; - config: MermaidConfig; -} - type DowncastConversionData = DowncastAttributeEvent["args"][0]; export default class MermaidEditing extends Plugin { - private _config!: MermaidConfig; - private mermaid?: Mermaid; + private _config!: EditorConfig["mermaid"]; + private mermaid?: MermaidInstance; /** * @inheritDoc @@ -40,7 +35,7 @@ export default class MermaidEditing extends Plugin { init() { this._registerCommands(); this._defineConverters(); - this._config = this.editor.config.get("mermaid") as MermaidConfig; + this._config = this.editor.config.get("mermaid"); } /** @@ -276,6 +271,6 @@ export default class MermaidEditing extends Plugin { this.mermaid = await this._config.lazyLoad(); } - this.mermaid?.init( this._config.config, domElement ); + this.mermaid?.init( this._config?.config ?? {}, domElement ); } }