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/hooks/android-input-manager/android-input-manager.d.ts.map +1 -1
- package/dist/index.es.js +25 -0
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -1
- package/dist/slate-react.js +27 -0
- package/dist/slate-react.min.js +1 -1
- package/package.json +2 -2
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.
|