From 7393a195db1593e6f5cd262e4e7b53ae1751e4d1 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 16 Jan 2020 12:17:52 +0200
Subject: [PATCH] move all Editoria nodes

---
 wax-prosemirror-schema/index.js               |  2 +-
 .../src/editoria/EditoriaSchema.js            |  2 --
 wax-prosemirror-schema/src/editoria/nodes.js  | 33 -------------------
 .../src/nodes/blockQuoteNode.js               | 13 ++++++++
 .../src/nodes/extractProseNode.js             | 17 ++++++----
 .../src/nodes/paragraphContNode.js            | 18 ++++++----
 .../src/nodes/paragraphNode.js                |  0
 .../src/nodes/sourceNoteNode.js               | 19 ++++++-----
 8 files changed, 46 insertions(+), 58 deletions(-)
 delete mode 100644 wax-prosemirror-schema/src/editoria/nodes.js
 create mode 100644 wax-prosemirror-schema/src/nodes/blockQuoteNode.js
 delete mode 100644 wax-prosemirror-schema/src/nodes/paragraphNode.js

diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index 0aad034c8..e9934167b 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -17,7 +17,6 @@ export { default as sourceMark } from "./src/marks/sourceMark";
 /*
 LIST OF SUPPORTED NODES
 */
-export { default as paragraphNode } from "./src/nodes/paragraphNode";
 export { default as authorNode } from "./src/nodes/authorNode";
 export { default as epigraphPoetryNode } from "./src/nodes/epigraphPoetryNode";
 export { default as epigraphProseNode } from "./src/nodes/epigraphProseNode";
@@ -32,3 +31,4 @@ export { default as listItemNode } from "./src/nodes/listItemNode";
 export { default as subTitleNode } from "./src/nodes/subTitleNode";
 export { default as imageNode } from "./src/nodes/imageNode";
 export { default as headingNode } from "./src/nodes/headingNode";
+export { default as blockQuoteNode } from "./src/nodes/blockQuoteNode";
diff --git a/wax-prosemirror-schema/src/editoria/EditoriaSchema.js b/wax-prosemirror-schema/src/editoria/EditoriaSchema.js
index a8411b0c8..4fb3d5cb7 100644
--- a/wax-prosemirror-schema/src/editoria/EditoriaSchema.js
+++ b/wax-prosemirror-schema/src/editoria/EditoriaSchema.js
@@ -1,8 +1,6 @@
-import nodes from "./nodes";
 import marks from "./marks";
 
 const EditoriaSchema = {
-  nodes,
   marks
 };
 
