slate-react 0.110.2 → 0.110.3-20241024061658
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/hooks/android-input-manager/android-input-manager.d.ts.map +1 -1
- package/dist/hooks/use-children.d.ts.map +1 -1
- package/dist/index.es.js +49 -26
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +51 -28
- package/dist/index.js.map +1 -1
- package/dist/plugin/with-react.d.ts.map +1 -1
- package/dist/slate-react.js +51 -28
- package/dist/slate-react.min.js +1 -1
- package/dist/utils/weak-maps.d.ts +1 -0
- package/dist/utils/weak-maps.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"AAGA,OAAO,KASN,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,OAAO,EAEL,OAAO,EAEP,SAAS,EAET,KAAK,EACL,IAAI,EAEL,MAAM,OAAO,CAAA;AAQd,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,EAEL,QAAQ,EAQT,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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;AACtC,OAAO,EAAsB,KAAK,EAAE,KAAK,EAAoB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,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;AACtC,OAAO,EAAsB,KAAK,EAAE,KAAK,EAAoB,MAAM,OAAO,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAyBvD,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,IAAI,CAAA;CAAE,CAAA;AAgB5D,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,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,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,CAstBxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-children.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/hooks/use-children.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAsB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"use-children.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/hooks/use-children.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAsB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACvB,MAAM,wBAAwB,CAAA;AAc/B;;GAEG;AAEH,QAAA,MAAM,WAAW;iBACF,KAAK,EAAE;UACd,QAAQ;6BACU,kBAAkB,KAAK,WAAW;+BAC/B,sBAAsB,KAAK,WAAW;0BAC5C,eAAe,KAAK,WAAW;eACzC,KAAK,GAAG,IAAI;yBAqExB,CAAA;AAED,eAAe,WAAW,CAAA"}
|
package/dist/index.es.js
CHANGED
|
@@ -130,6 +130,7 @@ typeof globalThis.InputEvent.prototype.getTargetRanges === 'function';
|
|
|
130
130
|
* Two weak maps that allow us rebuild a path given a node. They are populated
|
|
131
131
|
* at render time such that after a render occurs we can always backtrack.
|
|
132
132
|
*/
|
|
133
|
+
var IS_NODE_MAP_DIRTY = new WeakMap();
|
|
133
134
|
var NODE_TO_INDEX = new WeakMap();
|
|
134
135
|
var NODE_TO_PARENT = new WeakMap();
|
|
135
136
|
/**
|
|
@@ -1638,6 +1639,9 @@ function createAndroidInputManager(_ref) {
|
|
|
1638
1639
|
clearTimeout(flushTimeoutId);
|
|
1639
1640
|
flushTimeoutId = null;
|
|
1640
1641
|
}
|
|
1642
|
+
if (IS_NODE_MAP_DIRTY.get(editor)) {
|
|
1643
|
+
return;
|
|
1644
|
+
}
|
|
1641
1645
|
var {
|
|
1642
1646
|
inputType: type
|
|
1643
1647
|
} = event;
|
|
@@ -2575,6 +2579,7 @@ var useChildren = props => {
|
|
|
2575
2579
|
} = props;
|
|
2576
2580
|
var decorate = useDecorate();
|
|
2577
2581
|
var editor = useSlateStatic();
|
|
2582
|
+
IS_NODE_MAP_DIRTY.set(editor, false);
|
|
2578
2583
|
var path = ReactEditor.findPath(editor, node);
|
|
2579
2584
|
var children = [];
|
|
2580
2585
|
var isLeafBlock = Element$1.isElement(node) && !editor.isInline(node) && Editor.hasInlines(editor, node);
|
|
@@ -2947,6 +2952,10 @@ var Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
2947
2952
|
// released. This causes issues in situations where another change happens
|
|
2948
2953
|
// while a selection is being dragged.
|
|
2949
2954
|
var onDOMSelectionChange = useMemo(() => throttle(() => {
|
|
2955
|
+
if (IS_NODE_MAP_DIRTY.get(editor)) {
|
|
2956
|
+
onDOMSelectionChange();
|
|
2957
|
+
return;
|
|
2958
|
+
}
|
|
2950
2959
|
var el = ReactEditor.toDOMNode(editor, editor);
|
|
2951
2960
|
var root = el.getRootNode();
|
|
2952
2961
|
if (!processing.current && IS_WEBKIT && root instanceof ShadowRoot) {
|
|
@@ -3208,45 +3217,49 @@ var Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
3208
3217
|
// When there is an inline element, e.g. a link, and you select
|
|
3209
3218
|
// right after it (the start of the next node).
|
|
3210
3219
|
selection.anchor.offset !== 0) {
|
|
3211
|
-
var _node$parentElement, _window$getComputedSt;
|
|
3212
3220
|
native = true;
|
|
3213
3221
|
// Skip native if there are marks, as
|
|
3214
3222
|
// `insertText` will insert a node, not just text.
|
|
3215
3223
|
if (editor.marks) {
|
|
3216
3224
|
native = false;
|
|
3217
3225
|
}
|
|
3218
|
-
//
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
anchor
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
var
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3226
|
+
// If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint)
|
|
3227
|
+
if (!IS_NODE_MAP_DIRTY.get(editor)) {
|
|
3228
|
+
var _node$parentElement, _window$getComputedSt;
|
|
3229
|
+
// Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100
|
|
3230
|
+
// Therefore we don't allow native events to insert text at the end of anchor nodes.
|
|
3231
|
+
var {
|
|
3232
|
+
anchor
|
|
3233
|
+
} = selection;
|
|
3234
|
+
var [node, offset] = ReactEditor.toDOMPoint(editor, anchor);
|
|
3235
|
+
var anchorNode = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.closest('a');
|
|
3236
|
+
var _window = ReactEditor.getWindow(editor);
|
|
3237
|
+
if (native && anchorNode && ReactEditor.hasDOMNode(editor, anchorNode)) {
|
|
3238
|
+
var _lastText$textContent;
|
|
3239
|
+
// Find the last text node inside the anchor.
|
|
3240
|
+
var lastText = _window === null || _window === void 0 ? void 0 : _window.document.createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT).lastChild();
|
|
3241
|
+
if (lastText === node && ((_lastText$textContent = lastText.textContent) === null || _lastText$textContent === void 0 ? void 0 : _lastText$textContent.length) === offset) {
|
|
3242
|
+
native = false;
|
|
3243
|
+
}
|
|
3232
3244
|
}
|
|
3233
|
-
|
|
3234
|
-
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3240
|
-
|
|
3241
|
-
|
|
3242
|
-
|
|
3245
|
+
// Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'
|
|
3246
|
+
// causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139
|
|
3247
|
+
if (native && node.parentElement && (_window === null || _window === void 0 || (_window$getComputedSt = _window.getComputedStyle(node.parentElement)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.whiteSpace) === 'pre') {
|
|
3248
|
+
var block = Editor.above(editor, {
|
|
3249
|
+
at: anchor.path,
|
|
3250
|
+
match: n => Element$1.isElement(n) && Editor.isBlock(editor, n)
|
|
3251
|
+
});
|
|
3252
|
+
if (block && Node.string(block[0]).includes('\t')) {
|
|
3253
|
+
native = false;
|
|
3254
|
+
}
|
|
3243
3255
|
}
|
|
3244
3256
|
}
|
|
3245
3257
|
}
|
|
3246
3258
|
// COMPAT: For the deleting forward/backward input types we don't want
|
|
3247
3259
|
// to change the selection because it is the range that will be deleted,
|
|
3248
3260
|
// and those commands determine that for themselves.
|
|
3249
|
-
|
|
3261
|
+
// If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint via ReactEditor.toSlateRange)
|
|
3262
|
+
if ((!type.startsWith('delete') || type.startsWith('deleteBy')) && !IS_NODE_MAP_DIRTY.get(editor)) {
|
|
3250
3263
|
var [targetRange] = event.getTargetRanges();
|
|
3251
3264
|
if (targetRange) {
|
|
3252
3265
|
var _range = ReactEditor.toSlateRange(editor, targetRange, {
|
|
@@ -4612,6 +4625,16 @@ var withReact = function withReact(editor) {
|
|
|
4612
4625
|
}
|
|
4613
4626
|
}
|
|
4614
4627
|
apply(op);
|
|
4628
|
+
switch (op.type) {
|
|
4629
|
+
case 'insert_node':
|
|
4630
|
+
case 'remove_node':
|
|
4631
|
+
case 'merge_node':
|
|
4632
|
+
case 'move_node':
|
|
4633
|
+
case 'split_node':
|
|
4634
|
+
{
|
|
4635
|
+
IS_NODE_MAP_DIRTY.set(e, true);
|
|
4636
|
+
}
|
|
4637
|
+
}
|
|
4615
4638
|
for (var [path, key] of matches) {
|
|
4616
4639
|
var [node] = Editor.node(e, path);
|
|
4617
4640
|
NODE_TO_KEY.set(node, key);
|