From 384e0d9c903d704c3dc582eb9c885eee07e334d6 Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 28 Jul 2020 02:59:51 +0300
Subject: [PATCH] code block files

---
 wax-prosemirror-components/package.json       |  2 +-
 wax-prosemirror-core/package.json             |  2 +-
 wax-prosemirror-layouts/package.json          |  2 +-
 wax-prosemirror-plugins/package.json          |  2 +-
 wax-prosemirror-schema/index.js               | 59 ++++++++++---------
 wax-prosemirror-schema/package.json           |  2 +-
 .../src/nodes/codeBlockNode.js                | 24 ++++++++
 wax-prosemirror-services/index.js             |  2 +
 wax-prosemirror-services/package.json         |  3 +-
 .../src/CodeBlockService/CodeBlockService.js  | 16 +++++
 .../src/CodeBlockService/CodeBlockTool.js     | 16 +++++
 .../BaseToolGroupService.js                   |  8 +--
 .../CodeBlockToolGroupService/CodeBlock.js    | 13 ++++
 .../CodeBlockToolGroupService.js              | 10 ++++
 .../DisplayToolGroupService.js                |  8 +--
 .../ImageToolGroupService.js                  |  8 +--
 .../ListToolGroupService.js                   |  8 +--
 .../NoteToolGroupService.js                   |  8 +--
 .../TableToolGroupService.js                  |  8 +--
 .../TextToolGroupService.js                   |  8 +--
 wax-prosemirror-themes/package.json           |  2 +-
 wax-prosemirror-utilities/package.json        |  2 +-
 22 files changed, 141 insertions(+), 72 deletions(-)
 create mode 100644 wax-prosemirror-schema/src/nodes/codeBlockNode.js
 create mode 100644 wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
 create mode 100644 wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
 create mode 100644 wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
 create mode 100644 wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js

diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json
index 0e144b1f2..50878775a 100644
--- a/wax-prosemirror-components/package.json
+++ b/wax-prosemirror-components/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror UI components",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json
index 482e31200..2bc7a5ffd 100644
--- a/wax-prosemirror-core/package.json
+++ b/wax-prosemirror-core/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror core",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-layouts/package.json b/wax-prosemirror-layouts/package.json
index d753bac20..d32477de5 100644
--- a/wax-prosemirror-layouts/package.json
+++ b/wax-prosemirror-layouts/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror layouts",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-plugins/package.json b/wax-prosemirror-plugins/package.json
index c60d16ece..e57c59288 100644
--- a/wax-prosemirror-plugins/package.json
+++ b/wax-prosemirror-plugins/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror plugins",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-schema/index.js b/wax-prosemirror-schema/index.js
index 5a1ac5c33..d821cda25 100644
--- a/wax-prosemirror-schema/index.js
+++ b/wax-prosemirror-schema/index.js
@@ -1,42 +1,43 @@
 /*
 LIST OF SUPPORTED MARKS
 */
-export { default as codeMark } from "./src/marks/codeMark";
-export { default as strongMark } from "./src/marks/strongMark";
-export { default as linkMark } from "./src/marks/linkMark";
-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";
-export { default as sourceMark } from "./src/marks/sourceMark";
-export { default as commentMark } from "./src/marks/commentMark";
+export { default as codeMark } from './src/marks/codeMark';
+export { default as strongMark } from './src/marks/strongMark';
+export { default as linkMark } from './src/marks/linkMark';
+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';
+export { default as sourceMark } from './src/marks/sourceMark';
+export { default as commentMark } from './src/marks/commentMark';
 /*
 LIST OF TRACK CHANGES MARKS
 */
-export { default as trackChangesMarks } from "./src/marks/trackChangesMarks";
+export { default as trackChangesMarks } from './src/marks/trackChangesMarks';
 
 /*
 LIST OF SUPPORTED NODES
 */