diff --git a/wax-prosemirror-schema/src/editoria/nodes.js b/wax-prosemirror-schema/src/editoria/nodes.js
deleted file mode 100644
index 32769dc16..000000000
--- a/wax-prosemirror-schema/src/editoria/nodes.js
+++ /dev/null
@@ -1,33 +0,0 @@
-const pDOM = ["p", 0],
-  brDOM = ["br"],
-  blockquoteDOM = ["blockquote", 0];
-
-const nodes = {
-  doc: {
-    content: "block+"
-  },
-
-  text: {
-    group: "inline"
-  },
-
-  hard_break: {
-    inline: true,
-    group: "inline",
-    selectable: false,
-    parseDOM: [{ tag: "br" }],
-    toDOM() {
-      return brDOM;
-    }
-  },
-  blockquote: {
-    content: "block+",
-    group: "block",
-    defining: true,
-    parseDOM: [{ tag: "blockquote" }],
-    toDOM() {
-      return blockquoteDOM;
-    }
-  }
-};
-export default nodes;
diff --git a/wax-prosemirror-schema/src/nodes/blockQuoteNode.js b/wax-prosemirror-schema/src/nodes/blockQuoteNode.js
new file mode 100644
index 000000000..d5ac23dcb
--- /dev/null
+++ b/wax-prosemirror-schema/src/nodes/blockQuoteNode.js
@@ -0,0 +1,13 @@
+import { parseTracks, blockLevelToDOM } from "./helpers";
+
+const blockquote = {
+  content: "block+",
+  group: "block",
+  defining: true,
+  parseDOM: [{ tag: "blockquote" }],
+  toDOM() {
+    return ["blockquote", 0];
+  }
+};
+
+export default blockquote;
diff --git a/wax-prosemirror-schema/src/nodes/extractProseNode.js b/wax-prosemirror-schema/src/nodes/extractProseNode.js
index 74f572844..b0c52b604 100644
--- a/wax-prosemirror-schema/src/nodes/extractProseNode.js
+++ b/wax-prosemirror-schema/src/nodes/extractProseNode.js
@@ -1,3 +1,4 @@
+import { parseTracks, blockLevelToDOM } from "./helpers";
 const extractProse = {
   content: "inline*",
   group: "block",
@@ -10,17 +11,19 @@ const extractProse = {
   parseDOM: [
     {
       tag: "p.extract-prose",
-      getAttrs(dom) {
-        return {
+      getAttrs(hook, next) {
+        Object.assign(hook, {
           class: hook.dom.getAttribute("class"),
-          track: parseTracks(dom.dataset.track)
-        };
+          track: parseTracks(hook.dom.dataset.track)
+        });
+        next();
       }
     }
   ],
-  toDOM(node) {
-    const attrs = blockLevelToDOM(node);
-    return ["p", attrs, 0];
+  toDOM(hook, next) {
+    const attrs = blockLevelToDOM(hook.node);
+    hook.value = ["p", attrs, 0];
+    next();
   }
 };
 
diff --git a/wax-prosemirror-schema/src/nodes/paragraphContNode.js b/wax-prosemirror-schema/src/nodes/paragraphContNode.js
index f7cee3aa0..5dcdb0f4e 100644
--- a/wax-prosemirror-schema/src/nodes/paragraphContNode.js
+++ b/wax-prosemirror-schema/src/nodes/paragraphContNode.js
@@ -1,3 +1,5 @@
+import { parseTracks, blockLevelToDOM } from "./helpers";
+
 const paragraphCont = {
   content: "inline*",
   group: "block",
@@ -10,17 +12,19 @@ const paragraphCont = {
   parseDOM: [
     {
       tag: "p.paragraph-cont",
-      getAttrs(dom) {
-        return {
+      getAttrs(hook, next) {
+        Object.assign(hook, {
           class: hook.dom.getAttribute("class"),
-          track: parseTracks(dom.dataset.track)
-        };
+          track: parseTracks(hook.dom.dataset.track)
+        });
+        next();
       }
     }
   ],
-  toDOM(node) {
-    const attrs = blockLevelToDOM(node);
-    return ["p", attrs, 0];
+  toDOM(hook, next) {
+    const attrs = blockLevelToDOM(hook.node);
+    hook.value = ["p", attrs, 0];
+    next();
   }
 };
 
diff --git a/wax-prosemirror-schema/src/nodes/paragraphNode.js b/wax-prosemirror-schema/src/nodes/paragraphNode.js
deleted file mode 100644
index e69de29bb..000000000
diff --git a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js b/wax-prosemirror-schema/src/nodes/sourceNoteNode.js
index 9b97a9d6c..4b0298a24 100644
--- a/wax-prosemirror-schema/src/nodes/sourceNoteNode.js
+++ b/wax-prosemirror-schema/src/nodes/sourceNoteNode.js
@@ -1,3 +1,4 @@
+import { parseTracks, blockLevelToDOM } from "./helpers";
 const sourceNote = {
   content: "inline*",
   group: "block",
@@ -10,17 +11,19 @@ const sourceNote = {
   parseDOM: [
     {
       tag: "p.source-note",
-      getAttrs(dom) {
-        return {
-          class: dom.getAttribute("class"),
-          track: parseTracks(dom.dataset.track)
-        };
+      getAttrs(hook, next) {
+        Object.assign(hook, {
+          class: hook.dom.getAttribute("class"),
+          track: parseTracks(hook.dom.dataset.track)
+        });
+        next();
       }
     }
   ],
-  toDOM(node) {
-    const attrs = blockLevelToDOM(node);
-    return ["p", attrs, 0];
+  toDOM(hook, next) {
+    const attrs = blockLevelToDOM(hook.node);
+    hook.value = ["p", attrs, 0];
+    next();
   }
 };
 
-- 
GitLab