slate-react 0.117.1 → 0.117.2

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.
@@ -3273,34 +3273,44 @@
3273
3273
  // schedule an action to let Slate normalize the editor state.
3274
3274
  var canStoreDiff = true;
3275
3275
  if (type.startsWith('delete')) {
3276
+ var direction = type.endsWith('Backward') ? 'backward' : 'forward';
3277
+ var _Range$edges = slate.Range.edges(targetRange),
3278
+ _Range$edges2 = _slicedToArray(_Range$edges, 2),
3279
+ start = _Range$edges2[0],
3280
+ end = _Range$edges2[1];
3281
+ var _Editor$leaf = slate.Editor.leaf(editor, start.path),
3282
+ _Editor$leaf2 = _slicedToArray(_Editor$leaf, 2),
3283
+ leaf = _Editor$leaf2[0],
3284
+ path = _Editor$leaf2[1];
3276
3285
  if (slate.Range.isExpanded(targetRange)) {
3277
- var _Range$edges = slate.Range.edges(targetRange),
3278
- _Range$edges2 = _slicedToArray(_Range$edges, 2),
3279
- _start = _Range$edges2[0],
3280
- _end = _Range$edges2[1];
3281
- var _leaf = slate.Node.leaf(editor, _start.path);
3282
- if (_leaf.text.length === _start.offset && _end.offset === 0) {
3286
+ if (leaf.text.length === start.offset && end.offset === 0) {
3283
3287
  var next = slate.Editor.next(editor, {
3284
- at: _start.path,
3288
+ at: start.path,
3285
3289
  match: slate.Text.isText
3286
3290
  });
3287
- if (next && slate.Path.equals(next[1], _end.path)) {
3288
- targetRange = {
3289
- anchor: _end,
3290
- focus: _end
3291
- };
3291
+ if (next && slate.Path.equals(next[1], end.path)) {
3292
+ // when deleting a linebreak, targetRange will span across the break (ie start in the node before and end in the node after)
3293
+ // if the node before is empty, this will look like a hanging range and get unhung later--which will take the break we want to remove out of the range
3294
+ // so to avoid this we collapse the target range to default to single character deletion
3295
+ if (direction === 'backward') {
3296
+ targetRange = {
3297
+ anchor: end,
3298
+ focus: end
3299
+ };
3300
+ start = end;
3301
+ var _next = _slicedToArray(next, 2);
3302
+ leaf = _next[0];
3303
+ path = _next[1];
3304
+ } else {
3305
+ targetRange = {
3306
+ anchor: start,
3307
+ focus: start
3308
+ };
3309
+ end = start;
3310
+ }
3292
3311
  }
3293
3312
  }
3294
3313
  }
3295
- var direction = type.endsWith('Backward') ? 'backward' : 'forward';
3296
- var _Range$edges3 = slate.Range.edges(targetRange),
3297
- _Range$edges4 = _slicedToArray(_Range$edges3, 2),
3298
- start = _Range$edges4[0],
3299
- end = _Range$edges4[1];
3300
- var _Editor$leaf = slate.Editor.leaf(editor, start.path),
3301
- _Editor$leaf2 = _slicedToArray(_Editor$leaf, 2),
3302
- leaf = _Editor$leaf2[0],
3303
- path = _Editor$leaf2[1];
3304
3314
  var diff = {
3305
3315
  text: '',
3306
3316
  start: start.offset,
@@ -3530,13 +3540,13 @@
3530
3540
  });
3531
3541
  }
3532
3542
  if (slate.Path.equals(targetRange.anchor.path, targetRange.focus.path)) {
3533
- var _Range$edges5 = slate.Range.edges(targetRange),
3534
- _Range$edges6 = _slicedToArray(_Range$edges5, 2),
3535
- _start2 = _Range$edges6[0],
3536
- _end2 = _Range$edges6[1];
3543
+ var _Range$edges3 = slate.Range.edges(targetRange),
3544
+ _Range$edges4 = _slicedToArray(_Range$edges3, 2),
3545
+ _start = _Range$edges4[0],
3546
+ _end = _Range$edges4[1];
3537
3547
  var _diff = {
3538
- start: _start2.offset,
3539
- end: _end2.offset,
3548
+ start: _start.offset,
3549
+ end: _end.offset,
3540
3550
  text: _text
3541
3551
  };
3542
3552
  // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word
@@ -3558,7 +3568,7 @@
3558
3568
  } else if (type === 'insertText') {
3559
3569
  if (insertPositionHint === null) {
3560
3570
  insertPositionHint = _diff;
3561
- } else if (insertPositionHint && slate.Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start2.offset) {
3571
+ } else if (insertPositionHint && slate.Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start.offset) {
3562
3572
  insertPositionHint = _objectSpread$7(_objectSpread$7({}, insertPositionHint), {}, {
3563
3573
  text: insertPositionHint.text + _text
3564
3574
  });
@@ -3569,7 +3579,7 @@
3569
3579
  insertPositionHint = false;
3570
3580
  }
3571
3581
  if (canStoreDiff) {
3572
- storeDiff(_start2.path, _diff);
3582
+ storeDiff(_start.path, _diff);
3573
3583
  return;
3574
3584
  }
3575
3585
  }