Socket
Socket
Sign inDemoInstall

prosemirror-history

Package Overview
Dependencies
Maintainers
1
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prosemirror-history - npm Package Compare versions

Comparing version 1.3.0 to 1.3.1

6

CHANGELOG.md

@@ -0,1 +1,7 @@

## 1.3.1 (2023-04-26)
### Bug fixes
Fix an issue where, if a composition moved the selection, it might get split across multiple undo events.
## 1.3.0 (2022-05-30)

@@ -2,0 +8,0 @@

25

dist/index.js

@@ -248,3 +248,3 @@ import RopeSequence from 'rope-sequence';

class HistoryState {
constructor(done, undone, prevRanges, prevTime) {
constructor(done, undone, prevRanges, prevTime, prevComposition) {
this.done = done;

@@ -254,2 +254,3 @@ this.undone = undone;

this.prevTime = prevTime;
this.prevComposition = prevComposition;
}

@@ -264,3 +265,3 @@ }

if (tr.getMeta(closeHistoryKey))
history = new HistoryState(history.done, history.undone, null, 0);
history = new HistoryState(history.done, history.undone, null, 0, -1);
let appended = tr.getMeta("appendedTransaction");

@@ -272,12 +273,14 @@ if (tr.steps.length == 0) {

if (appended.getMeta(historyKey).redo)
return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime);
return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)), history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime, history.prevComposition);
else
return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime);
return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)), null, history.prevTime, history.prevComposition);
}
else if (tr.getMeta("addToHistory") !== false && !(appended && appended.getMeta("addToHistory") === false)) {
// Group transforms that occur in quick succession into one event.
let newGroup = history.prevTime == 0 || !appended && (history.prevTime < (tr.time || 0) - options.newGroupDelay ||
!isAdjacentTo(tr, history.prevRanges));
let composition = tr.getMeta("composition");
let newGroup = history.prevTime == 0 ||
(!appended && history.prevComposition != composition &&
(history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges)));
let prevRanges = appended ? mapRanges(history.prevRanges, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1]);
return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time);
return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined, options, mustPreserveItems(state)), Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition);
}

@@ -287,6 +290,6 @@ else if (rebased = tr.getMeta("rebased")) {

// content has been rebased.
return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime);
return new HistoryState(history.done.rebased(tr, rebased), history.undone.rebased(tr, rebased), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);
}
else {
return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime);
return new HistoryState(history.done.addMaps(tr.mapping.maps), history.undone.addMaps(tr.mapping.maps), mapRanges(history.prevRanges, tr.mapping), history.prevTime, history.prevComposition);
}

@@ -333,3 +336,3 @@ }

let added = (redo ? history.done : history.undone).addTransform(pop.transform, state.selection.getBookmark(), histOptions, preserveItems);
let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0);
let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1);
dispatch(pop.transform.setSelection(selection).setMeta(historyKey, { redo, historyState: newHist }).scrollIntoView());

@@ -381,3 +384,3 @@ }

init() {
return new HistoryState(Branch.empty, Branch.empty, null, 0);
return new HistoryState(Branch.empty, Branch.empty, null, 0, -1);
},

@@ -384,0 +387,0 @@ apply(tr, hist, state) {

{
"name": "prosemirror-history",
"version": "1.3.0",
"version": "1.3.1",
"description": "Undo history for ProseMirror",

@@ -18,3 +18,3 @@ "type": "module",

"name": "Marijn Haverbeke",
"email": "marijnh@gmail.com",
"email": "marijn@haverbeke.berlin",
"web": "http://marijnhaverbeke.nl"

@@ -30,2 +30,3 @@ }

"prosemirror-transform": "^1.0.0",
"prosemirror-view": "^1.31.0",
"rope-sequence": "^1.3.0"

@@ -32,0 +33,0 @@ },

