slate-react 0.147.3 → 0.147.5

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.
@@ -3861,6 +3861,23 @@
3861
3861
  var isDataTransfer = function isDataTransfer(value) {
3862
3862
  return (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';
3863
3863
  };
3864
+ var wordEndingAt = function wordEndingAt(editor, point, replacement) {
3865
+ var _replacement$;
3866
+ var start = slate.Editor.before(editor, point, {
3867
+ unit: 'word'
3868
+ });
3869
+ if (!start || !slate.Path.equals(start.path, point.path)) {
3870
+ return null;
3871
+ }
3872
+ var typed = slate.Editor.string(editor, {
3873
+ anchor: start,
3874
+ focus: point
3875
+ });
3876
+ return !/\s/.test(typed) && ((_replacement$ = replacement[0]) === null || _replacement$ === void 0 ? void 0 : _replacement$.toLowerCase()) === typed[0].toLowerCase() ? {
3877
+ anchor: start,
3878
+ focus: point
3879
+ } : null;
3880
+ };
3864
3881
  var EDITOR_TO_FLUSH_DEFERRED_DIFFS = new WeakMap();
3865
3882
  function createAndroidInputManager(_ref) {
3866
3883
  var editor = _ref.editor,
@@ -4215,6 +4232,7 @@
4215
4232
  var _event$getTargetRange = event.getTargetRanges(),
4216
4233
  _event$getTargetRange2 = _slicedToArray(_event$getTargetRange, 1),
4217
4234
  nativeTargetRange = _event$getTargetRange2[0];
4235
+ var targetOutsideEditor = !!nativeTargetRange && !ReactEditor.hasDOMNode(editor, nativeTargetRange.startContainer);
4218
4236
  if (nativeTargetRange && !isNodeMapDirty) {
4219
4237
  targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {
4220
4238
  exactMatch: false,
@@ -4498,6 +4516,15 @@
4498
4516
  return slate.Editor.insertText(editor, _text);
4499
4517
  });
4500
4518
  }
4519
+ if (targetOutsideEditor && slate.Range.isCollapsed(targetRange)) {
4520
+ var _wordEndingAt;
4521
+ event.preventDefault();
4522
+ return scheduleAction(function () {
4523
+ return slate.Editor.insertText(editor, _text);
4524
+ }, {
4525
+ at: (_wordEndingAt = wordEndingAt(editor, targetRange.anchor, _text)) !== null && _wordEndingAt !== void 0 ? _wordEndingAt : targetRange
4526
+ });
4527
+ }
4501
4528
  // Pastes from the Android clipboard will generate `insertText` events.
4502
4529
  // If the copied text contains any newlines, Android will append an
4503
4530
  // extra newline to the end of the copied text.