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.
package/dist/index.js CHANGED
@@ -231,6 +231,23 @@ var debug = function debug() {};
231
231
  var isDataTransfer = function isDataTransfer(value) {
232
232
  return (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';
233
233
  };
234
+ var wordEndingAt = function wordEndingAt(editor, point, replacement) {
235
+ var _replacement$;
236
+ var start = slate.Editor.before(editor, point, {
237
+ unit: 'word'
238
+ });
239
+ if (!start || !slate.Path.equals(start.path, point.path)) {
240
+ return null;
241
+ }
242
+ var typed = slate.Editor.string(editor, {
243
+ anchor: start,
244
+ focus: point
245
+ });
246
+ return !/\s/.test(typed) && ((_replacement$ = replacement[0]) === null || _replacement$ === void 0 ? void 0 : _replacement$.toLowerCase()) === typed[0].toLowerCase() ? {
247
+ anchor: start,
248
+ focus: point
249
+ } : null;
250
+ };
234
251
  var EDITOR_TO_FLUSH_DEFERRED_DIFFS = new WeakMap();
235
252
  function createAndroidInputManager(_ref) {
236
253
  var editor = _ref.editor,
@@ -585,6 +602,7 @@ function createAndroidInputManager(_ref) {
585
602
  var _event$getTargetRange = event.getTargetRanges(),
586
603
  _event$getTargetRange2 = _slicedToArray(_event$getTargetRange, 1),
587
604
  nativeTargetRange = _event$getTargetRange2[0];
605
+ var targetOutsideEditor = !!nativeTargetRange && !ReactEditor.hasDOMNode(editor, nativeTargetRange.startContainer);
588
606
  if (nativeTargetRange && !isNodeMapDirty) {
589
607
  targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {
590
608
  exactMatch: false,
@@ -868,6 +886,15 @@ function createAndroidInputManager(_ref) {
868
886
  return slate.Editor.insertText(editor, _text);
869
887
  });
870
888
  }
889
+ if (targetOutsideEditor && slate.Range.isCollapsed(targetRange)) {
890
+ var _wordEndingAt;
891
+ event.preventDefault();
892
+ return scheduleAction(function () {
893
+ return slate.Editor.insertText(editor, _text);
894
+ }, {
895
+ at: (_wordEndingAt = wordEndingAt(editor, targetRange.anchor, _text)) !== null && _wordEndingAt !== void 0 ? _wordEndingAt : targetRange
896
+ });
897
+ }
871
898
  // Pastes from the Android clipboard will generate `insertText` events.
872
899
  // If the copied text contains any newlines, Android will append an
873
900
  // extra newline to the end of the copied text.