diff --git a/wax-prosemirror-schema/src/nodes/imageNode.js b/wax-prosemirror-schema/src/nodes/imageNode.js index 9f5d51daae462dcbe1beb74fc35ef4bfe433411b..0e8fe0d9f35e5ff2ba8320cef178637fffa56bb7 100644 --- a/wax-prosemirror-schema/src/nodes/imageNode.js +++ b/wax-prosemirror-schema/src/nodes/imageNode.js @@ -1,3 +1,4 @@ +import { SchemaHelpers } from 'wax-prosemirror-utilities'; const image = { inline: true, attrs: { @@ -15,7 +16,8 @@ const image = { Object.assign(hook, { src: hook.dom.getAttribute('src'), title: hook.dom.getAttribute('title'), - // track: parseTracks(hook.dom.dataset.track), + id: hook.dom.dataset.id, + track: SchemaHelpers.parseTracks(hook.dom.dataset.track), alt: hook.dom.getAttribute('alt'), }); next(); @@ -25,11 +27,15 @@ const image = { toDOM(hook, next) { const attrs = {}; let temp = ''; - // if (hook.node.attrs.track.length) { - // // attrs["data-track"] = JSON.stringify(hook.node.attrs.track); - // } - const { src, alt, title } = hook.node.attrs; - hook.value = ['img', { src, alt, title }]; + if (hook.node.attrs.track.length) { + attrs['data-track'] = JSON.stringify(hook.node.attrs.track); + attrs['data-id'] = hook.node.attrs.id; + } + const { src, alt, title, id, track } = hook.node.attrs; + hook.value = [ + 'img', + { src, alt, title, 'data-id': id, 'data-track': track }, + ]; next(); }, }; diff --git a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js b/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js index 836ae6d086a9b9b8949308fb8f2ccaedf260c23f..d76b901df9ef37d809dcd1146a912a3356c3d390 100644 --- a/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js +++ b/wax-prosemirror-services/src/ShortCutsService/ShortCuts.js @@ -28,7 +28,7 @@ const backSpace = chainCommands( const backSpaceShortCut = (state, dispatch, view) => backSpace( state, - tr => dispatch(tr.setMeta('inputType', 'deleteContentBackward')), + tr => dispatch(tr.setMeta('inputType', 'backwardsDelete')), view, ); diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js index f665bf1c5063f0aa2dddc21f1d6b484c0b91b730..14c0bcede636709fb323b1ef6f2f8bd5df72edae 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/helpers/replaceStep.js @@ -1,14 +1,14 @@ -import { ReplaceStep } from "prosemirror-transform"; -import { CellSelection } from "prosemirror-tables"; -import { DocumentHelpers } from "wax-prosemirror-utilities"; +import { ReplaceStep } from 'prosemirror-transform'; +import { CellSelection } from 'prosemirror-tables'; +import { DocumentHelpers } from 'wax-prosemirror-utilities'; -import markDeletion from "./markDeletion"; -import markInsertion from "./markInsertion"; +import markDeletion from './markDeletion'; +import markInsertion from './markInsertion'; const replaceStep = (state, tr, step, newTr, map, doc, user, date, group) => { const cellDeleteTr = - ["deleteContentBackward", "deleteContentForward"].includes( - tr.getMeta("inputType") + ['backwardsDelete', 'deleteContentForward'].includes( + tr.getMeta('inputType'), ) && state.selection instanceof CellSelection; // if deletion mark move to the end of deletion @@ -16,7 +16,7 @@ const replaceStep = (state, tr, step, newTr, map, doc, user, date, group) => { const deletionMark = DocumentHelpers.findMark( state, deletionMarkSchema, - false + false, ); const positionTo = deletionMark ? deletionMark.to : step.to; @@ -25,7 +25,7 @@ const replaceStep = (state, tr, step, newTr, map, doc, user, date, group) => { positionTo, // We insert all the same steps, but with "from"/"to" both set to "to" in order not to delete content. Mapped as needed. positionTo, step.slice, - step.structure + step.structure, ) : false; @@ -43,7 +43,7 @@ const replaceStep = (state, tr, step, newTr, map, doc, user, date, group) => { const condensedStep = new ReplaceStep( newStep.from, newStep.to, - trTemp.doc.slice(newStep.from, mappedNewStepTo) + trTemp.doc.slice(newStep.from, mappedNewStepTo), ); newTr.step(condensedStep); diff --git a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js index bd697c1396fe2a50db04bd2ba5a32b3633e0c77f..ea731578fc2c933d25fceb97604e3c207c258d16 100644 --- a/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js +++ b/wax-prosemirror-services/src/TrackChangeService/track-changes/trackedTransaction.js @@ -24,6 +24,8 @@ const trackedTransaction = (tr, state, user) => { } } } + // images + if (tr.meta.inputType === 'backwardsDelete' && !tr.steps.lenght) return tr; if ( !tr.steps.length || @@ -82,7 +84,7 @@ const trackedTransaction = (tr, state, user) => { if ( tr.selection instanceof TextSelection && (tr.selection.from < state.selection.from || - tr.getMeta('inputType') === 'deleteContentBackward') + tr.getMeta('inputType') === 'backwardsDelete') ) { const caretPos = map.map(tr.selection.from, -1); newTr.setSelection(new TextSelection(newTr.doc.resolve(caretPos)));