slate-react 0.140.0 → 0.140.1
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/components/editable.d.ts.map +1 -1
- package/dist/index.es.js +45 -2
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +50 -2
- package/dist/index.js.map +1 -1
- package/dist/slate-react.js +50 -2
- package/dist/slate-react.min.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3356,6 +3356,9 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
3356
3356
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
3357
3357
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3358
3358
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3359
|
+
var isTextDOMNode = function isTextDOMNode(node) {
|
|
3360
|
+
return slateDom.isDOMNode(node) && node.nodeType === 3;
|
|
3361
|
+
};
|
|
3359
3362
|
var isSameCaretPosition = function isSameCaretPosition(editor, a, b) {
|
|
3360
3363
|
if (!slate.Range.isCollapsed(a) || !slate.Range.isCollapsed(b)) {
|
|
3361
3364
|
return false;
|
|
@@ -3414,6 +3417,7 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3414
3417
|
var pendingInputScroll = React.useRef(false);
|
|
3415
3418
|
var pendingNavigationScroll = React.useRef(false);
|
|
3416
3419
|
var deferredOperations = React.useRef([]);
|
|
3420
|
+
var lastNativeInsertion = React.useRef(null);
|
|
3417
3421
|
var _useState3 = React.useState(),
|
|
3418
3422
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
3419
3423
|
placeholderHeight = _useState4[0],
|
|
@@ -3768,6 +3772,7 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3768
3772
|
return;
|
|
3769
3773
|
}
|
|
3770
3774
|
var _native = false;
|
|
3775
|
+
var nativePoint = null;
|
|
3771
3776
|
if (type === 'insertText' && selection && slate.Range.isCollapsed(selection) &&
|
|
3772
3777
|
// Only use native character insertion for single characters a-z or space for now.
|
|
3773
3778
|
// Long-press events (hold a + press 4 = ä) to choose a special character otherwise
|
|
@@ -3777,14 +3782,14 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3777
3782
|
// When there is an inline element, e.g. a link, and you select
|
|
3778
3783
|
// right after it (the start of the next node).
|
|
3779
3784
|
selection.anchor.offset !== 0) {
|
|
3780
|
-
var _getSelection;
|
|
3781
3785
|
_native = true;
|
|
3782
3786
|
// Skip native if there are marks, as
|
|
3783
3787
|
// `insertText` will insert a node, not just text.
|
|
3784
3788
|
if (editor.marks) {
|
|
3785
3789
|
_native = false;
|
|
3786
3790
|
}
|
|
3787
|
-
var
|
|
3791
|
+
var domSelection = slateDom.getSelection(ReactEditor.findDocumentOrShadowRoot(editor));
|
|
3792
|
+
var domAnchor = domSelection === null || domSelection === void 0 ? void 0 : domSelection.anchorNode;
|
|
3788
3793
|
if (!isInSlateText(domAnchor)) {
|
|
3789
3794
|
_native = false;
|
|
3790
3795
|
}
|
|
@@ -3821,6 +3826,9 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3821
3826
|
_native = false;
|
|
3822
3827
|
}
|
|
3823
3828
|
}
|
|
3829
|
+
if (_native && isTextDOMNode(node)) {
|
|
3830
|
+
nativePoint = domSelection !== null && domSelection !== void 0 && domSelection.isCollapsed && isTextDOMNode(domAnchor) ? [domAnchor, domSelection.anchorOffset] : [node, offset];
|
|
3831
|
+
}
|
|
3824
3832
|
}
|
|
3825
3833
|
}
|
|
3826
3834
|
// COMPAT: For the deleting forward/backward input types we don't want
|
|
@@ -3847,6 +3855,9 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3847
3855
|
slateDom.EDITOR_TO_USER_SELECTION.set(editor, selectionRef);
|
|
3848
3856
|
}
|
|
3849
3857
|
}
|
|
3858
|
+
if (_native && isTextDOMNode(targetRange.startContainer)) {
|
|
3859
|
+
nativePoint = [targetRange.startContainer, targetRange.startOffset];
|
|
3860
|
+
}
|
|
3850
3861
|
}
|
|
3851
3862
|
}
|
|
3852
3863
|
// Composition change types occur while a user is composing text and can't be
|
|
@@ -3855,6 +3866,7 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3855
3866
|
return;
|
|
3856
3867
|
}
|
|
3857
3868
|
if (!_native) {
|
|
3869
|
+
lastNativeInsertion.current = null;
|
|
3858
3870
|
event.preventDefault();
|
|
3859
3871
|
}
|
|
3860
3872
|
// COMPAT: If the selection is expanded, even if the command seems like
|
|
@@ -3972,6 +3984,24 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3972
3984
|
// Only insertText operations use the native functionality, for now.
|
|
3973
3985
|
// Potentially expand to single character deletes, as well.
|
|
3974
3986
|
if (_native) {
|
|
3987
|
+
lastNativeInsertion.current = null;
|
|
3988
|
+
if (nativePoint && selection) {
|
|
3989
|
+
var _Editor$leaf = slate.Editor.leaf(editor, selection.anchor),
|
|
3990
|
+
_Editor$leaf2 = _slicedToArray(_Editor$leaf, 1),
|
|
3991
|
+
_node = _Editor$leaf2[0];
|
|
3992
|
+
var _nativePoint = nativePoint,
|
|
3993
|
+
_nativePoint2 = _slicedToArray(_nativePoint, 2),
|
|
3994
|
+
domNode = _nativePoint2[0],
|
|
3995
|
+
domOffset = _nativePoint2[1];
|
|
3996
|
+
lastNativeInsertion.current = {
|
|
3997
|
+
point: selection.anchor,
|
|
3998
|
+
text: _node.text,
|
|
3999
|
+
domNode: domNode,
|
|
4000
|
+
domOffset: domOffset,
|
|
4001
|
+
domText: domNode.data,
|
|
4002
|
+
"char": data
|
|
4003
|
+
};
|
|
4004
|
+
}
|
|
3975
4005
|
deferredOperations.current.push(function () {
|
|
3976
4006
|
return slate.Editor.insertText(editor, data);
|
|
3977
4007
|
});
|
|
@@ -4233,6 +4263,24 @@ var Editable = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
4233
4263
|
_iterator.f();
|
|
4234
4264
|
}
|
|
4235
4265
|
deferredOperations.current = [];
|
|
4266
|
+
var nativeInsertion = lastNativeInsertion.current;
|
|
4267
|
+
lastNativeInsertion.current = null;
|
|
4268
|
+
if (nativeInsertion) {
|
|
4269
|
+
var point = nativeInsertion.point,
|
|
4270
|
+
_text3 = nativeInsertion.text,
|
|
4271
|
+
domNode = nativeInsertion.domNode,
|
|
4272
|
+
domOffset = nativeInsertion.domOffset,
|
|
4273
|
+
domText = nativeInsertion.domText,
|
|
4274
|
+
_char = nativeInsertion["char"];
|
|
4275
|
+
var node = slate.Node.getIf(editor, point.path);
|
|
4276
|
+
if (slate.Text.isText(node) && node.text === _text3 && domNode.isConnected && domNode.data === domText.slice(0, domOffset) + _char + domText.slice(domOffset)) {
|
|
4277
|
+
domNode.deleteData(domOffset, _char.length);
|
|
4278
|
+
if (editor.selection && slate.Range.isCollapsed(editor.selection) && slate.Point.equals(editor.selection.anchor, point)) {
|
|
4279
|
+
var _getSelection;
|
|
4280
|
+
(_getSelection = slateDom.getSelection(ReactEditor.findDocumentOrShadowRoot(editor))) === null || _getSelection === void 0 || _getSelection.collapse(domNode, domOffset);
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4283
|
+
}
|
|
4236
4284
|
// COMPAT: Since `beforeinput` doesn't fully `preventDefault`,
|
|
4237
4285
|
// there's a chance that content might be placed in the browser's undo stack.
|
|
4238
4286
|
// This means undo can be triggered even when the div is not focused,
|