1 import {EditorState} from "prosemirror-state";
2 import {EditorView} from "prosemirror-view";
3 import {exampleSetup} from "prosemirror-example-setup";
4 import {tableEditing} from "prosemirror-tables";
6 import {DOMParser} from "prosemirror-model";
8 import schema from "./schema";
9 import menu from "./menu";
10 import nodeViews from "./node-views";
11 import {stateToHtml} from "./util";
12 import {columnResizing} from "./plugins/table-resizing";
14 class ProseMirrorView {
15 constructor(target, content) {
17 // Build DOM from content
18 const renderDoc = document.implementation.createHTMLDocument();
19 renderDoc.body.innerHTML = content;
21 this.view = new EditorView(target, {
22 state: EditorState.create({
23 doc: DOMParser.fromSchema(schema).parse(renderDoc.body),
25 ...exampleSetup({schema, menuBar: false}),
34 // Fix for native handles (Such as table size handling) in some browsers
35 document.execCommand("enableObjectResizing", false, "false")
36 document.execCommand("enableInlineTableEditing", false, "false")
40 return stateToHtml(this.view.state);
52 export default ProseMirrorView;