pixel-react 1.18.9 → 1.19.0
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/README.md +75 -75
- package/lib/components/Charts/BarChart/BarChart.js +8 -8
- package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js +6 -6
- package/lib/components/Charts/IconRadialChart/IconRadialChart.js +4 -4
- package/lib/components/Charts/PieChart/PieChart.js +5 -5
- package/lib/components/Comments/Comments.js +14 -14
- package/lib/components/Comments/childComment/ChildComment.js +14 -14
- package/lib/components/EditTextField/EditTextField.js +2 -2
- package/lib/components/Excel/ExcelFile/ExcelFileComponents/EditableCell.js +20 -22
- package/lib/components/Excel/ExcelFile/ExcelFileComponents/EditableCell.js.map +1 -1
- package/lib/components/LabelEditTextField/LabelEditTextField.js +4 -4
- package/lib/components/StatusIndicator/StatusIndicator.js +5 -5
- package/lib/index.d.ts +1 -1
- package/lib/index.js +11 -17
- package/lib/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/styles.css.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/getTreeDetails/getTreeDetails.d.ts +1 -1
- package/lib/utils/getTreeDetails/getTreeDetails.js +13 -5
- package/lib/utils/getTreeDetails/getTreeDetails.js.map +1 -1
- package/package.json +114 -114
package/README.md
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: PixelReact UI
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
import { Button, Input } from 'pixel-react';
|
|
6
|
-
|
|
7
|
-
<h1 align="center">PixelReact UI</h1>
|
|
8
|
-
|
|
9
|
-
<p align="center">
|
|
10
|
-
<strong>PixelReact UI</strong> is an open-source React component library, designed to offer a sleek, customizable, and easy-to-use collection of components for building modern user interfaces.
|
|
11
|
-
</p>
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Table of Contents
|
|
16
|
-
|
|
17
|
-
- [Installation](#installation)
|
|
18
|
-
- [Usage](#usage)
|
|
19
|
-
- [Documentation](#documentation)
|
|
20
|
-
- [Contributing](#contributing)
|
|
21
|
-
- [License](#license)
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Installation
|
|
26
|
-
|
|
27
|
-
Install PixelReact UI in your project directory with:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm install pixel-react
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
or with Yarn:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
yarn add pixel-react
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Usage
|
|
40
|
-
|
|
41
|
-
Once installed, you can start importing and using PixelReact components in your React application. Here's a quick example:
|
|
42
|
-
|
|
43
|
-
```jsx
|
|
44
|
-
import { Button } from 'pixel-react';
|
|
45
|
-
|
|
46
|
-
function App() {
|
|
47
|
-
return (
|
|
48
|
-
<div>
|
|
49
|
-
<Button label="Button Label" variant="primary" />
|
|
50
|
-
</div>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export default App;
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Documentation
|
|
58
|
-
|
|
59
|
-
For detailed documentation and live examples, [click here](https://main--65d5ca6d09c1eaf0731601fc.chromatic.com/).
|
|
60
|
-
|
|
61
|
-
## Example
|
|
62
|
-
|
|
63
|
-
```jsx
|
|
64
|
-
import { Button } from 'pixel-react';
|
|
65
|
-
|
|
66
|
-
function ExampleComponent() {
|
|
67
|
-
return <Button label="Click Me!" variant="primary" />;
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## License
|
|
72
|
-
|
|
73
|
-
PixelReact UI is licensed under the [MIT License](LICENSE). Feel free to use it in your projects, both personal and commercial.
|
|
74
|
-
|
|
75
|
-
---
|
|
1
|
+
---
|
|
2
|
+
title: PixelReact UI
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
import { Button, Input } from 'pixel-react';
|
|
6
|
+
|
|
7
|
+
<h1 align="center">PixelReact UI</h1>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<strong>PixelReact UI</strong> is an open-source React component library, designed to offer a sleek, customizable, and easy-to-use collection of components for building modern user interfaces.
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Table of Contents
|
|
16
|
+
|
|
17
|
+
- [Installation](#installation)
|
|
18
|
+
- [Usage](#usage)
|
|
19
|
+
- [Documentation](#documentation)
|
|
20
|
+
- [Contributing](#contributing)
|
|
21
|
+
- [License](#license)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Installation
|
|
26
|
+
|
|
27
|
+
Install PixelReact UI in your project directory with:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm install pixel-react
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
or with Yarn:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
yarn add pixel-react
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
Once installed, you can start importing and using PixelReact components in your React application. Here's a quick example:
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
import { Button } from 'pixel-react';
|
|
45
|
+
|
|
46
|
+
function App() {
|
|
47
|
+
return (
|
|
48
|
+
<div>
|
|
49
|
+
<Button label="Button Label" variant="primary" />
|
|
50
|
+
</div>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default App;
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Documentation
|
|
58
|
+
|
|
59
|
+
For detailed documentation and live examples, [click here](https://main--65d5ca6d09c1eaf0731601fc.chromatic.com/).
|
|
60
|
+
|
|
61
|
+
## Example
|
|
62
|
+
|
|
63
|
+
```jsx
|
|
64
|
+
import { Button } from 'pixel-react';
|
|
65
|
+
|
|
66
|
+
function ExampleComponent() {
|
|
67
|
+
return <Button label="Click Me!" variant="primary" />;
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## License
|
|
72
|
+
|
|
73
|
+
PixelReact UI is licensed under the [MIT License](LICENSE). Feel free to use it in your projects, both personal and commercial.
|
|
74
|
+
|
|
75
|
+
---
|
|
@@ -118,20 +118,20 @@ const BarChart = ({ data, isYaxisSticky = false, barWidth, height, barGap = 20,
|
|
|
118
118
|
if (tooltip) {
|
|
119
119
|
tooltip.style.display = 'block';
|
|
120
120
|
if (customToolTip) {
|
|
121
|
-
tooltip.innerHTML = `<div>
|
|
122
|
-
<div><Typography fontWeight='semi-bold'>${label}</Typography></div>
|
|
123
|
-
<div><Typography>${id ? id : ''}</Typography></div>
|
|
124
|
-
<div><Typography>${totalLabel} : ${value} ${percent ? '(' + percent + '%)' : ''}</Typography></div>
|
|
121
|
+
tooltip.innerHTML = `<div>
|
|
122
|
+
<div><Typography fontWeight='semi-bold'>${label}</Typography></div>
|
|
123
|
+
<div><Typography>${id ? id : ''}</Typography></div>
|
|
124
|
+
<div><Typography>${totalLabel} : ${value} ${percent ? '(' + percent + '%)' : ''}</Typography></div>
|
|
125
125
|
</div>`;
|
|
126
126
|
}
|
|
127
127
|
else if (isDashboardVersions) {
|
|
128
128
|
const versionsList = versions ? versions.join(', ') : '';
|
|
129
|
-
tooltip.innerHTML = `
|
|
130
|
-
<div>
|
|
131
|
-
<div><Typography>${totalLabel} : ${value}</Typography></div>
|
|
129
|
+
tooltip.innerHTML = `
|
|
130
|
+
<div>
|
|
131
|
+
<div><Typography>${totalLabel} : ${value}</Typography></div>
|
|
132
132
|
${versionsList
|
|
133
133
|
? `<div><Typography>Versions : ${versionsList}</Typography></div>`
|
|
134
|
-
: ''}
|
|
134
|
+
: ''}
|
|
135
135
|
</div>`;
|
|
136
136
|
}
|
|
137
137
|
else {
|
|
@@ -47,12 +47,12 @@ const calculateDonutSegmentBorderPath = (innerR, outerR, startAngle, endAngle) =
|
|
|
47
47
|
const startInnerX = outerR * Math.cos(startAngle);
|
|
48
48
|
const startInnerY = outerR * Math.sin(startAngle);
|
|
49
49
|
const largeArcFlag = endAngle - startAngle > Math.PI ? 1 : 0;
|
|
50
|
-
return `
|
|
51
|
-
M ${startOuterX} ${startOuterY}
|
|
52
|
-
A ${innerR} ${innerR} 0 ${largeArcFlag} 1 ${endOuterX} ${endOuterY}
|
|
53
|
-
L ${endInnerX} ${endInnerY}
|
|
54
|
-
A ${outerR} ${outerR} 0 ${largeArcFlag} 0 ${startInnerX} ${startInnerY}
|
|
55
|
-
Z
|
|
50
|
+
return `
|
|
51
|
+
M ${startOuterX} ${startOuterY}
|
|
52
|
+
A ${innerR} ${innerR} 0 ${largeArcFlag} 1 ${endOuterX} ${endOuterY}
|
|
53
|
+
L ${endInnerX} ${endInnerY}
|
|
54
|
+
A ${outerR} ${outerR} 0 ${largeArcFlag} 0 ${startInnerX} ${startInnerY}
|
|
55
|
+
Z
|
|
56
56
|
`;
|
|
57
57
|
};
|
|
58
58
|
const colorMapping = [
|
|
@@ -12,10 +12,10 @@ const calculateArc = ({ x, y, radius, startAngle, endAngle, }) => {
|
|
|
12
12
|
const largeArcFlag = endAngle - startAngle > Math.PI ? 1 : 0;
|
|
13
13
|
if (endAngle - startAngle >= 2 * Math.PI) {
|
|
14
14
|
// Special case for a full circle
|
|
15
|
-
return `
|
|
16
|
-
M ${x + radius} ${y}
|
|
17
|
-
A ${radius} ${radius} 0 1 1 ${x - radius} ${y}
|
|
18
|
-
A ${radius} ${radius} 0 1 1 ${x + radius} ${y}
|
|
15
|
+
return `
|
|
16
|
+
M ${x + radius} ${y}
|
|
17
|
+
A ${radius} ${radius} 0 1 1 ${x - radius} ${y}
|
|
18
|
+
A ${radius} ${radius} 0 1 1 ${x + radius} ${y}
|
|
19
19
|
`;
|
|
20
20
|
}
|
|
21
21
|
return `M ${startX} ${startY} A ${radius} ${radius} 0 ${largeArcFlag} 1 ${endX} ${endY}`;
|
|
@@ -24,11 +24,11 @@ const calculateArcAngles = (value, total, currentAngle, radius) => {
|
|
|
24
24
|
const startAngle = currentAngle;
|
|
25
25
|
const endAngle = startAngle + angleIncrement;
|
|
26
26
|
if (percentage === 1) {
|
|
27
|
-
const path = `
|
|
28
|
-
M ${radius} 0
|
|
29
|
-
A ${radius} ${radius} 0 1 1 ${-radius} 0
|
|
30
|
-
A ${radius} ${radius} 0 1 1 ${radius} 0
|
|
31
|
-
Z
|
|
27
|
+
const path = `
|
|
28
|
+
M ${radius} 0
|
|
29
|
+
A ${radius} ${radius} 0 1 1 ${-radius} 0
|
|
30
|
+
A ${radius} ${radius} 0 1 1 ${radius} 0
|
|
31
|
+
Z
|
|
32
32
|
`;
|
|
33
33
|
return {
|
|
34
34
|
endAngle,
|
|
@@ -136,20 +136,20 @@ const Comments = ({ commentsData, handleAddComment, handleEditComment, handleDel
|
|
|
136
136
|
const getCaretCoordinates = (element, position) => {
|
|
137
137
|
const div = document.createElement('div');
|
|
138
138
|
const copyStyle = getComputedStyle(element);
|
|
139
|
-
div.style.cssText = `
|
|
140
|
-
position: absolute;
|
|
141
|
-
visibility: hidden;
|
|
142
|
-
white-space: pre-wrap;
|
|
143
|
-
word-wrap: break-word;
|
|
144
|
-
overflow: auto;
|
|
145
|
-
width: ${element.offsetWidth}px;
|
|
146
|
-
height: ${element.offsetHeight}px;
|
|
147
|
-
font-family: ${copyStyle.fontFamily};
|
|
148
|
-
font-size: ${copyStyle.fontSize};
|
|
149
|
-
padding: ${copyStyle.padding};
|
|
150
|
-
border: ${copyStyle.border};
|
|
151
|
-
box-sizing: ${copyStyle.boxSizing};
|
|
152
|
-
line-height: ${copyStyle.lineHeight};
|
|
139
|
+
div.style.cssText = `
|
|
140
|
+
position: absolute;
|
|
141
|
+
visibility: hidden;
|
|
142
|
+
white-space: pre-wrap;
|
|
143
|
+
word-wrap: break-word;
|
|
144
|
+
overflow: auto;
|
|
145
|
+
width: ${element.offsetWidth}px;
|
|
146
|
+
height: ${element.offsetHeight}px;
|
|
147
|
+
font-family: ${copyStyle.fontFamily};
|
|
148
|
+
font-size: ${copyStyle.fontSize};
|
|
149
|
+
padding: ${copyStyle.padding};
|
|
150
|
+
border: ${copyStyle.border};
|
|
151
|
+
box-sizing: ${copyStyle.boxSizing};
|
|
152
|
+
line-height: ${copyStyle.lineHeight};
|
|
153
153
|
`;
|
|
154
154
|
div.scrollTop = element.scrollTop;
|
|
155
155
|
div.scrollLeft = element.scrollLeft;
|
|
@@ -93,20 +93,20 @@ const ChildComment = ({ handleInsertNode, handleEditNode, handleDeleteNode, comm
|
|
|
93
93
|
const getCaretCoordinates = (element, position) => {
|
|
94
94
|
const div = document.createElement('div');
|
|
95
95
|
const copyStyle = getComputedStyle(element);
|
|
96
|
-
div.style.cssText = `
|
|
97
|
-
position: absolute;
|
|
98
|
-
visibility: hidden;
|
|
99
|
-
white-space: pre-wrap;
|
|
100
|
-
word-wrap: break-word;
|
|
101
|
-
overflow: auto;
|
|
102
|
-
width: ${element.offsetWidth}px;
|
|
103
|
-
height: ${element.offsetHeight}px;
|
|
104
|
-
font-family: ${copyStyle.fontFamily};
|
|
105
|
-
font-size: ${copyStyle.fontSize};
|
|
106
|
-
padding: ${copyStyle.padding};
|
|
107
|
-
border: ${copyStyle.border};
|
|
108
|
-
box-sizing: ${copyStyle.boxSizing};
|
|
109
|
-
line-height: ${copyStyle.lineHeight};
|
|
96
|
+
div.style.cssText = `
|
|
97
|
+
position: absolute;
|
|
98
|
+
visibility: hidden;
|
|
99
|
+
white-space: pre-wrap;
|
|
100
|
+
word-wrap: break-word;
|
|
101
|
+
overflow: auto;
|
|
102
|
+
width: ${element.offsetWidth}px;
|
|
103
|
+
height: ${element.offsetHeight}px;
|
|
104
|
+
font-family: ${copyStyle.fontFamily};
|
|
105
|
+
font-size: ${copyStyle.fontSize};
|
|
106
|
+
padding: ${copyStyle.padding};
|
|
107
|
+
border: ${copyStyle.border};
|
|
108
|
+
box-sizing: ${copyStyle.boxSizing};
|
|
109
|
+
line-height: ${copyStyle.lineHeight};
|
|
110
110
|
`;
|
|
111
111
|
div.scrollTop = element.scrollTop;
|
|
112
112
|
div.scrollLeft = element.scrollLeft;
|
|
@@ -77,8 +77,8 @@ isOpen = false, confirmAction, onClick, nameTooltipTitle, }) => {
|
|
|
77
77
|
{ key: 'Enter', action: () => handleKeyBoard('Enter') },
|
|
78
78
|
{ key: 'Escape', action: () => handleKeyBoard('Escape') },
|
|
79
79
|
], containerRef);
|
|
80
|
-
return (_jsxs("div", { className: "ff-label-edit-text-field", ref: containerRef, children: [isEditing ? (_jsxs("div", { className: "ff-label-text-field", children: [_jsx("div", { className: "ff-label-text-field-without-dropdown", children: _jsx(Input, { name: "input", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: "Enter your name", value: inputValue, onChange: handleTextFieldChange, className: `
|
|
81
|
-
|
|
80
|
+
return (_jsxs("div", { className: "ff-label-edit-text-field", ref: containerRef, children: [isEditing ? (_jsxs("div", { className: "ff-label-text-field", children: [_jsx("div", { className: "ff-label-text-field-without-dropdown", children: _jsx(Input, { name: "input", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: "Enter your name", value: inputValue, onChange: handleTextFieldChange, className: `
|
|
81
|
+
|
|
82
82
|
${isTextFieldModified ? 'modified' : ''}`, type: "text" }) }), _jsxs("div", { className: "ff-icon-container", children: [confirmIcon && (_jsx(Tooltip, { title: "confirm", placement: 'bottom', children: _jsx(Icon, { color: confirmIcon?.color ?? 'var(--default-confirm-icon-color)', height: confirmIcon?.height ?? 20, disabled: disabled, width: confirmIcon?.width ?? 20, name: confirmIcon?.name ?? 'default-confirm-icon', className: `${confirmIcon?.className ?? 'default-confirm-class'} ${disabled ? 'disabled-confirm-icon' : 'confirm-icon'}`, onClick: handleConfirm }) })), cancelIcon && (_jsx(Tooltip, { title: "cancel", placement: 'bottom', children: _jsx(Icon, { color: cancelIcon?.color ?? 'var(--label-edit-cancel-icon)', height: cancelIcon?.height ?? 12, width: cancelIcon?.width ?? 20, name: cancelIcon?.name ?? 'default-cancel-icon', className: cancelIcon?.className ?? 'cancel-icon', onClick: handleCancel, ref: cancelRef }) }))] })] })) : (_jsxs("div", { className: "display-text-container", children: [nameTooltipTitle ? (_jsx(Tooltip, { title: nameTooltipTitle, children: _jsx("span", { className: "display-text", onClick: onClick, children: _jsx(HighlightText, { text: inputValue, highlight: highlightText }) }) })) : (_jsx("span", { className: "display-text", onClick: onClick, children: _jsx(HighlightText, { text: inputValue, highlight: highlightText }) })), _jsx(Tooltip, { title: capitalize(editIcon?.name ?? 'Edit'), children: _jsx(Icon, { color: editIcon?.color ?? 'var(--label-edit-cancel-icon)', height: editIcon?.height ?? 20, width: editIcon?.width ?? 20, name: editIcon?.name ?? 'edit', className: editIcon?.className ?? 'edit-icon', onClick: handleEditButtonClick }) })] })), showError && isEditing && (_jsx(Typography, { as: "p", fontSize: 8, className: "error-text", children: showError }))] }));
|
|
83
83
|
};
|
|
84
84
|
export default EditTextField;
|
|
@@ -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":";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,QAAQ,CAAC,aAAa,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;YAClE,iEAAiE;YACjE,oDAAoD;YACpD,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,GAAG,YAAY,IAAI;gBACrB,CAAC,CAAC,YAAY,CAAC;YAEjB,IAAI,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC/C,OAAO,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAwB;QACxC,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,aAAa;QACzB,UAAU,EAAE,UAAU;QACtB,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,MAAM;QACjB,aAAa,EAAE,QAAQ;QACvB,UAAU,EAAE,OAAO;QACnB,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,UAAU;QACpB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAEzC,mEAAmE;YACnE,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,CAAC;YAED,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC/D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3B,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAChD,CAAC,CAAC,eAAe,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,CAAuC,EAAE,EAAE;QAC9D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,KAAK,EAAE,KAAK,YACf,cACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,iBAAiB,SAAS,EAAE,EACvC,eAAe,QACf,8BAA8B,QAC9B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAC,KAAK,EACjB,cAAc,EAAC,KAAK,EACpB,KAAK,EAAE,YAAY,GACnB,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -158,10 +158,10 @@ className, height, isOpen = false, confirmAction, onClick, tooltip, onDoubleClic
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
useKeyboardActions([{ key: 'Enter', action: () => handleKeyBoard('Enter') }], containerRef);
|
|
161
|
-
return (_jsxs("div", { className: "ff-label-edit-text-field", ref: containerRef, children: [isEditing ? (_jsxs("div", { className: "ff-label-text-field", children: [variant === 'textFieldWithDropdown' ? (_jsxs("div", { className: `ff-label-text-field-with-dropdown ${isEditing ? 'open' : ''}`, style: { height }, children: [_jsx(Input, { name: "input", type: "text", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: placeholder ? placeholder : '', value: inputValue, onChange: handleTextFieldChange, className: `${className}
|
|
162
|
-
|
|
163
|
-
${isTextFieldModified ? 'modified' : ''}` }), _jsx(Select, { label: '', optionsList: dropdownData, selectedOption: { value: dropdownValue, label: dropdownValue }, onChange: (option) => setDropdownValue(option.value) })] })) : (_jsx("div", { className: "ff-label-text-field-without-dropdown", children: _jsx(Input, { name: "input", type: "text", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: placeholder ? placeholder : '', value: inputValue, onChange: handleTextFieldChange, className: `${className}
|
|
164
|
-
|
|
161
|
+
return (_jsxs("div", { className: "ff-label-edit-text-field", ref: containerRef, children: [isEditing ? (_jsxs("div", { className: "ff-label-text-field", children: [variant === 'textFieldWithDropdown' ? (_jsxs("div", { className: `ff-label-text-field-with-dropdown ${isEditing ? 'open' : ''}`, style: { height }, children: [_jsx(Input, { name: "input", type: "text", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: placeholder ? placeholder : '', value: inputValue, onChange: handleTextFieldChange, className: `${className}
|
|
162
|
+
|
|
163
|
+
${isTextFieldModified ? 'modified' : ''}` }), _jsx(Select, { label: '', optionsList: dropdownData, selectedOption: { value: dropdownValue, label: dropdownValue }, onChange: (option) => setDropdownValue(option.value) })] })) : (_jsx("div", { className: "ff-label-text-field-without-dropdown", children: _jsx(Input, { name: "input", type: "text", label: label ? label : '', disabled: false, error: isThrowingError, placeholder: placeholder ? placeholder : '', value: inputValue, onChange: handleTextFieldChange, className: `${className}
|
|
164
|
+
|
|
165
165
|
${isTextFieldModified ? 'modified' : ''}` }) })), _jsxs("div", { className: "ff-icon-container", children: [confirmIcon && (_jsx(Tooltip, { title: "Confirm", placement: 'bottom', children: _jsx(Icon, { color: "var(--label-edit-confirm-icon)", height: 20, width: 20, name: confirmIcon.name, disabled: disabled, className: `${disabled ? 'disabled-confirm-icon' : 'confirm-icon'}`, onClick: handleConfirm }) })), cancelIcon && (_jsx(Tooltip, { title: "Cancel", placement: 'bottom', children: _jsx(Icon, { color: "var(--label-edit-cancel-icon)", height: 12, width: 20, name: cancelIcon.name, className: "cancel-icon", onClick: handleCancel, ref: cancelRef }) }))] })] })) : (_jsx(Tooltip, { title: tooltip?.tooltipTitle ? tooltip?.tooltipTitle : '', placement: 'bottom', children: showText && (_jsx("span", { className: "display-text", onDoubleClick: handleDoubleClick, role: "button", onClick: handleClick, children: _jsx(HighlightText, { text: inputValue, highlight: highlightText }) })) })), showError && isEditing && (_jsx(Typography, { as: "p", fontSize: 8, className: "error-text", children: showError }))] }));
|
|
166
166
|
};
|
|
167
167
|
export default LabelEditTextField;
|
|
@@ -11,15 +11,15 @@ const StatusIndicator = forwardRef(({ label = 'Status', iconName = 'update_icon'
|
|
|
11
11
|
danger: 'var(--ff-delete-button-attachment)',
|
|
12
12
|
};
|
|
13
13
|
const iconColor = variantColorMap[variant] || variantColorMap.default;
|
|
14
|
-
return (_jsx("button", { disabled: isDisable, onClick: onClick, className: `
|
|
15
|
-
ff-status-indicator
|
|
16
|
-
ff-status-indicator--${variant}
|
|
14
|
+
return (_jsx("button", { disabled: isDisable, onClick: onClick, className: `
|
|
15
|
+
ff-status-indicator
|
|
16
|
+
ff-status-indicator--${variant}
|
|
17
17
|
${backgroundColor
|
|
18
18
|
? `ff-status-indicator--with-bg ff-status-indicator--${variant}-bg`
|
|
19
|
-
: ''}
|
|
19
|
+
: ''}
|
|
20
20
|
${border
|
|
21
21
|
? `ff-status-indicator--with-border ff-status-indicator--${variant}-border`
|
|
22
|
-
: ''}
|
|
22
|
+
: ''}
|
|
23
23
|
`, ref: ref, children: _jsxs("div", { className: "ff-status-indicator__content", children: [_jsx(Icon, { name: resolvedIconName, color: iconColor, className: `ff-status-indicator__icon ff-status-indicator__icon--${variant}` }), _jsx(Typography, { as: "div", fontSize: 12, className: `ff-status-indicator__label ff-status-indicator__label--${variant}`, fontWeight: "medium", lineHeight: "20px", children: label })] }) }));
|
|
24
24
|
});
|
|
25
25
|
export default StatusIndicator;
|
package/lib/index.d.ts
CHANGED
|
@@ -5099,7 +5099,7 @@ interface TreeDetailsResult {
|
|
|
5099
5099
|
endId: string;
|
|
5100
5100
|
root?: TreeNodeProps;
|
|
5101
5101
|
}
|
|
5102
|
-
declare const getTreeDetails: (action: "above" | "below" | "expand" | "collapse" | "start" | "addAbove" | "addBelow" | "expandAll" | "collapseAll" | "show" | "hide" | "clone" | "delete" | "create" | "refresh", oldData: TreeNodeProps[], newData: TreeNodeProps[], sourceId?: string) => TreeDetailsResult;
|
|
5102
|
+
declare const getTreeDetails: (action: "above" | "below" | "expand" | "collapse" | "start" | "addAbove" | "addBelow" | "expandAll" | "collapseAll" | "show" | "hide" | "clone" | "delete" | "create" | "refresh", oldData: TreeNodeProps[], newData: TreeNodeProps[], sourceId?: string, deletedIds?: string[]) => TreeDetailsResult;
|
|
5103
5103
|
declare const updateTreeState: (treeDataList: TreeNodeProps[], currentNode: TreeNodeProps) => TreeNodeProps[];
|
|
5104
5104
|
|
|
5105
5105
|
declare const useBeforeUnload: (beforeunload: boolean) => void;
|