pixel-react 1.18.9 → 1.18.10
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.
|
@@ -4,8 +4,15 @@ const EditableCell = React.forwardRef(({ initialValue = '', onChange, className
|
|
|
4
4
|
const cellRef = useRef(null);
|
|
5
5
|
React.useImperativeHandle(ref, () => cellRef.current);
|
|
6
6
|
useEffect(() => {
|
|
7
|
-
if (cellRef.current &&
|
|
8
|
-
|
|
7
|
+
if (cellRef.current && document.activeElement !== cellRef.current) {
|
|
8
|
+
// We add a 'buffer' newline if the value ends in \n to force the
|
|
9
|
+
// browser to render the second line for the cursor.
|
|
10
|
+
const displayValue = initialValue.endsWith('\n')
|
|
11
|
+
? `${initialValue}\n`
|
|
12
|
+
: initialValue;
|
|
13
|
+
if (displayValue !== cellRef.current.innerText) {
|
|
14
|
+
cellRef.current.innerText = displayValue;
|
|
15
|
+
}
|
|
9
16
|
}
|
|
10
17
|
}, [initialValue]);
|
|
11
18
|
const defaultStyle = {
|
|
@@ -25,42 +32,33 @@ const EditableCell = React.forwardRef(({ initialValue = '', onChange, className
|
|
|
25
32
|
position: 'relative',
|
|
26
33
|
paddingBottom: '2px',
|
|
27
34
|
};
|
|
35
|
+
const handleInput = () => {
|
|
36
|
+
if (cellRef.current) {
|
|
37
|
+
let newValue = cellRef.current.innerText;
|
|
38
|
+
// Strip the browser's layout newline before sending back to parent
|
|
39
|
+
if (newValue.endsWith('\n')) {
|
|
40
|
+
newValue = newValue.slice(0, -1);
|
|
41
|
+
}
|
|
42
|
+
onChange?.(newValue);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
28
45
|
const handleKeyDown = (e) => {
|
|
29
46
|
if (e.key === 'Enter') {
|
|
30
47
|
if (e.altKey || e.shiftKey) {
|
|
31
48
|
e.preventDefault();
|
|
32
49
|
document.execCommand('insertLineBreak');
|
|
33
|
-
handleInput();
|
|
34
50
|
return;
|
|
35
51
|
}
|
|
36
52
|
cellRef.current?.blur();
|
|
37
53
|
}
|
|
38
54
|
if (e.key === 'Delete' || e.key === 'Backspace') {
|
|
39
55
|
e.stopPropagation();
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
const handleInput = () => {
|
|
44
|
-
if (cellRef.current) {
|
|
45
|
-
const newValue = cellRef.current.innerText;
|
|
46
|
-
onChange?.(newValue);
|
|
47
56
|
}
|
|
48
57
|
};
|
|
49
58
|
const handlePaste = (e) => {
|
|
50
59
|
e.preventDefault();
|
|
51
60
|
const text = e.clipboardData.getData('text/plain');
|
|
52
|
-
|
|
53
|
-
if (!selection || !selection.rangeCount)
|
|
54
|
-
return;
|
|
55
|
-
const range = selection.getRangeAt(0);
|
|
56
|
-
range.deleteContents();
|
|
57
|
-
const textNode = document.createTextNode(text);
|
|
58
|
-
range.insertNode(textNode);
|
|
59
|
-
range.setStartAfter(textNode);
|
|
60
|
-
range.collapse(true);
|
|
61
|
-
selection.removeAllRanges();
|
|
62
|
-
selection.addRange(range);
|
|
63
|
-
handleInput();
|
|
61
|
+
document.execCommand('insertText', false, text);
|
|
64
62
|
};
|
|
65
63
|
return (_jsx("div", { style: style, children: _jsx("div", { ref: cellRef, className: `editable-cell ${className}`, contentEditable: true, suppressContentEditableWarning: true, onKeyDown: handleKeyDown, onInput: handleInput, onPaste: handlePaste, spellCheck: false, autoCorrect: "off", autoCapitalize: "off", style: defaultStyle }) }));
|
|
66
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableCell.js","sourceRoot":"","sources":["../../../../../src/components/Excel/ExcelFile/ExcelFileComponents/EditableCell.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASjD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CACnC,CAAC,EAAE,YAAY,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IACnE,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAE7C,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC;IAEvD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,OAAO,IAAI,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"EditableCell.js","sourceRoot":"","sources":["../../../../../src/components/Excel/ExcelFile/ExcelFileComponents/EditableCell.tsx"],"names":[],"mappings":"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"}
|