From fd6b6788d08d60b45a1c87fc5f74c3369f98ecdb Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Thu, 19 Dec 2019 21:29:02 +0200
Subject: [PATCH] feat: underline service

---
 .../src/AnnotationService/tools/index.js       |  1 -
 .../UnderlineService}/Underline.js             |  0
 .../UnderlineService/UnderlineService.js       | 18 ++++++++++++++++++
 .../src/InlineAnnotations/index.js             |  5 ++++-
 wax-prosemirror-schema/index.js                |  1 +
 wax-prosemirror-schema/src/editoria/marks.js   |  9 ---------
 6 files changed, 23 insertions(+), 11 deletions(-)
 rename wax-prosemirror-plugins/src/{AnnotationService/tools => InlineAnnotations/UnderlineService}/Underline.js (100%)
 create mode 100644 wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/UnderlineService.js

diff --git a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js
index 64e441543..26341a45b 100644
--- a/wax-prosemirror-plugins/src/AnnotationService/tools/index.js
+++ b/wax-prosemirror-plugins/src/AnnotationService/tools/index.js
@@ -1,5 +1,4 @@
 export { default as Blockquote } from "./Blockquote";
 export { default as SmallCaps } from "./SmallCaps";
-export { default as Underline } from "./Underline";
 export { default as Table } from "./Table";
 export { default as TableDropDownOptions } from "./TableDropDownOptions";
diff --git a/wax-prosemirror-plugins/src/AnnotationService/tools/Underline.js b/wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/Underline.js
similarity index 100%
rename from wax-prosemirror-plugins/src/AnnotationService/tools/Underline.js
rename to wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/Underline.js
diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/UnderlineService.js b/wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/UnderlineService.js
new file mode 100644
index 000000000..5e9fd797f
--- /dev/null
+++ b/wax-prosemirror-plugins/src/InlineAnnotations/UnderlineService/UnderlineService.js
@@ -0,0 +1,18 @@
+import Service from "wax-prosemirror-core/src/services/Service";
+import { underlineMark } from "wax-prosemirror-schema";
+import Underline from "./Underline";
+
+class UnderlineService extends Service {
+  register() {
+    this.container.bind("Underline").to(Underline);
+
+    this.container
+      .bind("schema")
+      .toConstantValue({
+        underline: underlineMark
+      })
+      .whenTargetNamed("mark");
+  }
+}
+
+export default UnderlineService;
diff --git a/wax-prosemirror-plugins/src/InlineAnnotations/index.js b/wax-prosemirror-plugins/src/InlineAnnotations/index.js
index 25dec0ebd..ad9036fd2 100644
--- a/wax-prosemirror-plugins/src/InlineAnnotations/index.js
+++ b/wax-prosemirror-plugins/src/InlineAnnotations/index.js
@@ -4,11 +4,14 @@ import EmphasisService from "./EmphasisService/EmphasisService";
 import SubscriptService from "./SubscriptService/SubscriptService";
 import SuperscriptService from "./SuperscriptService/SuperscriptService";
 import StrikeThroughService from "./StrikeThroughService/StrikeThroughService";
+import UnderlineService from "./UnderlineService/UnderlineService";
+
 export default [
   new CodeService(),
   new StrongService(),
   new EmphasisService(),
   new SubscriptService(),
   new SuperscriptService(),
-  new StrikeThroughService()
+  new StrikeThroughService(),
+  new UnderlineService()
 ];
diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index dea985b30..2a5f4c3b7 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -12,6 +12,7 @@ export { default as emphasisMark } from "./src/marks/emphasisMark";
 export { default as subscriptMark } from "./src/marks/subscriptMark";
 export { default as superscriptMark } from "./src/marks/superscriptMark";
 export { default as strikethroughMark } from "./src/marks/strikethroughMark";
+export { default as underlineMark } from "./src/marks/underlineMark";
 export { default as smallcapsMark } from "./src/marks/smallcapsMark";
 /*
 LIST OF SUPPORTED NODES
diff --git a/wax-prosemirror-schema/src/editoria/marks.js b/wax-prosemirror-schema/src/editoria/marks.js
index 2191cf6aa..d0d989e3b 100644
--- a/wax-prosemirror-schema/src/editoria/marks.js
+++ b/wax-prosemirror-schema/src/editoria/marks.js
@@ -3,15 +3,6 @@ const emDOM = ["em", 0],
   codeDOM = ["code", 0];
 
 const marks = {
-  underline: {
-    parseDOM: [{ tag: "u" }, { style: "text-decoration:underline" }],
-    toDOM: () => [
-      "span",
-      {
-        style: "text-decoration:underline"
-      }
-    ]
-  },
   small_caps: {
     attrs: {
       class: { default: "small-caps" }
-- 
GitLab