diff --git a/editors/editoria/src/Editoria.js b/editors/editoria/src/Editoria.js index 2ad25dee439832b7e8f94d28d14f468a42c464b3..cf9c690d2b67e40cf1d04fb586d9964b90001ec2 100644 --- a/editors/editoria/src/Editoria.js +++ b/editors/editoria/src/Editoria.js @@ -51,9 +51,8 @@ const Editoria = () => ( value="<p> <span style='font-style:italic;'>test</span>hello <code> this is the code</code></p>" layout={EditoriaLayout} user={user} - debug /> - <div id="editors"></div> + <div id="editors" /> </Fragment> ); diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index 05a78a8f1b474ffc01b5a6977fa85e567db133e4..8934590881c27ea4f7930bd24ffc7f73efc736cb 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -14,7 +14,9 @@ import { BaseToolGroupService, DisplayBlockLevelService, DisplayToolGroupService, - ImageToolGroupService + ImageToolGroupService, + TextBlockLevelService, + TextToolGroupService } from "wax-prosemirror-services"; import invisibles, { @@ -31,7 +33,7 @@ export default { }, { templateArea: "leftSideBar", - toolGroups: ["Display"] + toolGroups: ["Display", "Text"] } ], @@ -59,8 +61,8 @@ export default { new BaseToolGroupService(), new DisplayBlockLevelService(), new DisplayToolGroupService(), - new ImageToolGroupService() - // new TextBlockLevelService(), - // new TextToolGroupService() + new ImageToolGroupService(), + new TextBlockLevelService(), + new TextToolGroupService() ] }; diff --git a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js index 63bbaa546d64b4c5e34a44d33db04cbb553210f0..bf4499c03fd41d297c9efd90fc19948cb5bc9acc 100644 --- a/wax-prosemirror-schema/src/nodes/extractPoetryNode.js +++ b/wax-prosemirror-schema/src/nodes/extractPoetryNode.js @@ -22,7 +22,7 @@ const extractPoetry = { ], toDOM(hook, next) { const attrs = blockLevelToDOM(hook.node); - hook.value[("p", attrs, 0)]; + hook.value = ["p", attrs, 0]; next(); } }; diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js new file mode 100644 index 0000000000000000000000000000000000000000..77ac0af54e863f2ce42ec57ce4f0b1fc8944f5c0 --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuote.js @@ -0,0 +1,22 @@ +import Tools from "../../lib/Tools"; +import { injectable } from "inversify"; +import { wrapIn } from "prosemirror-commands"; + +@injectable() +class BlockQuote extends Tools { + title = "Change to Block Quote"; + content = "Block Quote"; + + get run() { + return (state, dispatch) => { + wrapIn(state.config.schema.nodes.blockquote)(state, dispatch); + }; + } + + get enable() { + return state => { + return wrapIn(state.config.schema.nodes.blockquote)(state); + }; + } +} +export default BlockQuote; diff --git a/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js new file mode 100644 index 0000000000000000000000000000000000000000..b81a5f94c1d286a5f16f5a279de6bba0ffde3084 --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/BlockQuoteService/BlockQuoteService.js @@ -0,0 +1,20 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import { blockQuoteNode } from "wax-prosemirror-schema"; +import BlockQuote from "./BlockQuote"; + +class BlockQuoteService extends Service { + boot() {} + + register() { + this.container.bind("BlockQuote").to(BlockQuote); + const createNode = this.container.get("CreateNode"); + createNode( + { + blockquote: blockQuoteNode + }, + { toWaxSchema: true } + ); + } +} + +export default BlockQuoteService; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js new file mode 100644 index 0000000000000000000000000000000000000000..f3507f5d87bb4fdb95ed926d34ccb8bd9c2a1eba --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetry.js @@ -0,0 +1,22 @@ +import Tools from "../../lib/Tools"; +import { injectable } from "inversify"; +import { setBlockType } from "prosemirror-commands"; + +@injectable() +class ExtractPoetry extends Tools { + title = "Change to Extract Poetry"; + content = "Extract Poetry"; + + get run() { + return (state, dispatch) => { + setBlockType(state.config.schema.nodes.extractPoetry)(state, dispatch); + }; + } + + get enable() { + return state => { + return setBlockType(state.config.schema.nodes.extractPoetry)(state); + }; + } +} +export default ExtractPoetry; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9b0a043a08c75a58aaf1d3540b0b146ced763768 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractPoetryService/ExtractPoetryService.js @@ -0,0 +1,20 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import { extractPoetryNode } from "wax-prosemirror-schema"; +import ExtractPoetry from "./ExtractPoetry"; + +class ExtractPoetryService extends Service { + boot() {} + + register() { + this.container.bind("ExtractPoetry").to(ExtractPoetry); + const createNode = this.container.get("CreateNode"); + createNode( + { + extractPoetry: extractPoetryNode + }, + { toWaxSchema: true } + ); + } +} + +export default ExtractPoetryService; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js new file mode 100644 index 0000000000000000000000000000000000000000..261cfe18de1fd51b7b63a0c5376a6fa338bfb281 --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProse.js @@ -0,0 +1,22 @@ +import Tools from "../../lib/Tools"; +import { injectable } from "inversify"; +import { setBlockType } from "prosemirror-commands"; + +@injectable() +class ExtractProse extends Tools { + title = "Change to Extract Prose"; + content = "Extract Prose"; + + get run() { + return (state, dispatch) => { + setBlockType(state.config.schema.nodes.extractProse)(state, dispatch); + }; + } + + get enable() { + return state => { + return setBlockType(state.config.schema.nodes.extractProse)(state); + }; + } +} +export default ExtractProse; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..74933be551e9260694c2518de6d25ad335194e03 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ExtractProseService/ExtractProseService.js @@ -0,0 +1,20 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import { extractProseNode } from "wax-prosemirror-schema"; +import ExtractProse from "./ExtractProse"; + +class ExtractProseService extends Service { + boot() {} + + register() { + this.container.bind("ExtractProse").to(ExtractProse); + const createNode = this.container.get("CreateNode"); + createNode( + { + extractProse: extractProseNode + }, + { toWaxSchema: true } + ); + } +} + +export default ExtractProseService; diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js index ce7affa84fadbb1cf12785e89f00e08ccc413155..bcc3c506e807d35422df6cf9fb47621c908c1575 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinued.js @@ -9,13 +9,13 @@ class ParagraphContinued extends Tools { get run() { return (state, dispatch) => { - setBlockType(state.config.schema.nodes.paragraph)(state, dispatch); + setBlockType(state.config.schema.nodes.paragraphCont)(state, dispatch); }; } get enable() { return state => { - return setBlockType(state.config.schema.nodes.paragraph)(state); + return setBlockType(state.config.schema.nodes.paragraphCont)(state); }; } } diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js index 553f8bfc9ed60ce9493fd1bb2cbe3400bfecb3df..dbb93a649076d611dfb88219f8544fdd20b9697c 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphContinuedService/ParagraphContinuedService.js @@ -1,4 +1,5 @@ import Service from "wax-prosemirror-core/src/services/Service"; +import { paragraphContNode } from "wax-prosemirror-schema"; import ParagraphContinued from "./ParagraphContinued"; class ParagraphContinuedService extends Service { @@ -6,6 +7,13 @@ class ParagraphContinuedService extends Service { register() { this.container.bind("ParagraphContinued").to(ParagraphContinued); + const createNode = this.container.get("CreateNode"); + createNode( + { + paragraphCont: paragraphContNode + }, + { toWaxSchema: true } + ); } } diff --git a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js index aecfcffd8ae41f76e40db219d2d95cdeb2402b73..b02a73f210db858dc2ada728c00099e5f7d53ed2 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/ParagraphService/ParagraphService.js @@ -1,7 +1,7 @@ import Service from "wax-prosemirror-core/src/services/Service"; import Paragraph from "./Paragraph"; -class PsragraphService extends Service { +class ParagraphService extends Service { boot() {} register() { diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js new file mode 100644 index 0000000000000000000000000000000000000000..5e05eea06c5494e8ef41034841d395b82be6bbf5 --- /dev/null +++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNote.js @@ -0,0 +1,22 @@ +import Tools from "../../lib/Tools"; +import { injectable } from "inversify"; +import { setBlockType } from "prosemirror-commands"; + +@injectable() +class SourceNote extends Tools { + title = "Change to Source Note"; + content = "Source Note"; + + get run() { + return (state, dispatch) => { + setBlockType(state.config.schema.nodes.sourceNote)(state, dispatch); + }; + } + + get enable() { + return state => { + return setBlockType(state.config.schema.nodes.sourceNote)(state); + }; + } +} +export default SourceNote; diff --git a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f57ac2f927fcf006dc7cc97d61b3441728814413 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js +++ b/wax-prosemirror-services/src/TextBlockLevel/SourceNoteService/SourceNoteService.js @@ -0,0 +1,20 @@ +import Service from "wax-prosemirror-core/src/services/Service"; +import { sourceNoteNode } from "wax-prosemirror-schema"; +import SourceNote from "./SourceNote"; + +class SourceNoteService extends Service { + boot() {} + + register() { + this.container.bind("SourceNote").to(SourceNote); + const createNode = this.container.get("CreateNode"); + createNode( + { + sourceNote: sourceNoteNode + }, + { toWaxSchema: true } + ); + } +} + +export default SourceNoteService; diff --git a/wax-prosemirror-services/src/TextBlockLevel/index.js b/wax-prosemirror-services/src/TextBlockLevel/index.js index 3bf999cd869e5c2d549d50ff0dcdad1a8b66c607..7506441049eced9f65d37eb4a3e2a2b6fe2875be 100644 --- a/wax-prosemirror-services/src/TextBlockLevel/index.js +++ b/wax-prosemirror-services/src/TextBlockLevel/index.js @@ -1,13 +1,15 @@ -// import ExtractPoetryService from "./ExtractPoetryService/ExtractPoetryService"; -// import ExtractProseService from "./ExtractProseService/ExtractProseService"; -// import ParagraphContinuedService from "./ParagraphContinuedService/ParagraphContinuedService"; -// import ParagraphService from "./ParagraphService/ParagraphService"; -// import SourceNoteService from "./SourceNoteService/SourceNoteService"; -// -// export default [ -// new ExtractPoetryService(), -// new ExtractProseService(), -// new ParagraphContinuedService(), -// new ParagraphService(), -// new SourceNoteService() -// ]; +import ExtractPoetryService from "./ExtractPoetryService/ExtractPoetryService"; +import ExtractProseService from "./ExtractProseService/ExtractProseService"; +import ParagraphContinuedService from "./ParagraphContinuedService/ParagraphContinuedService"; +import ParagraphService from "./ParagraphService/ParagraphService"; +import SourceNoteService from "./SourceNoteService/SourceNoteService"; +import BlockQuoteService from "./BlockQuoteService/BlockQuoteService"; + +export default [ + new ExtractPoetryService(), + new ExtractProseService(), + new ParagraphContinuedService(), + new ParagraphService(), + new SourceNoteService(), + new BlockQuoteService() +]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js index e14231b123a061a168b86fdb92242c48db81c95e..b1cdb108ad49c24f24a798e7cde4d4b29c59c788 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js +++ b/wax-prosemirror-services/src/WaxToolGroups/TextToolGroupService/Text.js @@ -1,12 +1,35 @@ +import React from "react"; import { injectable, inject } from "inversify"; import ToolGroup from "../../lib/ToolGroup"; @injectable() class Text extends ToolGroup { tools = []; - constructor() { + title = () => { + return ( + <span> + Text + <hr /> + </span> + ); + }; + constructor( + @inject("Paragraph") paragraph, + @inject("ParagraphContinued") paragraphContinued, + @inject("ExtractProse") extractProse, + @inject("ExtractPoetry") extractPoetry, + @inject("SourceNote") sourceNote, + @inject("BlockQuote") blockQuote + ) { super(); - this.tools = []; + this.tools = [ + paragraph, + paragraphContinued, + extractProse, + extractPoetry, + sourceNote, + blockQuote + ]; } }