slate-react 0.147.1 → 0.147.2
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/use-native-format-dom.d.ts +7 -0
- package/dist/hooks/use-native-format-dom.d.ts.map +1 -0
- package/dist/index.es.js +81 -1
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +82 -1
- package/dist/index.js.map +1 -1
- package/dist/slate-react.js +82 -1
- package/dist/slate-react.min.js +1 -1
- package/package.json +1 -1
package/dist/slate-react.js
CHANGED
|
@@ -7207,6 +7207,75 @@
|
|
|
7207
7207
|
return compositionDOM;
|
|
7208
7208
|
};
|
|
7209
7209
|
|
|
7210
|
+
var revertMutation = function revertMutation(mutation) {
|
|
7211
|
+
var target = mutation.target;
|
|
7212
|
+
if (mutation.type === 'characterData') {
|
|
7213
|
+
target.nodeValue = mutation.oldValue;
|
|
7214
|
+
} else if (mutation.type === 'attributes' && isDOMElement(target)) {
|
|
7215
|
+
var name = mutation.attributeName;
|
|
7216
|
+
if (mutation.oldValue === null) {
|
|
7217
|
+
target.removeAttribute(name);
|
|
7218
|
+
} else {
|
|
7219
|
+
target.setAttribute(name, mutation.oldValue);
|
|
7220
|
+
}
|
|
7221
|
+
} else {
|
|
7222
|
+
mutation.addedNodes.forEach(function (node) {
|
|
7223
|
+
var _node$parentNode;
|
|
7224
|
+
return (_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.removeChild(node);
|
|
7225
|
+
});
|
|
7226
|
+
mutation.removedNodes.forEach(function (node) {
|
|
7227
|
+
return target.insertBefore(node, mutation.nextSibling);
|
|
7228
|
+
});
|
|
7229
|
+
}
|
|
7230
|
+
};
|
|
7231
|
+
var useNativeFormatDOM = function useNativeFormatDOM(editor) {
|
|
7232
|
+
var nativeFormatDOM = React.useMemo(function () {
|
|
7233
|
+
var delivered = [];
|
|
7234
|
+
var observer = null;
|
|
7235
|
+
var deliver = function deliver(mutations) {
|
|
7236
|
+
var _delivered;
|
|
7237
|
+
if (delivered.length === 0) {
|
|
7238
|
+
setTimeout(function () {
|
|
7239
|
+
delivered = [];
|
|
7240
|
+
});
|
|
7241
|
+
}
|
|
7242
|
+
(_delivered = delivered).push.apply(_delivered, _toConsumableArray(mutations));
|
|
7243
|
+
};
|
|
7244
|
+
var observe = function observe() {
|
|
7245
|
+
observer !== null && observer !== void 0 ? observer : observer = new MutationObserver(deliver);
|
|
7246
|
+
observer.observe(ReactEditor.toDOMNode(editor, editor), {
|
|
7247
|
+
attributes: true,
|
|
7248
|
+
attributeOldValue: true,
|
|
7249
|
+
characterData: true,
|
|
7250
|
+
characterDataOldValue: true,
|
|
7251
|
+
childList: true,
|
|
7252
|
+
subtree: true
|
|
7253
|
+
});
|
|
7254
|
+
};
|
|
7255
|
+
var disconnect = function disconnect() {
|
|
7256
|
+
var _observer;
|
|
7257
|
+
(_observer = observer) === null || _observer === void 0 || _observer.disconnect();
|
|
7258
|
+
delivered = [];
|
|
7259
|
+
};
|
|
7260
|
+
var revert = function revert() {
|
|
7261
|
+
var _observer$takeRecords, _observer2;
|
|
7262
|
+
var mutations = [].concat(_toConsumableArray(delivered), _toConsumableArray((_observer$takeRecords = (_observer2 = observer) === null || _observer2 === void 0 ? void 0 : _observer2.takeRecords()) !== null && _observer$takeRecords !== void 0 ? _observer$takeRecords : []));
|
|
7263
|
+
delivered = [];
|
|
7264
|
+
mutations.reverse().forEach(revertMutation);
|
|
7265
|
+
};
|
|
7266
|
+
return {
|
|
7267
|
+
observe: observe,
|
|
7268
|
+
disconnect: disconnect,
|
|
7269
|
+
revert: revert
|
|
7270
|
+
};
|
|
7271
|
+
}, [editor]);
|
|
7272
|
+
React.useEffect(function () {
|
|
7273
|
+
nativeFormatDOM.observe();
|
|
7274
|
+
return nativeFormatDOM.disconnect;
|
|
7275
|
+
}, [nativeFormatDOM]);
|
|
7276
|
+
return nativeFormatDOM;
|
|
7277
|
+
};
|
|
7278
|
+
|
|
7210
7279
|
var caretTop = function caretTop(editor, point) {
|
|
7211
7280
|
var range = ReactEditor.resolveDOMRange(editor, {
|
|
7212
7281
|
anchor: point,
|
|
@@ -7601,6 +7670,7 @@
|
|
|
7601
7670
|
setPlaceholderHeight = _useState4[1];
|
|
7602
7671
|
var processing = React.useRef(false);
|
|
7603
7672
|
var compositionDOM = useCompositionDOM(editor);
|
|
7673
|
+
var nativeFormatDOM = useNativeFormatDOM(editor);
|
|
7604
7674
|
var deleteOnCompositionEndRef = React.useRef(false);
|
|
7605
7675
|
var _useTrackUserInput = useTrackUserInput(),
|
|
7606
7676
|
onUserInput = _useTrackUserInput.onUserInput,
|
|
@@ -8407,6 +8477,7 @@
|
|
|
8407
8477
|
}
|
|
8408
8478
|
}, [attributes.onBeforeInput, editor, readOnly]),
|
|
8409
8479
|
onInput: React.useCallback(function (event) {
|
|
8480
|
+
var _event$nativeEvent$in;
|
|
8410
8481
|
if (readOnly) {
|
|
8411
8482
|
isEventHandled(event, attributes.onInput);
|
|
8412
8483
|
return;
|
|
@@ -8422,6 +8493,16 @@
|
|
|
8422
8493
|
androidInputManagerRef.current.handleInput();
|
|
8423
8494
|
return;
|
|
8424
8495
|
}
|
|
8496
|
+
if ((_event$nativeEvent$in = event.nativeEvent.inputType) !== null && _event$nativeEvent$in !== void 0 && _event$nativeEvent$in.startsWith('format')) {
|
|
8497
|
+
var domSelection = getSelection(ReactEditor.findDocumentOrShadowRoot(editor));
|
|
8498
|
+
var range = domSelection && ReactEditor.resolveSlateRange(editor, domSelection);
|
|
8499
|
+
nativeFormatDOM.revert();
|
|
8500
|
+
if (domSelection && range) {
|
|
8501
|
+
slate.Transforms.select(editor, range);
|
|
8502
|
+
restoreDomSelection(editor, domSelection, state);
|
|
8503
|
+
}
|
|
8504
|
+
return;
|
|
8505
|
+
}
|
|
8425
8506
|
// Flush native operations, as native events will have propogated
|
|
8426
8507
|
// and we can correctly compare DOM text values in components
|
|
8427
8508
|
// to stop rendering, so that browser functions like autocorrect
|
|
@@ -8464,7 +8545,7 @@
|
|
|
8464
8545
|
if (!ReactEditor.isFocused(editor)) {
|
|
8465
8546
|
handleNativeHistoryEvents(editor, event.nativeEvent);
|
|
8466
8547
|
}
|
|
8467
|
-
}, [readOnly, attributes.onInput, editor, compositionDOM]),
|
|
8548
|
+
}, [readOnly, attributes.onInput, editor, compositionDOM, nativeFormatDOM]),
|
|
8468
8549
|
onBlur: React.useCallback(function (event) {
|
|
8469
8550
|
if (readOnly) {
|
|
8470
8551
|
isEventHandled(event, attributes.onBlur);
|