From acfa4282fb776f43dbb43037efbf066daaadbda6 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Mon, 23 Dec 2019 23:34:06 +0200 Subject: [PATCH] wax Toolgroups in progress --- editors/editoria/src/config/config.js | 6 ++++- .../src/config/defaultConfig.js | 8 +++--- wax-prosemirror-services/index.js | 13 +++++++--- .../AnnotationService/AnnotationService.js | 14 ---------- .../AnnotationToolGroupService.js | 17 ++++++++++++ .../Annotations.js} | 16 ++++-------- .../tools/Blockquote.js | 4 +-- .../tools/Table.js | 4 +-- .../tools/TableDropDownOptions.js | 4 +-- .../tools/index.js | 0 .../BaseToolGroupService/Base.js | 0 .../BaseToolGroupService.js | 12 +++++++++ .../ImageToolGroupService/Image.js | 0 .../ImageToolGroupService.js | 12 +++++++++ .../ListToolGroupService.js | 12 +++++++++ .../ListToolGroupService/Lists.js | 26 +++++++++++++++++++ .../TableListGroupService/Table.js | 0 .../TableListGroupService.js | 12 +++++++++ 18 files changed, 122 insertions(+), 38 deletions(-) delete mode 100644 wax-prosemirror-services/src/AnnotationService/AnnotationService.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js rename wax-prosemirror-services/src/{AnnotationService/Annotation.js => WaxToolGroups/AnnotationToolGroupService/Annotations.js} (75%) rename wax-prosemirror-services/src/{AnnotationService => WaxToolGroups/AnnotationToolGroupService}/tools/Blockquote.js (87%) rename wax-prosemirror-services/src/{AnnotationService => WaxToolGroups/AnnotationToolGroupService}/tools/Table.js (80%) rename wax-prosemirror-services/src/{AnnotationService => WaxToolGroups/AnnotationToolGroupService}/tools/TableDropDownOptions.js (89%) rename wax-prosemirror-services/src/{AnnotationService => WaxToolGroups/AnnotationToolGroupService}/tools/index.js (100%) create mode 100644 wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Image.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/Table.js create mode 100644 wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index ff7367bf1..18946d5bf 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -10,7 +10,11 @@ export default { MenuService: [ { templateArea: "topBar", - toolGroups: ["Annotation", { name: "RedoUndo", exclude: ["Redo"] }] + toolGroups: [ + "Annotations", + "Lists", + { name: "RedoUndo", exclude: ["Redo"] } + ] }, { templateArea: "leftSideBar", diff --git a/wax-prosemirror-core/src/config/defaultConfig.js b/wax-prosemirror-core/src/config/defaultConfig.js index 83635b631..55d21c234 100644 --- a/wax-prosemirror-core/src/config/defaultConfig.js +++ b/wax-prosemirror-core/src/config/defaultConfig.js @@ -1,6 +1,6 @@ import LayoutService from "../services/LayoutService/LayoutService"; import { - AnnotationService, + AnnotationToolGroupService, ImageService, MenuService, SchemaService, @@ -11,7 +11,8 @@ import { TextStyleService, InlineAnnotationsService, LinkService, - ListsService + ListsService, + ListToolGroupService } from "wax-prosemirror-services"; export default { @@ -22,7 +23,8 @@ export default { new LayoutService(), new MenuService(), new RedoUndoService(), - new AnnotationService(), + new AnnotationToolGroupService(), + new ListToolGroupService(), new TextStyleService(), new PlaceholderService(), new ImageService(), diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index 951afea2c..e884c5d7c 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -3,9 +3,6 @@ export { default as MenuService } from "./src/MenuService/MenuService"; export { default as RedoUndoService } from "./src/RedoUndoService/RedoUndoService"; -export { - default as AnnotationService -} from "./src/AnnotationService/AnnotationService"; export { default as TextStyleService } from "./src/TextStyleService/TextStyleService"; @@ -25,3 +22,13 @@ export { export { default as ListsService } from "./src/ListsService/ListsService"; export { default as Tool } from "./src/lib/Tools"; + +/* +ToolGroups +*/ +export { + default as AnnotationToolGroupService +} from "./src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService"; +export { + default as ListToolGroupService +} from "./src/WaxToolGroups/ListToolGroupService/ListToolGroupService"; diff --git a/wax-prosemirror-services/src/AnnotationService/AnnotationService.js b/wax-prosemirror-services/src/AnnotationService/AnnotationService.js deleted file mode 100644 index 56269cef3..000000000 --- a/wax-prosemirror-services/src/AnnotationService/AnnotationService.js +++ /dev/null @@ -1,14 +0,0 @@ -import Annotation from "./Annotation"; -import Service from "wax-prosemirror-core/src/services/Service"; -import * as Tools from "./tools"; - -export default class AnnotationService extends Service { - name = "AnnotationService"; - - register() { - this.container.bind("Annotation").to(Annotation); - Object.entries(Tools).forEach(([key, value]) => { - this.container.bind(key).to(value); - }); - } -} diff --git a/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js new file mode 100644 index 000000000..55b6e783c --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/AnnotationToolGroupService.js @@ -0,0 +1,17 @@ +import Service from "wax-prosemirror-core/src/services/Service"; + +import Annotations from "./Annotations"; +import * as Tools from "./tools"; + +class AnnotationToolGroupService extends Service { + name = "AnnotationToolGroupService"; + + register() { + this.container.bind("Annotations").to(Annotations); + Object.entries(Tools).forEach(([key, value]) => { + this.container.bind(key).to(value); + }); + } +} + +export default AnnotationToolGroupService; diff --git a/wax-prosemirror-services/src/AnnotationService/Annotation.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js similarity index 75% rename from wax-prosemirror-services/src/AnnotationService/Annotation.js rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js index da9061d63..31702bd78 100644 --- a/wax-prosemirror-services/src/AnnotationService/Annotation.js +++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/Annotations.js @@ -1,8 +1,8 @@ import { injectable, inject } from "inversify"; -import ToolGroup from "../lib/ToolGroup"; +import ToolGroup from "../../lib/ToolGroup"; @injectable() -export default class Annotation extends ToolGroup { +class Annotations extends ToolGroup { tools = []; constructor( @inject("Code") code, @@ -16,10 +16,6 @@ export default class Annotation extends ToolGroup { @inject("Underline") underline, @inject("Blockquote") blockquote, @inject("Image") image, - @inject("OrderedList") orderedlist, - @inject("BulletList") bulletlist, - @inject("JoinUp") joinup, - @inject("Lift") lift, @inject("Table") table, @inject("TableDropDownOptions") tableDropDownOptions ) { @@ -37,11 +33,7 @@ export default class Annotation extends ToolGroup { blockquote, tableDropDownOptions, image, - table, - orderedlist, - bulletlist, - joinup, - lift + table ]; } @@ -53,3 +45,5 @@ export default class Annotation extends ToolGroup { return tools; } } + +export default Annotations; diff --git a/wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js similarity index 87% rename from wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js index 209dddbe2..ffa361107 100644 --- a/wax-prosemirror-services/src/AnnotationService/tools/Blockquote.js +++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Blockquote.js @@ -1,8 +1,8 @@ -import Tools from "../../lib/Tools"; +import Tools from "../../../lib/Tools"; import { injectable } from "inversify"; import { icons } from "wax-prosemirror-components"; import { wrapIn } from "prosemirror-commands"; -import { blockActive } from "../../lib/Utils"; +import { blockActive } from "../../../lib/Utils"; @injectable() export default class Blockquote extends Tools { diff --git a/wax-prosemirror-services/src/AnnotationService/tools/Table.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js similarity index 80% rename from wax-prosemirror-services/src/AnnotationService/tools/Table.js rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js index 238c9084e..5de1b8c84 100644 --- a/wax-prosemirror-services/src/AnnotationService/tools/Table.js +++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/Table.js @@ -1,5 +1,5 @@ -import Tools from "../../lib/Tools"; -import { createTable, canInsert } from "../../lib/Utils"; +import Tools from "../../../lib/Tools"; +import { createTable, canInsert } from "../../../lib/Utils"; import { injectable } from "inversify"; import { icons } from "wax-prosemirror-components"; diff --git a/wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js similarity index 89% rename from wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js index 9deea97f4..2bd55d9c6 100644 --- a/wax-prosemirror-services/src/AnnotationService/tools/TableDropDownOptions.js +++ b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/TableDropDownOptions.js @@ -1,7 +1,7 @@ import React from "react"; import { v4 as uuid } from "uuid"; -import { canInsert } from "../../lib/Utils"; -import Tools from "../../lib/Tools"; +import { canInsert } from "../../../lib/Utils"; +import Tools from "../../../lib/Tools"; import { injectable } from "inversify"; import { TableDropDown } from "wax-prosemirror-components"; import { addColumnBefore } from "prosemirror-tables"; diff --git a/wax-prosemirror-services/src/AnnotationService/tools/index.js b/wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/index.js similarity index 100% rename from wax-prosemirror-services/src/AnnotationService/tools/index.js rename to wax-prosemirror-services/src/WaxToolGroups/AnnotationToolGroupService/tools/index.js diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js new file mode 100644 index 000000000..e69de29bb diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js new file mode 100644 index 000000000..90b532f0f --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/BaseToolGroupService.js @@ -0,0 +1,12 @@ +import Base from "./Base"; +import Service from "wax-prosemirror-core/src/services/Service"; + +class BaseToolGroupService extends Service { + name = "BaseToolGroupService"; + + register() { + this.container.bind("Base").to(Base); + } +} + +export default BaseToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Image.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/Image.js new file mode 100644 index 000000000..e69de29bb diff --git a/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js new file mode 100644 index 000000000..4305f81c2 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/ImageToolGroupService/ImageToolGroupService.js @@ -0,0 +1,12 @@ +import Image from "./Image"; +import Service from "wax-prosemirror-core/src/services/Service"; + +class ImageToolGroupService extends Service { + name = "ImageToolGroupService"; + + register() { + this.container.bind("Image").to(Image); + } +} + +export default ImageToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js new file mode 100644 index 000000000..311f02da6 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/ListToolGroupService.js @@ -0,0 +1,12 @@ +import Lists from "./Lists"; +import Service from "wax-prosemirror-core/src/services/Service"; + +class ListToolGroupService extends Service { + name = "ListToolGroupService"; + + register() { + this.container.bind("Lists").to(Lists); + } +} + +export default ListToolGroupService; diff --git a/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js new file mode 100644 index 000000000..0e8bbf777 --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/ListToolGroupService/Lists.js @@ -0,0 +1,26 @@ +import { injectable, inject } from "inversify"; +import ToolGroup from "../../lib/ToolGroup"; + +@injectable() +class Lists extends ToolGroup { + tools = []; + constructor( + @inject("OrderedList") orderedlist, + @inject("BulletList") bulletlist, + @inject("JoinUp") joinup, + @inject("Lift") lift + ) { + super(); + this.tools = [orderedlist, bulletlist, joinup, lift]; + } + + renderTools(view) { + const tools = []; + this.tools.forEach(tool => { + tools.push(tool.renderTool(view)); + }); + return tools; + } +} + +export default Lists; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/Table.js b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/Table.js new file mode 100644 index 000000000..e69de29bb diff --git a/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js new file mode 100644 index 000000000..137ed227b --- /dev/null +++ b/wax-prosemirror-services/src/WaxToolGroups/TableListGroupService/TableListGroupService.js @@ -0,0 +1,12 @@ +import Table from "./Table"; +import Service from "wax-prosemirror-core/src/services/Service"; + +class TableToolGroupService extends Service { + name = "TableToolGroupService"; + + register() { + this.container.bind("Table").to(Table); + } +} + +export default TableToolGroupService; -- GitLab