diff --git a/editors/editoria/src/config/config.js b/editors/editoria/src/config/config.js index c37f64b137416b762528db006981ac8c28ff5049..2e195ed3a31f976a340ffc9c620fd5770f0ca8a5 100644 --- a/editors/editoria/src/config/config.js +++ b/editors/editoria/src/config/config.js @@ -23,6 +23,7 @@ import { CommentsService, CodeBlockService, CodeBlockToolGroupService, + TrackChangeToolGroupService, } from 'wax-prosemirror-services'; import { WaxSelectionPlugin } from 'wax-prosemirror-plugins'; @@ -48,6 +49,7 @@ export default { 'Images', 'CodeBlock', 'Tables', + 'TrackChange', ], }, { @@ -92,5 +94,6 @@ export default { new ListToolGroupService(), new CodeBlockService(), new CodeBlockToolGroupService(), + new TrackChangeToolGroupService(), ], }; diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js new file mode 100644 index 0000000000000000000000000000000000000000..e753ad468905246005f9382ce5e4ddedb7fc27e6 --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChange.js @@ -0,0 +1,32 @@ +import React from 'react'; +import { injectable } from 'inversify'; +import { isEmpty } from 'lodash'; +import Tools from '../../lib/Tools'; + +export default +@injectable() +class EnableTrackChange extends Tools { + title = 'Select Options'; + content = 'table'; + + get run() { + return () => { + return true; + }; + } + + get enable() { + return state => { + return true; + }; + } + + select(state) { + return true; + } + + renderTool(view) { + if (isEmpty(view)) return null; + return this._isDisplayed ? <button type="button"> Track </button> : null; + } +} diff --git a/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js new file mode 100644 index 0000000000000000000000000000000000000000..0540b09e7ab646199c07de49d7368a23cde2745d --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/EnableTrackChangeService/EnableTrackChangeService.js @@ -0,0 +1,12 @@ +import Service from '../../Service'; +import EnableTrackChange from './EnableTrackChange'; + +class EnableTrackChangeService extends Service { + boot() {} + + register() { + this.container.bind('EnableTrackChange').to(EnableTrackChange); + } +} + +export default EnableTrackChangeService; diff --git a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js index 5d642d6d6148b9e1b7a3c34b00de292fde726724..cc9ca50699f2de70e3e085190679ac8a22b112be 100644 --- a/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js +++ b/wax-prosemirror-services/src/TrackChangeService/TrackChangeService.js @@ -1,31 +1,34 @@ -import Service from "../Service"; -import { trackChangesMarks, trackChangesNodes } from "wax-prosemirror-schema"; +import { trackChangesMarks, trackChangesNodes } from 'wax-prosemirror-schema'; +import Service from '../Service'; +import TrackChangeServices from './index'; class TrackChangeService extends Service { boot() {} register() { - const createMark = this.container.get("CreateMark"); - const createNode = this.container.get("CreateNode"); + const createMark = this.container.get('CreateMark'); + const createNode = this.container.get('CreateNode'); Object.keys(trackChangesMarks).forEach(mark => { createMark( { - [mark]: trackChangesMarks[mark] + [mark]: trackChangesMarks[mark], }, - { toWaxSchema: true } + { toWaxSchema: true }, ); }); Object.keys(trackChangesNodes).forEach(node => { createNode( { - [node]: trackChangesNodes[node] + [node]: trackChangesNodes[node], }, - { toWaxSchema: true } + { toWaxSchema: true }, ); }); } + + dependencies = TrackChangeServices; } export default TrackChangeService; diff --git a/wax-prosemirror-services/src/TrackChangeService/index.js b/wax-prosemirror-services/src/TrackChangeService/index.js new file mode 100644 index 0000000000000000000000000000000000000000..c46492337d0f0738a671b2466d13992670325e76 --- /dev/null +++ b/wax-prosemirror-services/src/TrackChangeService/index.js @@ -0,0 +1,3 @@ +import EnableTrackChangeService from './EnableTrackChangeService/EnableTrackChangeService'; + +export default [new EnableTrackChangeService()]; diff --git a/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js b/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js index f494b177fb27b3ff7cbd2148c6ed2c809dc8c827..a0358a588c1b5a60df5b5ee71e9dcb36e296bb59 100644 --- a/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js +++ b/wax-prosemirror-services/src/WaxToolGroups/TrackChangeToolGroupService/TrackChange.js @@ -4,9 +4,9 @@ import ToolGroup from '../../lib/ToolGroup'; @injectable() class TrackChange extends ToolGroup { tools = []; - constructor() { + constructor(@inject('EnableTrackChange') enableTrackChange) { super(); - this.tools = []; + this.tools = [enableTrackChange]; } }