# prosemirror-history
[ [**WEBSITE**](https://prosemirror.net) | [**ISSUES**](https://github.com/prosemirror/prosemirror/issues) | [**FORUM**](https://discuss.prosemirror.net) | [**GITTER**](https://gitter.im/ProseMirror/prosemirror) | [**CHANGELOG**](https://github.com/ProseMirror/prosemirror-history/blob/master/CHANGELOG.md) ]
[ [**WEBSITE**](https://prosemirror.net) | [**ISSUES**](https://github.com/prosemirror/prosemirror/issues) | [**FORUM**](https://discuss.prosemirror.net) | [**CHANGELOG**](https://github.com/ProseMirror/prosemirror-history/blob/master/CHANGELOG.md) ]

@@ -5,0 +5,0 @@ This is a [core module](https://prosemirror.net/docs/ref/#history) of [ProseMirror](https://prosemirror.net).

@@ -251,3 +251,4 @@ import RopeSequence from "rope-sequence"

readonly prevRanges: readonly number[] | null,
readonly prevTime: number
readonly prevTime: number,
readonly prevComposition: number
) {}

@@ -263,3 +264,3 @@ }

if (tr.getMeta(closeHistoryKey)) history = new HistoryState(history.done, history.undone, null, 0)
if (tr.getMeta(closeHistoryKey)) history = new HistoryState(history.done, history.undone, null, 0, -1)

@@ -273,14 +274,17 @@ let appended = tr.getMeta("appendedTransaction")

return new HistoryState(history.done.addTransform(tr, undefined, options, mustPreserveItems(state)),
history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]), history.prevTime)
history.undone, rangesFor(tr.mapping.maps[tr.steps.length - 1]),
history.prevTime, history.prevComposition)
else
return new HistoryState(history.done, history.undone.addTransform(tr, undefined, options, mustPreserveItems(state)),
null, history.prevTime)
null, history.prevTime, history.prevComposition)
} else if (tr.getMeta("addToHistory") !== false && !(appended && appended.getMeta("addToHistory") === false)) {
// Group transforms that occur in quick succession into one event.
let newGroup = history.prevTime == 0 || !appended && (history.prevTime < (tr.time || 0) - options.newGroupDelay ||
!isAdjacentTo(tr, history.prevRanges!))
let composition = tr.getMeta("composition")
let newGroup = history.prevTime == 0 ||
(!appended && history.prevComposition != composition &&
(history.prevTime < (tr.time || 0) - options.newGroupDelay || !isAdjacentTo(tr, history.prevRanges!)))
let prevRanges = appended ? mapRanges(history.prevRanges!, tr.mapping) : rangesFor(tr.mapping.maps[tr.steps.length - 1])
return new HistoryState(history.done.addTransform(tr, newGroup ? state.selection.getBookmark() : undefined,
options, mustPreserveItems(state)),
Branch.empty, prevRanges, tr.time)
Branch.empty, prevRanges, tr.time, composition == null ? history.prevComposition : composition)
} else if (rebased = tr.getMeta("rebased")) {

@@ -291,7 +295,7 @@ // Used by the collab module to tell the history that some of its

history.undone.rebased(tr, rebased),
mapRanges(history.prevRanges!, tr.mapping), history.prevTime)
mapRanges(history.prevRanges!, tr.mapping), history.prevTime, history.prevComposition)
} else {
return new HistoryState(history.done.addMaps(tr.mapping.maps),
history.undone.addMaps(tr.mapping.maps),
mapRanges(history.prevRanges!, tr.mapping), history.prevTime)
mapRanges(history.prevRanges!, tr.mapping), history.prevTime, history.prevComposition)
}

@@ -340,3 +344,3 @@ }

let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0)
let newHist = new HistoryState(redo ? added : pop.remaining, redo ? pop.remaining : added, null, 0, -1)
dispatch(pop.transform.setSelection(selection).setMeta(historyKey, {redo, historyState: newHist}).scrollIntoView())

@@ -400,3 +404,3 @@ }

init() {
return new HistoryState(Branch.empty, Branch.empty, null, 0)
return new HistoryState(Branch.empty, Branch.empty, null, 0, -1)
},

@@ -403,0 +407,0 @@ apply(tr, hist, state) {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc