From ee7edf9e3ae2f1afaaf65a47b7972cf353db9d22 Mon Sep 17 00:00:00 2001 From: Giannis Kopanas <jkopanas@gmail.com> Date: Fri, 27 Dec 2019 15:25:48 +0200 Subject: [PATCH] fix(schema): add prosemirrorschema --- .../src/config/defaultConfig.js | 2 +- wax-prosemirror-core/src/ioc-react.js | 33 ------------------- wax-prosemirror-schema/src/editoria/nodes.js | 6 +--- wax-prosemirror-services/index.js | 3 -- .../StrongService/StrongService.js | 12 +++---- .../src/ListsService/ListsService.js | 4 +-- .../src/SchemaService/Node.js | 2 ++ .../src/SchemaService/SchemaService.js | 17 +++++----- .../InsertTableService/InsertTableService.js | 19 +++++++++++ 9 files changed, 39 insertions(+), 59 deletions(-) diff --git a/wax-prosemirror-core/src/config/defaultConfig.js b/wax-prosemirror-core/src/config/defaultConfig.js index 9179f0011..f2f7f6324 100644 --- a/wax-prosemirror-core/src/config/defaultConfig.js +++ b/wax-prosemirror-core/src/config/defaultConfig.js @@ -11,7 +11,7 @@ import { TextStyleService, InlineAnnotationsService, LinkService, - OverlayService + OverlayService, ListsService, ListToolGroupService, TablesService, diff --git a/wax-prosemirror-core/src/ioc-react.js b/wax-prosemirror-core/src/ioc-react.js index aa4ea9ae3..fee702c69 100644 --- a/wax-prosemirror-core/src/ioc-react.js +++ b/wax-prosemirror-core/src/ioc-react.js @@ -6,39 +6,6 @@ export const WaxContext = React.createContext({ updateView: null }); -// export default class WaxContextComponent extends Component { -// constructor(props) { -// super(props); -// console.log("tesss"); -// this.state = { -// app: props.app, -// view: props.view, -// updateView: view => { -// this.setState(view); -// } -// }; -// } - -// componentWillReceiveProps(next, prev) { -// console.log(next, prev); -// } - -// render() { -// console.log("provider"); -// return ( -// <WaxContext.Provider -// value={{ -// app: this.state.app, -// view: this.state.view, -// updateView: this.state.updateView -// }} -// > -// {this.props.children} -// </WaxContext.Provider> -// ); -// } -// } - export default props => { const [context, setContext] = useState({ app: props.app, diff --git a/wax-prosemirror-schema/src/editoria/nodes.js b/wax-prosemirror-schema/src/editoria/nodes.js index 8caedf3c1..5b5dd6182 100644 --- a/wax-prosemirror-schema/src/editoria/nodes.js +++ b/wax-prosemirror-schema/src/editoria/nodes.js @@ -333,10 +333,6 @@ const nodes = { toDOM() { return blockquoteDOM; } - }, - ...tableNodes({ - tableGroup: "block", - cellContent: "block+" - }) + } }; export default nodes; diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index af8386a84..293867afc 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -1,7 +1,4 @@ export { default as MenuService } from "./src/MenuService/MenuService"; -export { default as RedoUndoService } from "./src/RedoUndoService/RedoUndoService"; -export { default as AnnotationService } from "./src/AnnotationService/AnnotationService"; -export { default as PlaceholderService } from "./src/PlaceholderService/PlaceholderService"; export { default as LinkService } from "./src/LinkService/LinkService"; export { default as TextStyleService } from "./src/TextStyleService/TextStyleService"; diff --git a/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js b/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js index 79832f9fc..b77b74c38 100644 --- a/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js +++ b/wax-prosemirror-services/src/InlineAnnotations/StrongService/StrongService.js @@ -11,13 +11,13 @@ class StrongService extends Service { register() { this.container.bind("Strong").to(Strong); - - this.container - .bind("schema") - .toConstantValue({ + const createMark = this.container.get("CreateMark"); + createMark( + { strong: strongMark - }) - .whenTargetNamed("mark"); + }, + { toWaxSchema: true } + ); } } diff --git a/wax-prosemirror-services/src/ListsService/ListsService.js b/wax-prosemirror-services/src/ListsService/ListsService.js index 6a8e560fd..b9fff5437 100644 --- a/wax-prosemirror-services/src/ListsService/ListsService.js +++ b/wax-prosemirror-services/src/ListsService/ListsService.js @@ -2,9 +2,7 @@ import ListsServices from "./index"; import Service from "wax-prosemirror-core/src/services/Service"; class ListsService extends Service { - register() { - this.config.pushToArray("services", ListsServices); - } + dependencies = ListsServices; } export default ListsService; diff --git a/wax-prosemirror-services/src/SchemaService/Node.js b/wax-prosemirror-services/src/SchemaService/Node.js index 085296aba..c3108aea3 100644 --- a/wax-prosemirror-services/src/SchemaService/Node.js +++ b/wax-prosemirror-services/src/SchemaService/Node.js @@ -6,6 +6,7 @@ export default class Node { name = ""; importer = {}; + isolating = false; inline = false; group = ""; content = ""; @@ -59,6 +60,7 @@ export default class Node { inline: this.inline, group: this.group, content: this.content, + isolating: this.isolating, draggable: this.draggable, attrs: this._attrs, parseDOM: this._parseRules.map(rule => rule.combineRules()), diff --git a/wax-prosemirror-services/src/SchemaService/SchemaService.js b/wax-prosemirror-services/src/SchemaService/SchemaService.js index 459abe2d1..925e16bbe 100644 --- a/wax-prosemirror-services/src/SchemaService/SchemaService.js +++ b/wax-prosemirror-services/src/SchemaService/SchemaService.js @@ -13,29 +13,30 @@ export default class SchemaService extends Service { .inSingletonScope(); this.container.bind("CreateNode").toFactory(context => { - return (schema, options) => { + return (schema, options = { toWaxSchema: false }) => { if (options.toWaxSchema) { - context + context.container .bind("schema") .toConstantValue(schema) .whenTargetNamed("node"); } else { - const schema = context.get("Schema"); - schema.addProsemirrorSchema(schema, "nodes"); + const schemaInstance = context.container.get("Schema"); + + schemaInstance.addProsemirrorSchema(schema, "nodes"); } }; }); this.container.bind("CreateMark").toFactory(context => { - return (schema, options) => { + return (schema, options = { toWaxSchema: false }) => { if (options.toWaxSchema) { - context + context.container .bind("schema") .toConstantValue(schema) .whenTargetNamed("mark"); } else { - const schema = context.get("Schema"); - schema.addProsemirrorSchema(schema, "marks"); + const schemaInstance = context.container.get("Schema"); + schemaInstance.addProsemirrorSchema(schema, "marks"); } }; }); diff --git a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js index f0accdee4..541ff1ac2 100644 --- a/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js +++ b/wax-prosemirror-services/src/TablesService/InsertTableService/InsertTableService.js @@ -7,6 +7,25 @@ class InsertTableService extends Service { register() { this.container.bind("Table").to(Table); + + const createNode = this.container.get("CreateNode"); + const { table, table_row, table_cell, table_header } = tableNodes({ + tableGroup: "block", + cellContent: "block+" + }); + + createNode({ + table + }); + createNode({ + table_row + }); + createNode({ + table_cell + }); + createNode({ + table_header + }); } } -- GitLab