From 874ac3f4c6f93fcd938f1a34508cc37f429bda58 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 16 Jan 2020 15:18:49 +0200
Subject: [PATCH] add track change marks

---
 editors/editoria/src/config/config.js                 |  6 ++++--
 wax-prosemirror-schema/index.js                       |  9 +++++++++
 .../src/marks/trackChangesMarks/index.js              |  9 +++++++++
 wax-prosemirror-services/index.js                     |  3 +++
 .../TextBlockLevel/BlockQuoteService/BlockQuote.js    |  1 +
 .../src/TrackChangeService/TrackChangeService.js      | 11 ++++++++++-
 6 files changed, 36 insertions(+), 3 deletions(-)
 create mode 100644 wax-prosemirror-schema/src/marks/trackChangesMarks/index.js

diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js
index 893459088..1f1e3859d 100644
--- a/editors/editoria/src/config/config.js
+++ b/editors/editoria/src/config/config.js
@@ -16,7 +16,8 @@ import {
   DisplayToolGroupService,
   ImageToolGroupService,
   TextBlockLevelService,
-  TextToolGroupService
+  TextToolGroupService,
+  TrackChangeService
 } from "wax-prosemirror-services";
 
 import invisibles, {
@@ -63,6 +64,7 @@ export default {
     new DisplayToolGroupService(),
     new ImageToolGroupService(),
     new TextBlockLevelService(),
-    new TextToolGroupService()
+    new TextToolGroupService(),
+    new TrackChangeService()
   ]
 };
diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index c52dd2c1a..8ef9fab55 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -12,6 +12,11 @@ export { default as underlineMark } from "./src/marks/underlineMark";
 export { default as smallcapsMark } from "./src/marks/smallcapsMark";
 export { default as sourceMark } from "./src/marks/sourceMark";
 
+/*
+LIST OF TRACK CHANGES MARKS
+*/
+export { default as trackChangesMarks } from "./src/marks/trackChangesMarks";
+
 /*
 LIST OF SUPPORTED NODES
 */
@@ -30,3 +35,7 @@ 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";
+
+/*
+LIST OF TRACK CHANGES NODES
+*/
diff --git a/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js b/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js
new file mode 100644
index 000000000..1be38fc68
--- /dev/null
+++ b/wax-prosemirror-schema/src/marks/trackChangesMarks/index.js
@@ -0,0 +1,9 @@
+import insertionMark from "./insertionMark";
+import deletionMark from "./deletionMark";
+import formatChangeMark from "./formatChangeMark";
+
+export default {
+  insertion: insertionMark,
+  deletion: deletionMark,
+  format_change: formatChangeMark
+};
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index ba62c4f0d..0434a1450 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -13,6 +13,9 @@ export {
 
 export { default as OverlayService } from "./src/OverlayService/OverlayService";
 export { default as Tool } from "./src/lib/Tools";
+export {
+  default as TrackChangeService
+} from "./src/TrackChangeService/TrackChangeService";
 
 /*
 All Elements services
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
index 77ac0af54..4a9f9e17a 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
@@ -15,6 +15,7 @@ class BlockQuote extends Tools {
 
   get enable() {
     return state => {
+      console.log(state);
       return wrapIn(state.config.schema.nodes.blockquote)(state);
     };
   }
diff --git a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
index 66dc19663..73679091e 100644
--- a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
+++ b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js
@@ -1,9 +1,18 @@
 import Service from "wax-prosemirror-core/src/services/Service";
+import { trackChangesMarks } from "wax-prosemirror-schema";
 
 class TrackChangeService extends Service {
   boot() {}
 
-  register() {}
+  register() {
+    const createMark = this.container.get("CreateMark");
+
+    Object.keys(trackChangesMarks).forEach(mark => {
+      createMark({
+        [mark]: trackChangesMarks[mark]
+      });
+    });
+  }
 }
 
 export default TrackChangeService;
-- 
GitLab