diff --git a/.nvmrc b/.nvmrc index 47c0a98a11314d27bd0664b4f113b855d9ec991e..3caeb5f170592a1978528f923bb47cb9b8e1a75e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12.13.0 +14.15.5 diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js index 900ce4f33e54ac85a433ab61a521c84329abc1a3..327f206cc9a8115303663ad271bce7ef892ac342 100644 --- a/wax-prosemirror-core/src/WaxView.js +++ b/wax-prosemirror-core/src/WaxView.js @@ -14,7 +14,7 @@ import styled from 'styled-components'; import applyDevTools from 'prosemirror-dev-tools'; import { EditorState } from 'prosemirror-state'; import { EditorView } from 'prosemirror-view'; -// import { trackedTransaction } from 'wax-prosemirror-services'; +import trackedTransaction from './utilities/track-changes/trackedTransaction'; import { WaxContext } from './WaxContext'; import { PortalContext } from './PortalContext'; import ComponentPlugin from './ComponentPlugin'; @@ -130,11 +130,10 @@ const WaxView = forwardRef((props, ref) => { const dispatchTransaction = transaction => { const { TrackChange } = props; - const tr = transaction; - // const tr = - // TrackChange && TrackChange.enabled - // ? trackedTransaction(transaction, view.state, user) - // : transaction; + const tr = + TrackChange && TrackChange.enabled + ? trackedTransaction(transaction, view.state, user) + : transaction; previousDoc = view.state.doc; const state = view.state.apply(tr); diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/LICENCE b/wax-prosemirror-core/src/utilities/track-changes/LICENCE similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/LICENCE rename to wax-prosemirror-core/src/utilities/track-changes/LICENCE diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/addMarkStep.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/addMarkStep.js similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/addMarkStep.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/addMarkStep.js diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markDeletion.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/markDeletion.js similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markDeletion.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/markDeletion.js diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markInsertion.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/markInsertion.js similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markInsertion.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/markInsertion.js diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/markWrapping.js similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/markWrapping.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/markWrapping.js diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/removeMarkStep.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/removeMarkStep.js similarity index 100% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/removeMarkStep.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/removeMarkStep.js diff --git a/wax-prosemirror-core/src/utilities/track-changes/helpers/removeNode.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/removeNode.js new file mode 100644 index 0000000000000000000000000000000000000000..c698e47c2ef9c4ec4ba8ce83db491a7c34d35c3c --- /dev/null +++ b/wax-prosemirror-core/src/utilities/track-changes/helpers/removeNode.js @@ -0,0 +1,17 @@ +import { replaceStep } from 'prosemirror-transform'; +import { Selection } from 'prosemirror-state'; + +const removeNode = (tr, node, nodePos, map) => { + const newNodePos = map.map(nodePos); + const selectionBefore = Selection.findFrom(tr.doc.resolve(newNodePos), -1); + const start = selectionBefore.$anchor.pos; + const end = newNodePos + 1; + + const delStep = replaceStep(tr.doc, start, end); + + tr.step(delStep); + const stepMap = delStep.getMap(); + map.appendMap(stepMap); +}; + +export default removeNode; diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/replaceAroundStep.js similarity index 97% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/replaceAroundStep.js index 3f7755729f8f001d2bfc5628aa890d67d995766a..db8f7c2f14da9af34168a243dc6b2c7a1f1dc95a 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceAroundStep.js +++ b/wax-prosemirror-core/src/utilities/track-changes/helpers/replaceAroundStep.js @@ -1,4 +1,3 @@ -import { liftListItem } from 'prosemirror-schema-list'; import markDeletion from './markDeletion'; import markInsertion from './markInsertion'; import markWrapping from './markWrapping'; diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js b/wax-prosemirror-core/src/utilities/track-changes/helpers/replaceStep.js similarity index 96% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js rename to wax-prosemirror-core/src/utilities/track-changes/helpers/replaceStep.js index 3a04efcdbe93fd4c66ee47baa2e6d3d7a94dafca..e26da3edccd2761869525cd14903bad7c937d532 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js +++ b/wax-prosemirror-core/src/utilities/track-changes/helpers/replaceStep.js @@ -1,5 +1,5 @@ import { ReplaceStep } from 'prosemirror-transform'; -import { DocumentHelpers } from 'wax-prosemirror-core'; +import DocumentHelpers from '../../document/DocumentHelpers'; import markDeletion from './markDeletion'; import markInsertion from './markInsertion'; diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-core/src/utilities/track-changes/trackedTransaction.js similarity index 98% rename from wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js rename to wax-prosemirror-core/src/utilities/track-changes/trackedTransaction.js index 63cad26d5811d88045f10850f453804326b473d5..fcb0c961394ba129f034d6dbb227bed374f9a77b 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js +++ b/wax-prosemirror-core/src/utilities/track-changes/trackedTransaction.js @@ -7,7 +7,7 @@ import { Mapping, } from 'prosemirror-transform'; -import { DocumentHelpers } from 'wax-prosemirror-core'; +import DocumentHelpers from '../document/DocumentHelpers'; import replaceStep from './helpers/replaceStep'; import replaceAroundStep from './helpers/replaceAroundStep'; import addMarkStep from './helpers/addMarkStep'; diff --git a/wax-prosemirror-services/index.js b/wax-prosemirror-services/index.js index a2121f85a32b0a00cedb01bdfaf32e7c91825da0..e9a7cda058b1b6bf701d9d3a49139b5f1d6b0210 100644 --- a/wax-prosemirror-services/index.js +++ b/wax-prosemirror-services/index.js @@ -13,7 +13,6 @@ export { default as CommentsService } from './src/CommentsService/CommentsServic export { default as CodeBlockService } from './src/CodeBlockService/CodeBlockService'; export { default as LinkService } from './src/LinkService/LinkService'; export { default as TrackChangeService } from './src/TrackChangeService/TrackChangeService'; -export { default as trackedTransaction } from './src/TrackChangeService/track-changes/trackedTransaction'; export { default as MathService } from './src/MathService/MathService'; export { default as FindAndReplaceService } from './src/FindAndReplaceService/FindAndReplaceService'; export { default as FullScreenService } from './src/FullScreenService/FullScreenService'; diff --git a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js index ea29271ed9c6c79eca1b47aeeaf3d0f90d786374..fd7cf39bc2bfff29e5a78202235c7364543a71a7 100644 --- a/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/FillTheGapQuestionService/components/FeedbackComponent.js @@ -46,7 +46,7 @@ export default ({ node, view, getPos, readOnly }) => { main.dispatch( main.state.tr.setNodeMarkup(getPos(), undefined, { ...singleNode.node.attrs, - feedback: feedBack, + feedback: feedBackRef.current.value, }), ); } diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js index 943007968dd3632acc4aa3deb2aec7e530013030..6af737464603193a5df26d5500f68de3f0a8c9f0 100644 --- a/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js +++ b/wax-prosemirror-services/src/ListsService/BulletListService/BulletList.js @@ -41,6 +41,14 @@ export default class BulletList extends Tools { const { disallowedTools } = activeView.props; if (disallowedTools.includes('Lists')) status = false; + // Disable lists first in questions + if ( + activeViewId !== 'main' && + activeView.state.selection.$from.start(1) === 1 + ) { + status = false; + } + return status; }; diff --git a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js index 7a7bb38ef9960279cbfd5bffbaa51ea7fd434159..79c2788e8551b9c184cc72a5065f6f5437bfba40 100644 --- a/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js +++ b/wax-prosemirror-services/src/ListsService/OrderedListService/OrderedList.js @@ -38,6 +38,15 @@ export default class OrderedList extends Tools { if (from === null) return false; const { disallowedTools } = activeView.props; if (disallowedTools.includes('Lists')) status = false; + + // Disable lists first in questions + if ( + activeViewId !== 'main' && + activeView.state.selection.$from.start(1) === 1 + ) { + status = false; + } + return status; }; diff --git a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js index 13db32f60aee471a275ef360644e2a8074d82b02..6a289b04554e9296bfa600b0f702baca01a0a4e9 100644 --- a/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/MultipleChoiceQuestionService/components/FeedbackComponent.js @@ -45,7 +45,7 @@ export default ({ node, view, getPos, readOnly }) => { main.dispatch( main.state.tr.setNodeMarkup(getPos(), undefined, { ...singleNode.node.attrs, - feedback: feedBack, + feedback: feedBackRef.current.value, }), ); } diff --git a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js b/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js index f921e2c9c9751ed6879609e733d8255515ec958c..92c510744d181fdaa5d546096e16d2f684a1478f 100644 --- a/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js +++ b/wax-prosemirror-services/src/MultipleDropDownService/components/FeedbackComponent.js @@ -46,7 +46,7 @@ export default ({ node, view, getPos, readOnly }) => { main.dispatch( main.state.tr.setNodeMarkup(getPos(), undefined, { ...singleNode.node.attrs, - feedback: feedBack, + feedback: feedBackRef.current.value, }), ); } diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/README.md b/wax-prosemirror-services/src/TrackChangeService/track-changes/README.md deleted file mode 100644 index 93647423f45206782dcabb533338aad3ee024912..0000000000000000000000000000000000000000 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/README.md +++ /dev/null @@ -1,3 +0,0 @@ -This belongs to https://github.com/fiduswriter/fiduswriter -This is a modified version of: https://github.com/fiduswriter/fiduswriter/blob/develop/fiduswriter/document/static/js/modules/editor/track/amend_transaction.js -License included.