-export { default as authorNode } from "./src/nodes/authorNode";
-export { default as epigraphPoetryNode } from "./src/nodes/epigraphPoetryNode";
-export { default as epigraphProseNode } from "./src/nodes/epigraphProseNode";
-export { default as sourceNoteNode } from "./src/nodes/sourceNoteNode";
-export { default as paragraphContNode } from "./src/nodes/paragraphContNode";
-export { default as extractProseNode } from "./src/nodes/extractProseNode";
-export { default as extractPoetryNode } from "./src/nodes/extractPoetryNode";
-export { default as titleNode } from "./src/nodes/titleNode";
-export { default as orderedListNode } from "./src/nodes/orderedListNode";
-export { default as bulletListNode } from "./src/nodes/bulletListNode";
-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";
-export { default as footNoteNode } from "./src/nodes/footNoteNode";
+export { default as authorNode } from './src/nodes/authorNode';
+export { default as epigraphPoetryNode } from './src/nodes/epigraphPoetryNode';
+export { default as epigraphProseNode } from './src/nodes/epigraphProseNode';
+export { default as sourceNoteNode } from './src/nodes/sourceNoteNode';
+export { default as paragraphContNode } from './src/nodes/paragraphContNode';
+export { default as extractProseNode } from './src/nodes/extractProseNode';
+export { default as extractPoetryNode } from './src/nodes/extractPoetryNode';
+export { default as titleNode } from './src/nodes/titleNode';
+export { default as orderedListNode } from './src/nodes/orderedListNode';
+export { default as bulletListNode } from './src/nodes/bulletListNode';
+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';
+export { default as footNoteNode } from './src/nodes/footNoteNode';
+export { default as codeBlockNode } from './src/nodes/codeBlockNode';
 /*
 LIST OF TRACK CHANGES NODES
 */
-export { default as trackChangesNodes } from "./src/nodes/trackChangesNodes";
+export { default as trackChangesNodes } from './src/nodes/trackChangesNodes';
diff --git a/wax-prosemirror-schema/package.json b/wax-prosemirror-schema/package.json
index 7dbab3122..6aff35c7d 100644
--- a/wax-prosemirror-schema/package.json
+++ b/wax-prosemirror-schema/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror schema",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-schema/src/nodes/codeBlockNode.js b/wax-prosemirror-schema/src/nodes/codeBlockNode.js
new file mode 100644
index 000000000..18ae5b294
--- /dev/null
+++ b/wax-prosemirror-schema/src/nodes/codeBlockNode.js
@@ -0,0 +1,24 @@
+const codeBlock = {
+  content: 'text*',
+  group: 'block',
+  code: true,
+  defining: true,
+  marks: '',
+  attrs: { params: { default: '' } },
+  parseDOM: [
+    {
+      tag: 'pre',
+      preserveWhitespace: 'full',
+      getAttrs(dom) {
+        return {
+          params: dom.dataset.params,
+        };
+      },
+    },
+  ],
+  toDOM(node) {
+    return ['pre', { 'data-params': node.attrs.params }, ['code', 0]];
+  },
+};
+
+export default codeBlock;
diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js
index 614241f5f..0f53929b1 100644
--- a/wax-prosemirror-services/index.js
+++ b/wax-prosemirror-services/index.js
@@ -27,6 +27,7 @@ export { default as TextBlockLevelService } from './src/TextBlockLevel/TextBlock
 export { default as DisplayBlockLevelService } from './src/DisplayBlockLevel/DisplayBlockLevelService';
 export { default as NoteService } from './src/NoteService/NoteService';
 export { default as CommentsService } from './src/CommentsService/CommentsService';
+export { default as CodeBlockService } from './src/CodeBlockService/CodeBlockService';
 /*
 ToolGroups
 */
@@ -38,3 +39,4 @@ export { default as TableToolGroupService } from './src/WaxToolGroups/TableToolG
 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';
+export { default as CodeBlockToolGroupService } from './src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService';
diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json
index 03e3063ae..14d168651 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror services",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
@@ -18,6 +18,7 @@
     "wax-prosemirror-core": "^0.0.11",
     "wax-prosemirror-layouts": "^0.0.11",
     "wax-prosemirror-utilities": "^0.0.11",
