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
|
@@ -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,EAIT,IAAI,EAEJ,cAAc,EACd,YAAY,EACb,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"editable.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/components/editable.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-native-format-dom.d.ts","sourceRoot":"","sources":["../../../../packages/slate-react/src/hooks/use-native-format-dom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAsBpD,eAAO,MAAM,kBAAkB,GAAI,QAAQ,WAAW;;;;CA8CrD,CAAA"}
|
package/dist/index.es.js
CHANGED
|
@@ -2700,6 +2700,74 @@ const useCompositionDOM = editor => {
|
|
|
2700
2700
|
return compositionDOM;
|
|
2701
2701
|
};
|
|
2702
2702
|
|
|
2703
|
+
const revertMutation = mutation => {
|
|
2704
|
+
const {
|
|
2705
|
+
target
|
|
2706
|
+
} = mutation;
|
|
2707
|
+
if (mutation.type === 'characterData') {
|
|
2708
|
+
target.nodeValue = mutation.oldValue;
|
|
2709
|
+
} else if (mutation.type === 'attributes' && isDOMElement(target)) {
|
|
2710
|
+
const name = mutation.attributeName;
|
|
2711
|
+
if (mutation.oldValue === null) {
|
|
2712
|
+
target.removeAttribute(name);
|
|
2713
|
+
} else {
|
|
2714
|
+
target.setAttribute(name, mutation.oldValue);
|
|
2715
|
+
}
|
|
2716
|
+
} else {
|
|
2717
|
+
mutation.addedNodes.forEach(node => {
|
|
2718
|
+
var _node$parentNode;
|
|
2719
|
+
return (_node$parentNode = node.parentNode) === null || _node$parentNode === void 0 ? void 0 : _node$parentNode.removeChild(node);
|
|
2720
|
+
});
|
|
2721
|
+
mutation.removedNodes.forEach(node => target.insertBefore(node, mutation.nextSibling));
|
|
2722
|
+
}
|
|
2723
|
+
};
|
|
2724
|
+
const useNativeFormatDOM = editor => {
|
|
2725
|
+
const nativeFormatDOM = useMemo(() => {
|
|
2726
|
+
let delivered = [];
|
|
2727
|
+
let observer = null;
|
|
2728
|
+
const deliver = mutations => {
|
|
2729
|
+
if (delivered.length === 0) {
|
|
2730
|
+
setTimeout(() => {
|
|
2731
|
+
delivered = [];
|
|
2732
|
+
});
|
|
2733
|
+
}
|
|
2734
|
+
delivered.push(...mutations);
|
|
2735
|
+
};
|
|
2736
|
+
const observe = () => {
|
|
2737
|
+
observer !== null && observer !== void 0 ? observer : observer = new MutationObserver(deliver);
|
|
2738
|
+
observer.observe(ReactEditor.toDOMNode(editor, editor), {
|
|
2739
|
+
attributes: true,
|
|
2740
|
+
attributeOldValue: true,
|
|
2741
|
+
characterData: true,
|
|
2742
|
+
characterDataOldValue: true,
|
|
2743
|
+
childList: true,
|
|
2744
|
+
subtree: true
|
|
2745
|
+
});
|
|
2746
|
+
};
|
|
2747
|
+
const disconnect = () => {
|
|
2748
|
+
var _observer;
|
|
2749
|
+
(_observer = observer) === null || _observer === void 0 || _observer.disconnect();
|
|
2750
|
+
delivered = [];
|
|
2751
|
+
};
|
|
2752
|
+
const revert = () => {
|
|
2753
|
+
var _observer$takeRecords, _observer2;
|
|
2754
|
+
const mutations = [...delivered, ...((_observer$takeRecords = (_observer2 = observer) === null || _observer2 === void 0 ? void 0 : _observer2.takeRecords()) !== null && _observer$takeRecords !== void 0 ? _observer$takeRecords : [])];
|
|
2755
|
+
delivered = [];
|
|
2756
|
+
mutations.reverse().forEach(revertMutation);
|
|
2757
|
+
};
|
|
2758
|
+
return {
|
|
2759
|
+
observe,
|
|
2760
|
+
disconnect,
|
|
2761
|
+
revert
|
|
2762
|
+
};
|
|
2763
|
+
}, [editor]);
|
|
2764
|
+
useEffect(() => {
|
|
2765
|
+
nativeFormatDOM.observe();
|
|
2766
|
+
return nativeFormatDOM.disconnect;
|
|
2767
|
+
}, [nativeFormatDOM]);
|
|
2768
|
+
return nativeFormatDOM;
|
|
2769
|
+
};
|
|
2770
|
+
|
|
2703
2771
|
const caretTop = (editor, point) => {
|
|
2704
2772
|
const range = ReactEditor.resolveDOMRange(editor, {
|
|
2705
2773
|
anchor: point,
|
|
@@ -2962,6 +3030,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
2962
3030
|
const [placeholderHeight, setPlaceholderHeight] = useState();
|
|
2963
3031
|
const processing = useRef(false);
|
|
2964
3032
|
const compositionDOM = useCompositionDOM(editor);
|
|
3033
|
+
const nativeFormatDOM = useNativeFormatDOM(editor);
|
|
2965
3034
|
const deleteOnCompositionEndRef = useRef(false);
|
|
2966
3035
|
const {
|
|
2967
3036
|
onUserInput,
|
|
@@ -3775,6 +3844,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
3775
3844
|
}
|
|
3776
3845
|
}, [attributes.onBeforeInput, editor, readOnly]),
|
|
3777
3846
|
onInput: useCallback(event => {
|
|
3847
|
+
var _event$nativeEvent$in;
|
|
3778
3848
|
if (readOnly) {
|
|
3779
3849
|
isEventHandled(event, attributes.onInput);
|
|
3780
3850
|
return;
|
|
@@ -3790,6 +3860,16 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
3790
3860
|
androidInputManagerRef.current.handleInput();
|
|
3791
3861
|
return;
|
|
3792
3862
|
}
|
|
3863
|
+
if ((_event$nativeEvent$in = event.nativeEvent.inputType) !== null && _event$nativeEvent$in !== void 0 && _event$nativeEvent$in.startsWith('format')) {
|
|
3864
|
+
const domSelection = getSelection(ReactEditor.findDocumentOrShadowRoot(editor));
|
|
3865
|
+
const range = domSelection && ReactEditor.resolveSlateRange(editor, domSelection);
|
|
3866
|
+
nativeFormatDOM.revert();
|
|
3867
|
+
if (domSelection && range) {
|
|
3868
|
+
Transforms.select(editor, range);
|
|
3869
|
+
restoreDomSelection(editor, domSelection, state);
|
|
3870
|
+
}
|
|
3871
|
+
return;
|
|
3872
|
+
}
|
|
3793
3873
|
// Flush native operations, as native events will have propogated
|
|
3794
3874
|
// and we can correctly compare DOM text values in components
|
|
3795
3875
|
// to stop rendering, so that browser functions like autocorrect
|
|
@@ -3825,7 +3905,7 @@ const Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {
|
|
|
3825
3905
|
if (!ReactEditor.isFocused(editor)) {
|
|
3826
3906
|
handleNativeHistoryEvents(editor, event.nativeEvent);
|
|
3827
3907
|
}
|
|
3828
|
-
}, [readOnly, attributes.onInput, editor, compositionDOM]),
|
|
3908
|
+
}, [readOnly, attributes.onInput, editor, compositionDOM, nativeFormatDOM]),
|
|
3829
3909
|
onBlur: useCallback(event => {
|
|
3830
3910
|
if (readOnly) {
|
|
3831
3911
|
isEventHandled(event, attributes.onBlur);
|