@nerd-bible/wordgard 0.5.3-beta0 → 0.5.3-beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/editor.js +8 -3
  2. package/package.json +1 -1
package/dist/editor.js CHANGED
@@ -4154,6 +4154,10 @@ class InputState {
4154
4154
  this._domMapping = this._domMapping.compose(pending[this.domMappingIndex++].changes);
4155
4155
  return this._domMapping;
4156
4156
  }
4157
+ get unflushedSelection() {
4158
+ let { pending } = this.wg.viewState;
4159
+ return pending.some(tr => tr.selection && !tr.isUserEvent("input"));
4160
+ }
4157
4161
  posAtDOM(node, offset, assoc = -1) {
4158
4162
  if (this.domMapping.empty && !this.domChanges)
4159
4163
  return this.wg.docTile.posFromDOM(node, offset);
@@ -4173,7 +4177,7 @@ class InputState {
4173
4177
  }
4174
4178
  let command = inputTypeCommands[type];
4175
4179
  if ((type == "deleteContentBackward" || type == "deleteContentForward") && range &&
4176
- range.from != range.to && (sel.empty
4180
+ range.from != range.to && !this.unflushedSelection && (sel.empty
4177
4181
  ? !isSingleChar(this.domDoc, data.domRange.from, data.domRange.to) ||
4178
4182
  sel.head != (type == "deleteContentBackward" ? range.to : range.from)
4179
4183
  : sel.from != range.from || sel.to != range.to)) {
@@ -4184,11 +4188,12 @@ class InputState {
4184
4188
  }
4185
4189
  else if (type == "insertText") {
4186
4190
  let insert = event.data.replace(/\r\n?|\n/g, " ");
4187
- Command.dispatch(wg, insertText, { from: range.from, to: range.to, insert, userEvent: "input.type" });
4191
+ let { from, to } = this.unflushedSelection ? wg.state.selection : range;
4192
+ Command.dispatch(wg, insertText, { from, to, insert, userEvent: "input.type" });
4188
4193
  }
4189
4194
  else if ((type == "insertReplacementText" || type == "insertFromYank")) {
4190
4195
  let read = readClipboard(wg.state, event.dataTransfer, wg.state.sel.head, true);
4191
- let { from, to } = range;
4196
+ let { from, to } = this.unflushedSelection ? wg.state.selection : range;
4192
4197
  let sel = wg.state.selection, touchesSel = from <= sel.to && to >= sel.from;
4193
4198
  if (read)
4194
4199
  wg.dispatch({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nerd-bible/wordgard",
3
- "version": "0.5.3-beta0",
3
+ "version": "0.5.3-beta1",
4
4
  "description": "Semantic rich text editor system",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",