+    "wax-prosemirror-schema": "^0.0.11",
     "prosemirror-commands": "^1.1.3",
     "prosemirror-transform": "^1.2.3",
     "prosemirror-keymap": "^1.1.3",
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
new file mode 100644
index 000000000..29c71105c
--- /dev/null
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockService.js
@@ -0,0 +1,16 @@
+import { codeBlockNode } from 'wax-prosemirror-schema';
+import Service from '../Service';
+import CodeBlockTool from './CodeBlockTool';
+
+export default class CodeBlockService extends Service {
+  boot() {}
+
+  register() {
+    this.container.bind('CodeBlock').to(CodeBlockTool);
+    const createNode = this.container.get('CreateNode');
+
+    createNode({
+      codeblock: codeBlockNode,
+    });
+  }
+}
diff --git a/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
new file mode 100644
index 000000000..8e7faff1b
--- /dev/null
+++ b/wax-prosemirror-services/src/CodeBlockService/CodeBlockTool.js
@@ -0,0 +1,16 @@
+import Tools from '../lib/Tools';
+import { injectable } from 'inversify';
+import { icons } from 'wax-prosemirror-components';
+import { Fragment } from 'prosemirror-model';
+
+@injectable()
+class CodeBlockTool extends Tools {
+  title = 'Insert Code Block';
+  content = icons.footnote;
+
+  get run() {}
+
+  get enable() {}
+}
+
+export default CodeBlockTool;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
index 7429579fc..e70cdd3c3 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Base from "./Base";
+import Service from '../../Service';
+import Base from './Base';
 
 class BaseToolGroupService extends Service {
-  name = "BaseToolGroupService";
-
   register() {
-    this.container.bind("Base").to(Base);
+    this.container.bind('Base').to(Base);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
new file mode 100644
index 000000000..8ad99cdf3
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlock.js
@@ -0,0 +1,13 @@
+import { injectable, inject } from 'inversify';
+import ToolGroup from '../../lib/ToolGroup';
+
+@injectable()
+class CodeBlock extends ToolGroup {
+  tools = [];
+  constructor(@inject('CodeBlock') codeblock) {
+    super();
+    this.tools = [codeblock];
+  }
+}
+
+export default CodeBlock;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js
new file mode 100644
index 000000000..622ad204c
--- /dev/null
+++ b/wax-prosemirror-services/src/WaxToolGroups/CodeBlockToolGroupService/CodeBlockToolGroupService.js
@@ -0,0 +1,10 @@
+import Service from '../../Service';
+import CodeBlock from './CodeBlock';
+
+class CodeBlockToolGroupService extends Service {
+  register() {
+    this.container.bind('CodeBlock').to(CodeBlock);
+  }
+}
+
+export default CodeBlockToolGroupService;
diff --git a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
index 8ffc1852e..ae115faba 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/DisplayToolGroupService/DisplayToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Display from "./Display";
+import Service from '../../Service';
+import Display from './Display';
 
 class DisplayToolGroupService extends Service {
-  name = "DisplayToolGroupService";
-
   register() {
-    this.container.bind("Display").to(Display);
+    this.container.bind('Display').to(Display);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
index cd249031a..36b95737d 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Images from "./Images";
+import Service from '../../Service';
+import Images from './Images';
 
 class ImageToolGroupService extends Service {
-  name = "ImageToolGroupService";
-
   register() {
-    this.container.bind("Images").to(Images);
+    this.container.bind('Images').to(Images);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
index 815d423e2..6e32aabb0 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Lists from "./Lists";
+import Service from '../../Service';
+import Lists from './Lists';
 
 class ListToolGroupService extends Service {
-  name = "ListToolGroupService";
-
   register() {
-    this.container.bind("Lists").to(Lists);
+    this.container.bind('Lists').to(Lists);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
index 15d469325..8f993428b 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/NoteToolGroupService/NoteToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Notes from "./Notes";
+import Service from '../../Service';
+import Notes from './Notes';
 
 class NoteToolGroupService extends Service {
-  name = "NoteToolGroupService";
-
   register() {
-    this.container.bind("Notes").to(Notes);
+    this.container.bind('Notes').to(Notes);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
index 3c0b40a52..457a6fbc9 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TableToolGroupService/TableToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Tables from "./Tables";
+import Service from '../../Service';
+import Tables from './Tables';
 
 class TableToolGroupService extends Service {
-  name = "TableToolGroupService";
-
   register() {
-    this.container.bind("Tables").to(Tables);
+    this.container.bind('Tables').to(Tables);
   }
 }
 
diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
index 7b074f52f..397d4b978 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/TextToolGroupService.js
@@ -1,11 +1,9 @@
-import Service from "../../Service";
-import Text from "./Text";
+import Service from '../../Service';
+import Text from './Text';
 
 class TextToolGroupService extends Service {
-  name = "TextToolGroupService";
-
   register() {
-    this.container.bind("Text").to(Text);
+    this.container.bind('Text').to(Text);
   }
 }
 
diff --git a/wax-prosemirror-themes/package.json b/wax-prosemirror-themes/package.json
index 21d4ecbf4..0abb1c7bd 100644
--- a/wax-prosemirror-themes/package.json
+++ b/wax-prosemirror-themes/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror themes",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
diff --git a/wax-prosemirror-utilities/package.json b/wax-prosemirror-utilities/package.json
index 52bb22f00..d0439a75f 100644
--- a/wax-prosemirror-utilities/package.json
+++ b/wax-prosemirror-utilities/package.json
@@ -4,7 +4,7 @@
   "version": "0.0.11",
   "description": "Wax prosemirror utilities",
   "license": "MIT",
-  "main": "dist/index.js",
+  "main": "index.js",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "build": "BABEL_ENV=production rollup -c"
-- 
GitLab