slate-react 0.147.3 → 0.147.5-20261028183314
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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"android-input-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAItC,OAAO,EAAgC,KAAK,EAAE,KAAK,EAAc,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AA8BvD,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"android-input-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/slate-react/src/hooks/android-input-manager/android-input-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAItC,OAAO,EAAgC,KAAK,EAAE,KAAK,EAAc,MAAM,OAAO,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AA8BvD,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AA0C5D,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,WAAW,CAAA;IAEnB,4BAA4B,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,CAAA;IACvD,oBAAoB,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,8BAA8B,6BAA6B,IAAI,CAAG,CAAA;AAE/E,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;IAEzB,eAAe,EAAE,MAAM,OAAO,CAAA;IAC9B,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,iBAAiB,EAAE,MAAM,OAAO,CAAA;IAChC,UAAU,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAA;IAEpC,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/C,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAA;IAC7E,sBAAsB,EAAE,CACtB,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAC1C,IAAI,CAAA;IACT,oBAAoB,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,CAAA;IAEnE,kBAAkB,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IACzD,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB,CAAA;AAED,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,4BAA4B,EAC5B,oBAAoB,GACrB,EAAE,gCAAgC,GAAG,mBAAmB,CAy8BxD"}
|
package/dist/index.es.js
CHANGED
|
@@ -103,6 +103,23 @@ const COMPOSITION_RECHECK_DELAY = 50;
|
|
|
103
103
|
const debug = (..._) => {};
|
|
104
104
|
// Type guard to check if a value is a DataTransfer
|
|
105
105
|
const isDataTransfer = value => (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';
|
|
106
|
+
const wordEndingAt = (editor, point, replacement) => {
|
|
107
|
+
var _replacement$;
|
|
108
|
+
const start = Editor.before(editor, point, {
|
|
109
|
+
unit: 'word'
|
|
110
|
+
});
|
|
111
|
+
if (!start || !Path.equals(start.path, point.path)) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const typed = Editor.string(editor, {
|
|
115
|
+
anchor: start,
|
|
116
|
+
focus: point
|
|
117
|
+
});
|
|
118
|
+
return !/\s/.test(typed) && ((_replacement$ = replacement[0]) === null || _replacement$ === void 0 ? void 0 : _replacement$.toLowerCase()) === typed[0].toLowerCase() ? {
|
|
119
|
+
anchor: start,
|
|
120
|
+
focus: point
|
|
121
|
+
} : null;
|
|
122
|
+
};
|
|
106
123
|
const EDITOR_TO_FLUSH_DEFERRED_DIFFS = new WeakMap();
|
|
107
124
|
function createAndroidInputManager({
|
|
108
125
|
editor,
|
|
@@ -458,6 +475,7 @@ function createAndroidInputManager({
|
|
|
458
475
|
insertPositionHint = false;
|
|
459
476
|
}
|
|
460
477
|
let [nativeTargetRange] = event.getTargetRanges();
|
|
478
|
+
const targetOutsideEditor = !!nativeTargetRange && !ReactEditor.hasDOMNode(editor, nativeTargetRange.startContainer);
|
|
461
479
|
if (nativeTargetRange && !isNodeMapDirty) {
|
|
462
480
|
targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {
|
|
463
481
|
exactMatch: false,
|
|
@@ -705,6 +723,13 @@ function createAndroidInputManager({
|
|
|
705
723
|
event.preventDefault();
|
|
706
724
|
return scheduleAction(() => Editor.insertText(editor, text));
|
|
707
725
|
}
|
|
726
|
+
if (targetOutsideEditor && Range.isCollapsed(targetRange)) {
|
|
727
|
+
var _wordEndingAt;
|
|
728
|
+
event.preventDefault();
|
|
729
|
+
return scheduleAction(() => Editor.insertText(editor, text), {
|
|
730
|
+
at: (_wordEndingAt = wordEndingAt(editor, targetRange.anchor, text)) !== null && _wordEndingAt !== void 0 ? _wordEndingAt : targetRange
|
|
731
|
+
});
|
|
732
|
+
}
|
|
708
733
|
// Pastes from the Android clipboard will generate `insertText` events.
|
|
709
734
|
// If the copied text contains any newlines, Android will append an
|
|
710
735
|
// extra newline to the end of the copied text.
|