From c11339f534674f68932e747d8664723eec1da766 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Wed, 29 Jan 2020 21:10:29 +0200
Subject: [PATCH] feat(notes): create seperate note tool group

---
 editors/editoria/src/config/config.js         | 12 +++--
 wax-prosemirror-services/index.js             | 53 ++++++++++++++-----
 .../src/NoteService/Editor.js                 |  5 +-
 .../pmPlugins/placeholderPlugin.js            |  1 -
 .../BlockQuoteService/BlockQuote.js           |  1 -
 .../BaseToolGroupService/Base.js              |  8 +--
 .../NoteToolGroupService.js                   | 12 +++++
 .../NoteToolGroupService/Notes.js             | 13 +++++
 8 files changed, 75 insertions(+), 30 deletions(-)
 create mode 100644 wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
 create mode 100644 wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js

diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js
index b31f1704d..5192981ce 100644
--- a/editors/editoria/src/config/config.js
+++ b/editors/editoria/src/config/config.js
@@ -17,8 +17,9 @@ import {
   ImageToolGroupService,
   TextBlockLevelService,
   TextToolGroupService,
-  TrackChangeService,
-  NoteService
+  NoteService,
+  NoteToolGroupService,
+  TrackChangeService
 } from "wax-prosemirror-services";
 
 import invisibles, {
@@ -31,7 +32,7 @@ export default {
   MenuService: [
     {
       templateArea: "topBar",
-      toolGroups: ["Base", "Annotations", "Lists", "Images", "Tables"]
+      toolGroups: ["Base", "Annotations", "Notes", "Lists", "Images", "Tables"]
     },
     {
       templateArea: "leftSideBar",
@@ -66,7 +67,8 @@ export default {
     new ImageToolGroupService(),
     new TextBlockLevelService(),
     new TextToolGroupService(),
-    new TrackChangeService(),
-    new NoteService()
+    new NoteService(),
+    new NoteToolGroupService(),
+    new TrackChangeService()
   ]
 };
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index d16ab4d6c..752228fa9 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -1,11 +1,15 @@
 export { default as MenuService } from "./src/MenuService/MenuService";
 export { default as LinkService } from "./src/LinkService/LinkService";
-export { default as PlaceholderService } from "./src/PlaceholderService/PlaceholderService";
+export {
+  default as PlaceholderService
+} from "./src/PlaceholderService/PlaceholderService";
 export { default as ImageService } from "./src/ImageService/ImageService";
 export { default as RulesService } from "./src/RulesService/RulesService";
 export { default as SchemaService } from "./src/SchemaService/SchemaService";
 
-export { default as ShortCutsService } from "./src/ShortCutsService/ShortCutsService";
+export {
+  default as ShortCutsService
+} from "./src/ShortCutsService/ShortCutsService";
 
 export { default as OverlayService } from "./src/OverlayService/OverlayService";
 export { default as Tool } from "./src/lib/Tools";
@@ -17,20 +21,43 @@ export {
 All Elements services
 */
 export { default as BaseService } from "./src/BaseService/BaseService";
-export { default as InlineAnnotationsService } from "./src/InlineAnnotations/InlineAnnotationsService";
+export {
+  default as InlineAnnotationsService
+} from "./src/InlineAnnotations/InlineAnnotationsService";
 export { default as ListsService } from "./src/ListsService/ListsService";
 export { default as TablesService } from "./src/TablesService/TablesService";
-export { default as TextBlockLevelService } from "./src/TextBlockLevel/TextBlockLevelService";
-export { default as DisplayBlockLevelService } from "./src/DisplayBlockLevel/DisplayBlockLevelService";
+export {
+  default as TextBlockLevelService
+} from "./src/TextBlockLevel/TextBlockLevelService";
+export {
+  default as DisplayBlockLevelService
+} from "./src/DisplayBlockLevel/DisplayBlockLevelService";
+export { default as NoteService } from "./src/NoteService/NoteService";
 
 /*
 ToolGroups
 */
-export { default as BaseToolGroupService } from "./src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService";
-export { default as AnnotationToolGroupService } from "./src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService";
-export { default as ListToolGroupService } from "./src/WaxToolGroups/ListToolGroupService/ListToolGroupService";
-export { default as ImageToolGroupService } from "./src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService";
-export { default as TableToolGroupService } from "./src/WaxToolGroups/TableToolGroupService/TableToolGroupService";
-export { default as DisplayToolGroupService } from "./src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService";
-export { default as TextToolGroupService } from "./src/WaxToolGroups/TextToolGroupService/TextToolGroupService";
-export { default as NoteService } from "./src/NoteService/NoteService";
+export {
+  default as BaseToolGroupService
+} from "./src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService";
+export {
+  default as AnnotationToolGroupService
+} from "./src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService";
+export {
+  default as ListToolGroupService
+} from "./src/WaxToolGroups/ListToolGroupService/ListToolGroupService";
+export {
+  default as ImageToolGroupService
+} from "./src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService";
+export {
+  default as TableToolGroupService
+} from "./src/WaxToolGroups/TableToolGroupService/TableToolGroupService";
+export {
+  default as DisplayToolGroupService
+} from "./src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService";
+export {
+  default as TextToolGroupService
+} from "./src/WaxToolGroups/TextToolGroupService/TextToolGroupService";
+export {
+  default as NoteToolGroupService
+} from "./src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService";
diff --git a/wax-prosemirror-services/src/NoteService/Editor.js b/wax-prosemirror-services/src/NoteService/Editor.js
index dcbe3e222..5f7c4a852 100644
--- a/wax-prosemirror-services/src/NoteService/Editor.js
+++ b/wax-prosemirror-services/src/NoteService/Editor.js
@@ -37,7 +37,6 @@ export default ({ node, view, pos }) => {
           if (!tr.getMeta("fromOutside")) {
             let outerTr = view.state.tr,
               offsetMap = StepMap.offset(pos + 1);
-            console.log(transactions, 1111111);
             for (let i = 0; i < transactions.length; i++) {
               let steps = transactions[i].steps;
               for (let j = 0; j < steps.length; j++)
@@ -67,10 +66,8 @@ export default ({ node, view, pos }) => {
   }, []);
 
   if (context.view[pos]) {
-    console.log(1);
     let state = context.view[pos].state;
     let start = node.content.findDiffStart(state.doc.content);
-    console.log(start, node);
     if (start != null) {
       let { a: endA, b: endB } = node.content.findDiffEnd(state.doc.content);
       let overlap = start - Math.min(endA, endB);
@@ -90,6 +87,6 @@ export default ({ node, view, pos }) => {
     <div
       style={{ height: "100px", border: "1px solid black" }}
       ref={editorRef}
-    ></div>
+    />
   );
 };
diff --git a/wax-prosemirror-services/src/PlaceholderService/pmPlugins/placeholderPlugin.js b/wax-prosemirror-services/src/PlaceholderService/pmPlugins/placeholderPlugin.js
index 805e50275..d0918b9e0 100644
--- a/wax-prosemirror-services/src/PlaceholderService/pmPlugins/placeholderPlugin.js
+++ b/wax-prosemirror-services/src/PlaceholderService/pmPlugins/placeholderPlugin.js
@@ -9,7 +9,6 @@ export default key =>
         return DecorationSet.empty;
       },
       apply: function apply(tr, set) {
-        console.log(tr, "placeholderPLugin");
         // Adjust decoration positions to changes made by the transaction
         set = set.map(tr.mapping, tr.doc);
         // See if the transaction adds or removes any placeholders
diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
index 4a9f9e17a..77ac0af54 100644
--- a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
+++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js
@@ -15,7 +15,6 @@ 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/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
index 1b3e2c89d..d9d35019a 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
@@ -4,13 +4,9 @@ import ToolGroup from "../../lib/ToolGroup";
 @injectable()
 class Base extends ToolGroup {
   tools = [];
-  constructor(
-    @inject("Undo") undo,
-    @inject("Redo") redo,
-    @inject("Note") note
-  ) {
+  constructor(@inject("Undo") undo, @inject("Redo") redo) {
     super();
-    this.tools = [undo, redo, note];
+    this.tools = [undo, redo];
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
new file mode 100644
index 000000000..99322bdd0
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
@@ -0,0 +1,12 @@
+import Notes from "./Notes";
+import Service from "wax-prosemirror-core/src/services/Service";
+
+class NoteToolGroupService extends Service {
+  name = "NoteToolGroupService";
+
+  register() {
+    this.container.bind("Notes").to(Notes);
+  }
+}
+
+export default NoteToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js
new file mode 100644
index 000000000..876d22cc0
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/Notes.js
@@ -0,0 +1,13 @@
+import { injectable, inject } from "inversify";
+import ToolGroup from "../../lib/ToolGroup";
+
+@injectable()
+class Notes extends ToolGroup {
+  tools = [];
+  constructor(@inject("Note") note) {
+    super();
+    this.tools = [note];
+  }
+}
+
+export default Notes;
-- 
GitLab