diff --git a/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestion.js b/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestion.js new file mode 100644 index 0000000000000000000000000000000000000000..4208c9187c0f0200c1290b9f24cad44e6551f007 --- /dev/null +++ b/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestion.js @@ -0,0 +1,25 @@ +import { injectable } from 'inversify'; +import { Tools } from 'wax-prosemirror-services'; + +@injectable() +class FillTheGapQuestion extends Tools { + title = 'Add Fill The Gap Question'; + label = 'Fill The Gap'; + name = 'Fill The Gap'; + + get run() { + return (view, context) => {}; + } + + get active() { + return state => {}; + } + + select = (state, activeViewId) => {}; + + get enable() { + return state => {}; + } +} + +export default FillTheGapQuestion; diff --git a/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestionService.js b/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestionService.js index dc8a934a4c39848ae62a85a4826fdbed77fc3dae..950093760da8cd0deb547d5bdcbfdc96dcdff3a0 100644 --- a/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestionService.js +++ b/editors/demo/src/HHMI/FillTheGapQuestionService/FillTheGapQuestionService.js @@ -1,7 +1,9 @@ import { Service } from 'wax-prosemirror-services'; +import FillTheGapQuestion from './FillTheGapQuestion'; class FillTheGapQuestionService extends Service { register() { + this.container.bind('FillTheGapQuestion').to(FillTheGapQuestion); const createNode = this.container.get('CreateNode'); const addPortal = this.container.get('AddPortal'); } diff --git a/wax-prosemirror-components/package.json b/wax-prosemirror-components/package.json index 0e98979f975afb76e2066618d1ce642d4f63afca..5c251345916102f883a16aa22897c9f902c53331 100644 --- a/wax-prosemirror-components/package.json +++ b/wax-prosemirror-components/package.json @@ -19,7 +19,7 @@ "moment": "^2.29.0", "prop-types": "^15.7.2", "prosemirror-model": "1.14.3", - "prosemirror-state": "1.3.3", + "prosemirror-state": "1.3.4", "prosemirror-tables": "^1.1.1", "prosemirror-transform": "1.2.6", "react-dropdown": "^1.6.2", @@ -30,10 +30,6 @@ "wax-prosemirror-core": "^0.1.1", "wax-prosemirror-utilities": "^0.1.1" }, - "resolutions": { - "prosemirror-model": "1.14.3", - "prosemirror-state": "1.3.3" - }, "peerDependencies": { "react": "^16.13.1", "react-dom": "^16.13.1" diff --git a/wax-prosemirror-core/package.json b/wax-prosemirror-core/package.json index c0d010514c3a54ddb57b11cdac75e2494cd57796..d92523b4f2c0e031a660243f8628f45690417abc 100644 --- a/wax-prosemirror-core/package.json +++ b/wax-prosemirror-core/package.json @@ -25,7 +25,7 @@ "prosemirror-inputrules": "1.1.3", "prosemirror-keymap": "1.1.4", "prosemirror-model": "1.14.3", - "prosemirror-state": "1.3.3", + "prosemirror-state": "1.3.4", "prosemirror-transform": "1.2.6", "prosemirror-view": "1.20.1", "reflect-metadata": "^0.1.13", diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 45bb91c6fe331e8adf704fea3d7856536be76bb4..c8c2b38095f1b0b7686026a3b9600e49bba52fef 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -44,6 +44,7 @@ export default props => { if (!mounted) { context.app.bootServices(); + console.log(context); } const setEditorRef = useCallback( diff --git a/wax-prosemirror-plugins/package.json b/wax-prosemirror-plugins/package.json index 7faaddaf8dba3e6e8d88b2c5b1b4855793957a0b..a3b5c446bc1b4ce231cb83ee49af6e29698bbbee 100644 --- a/wax-prosemirror-plugins/package.json +++ b/wax-prosemirror-plugins/package.json @@ -19,7 +19,7 @@ "prosemirror-commands": "1.1.10", "prosemirror-highlightjs": "^0.2.0", "prosemirror-keymap": "1.1.4", - "prosemirror-state": "1.3.3", + "prosemirror-state": "1.3.4", "prosemirror-transform": "1.2.6", "prosemirror-view": "1.20.1", "wax-prosemirror-components": "^0.1.1", diff --git a/wax-prosemirror-plugins/src/WaxSelectionPlugin.js b/wax-prosemirror-plugins/src/WaxSelectionPlugin.js index 6be0677f0c82f7477a99d511efa9ea62961db116..66955860343a9107e074aebf466599161faaf0e4 100644 --- a/wax-prosemirror-plugins/src/WaxSelectionPlugin.js +++ b/wax-prosemirror-plugins/src/WaxSelectionPlugin.js @@ -1,7 +1,10 @@ import { Decoration, DecorationSet } from 'prosemirror-view'; -import { Plugin } from 'prosemirror-state'; +import { Plugin, PluginKey } from 'prosemirror-state'; + +const waxSelectionPlugin = new PluginKey('waxSelectionPlugin'); const WaxSelectionPlugin = new Plugin({ + key: waxSelectionPlugin, state: { init(config, instance) { return { deco: DecorationSet.empty }; diff --git a/wax-prosemirror-plugins/src/highlightPlugin.js b/wax-prosemirror-plugins/src/highlightPlugin.js index 40ee57e2958a57efb19fea37563766ed0832d276..d18b22cc8a5b2e510a6725dffb6df0c54f24c2dd 100644 --- a/wax-prosemirror-plugins/src/highlightPlugin.js +++ b/wax-prosemirror-plugins/src/highlightPlugin.js @@ -1,10 +1,13 @@ import hljs from 'highlight.js/lib/core'; import { getHighlightDecorations } from 'prosemirror-highlightjs'; import { DecorationSet } from 'prosemirror-view'; -import { Plugin } from 'prosemirror-state'; +import { Plugin, PluginKey } from 'prosemirror-state'; + +const key = new PluginKey('codeHigh;ight'); const highlightPlugin = (nodeTypes = ['code_block']) => { return new Plugin({ + key, state: { init(_, instance) { const content = getHighlightDecorations( diff --git a/wax-prosemirror-plugins/src/math/math-select.js b/wax-prosemirror-plugins/src/math/math-select.js index 04741a1ca3176ab37cc1ffc0230fc6839c796e4a..753d97f3acce63bf6a96fb8c9c7b9607def2dd7a 100644 --- a/wax-prosemirror-plugins/src/math/math-select.js +++ b/wax-prosemirror-plugins/src/math/math-select.js @@ -1,7 +1,7 @@ /* eslint-disable */ // prosemirror imports -import { Plugin as ProsePlugin } from 'prosemirror-state'; +import { Plugin as ProsePlugin, PluginKey } from 'prosemirror-state'; import { DecorationSet, Decoration } from 'prosemirror-view'; //////////////////////////////////////////////////////////// /** @@ -10,6 +10,9 @@ import { DecorationSet, Decoration } from 'prosemirror-view'; * @param arg Should be either a Transaction or an EditorState, * although any object with `selection` and `doc` will work. */ + +const mathSelect = new PluginKey('mathSelect'); + const checkSelection = arg => { let { from, to } = arg.selection; let content = arg.selection.content().content; @@ -45,6 +48,7 @@ const checkSelection = arg => { * @todo (6/13/20) math selection rectangles are not quite even with text */ const mathSelectPlugin = new ProsePlugin({ + key: mathSelect, state: { init(config, partialState) { return checkSelection(partialState); diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json index 2e4f474474edac6bc9b6d9ab0504112993ce6eda..6e7bdcdad06fd995455c4dbf01f05095322c6b16 100644 --- a/wax-prosemirror-services/package.json +++ b/wax-prosemirror-services/package.json @@ -22,7 +22,7 @@ "prosemirror-keymap": "1.1.4", "prosemirror-model": "1.14.3", "prosemirror-schema-list": "1.1.4", - "prosemirror-state": "1.3.3", + "prosemirror-state": "1.3.4", "prosemirror-transform": "1.2.6", "prosemirror-view": "1.20.1", "styled-components": "^5.3.0", diff --git a/wax-prosemirror-services/src/SchemaService/SchemaService.js b/wax-prosemirror-services/src/SchemaService/SchemaService.js index 6606e38d0978a812854f83ff571617caf92347ef..2676d320c5bab6e267a96a6db89175149a60d18a 100644 --- a/wax-prosemirror-services/src/SchemaService/SchemaService.js +++ b/wax-prosemirror-services/src/SchemaService/SchemaService.js @@ -9,7 +9,6 @@ export default class SchemaService extends Service { register() { this.container.bind('Schema').to(Schema).inSingletonScope(); - this.container.bind('CreateNode').toFactory(context => { return (schema, options = { toWaxSchema: false }) => { const schemaInstance = context.container.get('Schema'); diff --git a/yarn.lock b/yarn.lock index 99c33e8ef3a2b90c6b153e2c96eb02cf62c462a0..dc8bff650811672fa47fc372e3f6e37f5b491db1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14795,7 +14795,15 @@ prosemirror-schema-list@^1.0.0: prosemirror-model "^1.0.0" prosemirror-transform "^1.0.0" -prosemirror-state@1.3.3, prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1: +prosemirror-state@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz#4c6b52628216e753fc901c6d2bfd84ce109e8952" + integrity sha512-Xkkrpd1y/TQ6HKzN3agsQIGRcLckUMA9u3j207L04mt8ToRgpGeyhbVv0HI7omDORIBHjR29b7AwlATFFf2GLA== + dependencies: + prosemirror-model "^1.0.0" + prosemirror-transform "^1.0.0" + +prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, prosemirror-state@^1.3.1: version "1.3.3" resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz#b2862866b14dec2b3ae1ab18229f2bd337651a2c" integrity sha512-PLXh2VJsIgvlgSTH6I2Yg6vk1CzPDp21DFreVpQtDMY2S6WaMmrQgDTLRcsrD8X38v8Yc873H7+ogdGzyIPn+w==