From ae0c2f5ee6f085311d2ec85c87b2795efa901a21 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Fri, 13 Dec 2019 13:36:00 +0200 Subject: [PATCH] shortCutsService initial setup --- editors/editoria/src/EditorConfig.js | 33 ++----------------- editors/editoria/src/config/config.js | 5 +++ wax-prosemirror-core/index.js | 3 -- .../src/Config/defaultConfig.js | 10 +++--- wax-prosemirror-core/src/Wax.js | 2 -- wax-prosemirror-plugins/index.js | 4 ++- .../src/RulesService/Rules.js | 2 +- .../src/ShortCutsService/ShortCuts.js | 6 ++-- .../src/ShortCutsService/ShortCutsService.js | 9 +++++ 9 files changed, 30 insertions(+), 44 deletions(-) rename wax-prosemirror-core/src/config/classes/CreateShortCuts.js => wax-prosemirror-plugins/src/ShortCutsService/ShortCuts.js (94%) create mode 100644 wax-prosemirror-plugins/src/ShortCutsService/ShortCutsService.js diff --git a/editors/editoria/src/EditorConfig.js b/editors/editoria/src/EditorConfig.js index 9814b90e9..3685f4eca 100644 --- a/editors/editoria/src/EditorConfig.js +++ b/editors/editoria/src/EditorConfig.js @@ -25,7 +25,7 @@ import invisibles, { } from "@guardian/prosemirror-invisibles"; import { LayoutService } from "./customServices/LayoutService/LayoutService"; -import { CreateSchema, CreateShortCuts } from "wax-prosemirror-core"; +import { CreateSchema } from "wax-prosemirror-core"; import { LinkToolTipPlugin, FindAndReplacePlugin, @@ -49,35 +49,6 @@ const extraNodes = { EditoriaSchema.nodes = { ...EditoriaSchema.nodes, ...extraNodes }; const schema = new CreateSchema(EditoriaSchema); -const shortCuts = { - "Mod-b": toggleMark(schema.marks.strong), - "Mod-i": toggleMark(schema.marks.em), - "Mod-u": toggleMark(schema.marks.underline), - "Mod-`": toggleMark(schema.marks.code), - "Ctrl->": wrapIn(schema.nodes.blockquote), - Enter: splitListItem(schema.nodes.list_item), - "Mod-[": liftListItem(schema.nodes.list_item), - "Mod-]": sinkListItem(schema.nodes.list_item), - "Alt-ArrowUp": joinUp, - "Alt-ArrowDown": joinDown, - "Mod-BracketLeft": lift, - Tab: goToNextCell(1), - "Shift-Tab": goToNextCell(-1), - "Shift-Ctrl-0": setBlockType(schema.nodes.paragraph), - "Shift-Ctrl-\\": setBlockType(schema.nodes.code_block), - "Shift-Ctrl-8": wrapInList(schema.nodes.bullet_list), - "Shift-Ctrl-9": wrapInList(schema.nodes.ordered_list), - "Shift-Ctrl-1": setBlockType(schema.nodes.heading, { level: 1 }), - "Shift-Ctrl-2": setBlockType(schema.nodes.heading, { level: 2 }), - "Shift-Ctrl-3": setBlockType(schema.nodes.heading, { level: 3 }), - "Shift-Ctrl-4": setBlockType(schema.nodes.heading, { level: 4 }), - "Shift-Ctrl-5": setBlockType(schema.nodes.heading, { level: 5 }), - "Shift-Ctrl-6": setBlockType(schema.nodes.heading, { level: 6 }) -}; - -// Create shortCuts -const keys = new CreateShortCuts({ schema, shortCuts }); - // Add Plugins const plugins = [ columnResizing(), @@ -101,4 +72,4 @@ const services = [new LinkService()]; // Add Rules -export { schema, keys, plugins, services }; +export { schema, plugins, services }; diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index 82fb3775f..2cb49b66c 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -15,5 +15,10 @@ export default { { rules: [emDash, ellipsis] } + ], + RulesService: [ + { + shortCuts: {} + } ] }; diff --git a/wax-prosemirror-core/index.js b/wax-prosemirror-core/index.js index 098d569b9..62a4c8a72 100644 --- a/wax-prosemirror-core/index.js +++ b/wax-prosemirror-core/index.js @@ -1,6 +1,3 @@ export { default as Wax } from "./src/Wax"; export { default as CreateSchema } from "./src/config/classes/CreateSchema"; -export { - default as CreateShortCuts -} from "./src/config/classes/CreateShortCuts"; export { default as Service } from "./src/services/Service"; diff --git a/wax-prosemirror-core/src/Config/defaultConfig.js b/wax-prosemirror-core/src/Config/defaultConfig.js index 10ea27853..d49e24606 100644 --- a/wax-prosemirror-core/src/Config/defaultConfig.js +++ b/wax-prosemirror-core/src/Config/defaultConfig.js @@ -1,17 +1,19 @@ import LayoutService from "../services/LayoutService/LayoutService"; import { - MenuService, AnnotationService, + ImageService, + MenuService, RedoUndoService, - TextStyleService, PlaceholderService, - ImageService, - RulesService + RulesService, + ShortCutsService, + TextStyleService } from "wax-prosemirror-plugins"; export default { services: [ new RulesService(), + new ShortCutsService(), new LayoutService(), new MenuService(), new RedoUndoService(), diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js index 7588a2b58..1b4a6ab2b 100644 --- a/wax-prosemirror-core/src/Wax.js +++ b/wax-prosemirror-core/src/Wax.js @@ -11,8 +11,6 @@ import WaxView from "./WaxView"; import defaultPlugins from "./config/defaultPlugins"; import placeholder from "./config/plugins/placeholder"; -import CreateShortCuts from "./config/classes/CreateShortCuts"; - const parser = schema => { const parser = DOMParser.fromSchema(schema); diff --git a/wax-prosemirror-plugins/index.js b/wax-prosemirror-plugins/index.js index 9e3aedf8b..b0e89fe7d 100644 --- a/wax-prosemirror-plugins/index.js +++ b/wax-prosemirror-plugins/index.js @@ -19,5 +19,7 @@ export { } from "./src/PlaceholderService/PlaceholderService"; export { default as ImageService } from "./src/ImageService/ImageService"; export { default as RulesService } from "./src/RulesService/RulesService"; - +export { + default as ShortCutsService +} from "./src/ShortCutsService/ShortCutsService"; export { default as Tool } from "./src/lib/Tools"; diff --git a/wax-prosemirror-plugins/src/RulesService/Rules.js b/wax-prosemirror-plugins/src/RulesService/Rules.js index 041ac1c75..465e4fbb8 100644 --- a/wax-prosemirror-plugins/src/RulesService/Rules.js +++ b/wax-prosemirror-plugins/src/RulesService/Rules.js @@ -1,4 +1,4 @@ -import { injectable, inject } from "inversify"; +import { injectable } from "inversify"; import { inputRules, wrappingInputRule, diff --git a/wax-prosemirror-core/src/config/classes/CreateShortCuts.js b/wax-prosemirror-plugins/src/ShortCutsService/ShortCuts.js similarity index 94% rename from wax-prosemirror-core/src/config/classes/CreateShortCuts.js rename to wax-prosemirror-plugins/src/ShortCutsService/ShortCuts.js index 98986fb1c..f8a27e947 100644 --- a/wax-prosemirror-core/src/config/classes/CreateShortCuts.js +++ b/wax-prosemirror-plugins/src/ShortCutsService/ShortCuts.js @@ -1,3 +1,4 @@ +import { injectable } from "inversify"; import { keymap } from "prosemirror-keymap"; import { undoInputRule } from "prosemirror-inputrules"; import { undo, redo } from "prosemirror-history"; @@ -10,7 +11,8 @@ import { selectParentNode } from "prosemirror-commands"; -class CreateShortCuts { +@injectable() +class ShortCuts { constructor(config) { this.schema = config.schema; this.shortCuts = config.shortCuts; @@ -63,4 +65,4 @@ class CreateShortCuts { } } -export default CreateShortCuts; +export default ShortCuts; diff --git a/wax-prosemirror-plugins/src/ShortCutsService/ShortCutsService.js b/wax-prosemirror-plugins/src/ShortCutsService/ShortCutsService.js new file mode 100644 index 000000000..5424d0cd3 --- /dev/null +++ b/wax-prosemirror-plugins/src/ShortCutsService/ShortCutsService.js @@ -0,0 +1,9 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import ShortCuts from "./ShortCuts"; + +export default class ShortCutsService extends Service { + name = "ShortCutsService"; + + boot() {} + register() {} +} -- GitLab