pixel-react 1.20.75 → 1.21.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/lib/components/Table/EditComponent.js +6 -6
- package/lib/components/Table/EditComponent.js.map +1 -1
- package/lib/components/Table/NoDataContent.js +1 -1
- package/lib/components/Table/NoDataContent.js.map +1 -1
- package/lib/components/Table/Table.js +78 -155
- package/lib/components/Table/Table.js.map +1 -1
- package/lib/components/Table/Types.d.ts +6 -11
- package/lib/components/Table/components/SortableRow.d.ts +1 -1
- package/lib/components/Table/components/SortableRow.js +69 -60
- package/lib/components/Table/components/SortableRow.js.map +1 -1
- package/lib/components/Table/components/TableHeader.js +15 -20
- package/lib/components/Table/components/TableHeader.js.map +1 -1
- package/lib/components/Table/components/VirtualizedRows.d.ts +1 -1
- package/lib/components/Table/components/VirtualizedRows.js +17 -32
- package/lib/components/Table/components/VirtualizedRows.js.map +1 -1
- package/lib/components/Table/utils/virtualization.d.ts +3 -10
- package/lib/components/Table/utils/virtualization.js +13 -40
- package/lib/components/Table/utils/virtualization.js.map +1 -1
- package/lib/index.d.ts +3 -5
- package/lib/index.js +8 -8
- package/lib/styles.css +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/utils/TreeNavigateUtils/getNavigateToKey.d.ts +1 -1
- package/lib/utils/getTopVisibleNodeKey/getTopVisibleNodeKey.d.ts +1 -1
- package/lib/utils/getTreeDetails/getTreeDetails.d.ts +1 -1
- package/lib/utils/handleTreeExpandAllCollapseAll/handleTreeExpandAllCollapseAll.d.ts +1 -1
- package/lib/utils/handleTreeNodeExpandCollapse/handleTreeNodeExpandCollapse.d.ts +1 -1
- package/lib/utils/handleTreeNodeSelect/handleTreeNodeSelect.d.ts +1 -1
- package/lib/utils/toggleShowHideEntity/toggleShowHideEntity.d.ts +1 -1
- package/package.json +2 -2
- package/lib/components/Table/utils/TableCell.d.ts +0 -2
- package/lib/components/Table/utils/TableCell.js +0 -27
- package/lib/components/Table/utils/TableCell.js.map +0 -1
|
@@ -1,87 +1,96 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useRef, memo, useCallback
|
|
3
|
-
import { useSortable } from '@dnd-kit/sortable';
|
|
4
|
-
import { CSS } from '@dnd-kit/utilities';
|
|
2
|
+
import { useEffect, useRef, memo, useCallback } from 'react';
|
|
5
3
|
import classNames from 'classnames';
|
|
6
|
-
import { prepareData } from '../utils/TableCell';
|
|
7
|
-
import { getColumnLeftPosition } from '../utils/virtualization';
|
|
8
|
-
import Checkbox from '../../Checkbox';
|
|
9
4
|
import Typography from '../../Typography';
|
|
10
5
|
import Icon from '../../Icon';
|
|
11
|
-
|
|
6
|
+
import Checkbox from '../../Checkbox';
|
|
7
|
+
import { prepareData } from '../../../utils/TableCell/TableCell';
|
|
8
|
+
import { getColumnLeftPosition } from '../utils/virtualization';
|
|
9
|
+
import { useSortable } from '@dnd-kit/sortable';
|
|
10
|
+
import { CSS } from '@dnd-kit/utilities';
|
|
11
|
+
// OPTIMIZATION: Memoize to prevent re-rendering when parent Table updates
|
|
12
|
+
const SortableRow = memo(({ row, index, serialNumber, columns, tableBodyRowClass, handleOnclick, tableDataTextColor, withCheckbox, onSelectClick, draggable, isRowCheckBoxDisable, isRowDisabled, freezeColumns, updateRowHeight, editMode, isAccordionOpen, accordionContent, selectedNode, }) => {
|
|
12
13
|
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
|
|
13
|
-
id:
|
|
14
|
-
disabled:
|
|
14
|
+
id: row?._id || row?.id,
|
|
15
|
+
disabled: row.disabled || !!editMode,
|
|
15
16
|
});
|
|
16
|
-
// Only measure the row itself
|
|
17
17
|
const rowRef = useRef(null);
|
|
18
|
+
const accordionRef = useRef(null);
|
|
18
19
|
const updateHeight = useCallback(() => {
|
|
19
20
|
if (!updateRowHeight)
|
|
20
21
|
return;
|
|
21
22
|
const mainRowHeight = rowRef.current?.getBoundingClientRect().height || 0;
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
const accordionHeight = accordionRef.current?.getBoundingClientRect().height || 0;
|
|
24
|
+
const totalHeight = mainRowHeight + accordionHeight;
|
|
25
|
+
if (totalHeight > 0) {
|
|
26
|
+
updateRowHeight(index, totalHeight);
|
|
24
27
|
}
|
|
25
28
|
}, [index, updateRowHeight]);
|
|
26
29
|
useEffect(() => {
|
|
27
30
|
const mainElement = rowRef.current;
|
|
28
|
-
|
|
31
|
+
const accordionElement = accordionRef.current;
|
|
32
|
+
if (!updateRowHeight)
|
|
29
33
|
return;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
// OPTIMIZATION: ResizeObserver
|
|
35
|
+
// We do NOT call getBoundingClientRect() here anymore.
|
|
36
|
+
// Calling it manually forces the browser to calculate layout immediately (Reflow).
|
|
37
|
+
// The observer will deliver the height asynchronously without freezing the thread.
|
|
38
|
+
const observer = new ResizeObserver(() => {
|
|
39
|
+
updateHeight();
|
|
40
|
+
});
|
|
41
|
+
if (mainElement)
|
|
42
|
+
observer.observe(mainElement);
|
|
43
|
+
if (accordionElement)
|
|
44
|
+
observer.observe(accordionElement);
|
|
45
|
+
return () => {
|
|
46
|
+
observer.disconnect();
|
|
47
|
+
};
|
|
48
|
+
}, [updateHeight, isAccordionOpen]);
|
|
49
|
+
const key = row?.[selectedNode?.key] || row._id || row.id;
|
|
50
|
+
const selectedRow = key === selectedNode.selected;
|
|
36
51
|
const style = {
|
|
37
52
|
transform: CSS.Transform.toString(transform),
|
|
38
53
|
transition,
|
|
39
54
|
};
|
|
40
|
-
return (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
'ff-table-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
55
|
+
return (_jsxs(_Fragment, { children: [_jsx("tr", { ref: (node) => {
|
|
56
|
+
if (rowRef.current !== node) {
|
|
57
|
+
rowRef.current = node;
|
|
58
|
+
}
|
|
59
|
+
setNodeRef(node);
|
|
60
|
+
}, className: classNames('ff-table-data-row ', tableBodyRowClass, {
|
|
61
|
+
'ff-table-disabled': row.disabled && isRowDisabled,
|
|
62
|
+
'ff-table-selected-node': selectedRow,
|
|
63
|
+
}), id: key, style: style, children: columns.map((column, columnIndex) => {
|
|
64
|
+
const isFrozen = freezeColumns && columnIndex < freezeColumns;
|
|
65
|
+
return (_jsx("td", { onClick: () => handleOnclick(column, row), style: {
|
|
66
|
+
position: isFrozen ? 'sticky' : 'static',
|
|
67
|
+
left: isFrozen
|
|
68
|
+
? getColumnLeftPosition(columnIndex, columns, freezeColumns)
|
|
69
|
+
: 'auto',
|
|
70
|
+
zIndex: isFrozen ? 100 : 'auto',
|
|
71
|
+
backgroundColor: isFrozen
|
|
72
|
+
? 'var(--input-label-bg-color)'
|
|
73
|
+
: 'transparent',
|
|
74
|
+
width: column.width ? `${column.width}px` : 'auto',
|
|
75
|
+
padding: '7px 8px',
|
|
76
|
+
boxSizing: 'border-box',
|
|
77
|
+
paddingRight: isFrozen ? 0 : '8px',
|
|
78
|
+
}, className: classNames('ff-table-data-cell ff-table-icon-container', column.className, {
|
|
79
|
+
'ff-table-clickable-cell': column.onClick,
|
|
80
|
+
'ff-table-sticky-column': isFrozen,
|
|
81
|
+
}), children: _jsxs(Typography, { as: "div", color: tableDataTextColor, className: "ff-table-data-container", children: [columnIndex === 0 && withCheckbox && (_jsx("span", { className: "ff-table-checkbox-table", children: _jsx(Checkbox, { onChange: (e) => onSelectClick(e, row), checked: row.checked, disabled: isRowCheckBoxDisable === undefined
|
|
82
|
+
? !!row.disabled
|
|
83
|
+
: isRowCheckBoxDisable }) })), columnIndex === 0 && draggable && (_jsxs(_Fragment, { children: [_jsx("span", { className: row.disabled ? 'ff-table-drag' : 'ff-table-drag-icon', ...listeners, ...attributes, children: _jsx(Icon, { name: "drag", className: "ff-table-drag-active" }) }), _jsx(Typography, { color: "var(--brand-color)", children: serialNumber && `${serialNumber}.` })] })), prepareData(row, column)] }) }, column.accessor + columnIndex));
|
|
84
|
+
}) }, key), isAccordionOpen && (_jsx("tr", { ref: accordionRef, children: _jsx("td", { className: "ff-table-data-cell", colSpan: columns.length, children: _jsx("div", { style: { maxHeight: 'none', overflow: 'visible' }, children: accordionContent }) }) }))] }));
|
|
85
|
+
},
|
|
86
|
+
// OPTIMIZATION: Custom Memo Comparison
|
|
87
|
+
// Returns true if props are equal (prevents re-render)
|
|
88
|
+
(prev, next) => {
|
|
72
89
|
return (prev.row === next.row &&
|
|
73
90
|
prev.index === next.index &&
|
|
74
91
|
prev.serialNumber === next.serialNumber &&
|
|
75
|
-
prev.sortableId === next.sortableId &&
|
|
76
92
|
prev.updateRowHeight === next.updateRowHeight &&
|
|
77
|
-
prev.columns === next.columns
|
|
78
|
-
prev.draggable === next.draggable &&
|
|
79
|
-
prev.withCheckbox === next.withCheckbox &&
|
|
80
|
-
prev.tableDataTextColor === next.tableDataTextColor &&
|
|
81
|
-
prev.tableBodyRowClass === next.tableBodyRowClass &&
|
|
82
|
-
prev.selectedNode?.key === next.selectedNode?.key &&
|
|
83
|
-
prev.selectedNode?.selected === next.selectedNode?.selected);
|
|
93
|
+
prev.columns === next.columns);
|
|
84
94
|
});
|
|
85
|
-
SortableRow.displayName = 'SortableRow';
|
|
86
95
|
export default SortableRow;
|
|
87
96
|
//# sourceMappingURL=SortableRow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableRow.js","sourceRoot":"","sources":["../../../../src/components/Table/components/SortableRow.tsx"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SortableRow.js","sourceRoot":"","sources":["../../../../src/components/Table/components/SortableRow.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,28 +7,23 @@ import Icon from '../../Icon';
|
|
|
7
7
|
import Typography from '../../Typography';
|
|
8
8
|
import Checkbox from '../../Checkbox';
|
|
9
9
|
const TableHeader = memo((props) => {
|
|
10
|
-
const { columns, freezeColumns, headerType, tableHeadClass, headerTextColor, headerCheckboxDisabled, withCheckbox, allSelected, partialSelected, headerIconName = '', headerIconOnClick, headerIconTooltipTitle, tableHeaderZindex, onSelectClick, } = props;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
:
|
|
23
|
-
|
|
24
|
-
'ff-table-header-cell-relative': !isFrozen,
|
|
25
|
-
}), style: {
|
|
26
|
-
'--frozen-column-left': frozenColumnLeft,
|
|
27
|
-
}, "data-frozen": isFrozen ? 'true' : undefined, children: [showHeaderIcon && (_jsx("div", { className: "ff-table-icon", children: _jsx(Tooltip, { title: headerIconTooltipTitle || '', placement: "bottom", children: _jsx(Icon, { height: 14, width: 14, name: headerIconName, onClick: headerIconOnClick, cursorType: "pointer" }) }) })), _jsxs(Typography, { as: "div", fontWeight: "semi-bold", className: "ff-table-label-checkbox-container", children: [index === 0 && withCheckbox && (_jsx("span", { className: "ff-table-checkbox-table", children: _jsx(Checkbox, { onChange: (e) => onSelectClick(e, {
|
|
10
|
+
const { columns, freezeColumns, headerType, tableHeadClass, headerTextColor, headerCheckboxDisabled, withCheckbox, allSelected, partialSelected, headerIconName = '', headerIconOnClick, headerIconTooltipTitle, tableHeaderZindex, onSelectClick, withFixedHeader, } = props;
|
|
11
|
+
return (_jsx("thead", { className: classNames('ff-table-header', { 'ff-table-fixed-header': withFixedHeader }, tableHeadClass), style: { zIndex: tableHeaderZindex }, children: _jsx("tr", { children: columns.map((column, index) => {
|
|
12
|
+
const isFrozen = freezeColumns && index < freezeColumns;
|
|
13
|
+
return (_jsxs("th", { className: classNames('ff-table-header-cell', headerType !== 'default' ? `ff-table-${headerType}-bg` : '', headerTextColor && `ff-table-${headerTextColor}-color`), style: {
|
|
14
|
+
position: isFrozen ? 'sticky' : 'static',
|
|
15
|
+
left: isFrozen
|
|
16
|
+
? getColumnLeftPosition(index, columns, freezeColumns)
|
|
17
|
+
: 'auto',
|
|
18
|
+
zIndex: isFrozen ? 999 : 'auto',
|
|
19
|
+
width: column.width ? `${column.width}px` : 'auto',
|
|
20
|
+
padding: '8px 8px',
|
|
21
|
+
boxSizing: 'border-box',
|
|
22
|
+
paddingRight: isFrozen ? 0 : '8px',
|
|
23
|
+
}, children: [_jsx("div", { className: "ff-table-icon", children: _jsx(Tooltip, { title: headerIconTooltipTitle || '', placement: "bottom", children: _jsx(Icon, { height: 14, width: 14, name: headerIconName, onClick: headerIconOnClick, cursorType: "pointer" }) }) }), _jsxs(Typography, { style: column.width ? { width: column.width } : undefined, as: "div", fontWeight: "semi-bold", className: "ff-table-label-checkbox-container", children: [index === 0 && withCheckbox && (_jsx("span", { className: "ff-table-checkbox-table", children: _jsx(Checkbox, { onChange: (e) => onSelectClick(e, {
|
|
28
24
|
allSelected: e.target.checked,
|
|
29
|
-
}), checked: allSelected || false, partial: !!partialSelected, disabled: headerCheckboxDisabled }) })), column.header] })] },
|
|
25
|
+
}), checked: allSelected || false, partial: !!partialSelected, disabled: headerCheckboxDisabled }) })), column.header] })] }, column.header));
|
|
30
26
|
}) }) }));
|
|
31
27
|
});
|
|
32
|
-
TableHeader.displayName = 'TableHeader';
|
|
33
28
|
export default TableHeader;
|
|
34
29
|
//# sourceMappingURL=TableHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../../src/components/Table/components/TableHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAE7B,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../../../../src/components/Table/components/TableHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { VirtualizedRowsProps } from '../Types';
|
|
2
|
-
declare const VirtualizedRows: import("react").MemoExoticComponent<({ paddingTop, paddingBottom, visibleRows, startIndex, columns, freezeColumns, frozenWidth, handleOnclick, isRowCheckBoxDisable, isRowDisabled, onSelectClick, tableBodyRowClass, tableDataTextColor, updateRowHeight, withCheckbox, draggable, editMode, editComponent,
|
|
2
|
+
declare const VirtualizedRows: import("react").MemoExoticComponent<({ paddingTop, paddingBottom, columnsLength, visibleRows, startIndex, columns, freezeColumns, frozenWidth, handleOnclick, isRowCheckBoxDisable, isRowDisabled, onSelectClick, tableBodyRowClass, tableDataTextColor, updateRowHeight, withCheckbox, draggable, editMode, editComponent, accordionContent, getAccordionStatus, selectedNode, uniqueRowIdForAccordion, }: VirtualizedRowsProps) => import("react/jsx-runtime").JSX.Element>;
|
|
3
3
|
export default VirtualizedRows;
|
|
@@ -1,39 +1,24 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
2
|
-
import { cloneElement, Fragment, isValidElement, memo,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cloneElement, Fragment, isValidElement, memo, } from 'react';
|
|
3
3
|
import SortableRow from './SortableRow';
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const updateHeight = useCallback(() => {
|
|
7
|
-
const height = editRowRef.current?.getBoundingClientRect().height || 0;
|
|
8
|
-
if (height > 0)
|
|
9
|
-
updateRowHeight?.(rowIndex, height);
|
|
10
|
-
}, [rowIndex, updateRowHeight]);
|
|
11
|
-
useEffect(() => {
|
|
12
|
-
const element = editRowRef.current;
|
|
13
|
-
if (!element)
|
|
14
|
-
return;
|
|
15
|
-
updateHeight();
|
|
16
|
-
const observer = new ResizeObserver(() => updateHeight());
|
|
17
|
-
observer.observe(element);
|
|
18
|
-
return () => observer.disconnect();
|
|
19
|
-
}, [updateHeight]);
|
|
20
|
-
return (_jsx("div", { ref: editRowRef, className: "ff-table-data-row ff-table-edit-row ff-table-edit-row-grid", children: _jsx("div", { className: "ff-table-edit-cell", children: isValidElement(editComponent) &&
|
|
21
|
-
cloneElement(editComponent, {
|
|
22
|
-
rowData: row,
|
|
23
|
-
rowIndex: rowIndex + 1,
|
|
24
|
-
}) }) }));
|
|
25
|
-
});
|
|
26
|
-
MeasuredEditRow.displayName = 'MeasuredEditRow';
|
|
27
|
-
const VirtualizedRows = memo(({ paddingTop, paddingBottom, visibleRows, startIndex, columns, freezeColumns, frozenWidth, handleOnclick, isRowCheckBoxDisable, isRowDisabled, onSelectClick, tableBodyRowClass, tableDataTextColor, updateRowHeight, withCheckbox, draggable, editMode, editComponent, selectedNode, openAccordionIndex, accordionHeight, }) => {
|
|
28
|
-
return (_jsxs(_Fragment, { children: [paddingTop > 0 && (_jsx("div", { className: "ff-table-padding-div", style: { height: paddingTop } })), visibleRows.map((row, i) => {
|
|
4
|
+
const VirtualizedRows = memo(({ paddingTop, paddingBottom, columnsLength, visibleRows, startIndex, columns, freezeColumns, frozenWidth, handleOnclick, isRowCheckBoxDisable, isRowDisabled, onSelectClick, tableBodyRowClass, tableDataTextColor, updateRowHeight, withCheckbox, draggable, editMode, editComponent, accordionContent, getAccordionStatus = () => { }, selectedNode, uniqueRowIdForAccordion, }) => {
|
|
5
|
+
return (_jsxs(_Fragment, { children: [paddingTop > 0 && (_jsx("tr", { children: _jsx("td", { style: { height: paddingTop, padding: 0 }, colSpan: columnsLength }) })), visibleRows.map((row, i) => {
|
|
29
6
|
const absoluteIndex = startIndex + i;
|
|
30
|
-
const rowId = row._id ?? row.id
|
|
7
|
+
const rowId = row._id ?? row.id;
|
|
31
8
|
if (editMode === rowId) {
|
|
32
|
-
return (_jsx(
|
|
9
|
+
return (_jsx("tr", { className: "edit-row", children: _jsx("td", { colSpan: columns.length, style: { padding: '0px' }, children: isValidElement(editComponent) &&
|
|
10
|
+
cloneElement(editComponent, {
|
|
11
|
+
rowData: row,
|
|
12
|
+
rowIndex: absoluteIndex + 1,
|
|
13
|
+
}) }) }, `edit-${rowId}`));
|
|
33
14
|
}
|
|
34
|
-
|
|
35
|
-
|
|
15
|
+
const isOpen = getAccordionStatus(row?.id ||
|
|
16
|
+
row?._id ||
|
|
17
|
+
(uniqueRowIdForAccordion
|
|
18
|
+
? row?.[uniqueRowIdForAccordion]
|
|
19
|
+
: undefined));
|
|
20
|
+
return (_jsx(Fragment, { children: _jsx(SortableRow, { row: row, index: absoluteIndex, serialNumber: absoluteIndex + 1, columns: columns, tableBodyRowClass: tableBodyRowClass, handleOnclick: handleOnclick, tableDataTextColor: tableDataTextColor, withCheckbox: withCheckbox, onSelectClick: onSelectClick, isRowCheckBoxDisable: isRowCheckBoxDisable, isRowDisabled: isRowDisabled, freezeColumns: freezeColumns, frozenWidth: frozenWidth, updateRowHeight: updateRowHeight, draggable: draggable, editMode: editMode, isAccordionOpen: isOpen, accordionContent: accordionContent, selectedNode: selectedNode }, rowId) }, row._id || absoluteIndex));
|
|
21
|
+
}), paddingBottom > 0 && (_jsx("tr", { children: _jsx("td", { style: { height: paddingBottom, padding: 0 }, colSpan: columnsLength }) }))] }));
|
|
36
22
|
});
|
|
37
|
-
VirtualizedRows.displayName = 'VirtualizedRows';
|
|
38
23
|
export default VirtualizedRows;
|
|
39
24
|
//# sourceMappingURL=VirtualizedRows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualizedRows.js","sourceRoot":"","sources":["../../../../src/components/Table/components/VirtualizedRows.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,IAAI,
|
|
1
|
+
{"version":3,"file":"VirtualizedRows.js","sourceRoot":"","sources":["../../../../src/components/Table/components/VirtualizedRows.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,IAAI,GAEL,MAAM,OAAO,CAAC;AAEf,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,eAAe,GAAG,IAAI,CAC1B,CAAC,EACC,UAAU,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,OAAO,EACP,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GAAG,GAAG,EAAE,GAAE,CAAC,EAC7B,YAAY,EACZ,uBAAuB,GACF,EAAE,EAAE;IACzB,OAAO,CACL,8BAEG,UAAU,GAAG,CAAC,IAAI,CACjB,uBACE,aACE,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,EACzC,OAAO,EAAE,aAAa,GACtB,GACC,CACN,EAGA,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;gBAEhC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACvB,OAAO,CACL,aAA0B,SAAS,EAAC,UAAU,YAC5C,aAAI,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YACnD,cAAc,CAAC,aAAa,CAAC;gCAC5B,YAAY,CACV,aAGE,EACF;oCACE,OAAO,EAAE,GAAG;oCACZ,QAAQ,EAAE,aAAa,GAAG,CAAC;iCAC5B,CACF,GACA,IAbE,QAAQ,KAAK,EAAE,CAcnB,CACN,CAAC;gBACJ,CAAC;gBACD,MAAM,MAAM,GAAG,kBAAkB,CAC/B,GAAG,EAAE,EAAE;oBACL,GAAG,EAAE,GAAG;oBACR,CAAC,uBAAuB;wBACtB,CAAC,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC;wBAChC,CAAC,CAAC,SAAS,CAAC,CACjB,CAAC;gBACF,OAAO,CACL,KAAC,QAAQ,cACP,KAAC,WAAW,IAEV,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,aAAa,GAAG,CAAC,EAC/B,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,YAAY,IAnBrB,KAAK,CAoBV,IAtBW,GAAG,CAAC,GAAG,IAAI,aAAa,CAuB5B,CACZ,CAAC;YACJ,CAAC,CAAC,EAGD,aAAa,GAAG,CAAC,IAAI,CACpB,uBACE,aACE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,EAC5C,OAAO,EAAE,aAAa,GACtB,GACC,CACN,IACA,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
type ColumnWidth = number | string;
|
|
2
|
-
export declare const getCssSize: (width?: ColumnWidth) => string | undefined;
|
|
3
|
-
export declare const getColumnPixelWidth: (width?: ColumnWidth) => number;
|
|
4
|
-
export declare const getTableGridTemplate: (columns?: {
|
|
5
|
-
width?: ColumnWidth;
|
|
6
|
-
}[], freezeColumns?: number) => string;
|
|
7
1
|
export declare const getColumnLeftPosition: (index: number, columns: {
|
|
8
|
-
width?:
|
|
9
|
-
}[],
|
|
2
|
+
width?: number;
|
|
3
|
+
}[], freezeColumns?: number) => string;
|
|
10
4
|
export declare const calculateFrozenWidth: (columnData: {
|
|
11
|
-
width?:
|
|
5
|
+
width?: number;
|
|
12
6
|
}[], freezeColumns: number) => number;
|
|
13
7
|
export declare const binarySearch: (arr: number[], target: number) => number;
|
|
14
|
-
export {};
|
|
@@ -1,52 +1,25 @@
|
|
|
1
|
-
import { DEFAULT_COLUMN_WIDTH } from
|
|
2
|
-
export const
|
|
3
|
-
if (width === undefined || width === null || width === '')
|
|
4
|
-
return undefined;
|
|
5
|
-
return typeof width === 'number' ? `${width}px` : width;
|
|
6
|
-
};
|
|
7
|
-
export const getColumnPixelWidth = (width) => {
|
|
8
|
-
if (typeof width === 'number')
|
|
9
|
-
return width;
|
|
10
|
-
if (typeof width === 'string') {
|
|
11
|
-
const trimmedWidth = width.trim();
|
|
12
|
-
const numericValue = parseFloat(trimmedWidth);
|
|
13
|
-
if (!Number.isNaN(numericValue)) {
|
|
14
|
-
if (trimmedWidth.endsWith('px') || /^\d+(\.\d+)?$/.test(trimmedWidth)) {
|
|
15
|
-
return numericValue;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return DEFAULT_COLUMN_WIDTH;
|
|
20
|
-
};
|
|
21
|
-
export const getTableGridTemplate = (columns = [], freezeColumns) => {
|
|
22
|
-
if (!columns.length)
|
|
23
|
-
return '1fr';
|
|
24
|
-
return columns
|
|
25
|
-
.map((column, index) => {
|
|
26
|
-
const columnWidth = getCssSize(column.width);
|
|
27
|
-
if (columnWidth)
|
|
28
|
-
return columnWidth;
|
|
29
|
-
return freezeColumns && index < freezeColumns
|
|
30
|
-
? `${DEFAULT_COLUMN_WIDTH}px`
|
|
31
|
-
: 'minmax(0, 1fr)';
|
|
32
|
-
})
|
|
33
|
-
.join(' ');
|
|
34
|
-
};
|
|
35
|
-
export const getColumnLeftPosition = (index, columns, _freezeColumns) => {
|
|
1
|
+
import { CELL_PADDING, DEFAULT_COLUMN_WIDTH } from "./constants";
|
|
2
|
+
export const getColumnLeftPosition = (index, columns, freezeColumns) => {
|
|
36
3
|
if (index === 0)
|
|
37
4
|
return '0px';
|
|
38
5
|
let leftPosition = 0;
|
|
39
6
|
for (let i = 0; i < index; i++) {
|
|
40
|
-
|
|
7
|
+
const width = columns[i]?.width;
|
|
8
|
+
leftPosition += width ? parseInt(width.toString(), 10) : DEFAULT_COLUMN_WIDTH;
|
|
9
|
+
if (freezeColumns && i < freezeColumns - 1) {
|
|
10
|
+
leftPosition += CELL_PADDING;
|
|
11
|
+
}
|
|
41
12
|
}
|
|
42
13
|
return `${leftPosition}px`;
|
|
43
14
|
};
|
|
44
15
|
export const calculateFrozenWidth = (columnData, freezeColumns) => {
|
|
45
|
-
return columnData
|
|
16
|
+
return (columnData
|
|
46
17
|
.slice(0, freezeColumns)
|
|
47
|
-
.reduce((acc, col) => acc +
|
|
18
|
+
.reduce((acc, col) => acc +
|
|
19
|
+
parseInt(col.width?.toString() || `${DEFAULT_COLUMN_WIDTH}`, 10), 1) +
|
|
20
|
+
CELL_PADDING * (freezeColumns - 0.17));
|
|
48
21
|
};
|
|
49
|
-
// Utility: binary search to find the index where cumulativeHeights[i] > target
|
|
22
|
+
// Utility: Simple binary search to find the index where cumulativeHeights[i] > target
|
|
50
23
|
// Returns the index of the first element greater than or equal to the target.
|
|
51
24
|
export const binarySearch = (arr, target) => {
|
|
52
25
|
let low = 0;
|
|
@@ -54,7 +27,7 @@ export const binarySearch = (arr, target) => {
|
|
|
54
27
|
let result = arr.length; // Default to size if target is greater than all elements
|
|
55
28
|
while (low <= high) {
|
|
56
29
|
const mid = Math.floor((low + high) / 2);
|
|
57
|
-
// Use the non-null assertion operator '!'
|
|
30
|
+
// FIX: Use the non-null assertion operator '!'
|
|
58
31
|
if (arr[mid] >= target) {
|
|
59
32
|
result = mid;
|
|
60
33
|
high = mid - 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualization.js","sourceRoot":"","sources":["../../../../src/components/Table/utils/virtualization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"virtualization.js","sourceRoot":"","sources":["../../../../src/components/Table/utils/virtualization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,KAAa,EACb,OAA6B,EAC7B,aAAsB,EACtB,EAAE;IACF,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9B,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QAChC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAE9E,IAAI,aAAa,IAAI,CAAC,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3C,YAAY,IAAI,YAAY,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,GAAG,YAAY,IAAI,CAAC;AAC7B,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAgC,EAChC,aAAqB,EACrB,EAAE;IACF,OAAO,CACL,UAAU;SACP,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;SACvB,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACX,GAAG;QACH,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC,EAClE,CAAC,CACF;QACH,YAAY,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,CACtC,CAAC;AACJ,CAAC,CAAC;AAEF,sFAAsF;AACtF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAa,EAAE,MAAc,EAAE,EAAE;IAC5D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,yDAAyD;IAElF,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzC,+CAA+C;QAC/C,IAAI,GAAG,CAAC,GAAG,CAAE,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,CAAC;YACb,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1367,7 +1367,6 @@ interface SelectedItemProps$1 {
|
|
|
1367
1367
|
*/
|
|
1368
1368
|
[key: string]: string | number | boolean;
|
|
1369
1369
|
}
|
|
1370
|
-
type TableRef = LegacyRef<HTMLTableSectionElement> | React__default.RefObject<HTMLTableSectionElement> | LegacyRef<HTMLDivElement> | React__default.RefObject<HTMLDivElement> | null;
|
|
1371
1370
|
interface TableProps$2 {
|
|
1372
1371
|
/**
|
|
1373
1372
|
* Data for table
|
|
@@ -1477,7 +1476,7 @@ interface TableProps$2 {
|
|
|
1477
1476
|
/**
|
|
1478
1477
|
* enable editMode by setting state row id
|
|
1479
1478
|
*/
|
|
1480
|
-
editMode?: string |
|
|
1479
|
+
editMode?: string | null;
|
|
1481
1480
|
/**
|
|
1482
1481
|
* The content that to be displayed if editComponent
|
|
1483
1482
|
*/
|
|
@@ -1485,7 +1484,7 @@ interface TableProps$2 {
|
|
|
1485
1484
|
/**
|
|
1486
1485
|
* tableRef to get the scroll position & to pass control of table to parent component
|
|
1487
1486
|
*/
|
|
1488
|
-
tableRef?:
|
|
1487
|
+
tableRef?: LegacyRef<HTMLTableSectionElement> | React__default.RefObject<HTMLTableSectionElement> | null;
|
|
1489
1488
|
/**
|
|
1490
1489
|
* Explicitly handling the checkbox disability for the row.
|
|
1491
1490
|
*/
|
|
@@ -1502,10 +1501,9 @@ interface TableProps$2 {
|
|
|
1502
1501
|
displayCard?: boolean;
|
|
1503
1502
|
selectedNode?: {
|
|
1504
1503
|
key: string;
|
|
1505
|
-
selected: string
|
|
1504
|
+
selected: string;
|
|
1506
1505
|
};
|
|
1507
1506
|
uniqueRowIdForAccordion?: string | number;
|
|
1508
|
-
openAccordionId?: string | number | null;
|
|
1509
1507
|
}
|
|
1510
1508
|
|
|
1511
1509
|
declare const Table: React$1.ForwardRefExoticComponent<TableProps$2 & React$1.RefAttributes<any>>;
|