import {listenToCommonEvents} from './common-events';
import {init as initCodemirror} from './codemirror';
import {EditorView} from "@codemirror/view";
+import {importVersioned} from "../services/util";
+import {CodeModule} from "../global";
export interface MarkdownEditorConfig {
pageId: string;
container: Element;
- displayEl: Element;
+ displayEl: HTMLIFrameElement;
inputEl: HTMLTextAreaElement;
drawioUrl: string;
settingInputs: HTMLInputElement[];
/**
* Initiate a new Markdown editor instance.
- * @param {MarkdownEditorConfig} config
- * @returns {Promise<MarkdownEditor>}
*/
-export async function init(config) {
- /**
- * @type {MarkdownEditor}
- */
+export async function init(config: MarkdownEditorConfig): Promise<MarkdownEditor> {
+ const Code = await window.importVersioned('code') as CodeModule;
+
const editor: MarkdownEditor = {
config,
markdown: new Markdown(),
settings: new Settings(config.settingInputs),
- };
+ } as MarkdownEditor;
editor.actions = new Actions(editor);
editor.display = new Display(editor);
- editor.cm = await initCodemirror(editor);
+ editor.cm = initCodemirror(editor, Code);
listenToCommonEvents(editor);