slate-react 0.76.0 → 0.76.1-2022311131726
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 +0 -4
- package/dist/components/editable.d.ts.map +1 -1
- package/dist/components/slate.d.ts +1 -1
- package/dist/components/slate.d.ts.map +1 -1
- package/dist/index.es.js +77 -21
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +77 -25
- package/dist/index.js.map +1 -1
- package/dist/plugin/with-react.d.ts.map +1 -1
- package/dist/slate-react.js +77 -25
- package/dist/slate-react.min.js +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/environment.d.ts +1 -0
- package/dist/utils/environment.d.ts.map +1 -1
- package/dist/utils/weak-maps.d.ts +2 -1
- package/dist/utils/weak-maps.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -68,10 +68,6 @@ export declare const DefaultPlaceholder: ({ attributes, children, }: RenderPlace
|
|
|
68
68
|
* A default memoized decorate function.
|
|
69
69
|
*/
|
|
70
70
|
export declare const defaultDecorate: (entry: NodeEntry) => Range[];
|
|
71
|
-
/**
|
|
72
|
-
* Check if two DOM range objects are equal.
|
|
73
|
-
*/
|
|
74
|
-
export declare const isRangeEqual: (a: DOMRange, b: DOMRange) => boolean;
|
|
75
71
|
/**
|
|
76
72
|
* Check if the target is in the editor.
|
|
77
73
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,EAEL,OAAO,EACP,SAAS,EAET,KAAK,EACL,IAAI,
|
|
1
|
+
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ export declare const Slate: (props: {
|
|
|
9
9
|
editor: ReactEditor;
|
|
10
10
|
value: Descendant[];
|
|
11
11
|
children: React.ReactNode;
|
|
12
|
-
onChange
|
|
12
|
+
onChange?: ((value: Descendant[]) => void) | undefined;
|
|
13
13
|
}) => JSX.Element;
|
|
14
14
|
//# sourceMappingURL=slate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slate.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/slate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,EAAyB,UAAU,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"slate.d.ts","sourceRoot":"","sources":["../packages/slate-react/src/components/slate.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAChF,OAAO,EAAyB,UAAU,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAYpD;;;GAGG;AAEH,eAAO,MAAM,KAAK;YACR,WAAW;WACZ,UAAU,EAAE;cACT,KAAK,CAAC,SAAS;wBACN,UAAU,EAAE,KAAK,IAAI;iBAoFzC,CAAA"}
|
package/dist/index.es.js
CHANGED
|
@@ -56,6 +56,7 @@ function _objectWithoutProperties(source, excluded) {
|
|
|
56
56
|
return target;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
var IS_REACT_VERSION_17_OR_ABOVE = parseInt(React.version.split('.')[0], 10) >= 17;
|
|
59
60
|
var IS_IOS = typeof navigator !== 'undefined' && typeof window !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
|
60
61
|
var IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);
|
|
61
62
|
var IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);
|
|
@@ -231,6 +232,7 @@ var IS_READ_ONLY = new WeakMap();
|
|
|
231
232
|
var IS_FOCUSED = new WeakMap();
|
|
232
233
|
var IS_COMPOSING = new WeakMap();
|
|
233
234
|
var IS_ON_COMPOSITION_END = new WeakMap();
|
|
235
|
+
var EDITOR_TO_USER_SELECTION = new WeakMap();
|
|
234
236
|
/**
|
|
235
237
|
* Weak maps for saving text on composition stage.
|
|
236
238
|
*/
|
|
@@ -1004,6 +1006,8 @@ var getClipboardData = dataTransfer => {
|
|
|
1004
1006
|
return dataTransfer;
|
|
1005
1007
|
};
|
|
1006
1008
|
|
|
1009
|
+
var TRIPLE_CLICK = 3;
|
|
1010
|
+
|
|
1007
1011
|
var _excluded$2 = ["autoFocus", "decorate", "onDOMBeforeInput", "placeholder", "readOnly", "renderElement", "renderLeaf", "renderPlaceholder", "scrollSelectionIntoView", "style", "as"];
|
|
1008
1012
|
|
|
1009
1013
|
function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -1194,6 +1198,8 @@ var Editable$1 = props => {
|
|
|
1194
1198
|
|
|
1195
1199
|
var onDOMBeforeInput = useCallback(event => {
|
|
1196
1200
|
if (!readOnly && hasEditableTarget(editor, event.target) && !isDOMEventHandled(event, propsOnDOMBeforeInput)) {
|
|
1201
|
+
var _EDITOR_TO_USER_SELEC;
|
|
1202
|
+
|
|
1197
1203
|
// Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before
|
|
1198
1204
|
// triggering a `beforeinput` expecting the change to be applied to the immediately before
|
|
1199
1205
|
// set selection.
|
|
@@ -1265,7 +1271,12 @@ var Editable$1 = props => {
|
|
|
1265
1271
|
});
|
|
1266
1272
|
|
|
1267
1273
|
if (!selection || !Range.equals(selection, range)) {
|
|
1274
|
+
var selectionRef = editor.selection && Editor.rangeRef(editor, editor.selection);
|
|
1268
1275
|
Transforms.select(editor, range);
|
|
1276
|
+
|
|
1277
|
+
if (selectionRef) {
|
|
1278
|
+
EDITOR_TO_USER_SELECTION.set(editor, selectionRef);
|
|
1279
|
+
}
|
|
1269
1280
|
}
|
|
1270
1281
|
}
|
|
1271
1282
|
} // COMPAT: If the selection is expanded, even if the command seems like
|
|
@@ -1415,6 +1426,14 @@ var Editable$1 = props => {
|
|
|
1415
1426
|
|
|
1416
1427
|
break;
|
|
1417
1428
|
}
|
|
1429
|
+
} // Restore the actual user section if nothing manually set it.
|
|
1430
|
+
|
|
1431
|
+
|
|
1432
|
+
var toRestore = (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();
|
|
1433
|
+
EDITOR_TO_USER_SELECTION.delete(editor);
|
|
1434
|
+
|
|
1435
|
+
if (toRestore && (!editor.selection || !Range.equals(editor.selection, toRestore))) {
|
|
1436
|
+
Transforms.select(editor, toRestore);
|
|
1418
1437
|
}
|
|
1419
1438
|
}
|
|
1420
1439
|
}, [readOnly, propsOnDOMBeforeInput]); // Attach a native DOM event handler for `beforeinput` events, because React's
|
|
@@ -1575,30 +1594,46 @@ var Editable$1 = props => {
|
|
|
1575
1594
|
IS_FOCUSED.delete(editor);
|
|
1576
1595
|
}, [readOnly, attributes.onBlur]),
|
|
1577
1596
|
onClick: useCallback(event => {
|
|
1578
|
-
if (
|
|
1597
|
+
if (hasTarget(editor, event.target) && !isEventHandled(event, attributes.onClick) && isDOMNode(event.target)) {
|
|
1579
1598
|
var node = ReactEditor.toSlateNode(editor, event.target);
|
|
1580
|
-
var path = ReactEditor.findPath(editor, node);
|
|
1599
|
+
var path = ReactEditor.findPath(editor, node);
|
|
1600
|
+
|
|
1601
|
+
if (event.detail === TRIPLE_CLICK) {
|
|
1602
|
+
var _start = Editor.start(editor, [path[0]]);
|
|
1603
|
+
|
|
1604
|
+
var end = Editor.end(editor, [path[0]]);
|
|
1605
|
+
var range = Editor.range(editor, _start, end);
|
|
1606
|
+
Transforms.select(editor, range);
|
|
1607
|
+
return;
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
if (readOnly) {
|
|
1611
|
+
return;
|
|
1612
|
+
} // At this time, the Slate document may be arbitrarily different,
|
|
1581
1613
|
// because onClick handlers can change the document before we get here.
|
|
1582
1614
|
// Therefore we must check that this path actually exists,
|
|
1583
1615
|
// and that it still refers to the same node.
|
|
1584
1616
|
|
|
1617
|
+
|
|
1585
1618
|
if (Editor.hasPath(editor, path)) {
|
|
1586
1619
|
var lookupNode = Node.get(editor, path);
|
|
1587
1620
|
|
|
1588
1621
|
if (lookupNode === node) {
|
|
1589
|
-
var
|
|
1622
|
+
var _start2 = Editor.start(editor, path);
|
|
1623
|
+
|
|
1624
|
+
var _end = Editor.end(editor, path);
|
|
1590
1625
|
|
|
1591
|
-
var end = Editor.end(editor, path);
|
|
1592
1626
|
var startVoid = Editor.void(editor, {
|
|
1593
|
-
at:
|
|
1627
|
+
at: _start2
|
|
1594
1628
|
});
|
|
1595
1629
|
var endVoid = Editor.void(editor, {
|
|
1596
|
-
at:
|
|
1630
|
+
at: _end
|
|
1597
1631
|
});
|
|
1598
1632
|
|
|
1599
1633
|
if (startVoid && endVoid && Path.equals(startVoid[1], endVoid[1])) {
|
|
1600
|
-
var
|
|
1601
|
-
|
|
1634
|
+
var _range = Editor.range(editor, _start2);
|
|
1635
|
+
|
|
1636
|
+
Transforms.select(editor, _range);
|
|
1602
1637
|
}
|
|
1603
1638
|
}
|
|
1604
1639
|
}
|
|
@@ -1801,7 +1836,7 @@ var Editable$1 = props => {
|
|
|
1801
1836
|
}
|
|
1802
1837
|
}, [readOnly, attributes.onFocus]),
|
|
1803
1838
|
onKeyDown: useCallback(event => {
|
|
1804
|
-
if (!readOnly &&
|
|
1839
|
+
if (!readOnly && hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onKeyDown) && !state.isComposing) {
|
|
1805
1840
|
var {
|
|
1806
1841
|
nativeEvent
|
|
1807
1842
|
} = event;
|
|
@@ -2135,6 +2170,7 @@ var defaultScrollSelectionIntoView = (editor, domRange) => {
|
|
|
2135
2170
|
* Check if the target is in the editor.
|
|
2136
2171
|
*/
|
|
2137
2172
|
|
|
2173
|
+
|
|
2138
2174
|
var hasTarget = (editor, target) => {
|
|
2139
2175
|
return isDOMNode(target) && ReactEditor.hasDOMNode(editor, target);
|
|
2140
2176
|
};
|
|
@@ -4057,7 +4093,10 @@ var Slate = props => {
|
|
|
4057
4093
|
onChange: handleSelectorChange
|
|
4058
4094
|
} = getSelectorContext(editor);
|
|
4059
4095
|
var onContextChange = useCallback(() => {
|
|
4060
|
-
onChange
|
|
4096
|
+
if (onChange) {
|
|
4097
|
+
onChange(editor.children);
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4061
4100
|
setContext([editor]);
|
|
4062
4101
|
handleSelectorChange(editor);
|
|
4063
4102
|
}, [onChange]);
|
|
@@ -4075,17 +4114,24 @@ var Slate = props => {
|
|
|
4075
4114
|
useIsomorphicLayoutEffect(() => {
|
|
4076
4115
|
var fn = () => setIsFocused(ReactEditor.isFocused(editor));
|
|
4077
4116
|
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
}
|
|
4117
|
+
if (IS_REACT_VERSION_17_OR_ABOVE) {
|
|
4118
|
+
// In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.
|
|
4119
|
+
// Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)
|
|
4120
|
+
// to return the correct value, we have to listen to the focusin and focusout events without useCapture here.
|
|
4121
|
+
document.addEventListener('focusin', fn);
|
|
4122
|
+
document.addEventListener('focusout', fn);
|
|
4123
|
+
return () => {
|
|
4124
|
+
document.removeEventListener('focusin', fn);
|
|
4125
|
+
document.removeEventListener('focusout', fn);
|
|
4126
|
+
};
|
|
4127
|
+
} else {
|
|
4128
|
+
document.addEventListener('focus', fn, true);
|
|
4129
|
+
document.addEventListener('blur', fn, true);
|
|
4130
|
+
return () => {
|
|
4131
|
+
document.removeEventListener('focus', fn, true);
|
|
4132
|
+
document.removeEventListener('blur', fn, true);
|
|
4133
|
+
};
|
|
4134
|
+
}
|
|
4089
4135
|
}, []);
|
|
4090
4136
|
return /*#__PURE__*/React.createElement(SlateSelectorContext.Provider, {
|
|
4091
4137
|
value: selectorContext
|
|
@@ -4227,6 +4273,16 @@ var withReact = editor => {
|
|
|
4227
4273
|
break;
|
|
4228
4274
|
}
|
|
4229
4275
|
|
|
4276
|
+
case 'set_selection':
|
|
4277
|
+
{
|
|
4278
|
+
var _EDITOR_TO_USER_SELEC;
|
|
4279
|
+
|
|
4280
|
+
// Selection was manually set, don't restore the user selection after the change.
|
|
4281
|
+
(_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();
|
|
4282
|
+
EDITOR_TO_USER_SELECTION.delete(editor);
|
|
4283
|
+
break;
|
|
4284
|
+
}
|
|
4285
|
+
|
|
4230
4286
|
case 'insert_node':
|
|
4231
4287
|
case 'remove_node':
|
|
4232
4288
|
{
|