pixel-react 1.15.52 → 1.15.54

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.
Files changed (59) hide show
  1. package/README.md +75 -75
  2. package/lib/components/Charts/BarChart/BarChart.js +8 -8
  3. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js +6 -6
  4. package/lib/components/Charts/IconRadialChart/IconRadialChart.js +4 -4
  5. package/lib/components/Charts/PieChart/PieChart.js +5 -5
  6. package/lib/components/Comments/Comments.js +14 -14
  7. package/lib/components/Comments/childComment/ChildComment.js +14 -14
  8. package/lib/components/EditTextField/EditTextField.js +2 -2
  9. package/lib/components/Editor/Editor.js.map +1 -1
  10. package/lib/components/Icon/iconList.js +8 -0
  11. package/lib/components/Icon/iconList.js.map +1 -1
  12. package/lib/components/LabelEditTextField/LabelEditTextField.js +4 -4
  13. package/lib/components/MultiSelect/MultiSelect.js +1 -1
  14. package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
  15. package/lib/components/Search/Search.d.ts +1 -1
  16. package/lib/components/Search/Search.js +2 -2
  17. package/lib/components/Search/Search.js.map +1 -1
  18. package/lib/components/Search/types.d.ts +2 -0
  19. package/lib/components/StatusIndicator/StatusIndicator.js +5 -5
  20. package/lib/components/StepsLandingTable/Components/StepsTitle.d.ts +1 -1
  21. package/lib/components/StepsLandingTable/Components/StepsTitle.js +4 -2
  22. package/lib/components/StepsLandingTable/Components/StepsTitle.js.map +1 -1
  23. package/lib/components/StepsLandingTable/Components/handleStepCheckBox.js +53 -8
  24. package/lib/components/StepsLandingTable/Components/handleStepCheckBox.js.map +1 -1
  25. package/lib/components/StepsLandingTable/StepLandingTable.js +2 -2
  26. package/lib/components/StepsLandingTable/StepLandingTable.js.map +1 -1
  27. package/lib/components/StepsLandingTable/types.d.ts +4 -0
  28. package/lib/components/Table/Table.d.ts +1 -1
  29. package/lib/components/Table/Table.js +148 -253
  30. package/lib/components/Table/Table.js.map +1 -1
  31. package/lib/components/Table/Types.d.ts +35 -0
  32. package/lib/components/Table/components/SortableRow.d.ts +2 -0
  33. package/lib/components/Table/components/SortableRow.js +71 -0
  34. package/lib/components/Table/components/SortableRow.js.map +1 -0
  35. package/lib/components/Table/components/TableHeader.d.ts +3 -0
  36. package/lib/components/Table/components/TableHeader.js +29 -0
  37. package/lib/components/Table/components/TableHeader.js.map +1 -0
  38. package/lib/components/Table/components/VirtualizedRows.d.ts +3 -0
  39. package/lib/components/Table/components/VirtualizedRows.js +11 -0
  40. package/lib/components/Table/components/VirtualizedRows.js.map +1 -0
  41. package/lib/components/Table/utils/constants.d.ts +6 -0
  42. package/lib/components/Table/utils/constants.js +9 -0
  43. package/lib/components/Table/utils/constants.js.map +1 -0
  44. package/lib/components/Table/utils/virtualization.d.ts +7 -0
  45. package/lib/components/Table/utils/virtualization.js +41 -0
  46. package/lib/components/Table/utils/virtualization.js.map +1 -0
  47. package/lib/components/TableTreeFn/TableTreeFn.js +15 -8
  48. package/lib/components/TableTreeFn/TableTreeFn.js.map +1 -1
  49. package/lib/components/TableTreeFn/types.d.ts +1 -0
  50. package/lib/index.d.ts +14 -3
  51. package/lib/index.js +7 -7
  52. package/lib/index.js.map +1 -1
  53. package/lib/styles.css +1 -1
  54. package/lib/styles.css.map +1 -1
  55. package/lib/tsconfig.tsbuildinfo +1 -1
  56. package/lib/utils/getTopVisibleNodeKey/getTopVisibleNodeKey.d.ts +7 -2
  57. package/lib/utils/getTopVisibleNodeKey/getTopVisibleNodeKey.js +4 -5
  58. package/lib/utils/getTopVisibleNodeKey/getTopVisibleNodeKey.js.map +1 -1
  59. package/package.json +111 -111
@@ -1,296 +1,191 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import './Table.scss';
3
3
  import { isFunction } from '../../assets/utils/functionUtils';
4
4
  import classNames from 'classnames';
5
- import { prepareData } from '../../utils/TableCell/TableCell';
6
- import Checkbox from '../Checkbox';
7
- import Typography from '../Typography';
8
- import Icon from '../Icon';
9
- import { closestCorners, DndContext } from '@dnd-kit/core';
10
- import { SortableContext, useSortable, verticalListSortingStrategy, } from '@dnd-kit/sortable';
11
- import { CSS } from '@dnd-kit/utilities';
12
- import { useEffect, useRef, cloneElement, isValidElement, useState, useCallback, Fragment, } from 'react';
13
- import Tooltip from '../Tooltip';
14
- // Add these constants near the top of the file
15
- const DEFAULT_ROW_HEIGHT = 50; // Estimated row height
16
- const BUFFER_SIZE = 5; // Number of extra rows to render above/below visible area
17
- const getColumnLeftPosition = (index, columns, freezeColumns) => {
18
- if (index === 0)
19
- return '0px';
20
- // Calculate cumulative width of all previous columns including padding
21
- let leftPosition = 0;
22
- const CELL_PADDING = 8; // Each cell has 8px padding
23
- for (let i = 0; i < index; i++) {
24
- const width = columns[i]?.width;
25
- // Add column width plus left padding only
26
- leftPosition += width
27
- ? parseInt(width.toString(), 10)
28
- : DEFAULT_COLUMN_WIDTH;
29
- // Add padding between frozen columns
30
- if (freezeColumns && i < freezeColumns - 1) {
31
- leftPosition += CELL_PADDING;
32
- }
33
- }
34
- return `${leftPosition}px`;
35
- };
36
- const DEFAULT_COLUMN_WIDTH = 400;
37
- const calculateFrozenWidth = (columnData, freezeColumns) => {
38
- return (columnData
39
- .slice(0, freezeColumns)
40
- .reduce((acc, col) => acc +
41
- parseInt(col.width?.toString() || `${DEFAULT_COLUMN_WIDTH}`, 10), 1) +
42
- 8 * (freezeColumns - 0.17));
43
- };
44
- const SortableRow = ({ row, columns, tableBodyRowClass, handleOnclick, tableDataTextColor, withCheckbox, onSelectClick, draggable, serialNumber, editMode, isAccordionOpen, accordionContent, isRowCheckBoxDisable, isRowDisabled = true, freezeColumns, displayCard, updateRowHeight, index, }) => {
45
- const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
46
- id: row?._id || row?.id,
47
- disabled: row.disabled || !!editMode,
48
- });
49
- const rowRef = useRef(null);
50
- useEffect(() => {
51
- if (rowRef.current && updateRowHeight) {
52
- const height = rowRef.current.getBoundingClientRect().height;
53
- updateRowHeight(index, height);
54
- }
55
- }, [index, updateRowHeight]);
56
- const style = {
57
- transform: CSS.Transform.toString(transform),
58
- transition,
59
- };
60
- const key = row._id || row.id;
61
- return (_jsxs(_Fragment, { children: [_jsx("tr", { ref: setNodeRef, style: style, className: classNames('ff-table-data-row ', tableBodyRowClass, {
62
- 'ff-table-disabled': row.disabled && isRowDisabled,
63
- 'ff-table-display-card': displayCard,
64
- }), id: key, children: columns.map((column, index) => {
65
- const isFrozen = freezeColumns && index < freezeColumns;
66
- return (_jsx("td", { style: {
67
- position: isFrozen ? 'sticky' : 'static',
68
- left: isFrozen
69
- ? getColumnLeftPosition(index, columns, freezeColumns)
70
- : 'auto',
71
- zIndex: isFrozen ? 100 : 'auto',
72
- backgroundColor: isFrozen
73
- ? 'var(--input-label-bg-color)'
74
- : 'transparent',
75
- width: column.width ? `${column.width}px` : 'auto',
76
- padding: '7px 8px',
77
- boxSizing: 'border-box',
78
- paddingRight: isFrozen ? 0 : '8px',
79
- }, "data-frozen": isFrozen || undefined, onClick: () => handleOnclick(column, row), className: classNames('ff-table-data-cell ff-table-icon-container', column.className, {
80
- 'ff-table-clickable-cell': column.onClick,
81
- 'ff-table-sticky-column': isFrozen,
82
- }), children: _jsxs(Typography, { as: "div", color: tableDataTextColor, className: "ff-table-data-container", children: [index === 0 && withCheckbox && (_jsx("span", { className: "ff-table-checkbox-table", children: _jsx(Checkbox, { onChange: (e) => {
83
- onSelectClick(e, row);
84
- }, checked: row.checked, disabled: isRowCheckBoxDisable === undefined
85
- ? !!row.disabled
86
- : isRowCheckBoxDisable }) })), index === 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 + index));
87
- }) }, key), isAccordionOpen ? (_jsx("tr", { children: _jsx("td", { className: "ff-table-data-cell", colSpan: columns.length, children: _jsx("div", { children: accordionContent ? accordionContent : null }) }) })) : null] }));
88
- };
89
- const Table = ({ data = [], columns = [], headerType, withCheckbox = false, onSelect, allSelected, partialSelected = false, withFixedHeader = true, borderWithRadius = false, headerCheckboxDisabled = false, noDataContent, height = '100%', className = '', tableHeadClass = '', tableBodyRowClass = '', headerTextColor, tableDataTextColor, headerIconName = '', headerIconOnClick = () => { }, draggable = false, onDragEnd, loadMore = () => { }, editMode = '', editComponent, getAccordionStatus = () => { }, accordionContent, tableRef = null, isRowCheckBoxDisable, isRowDisabled = true, tableHeaderZindex = 99, freezeColumns, headerIconTooltipTitle, }) => {
90
- const observerRef = useRef(null);
91
- // Add virtualization state
5
+ import { useEffect, useRef, useState, useCallback, useMemo, useImperativeHandle, forwardRef, } from 'react';
6
+ import { binarySearch, calculateFrozenWidth } from './utils/virtualization';
7
+ import { BUFFER_SIZE, DEFAULT_ROW_HEIGHT } from './utils/constants';
8
+ import TableHeader from './components/TableHeader';
9
+ import VirtualizedRows from './components/VirtualizedRows';
10
+ import { debounce } from '../../utils/debounce/debounce';
11
+ const Table = forwardRef(({ data = [], columns = [], headerType, withCheckbox = false, onSelect, allSelected, partialSelected = false, withFixedHeader = true, borderWithRadius = false, headerCheckboxDisabled = false, noDataContent, height = '100%', className = '', tableHeadClass = '', tableBodyRowClass = '', headerTextColor, tableDataTextColor, headerIconName = '', headerIconOnClick = () => { }, draggable = false, tableRef = null, isRowCheckBoxDisable, isRowDisabled = true, tableHeaderZindex = 99, freezeColumns, headerIconTooltipTitle, }, ref) => {
92
12
  const containerRef = useRef(null);
13
+ const totalRows = data.length;
93
14
  const setContainerRef = (node) => {
94
- // 1. Set internal ref
95
15
  containerRef.current = node;
96
- // 2. Handle forwarded ref
97
16
  if (tableRef) {
98
17
  if (typeof tableRef === 'function') {
99
- // Handle callback refs
100
18
  tableRef(node);
101
19
  }
102
20
  else if (typeof tableRef === 'object' && 'current' in tableRef) {
103
- // Handle mutable ref objects only
104
21
  tableRef.current = node;
105
22
  }
106
- // Read-only RefObjects are safely ignored
107
23
  }
108
24
  };
109
25
  const [scrollTop, setScrollTop] = useState(0);
110
26
  const [containerHeight, setContainerHeight] = useState(0);
111
- const [rowHeights, setRowHeights] = useState([]);
112
- // Initialize container height and row heights
27
+ // --- PERFORMANCE FIX 1: Use useRef for heights (No Re-renders) ---
28
+ const rowHeightsMap = useRef({});
29
+ // This version number triggers the re-calculation of the virtual list
30
+ const [heightVersion, setHeightVersion] = useState(0);
31
+ // Reset heights when data array reference changes
113
32
  useEffect(() => {
114
- if (containerRef.current) {
115
- setContainerHeight(containerRef.current.clientHeight);
116
- }
117
- // Initialize with estimated heights
118
- setRowHeights(new Array(data.length).fill(DEFAULT_ROW_HEIGHT));
33
+ setHeightVersion((version) => version + 1);
119
34
  }, [data]);
120
- // Handle scroll events
121
- const handleScroll = useCallback((e) => {
122
- setScrollTop(e.currentTarget.scrollTop);
123
- }, []);
124
- // Update row height callback
125
- const updateRowHeight = useCallback((index, height) => {
126
- setRowHeights((prev) => {
127
- const newHeights = [...prev];
128
- if (index < newHeights.length) {
129
- const currentHeight = newHeights[index] ?? DEFAULT_ROW_HEIGHT; // Fallback
130
- if (Math.abs(currentHeight - height) > 1) {
131
- newHeights[index] = height;
132
- return newHeights;
35
+ // Container Resize Observer
36
+ useEffect(() => {
37
+ const container = containerRef.current;
38
+ if (!container)
39
+ return;
40
+ setContainerHeight(container.clientHeight);
41
+ const observer = new ResizeObserver((entries) => {
42
+ for (let entry of entries) {
43
+ // Use contentRect for the container
44
+ const newHeight = entry.contentRect.height;
45
+ if (Math.abs(newHeight - containerHeight) > 1) {
46
+ setContainerHeight(newHeight);
133
47
  }
134
48
  }
135
- return prev;
136
49
  });
50
+ observer.observe(container);
51
+ return () => {
52
+ observer.unobserve(container);
53
+ observer.disconnect();
54
+ };
55
+ }, [containerHeight]);
56
+ const handleScroll = useCallback((e) => {
57
+ // Use requestAnimationFrame for scroll updates if scrolling feels jittery,
58
+ // generally direct state update is fine for React 18+ automatic batching.
59
+ setScrollTop(e.currentTarget.scrollTop);
137
60
  }, []);
138
- // Calculate visible rows
139
- const calculateVisibleRows = () => {
140
- let startIndex = 0;
141
- let endIndex = data.length - 1;
142
- let paddingTop = 0;
143
- let paddingBottom = 0;
144
- if (rowHeights.length === data.length && containerHeight > 0) {
145
- // Calculate based on actual row heights
146
- let cumulativeHeight = 0;
147
- // Find start index
148
- for (let i = 0; i < data.length; i++) {
149
- if (cumulativeHeight <= scrollTop) {
150
- startIndex = i;
151
- }
152
- cumulativeHeight += rowHeights[i] || DEFAULT_ROW_HEIGHT;
153
- }
154
- // Find end index
155
- cumulativeHeight = 0;
156
- for (let i = 0; i < data.length; i++) {
157
- cumulativeHeight += rowHeights[i] || DEFAULT_ROW_HEIGHT;
158
- if (cumulativeHeight >= scrollTop + containerHeight &&
159
- endIndex === data.length - 1) {
160
- endIndex = i;
161
- break;
162
- }
163
- }
164
- // Apply buffer
165
- startIndex = Math.max(0, startIndex - BUFFER_SIZE);
166
- endIndex = Math.min(data.length - 1, endIndex + BUFFER_SIZE);
167
- // Calculate padding
168
- paddingTop = rowHeights
169
- .slice(0, startIndex)
170
- .reduce((sum, height) => sum + height, 0);
171
- paddingBottom = rowHeights
172
- .slice(endIndex + 1)
173
- .reduce((sum, height) => sum + height, 0);
61
+ // --- PERFORMANCE FIX 2: Batched Updates (Debounce) ---
62
+ // If 100 rows mount, this ensures we only re-calculate layout ONCE after 20ms.
63
+ const commitHeightUpdates = useMemo(() => debounce(() => {
64
+ setHeightVersion((prev) => prev + 1);
65
+ }, 20), []);
66
+ const updateRowHeight = useCallback((index, height) => {
67
+ const currentHeight = rowHeightsMap.current[index];
68
+ // Only schedule update if height changed by > 1px
69
+ if (currentHeight === undefined ||
70
+ Math.abs(currentHeight - height) > 1) {
71
+ // 1. Update the Ref (Synchronous, cheap)
72
+ rowHeightsMap.current[index] = height;
73
+ // 2. Trigger the Debounced Re-render (Asynchronous)
74
+ commitHeightUpdates();
174
75
  }
175
- else {
176
- // Fallback to estimated calculation
177
- startIndex = Math.max(0, Math.floor(scrollTop / DEFAULT_ROW_HEIGHT) - BUFFER_SIZE);
178
- endIndex = Math.min(data.length - 1, startIndex +
179
- Math.ceil(containerHeight / DEFAULT_ROW_HEIGHT) +
180
- BUFFER_SIZE);
181
- paddingTop = startIndex * DEFAULT_ROW_HEIGHT;
182
- paddingBottom = (data.length - endIndex - 1) * DEFAULT_ROW_HEIGHT;
76
+ }, [commitHeightUpdates]);
77
+ // --- PERFORMANCE FIX 3: Calculate Cumulative Heights from Ref ---
78
+ const { cumulativeHeights, totalContentHeight } = useMemo(() => {
79
+ let cumulative = 0;
80
+ const heights = [0];
81
+ for (let i = 0; i < totalRows; i++) {
82
+ // FAST: Reading directly from the Ref object
83
+ const height = rowHeightsMap.current[i] ?? DEFAULT_ROW_HEIGHT;
84
+ cumulative += height;
85
+ heights.push(cumulative);
183
86
  }
87
+ return { cumulativeHeights: heights, totalContentHeight: cumulative };
88
+ }, [totalRows, heightVersion]); // Only runs when 'heightVersion' updates
89
+ // Virtualization Logic
90
+ const visibleState = useMemo(() => {
91
+ if (containerHeight === 0 || totalRows === 0) {
92
+ return {
93
+ startIndex: 0,
94
+ endIndex: -1,
95
+ paddingTop: 0,
96
+ paddingBottom: 0,
97
+ visibleRows: [],
98
+ };
99
+ }
100
+ const startIdxPlusOne = binarySearch(cumulativeHeights, scrollTop + 1);
101
+ let startIndex = startIdxPlusOne > 0 ? startIdxPlusOne - 1 : 0;
102
+ const endIdxPlusOne = binarySearch(cumulativeHeights, scrollTop + containerHeight);
103
+ let endIndex = endIdxPlusOne - 1;
104
+ let bufferedStart = Math.max(0, startIndex - BUFFER_SIZE);
105
+ let bufferedEnd = Math.min(totalRows - 1, endIndex + BUFFER_SIZE);
106
+ const paddingTop = cumulativeHeights[bufferedStart];
107
+ // Ensure we don't access out of bounds
108
+ const nextHeight = cumulativeHeights[bufferedEnd + 1];
109
+ const paddingBottom = totalContentHeight -
110
+ (nextHeight !== undefined ? nextHeight : totalContentHeight);
111
+ // Slicing data is cheap
184
112
  return {
185
- startIndex,
186
- endIndex,
187
- paddingTop,
188
- paddingBottom,
189
- visibleRows: data.slice(startIndex, endIndex + 1),
113
+ startIndex: bufferedStart,
114
+ endIndex: bufferedEnd,
115
+ paddingTop: paddingTop,
116
+ paddingBottom: paddingBottom,
117
+ visibleRows: data.slice(bufferedStart, bufferedEnd + 1),
190
118
  };
191
- };
192
- const { startIndex, paddingTop, paddingBottom, visibleRows } = calculateVisibleRows();
119
+ }, [scrollTop, containerHeight, totalRows, cumulativeHeights, data]);
120
+ const { startIndex, paddingTop, paddingBottom, visibleRows } = visibleState;
193
121
  let frozenWidth = 0;
194
122
  if (freezeColumns) {
195
123
  frozenWidth = calculateFrozenWidth(columns, freezeColumns);
196
124
  }
197
- useEffect(() => {
198
- const scrollContainer = document.getElementById('ff-table-scroll-container');
199
- const firstNode = document.getElementById('ff-table-first-node');
200
- const lastNode = document.getElementById('ff-table-last-node');
201
- // Exit early if data is empty or elements are missing
202
- if (!scrollContainer || !firstNode || !lastNode || !data?.length) {
203
- return;
204
- }
205
- observerRef.current = new IntersectionObserver((entries) => {
206
- entries.forEach((entry) => {
207
- if (entry.isIntersecting) {
208
- const direction = entry.target.id === 'ff-table-last-node' ? 'below' : 'above';
209
- loadMore(direction);
210
- }
211
- });
212
- }, {
213
- root: scrollContainer,
214
- rootMargin: '8px',
215
- threshold: 0.1,
216
- });
217
- observerRef.current.observe(firstNode);
218
- observerRef.current.observe(lastNode);
219
- return () => {
220
- // Cleanup observer
221
- observerRef.current?.disconnect();
222
- };
223
- }, [data, loadMore]);
224
- const handleOnclick = (column, row) => {
125
+ const handleOnclick = useCallback((column, row) => {
225
126
  let { onClick, accessor } = column;
226
127
  if (onClick && isFunction(onClick)) {
227
128
  onClick(accessor, row);
228
129
  }
229
- };
230
- const onSelectClick = (e, item) => {
130
+ }, []);
131
+ const onSelectClick = useCallback((e, item) => {
231
132
  if (onSelect) {
232
133
  onSelect(e, item);
233
134
  }
234
- };
235
- const handleDragEnd = (event) => {
236
- const { active, over } = event;
237
- if (!over || active.id === over.id)
135
+ }, [onSelect]);
136
+ // --- START OF NEW AUTOSCROLL LOGIC ---
137
+ /**
138
+ * Calculates the scroll position and imperatively scrolls the table to the row with the given ID.
139
+ * @param rowId The ID or _id of the row to scroll to.
140
+ */
141
+ const scrollToRow = useCallback((rowId) => {
142
+ // Assuming a safe, estimated fixed header height.
143
+ // You MUST verify this value matches your actual TableHeader height.
144
+ const FIXED_HEADER_HEIGHT = 50;
145
+ const targetIndex = data.findIndex((row) => row.id === rowId || row._id === rowId);
146
+ if (targetIndex === -1 ||
147
+ !containerRef.current ||
148
+ cumulativeHeights.length === 0) {
238
149
  return;
239
- const oldIndex = data.findIndex((item) => item._id === active.id || item.id === active.id);
240
- const newIndex = data.findIndex((item) => item._id === over.id || item.id === over.id);
241
- if (oldIndex === -1 || newIndex === -1)
150
+ }
151
+ const container = containerRef.current;
152
+ const targetRowTop = cumulativeHeights[targetIndex];
153
+ const targetRowBottom = cumulativeHeights[targetIndex + 1];
154
+ // --- 1. Calculate Initial Adjusted Position (Handling Fixed Header) ---
155
+ // Scrolls the row down by the header height to bring it into full view.
156
+ let adjustedScrollPosition = Math.max(0, targetRowTop - FIXED_HEADER_HEIGHT);
157
+ const currentScrollTop = container.scrollTop;
158
+ const currentScrollBottom = container.scrollTop + container.clientHeight;
159
+ if (targetRowTop >= currentScrollTop + FIXED_HEADER_HEIGHT &&
160
+ targetRowBottom <= currentScrollBottom) {
242
161
  return;
243
- if (onDragEnd)
244
- onDragEnd(oldIndex, newIndex);
245
- };
246
- const renderRow = (row, absoluteIndex) => {
247
- const isOpen = getAccordionStatus(row?.id || row?._id || row?.scriptId);
248
- if (editMode === row._id || editMode === row.id) {
249
- return (_jsx("tr", { className: "edit-row", children: _jsx("td", { colSpan: columns.length, style: { padding: '0px' }, children: isValidElement(editComponent) &&
250
- cloneElement(editComponent, {
251
- rowData: row,
252
- rowIndex: absoluteIndex + 1,
253
- }) }) }, `edit-${row._id}`));
254
162
  }
255
- return (_jsx(SortableRow, { row: row, index: absoluteIndex, serialNumber: absoluteIndex + 1, columns: columns, tableBodyRowClass: tableBodyRowClass, handleOnclick: handleOnclick, tableDataTextColor: tableDataTextColor, withCheckbox: withCheckbox, onSelectClick: onSelectClick, draggable: draggable, isAccordionOpen: isOpen, accordionContent: accordionContent, isRowCheckBoxDisable: isRowCheckBoxDisable, isRowDisabled: isRowDisabled, freezeColumns: freezeColumns, frozenWidth: frozenWidth, updateRowHeight: updateRowHeight }));
256
- };
257
- return (_jsx(DndContext, { collisionDetection: closestCorners, onDragEnd: handleDragEnd, children: _jsx(SortableContext, { disabled: !draggable, items: data?.map((row) => row._id || row.id), strategy: verticalListSortingStrategy, children: _jsxs("div", { ref: setContainerRef, style: {
258
- height,
259
- overflow: 'auto',
260
- position: 'relative',
261
- scrollbarWidth: draggable ? 'none' : 'auto',
262
- '--frozen-column-width': freezeColumns
263
- ? `${frozenWidth}px`
264
- : '0px',
265
- }, id: "ff-table-scroll-container", className: classNames('ff-table-scroll-container', {
266
- 'ff-table-fixed-header': withFixedHeader,
267
- 'ff-table-container--border-radius': borderWithRadius,
268
- }, className), onScroll: handleScroll, children: [_jsxs("table", { className: "ff-table-container", cellSpacing: 0, children: [_jsx("thead", { className: classNames('ff-table-header', {
269
- 'ff-table-fixed-header': withFixedHeader,
270
- }, tableHeadClass), style: { zIndex: tableHeaderZindex }, children: _jsx("tr", { children: columns.map((column, index) => {
271
- const isFrozen = freezeColumns && index < freezeColumns;
272
- return (_jsxs("th", { className: classNames('ff-table-header-cell', headerType !== 'default'
273
- ? `ff-table-${headerType}-bg`
274
- : '', headerTextColor && `ff-table-${headerTextColor}-color`), style: {
275
- position: isFrozen ? 'sticky' : 'static',
276
- left: isFrozen
277
- ? getColumnLeftPosition(index, columns, freezeColumns)
278
- : 'auto',
279
- zIndex: isFrozen ? 999 : 'auto',
280
- width: column.width ? `${column.width}px` : 'auto',
281
- padding: '8px 8px',
282
- boxSizing: 'border-box',
283
- // Remove right padding from frozen columns to prevent overlap
284
- paddingRight: isFrozen ? 0 : '8px',
285
- }, 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 }, 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) => {
286
- onSelectClick(e, {
287
- allSelected: e.target.checked,
288
- });
289
- }, checked: allSelected !== undefined ? allSelected : false, partial: !!partialSelected, disabled: headerCheckboxDisabled }) })), column.header] })] }, column.header));
290
- }) }) }), _jsxs("tbody", { className: "ff-fixed-header-table", children: [_jsx("tr", { id: "ff-table-first-node", style: { display: 'none' } }), paddingTop > 0 && (_jsx("tr", { children: _jsx("td", { style: { height: paddingTop, padding: 0 }, colSpan: columns.length }) })), visibleRows.map((row, index) => {
291
- const absoluteIndex = startIndex + index;
292
- return (_jsx(Fragment, { children: renderRow(row, absoluteIndex) }, row._id || absoluteIndex));
293
- }), paddingBottom > 0 && (_jsx("tr", { children: _jsx("td", { style: { height: paddingBottom, padding: 0 }, colSpan: columns.length }) })), _jsx("tr", { id: "ff-table-last-node", style: { display: 'none' } })] })] }), data?.length <= 0 && (_jsx("div", { className: "ff-no-data-content", style: { height: `calc(${height} - 50px)` }, children: noDataContent }))] }) }) }));
294
- };
163
+ // --- 3. Edge Case: Preventing Overscrolling to the Bottom ---
164
+ // Find the maximum possible scrollTop value (total height minus viewport height).
165
+ const maxScrollTop = Math.max(0, totalContentHeight - container.clientHeight);
166
+ // Clamp the adjusted position to ensure we don't scroll past the content end.
167
+ adjustedScrollPosition = Math.min(adjustedScrollPosition, maxScrollTop);
168
+ // --- 4. Perform the Scroll ---
169
+ container.scrollTop = adjustedScrollPosition;
170
+ setScrollTop(adjustedScrollPosition);
171
+ }, [data, cumulativeHeights, totalContentHeight]);
172
+ // 5. Expose the scroll function to the parent component via the ref
173
+ useImperativeHandle(ref, () => ({
174
+ // Expose the custom scroll function
175
+ scrollToRow: scrollToRow,
176
+ // You can expose other methods or the containerRef here if needed
177
+ }));
178
+ // --- END OF NEW AUTOSCROLL LOGIC ---
179
+ return (_jsxs("div", { ref: setContainerRef, style: {
180
+ height,
181
+ overflow: 'auto',
182
+ position: 'relative',
183
+ scrollbarWidth: draggable ? 'none' : 'auto',
184
+ '--frozen-column-width': freezeColumns ? `${frozenWidth}px` : '0px',
185
+ }, id: "ff-table-scroll-container", className: classNames('ff-table-scroll-container', {
186
+ 'ff-table-fixed-header': withFixedHeader,
187
+ 'ff-table-container--border-radius': borderWithRadius,
188
+ }, className), onScroll: handleScroll, children: [_jsxs("table", { className: "ff-table-container", cellSpacing: 0, style: { height: totalContentHeight }, children: [_jsx(TableHeader, { columns: columns, freezeColumns: freezeColumns, headerType: headerType, tableHeadClass: tableHeadClass, headerTextColor: headerTextColor, headerCheckboxDisabled: headerCheckboxDisabled, withCheckbox: withCheckbox, allSelected: allSelected, partialSelected: partialSelected, headerIconName: headerIconName, headerIconOnClick: headerIconOnClick, headerIconTooltipTitle: headerIconTooltipTitle, tableHeaderZindex: tableHeaderZindex, onSelectClick: onSelectClick, withFixedHeader: withFixedHeader }), _jsx(VirtualizedRows, { paddingTop: paddingTop ?? 0, paddingBottom: paddingBottom, columnsLength: columns.length, visibleRows: visibleRows, startIndex: startIndex, columns: columns, tableBodyRowClass: tableBodyRowClass, handleOnclick: handleOnclick, tableDataTextColor: tableDataTextColor, withCheckbox: withCheckbox, onSelectClick: onSelectClick, isRowCheckBoxDisable: isRowCheckBoxDisable, isRowDisabled: isRowDisabled, freezeColumns: freezeColumns, frozenWidth: frozenWidth, updateRowHeight: updateRowHeight })] }), data?.length <= 0 && (_jsx("div", { className: "ff-no-data-content", style: { height: `calc(${height} - 50px)` }, children: noDataContent }))] }));
189
+ });
295
190
  export default Table;
296
191
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"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"}
@@ -170,3 +170,38 @@ export interface TableProps {
170
170
  export interface FormValues {
171
171
  ifFailed: string | null;
172
172
  }
173
+ export interface TableHeaderProps {
174
+ columns: ColumnsProps[];
175
+ freezeColumns?: number;
176
+ headerType?: string;
177
+ tableHeadClass?: string;
178
+ headerTextColor?: string;
179
+ headerCheckboxDisabled?: boolean;
180
+ withCheckbox?: boolean;
181
+ allSelected?: boolean;
182
+ partialSelected?: boolean;
183
+ headerIconName?: string;
184
+ headerIconOnClick?: () => void;
185
+ headerIconTooltipTitle?: string;
186
+ tableHeaderZindex?: number;
187
+ onSelectClick: (e: any, payload: any) => void;
188
+ withFixedHeader?: boolean;
189
+ }
190
+ export interface VirtualizedRowsProps {
191
+ paddingTop: number;
192
+ paddingBottom: number;
193
+ columnsLength: number;
194
+ visibleRows: any[];
195
+ startIndex: number;
196
+ columns: ColumnsProps[];
197
+ tableBodyRowClass?: string;
198
+ handleOnclick?: (_column: ColumnsProps, _row: DataProps) => void;
199
+ tableDataTextColor?: string;
200
+ withCheckbox?: boolean;
201
+ onSelectClick?: (_e: object, _item: SelectedItemProps) => void;
202
+ isRowCheckBoxDisable?: boolean;
203
+ isRowDisabled?: boolean;
204
+ freezeColumns?: number;
205
+ frozenWidth?: number;
206
+ updateRowHeight?: (index: number, height: number) => void;
207
+ }
@@ -0,0 +1,2 @@
1
+ declare const SortableRow: import("react").MemoExoticComponent<({ row, index, serialNumber, columns, tableBodyRowClass, handleOnclick, tableDataTextColor, withCheckbox, onSelectClick, draggable, isRowCheckBoxDisable, isRowDisabled, freezeColumns, updateRowHeight, }: any) => import("react/jsx-runtime").JSX.Element>;
2
+ export default SortableRow;
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, memo } from 'react';
3
+ import classNames from 'classnames';
4
+ import Typography from '../../Typography';
5
+ import Icon from '../../Icon';
6
+ import Checkbox from '../../Checkbox';
7
+ import { prepareData } from '../../../utils/TableCell/TableCell';
8
+ import { getColumnLeftPosition } from '../utils/virtualization';
9
+ // OPTIMIZATION: Memoize to prevent re-rendering when parent Table updates
10
+ const SortableRow = memo(({ row, index, serialNumber, columns, tableBodyRowClass, handleOnclick, tableDataTextColor, withCheckbox, onSelectClick, draggable, isRowCheckBoxDisable, isRowDisabled, freezeColumns, updateRowHeight, }) => {
11
+ const rowRef = useRef(null);
12
+ useEffect(() => {
13
+ const element = rowRef.current;
14
+ if (!element || !updateRowHeight)
15
+ return;
16
+ // OPTIMIZATION: ResizeObserver
17
+ // We do NOT call getBoundingClientRect() here anymore.
18
+ // Calling it manually forces the browser to calculate layout immediately (Reflow).
19
+ // The observer will deliver the height asynchronously without freezing the thread.
20
+ const observer = new ResizeObserver((entries) => {
21
+ for (const entry of entries) {
22
+ // Use borderBoxSize (modern) or fallback to contentRect
23
+ // These properties are "Read-Only" from the previous frame and do not trigger Reflow.
24
+ const height = entry.borderBoxSize?.[0]?.blockSize ?? entry.contentRect.height;
25
+ if (height > 0) {
26
+ updateRowHeight(index, height);
27
+ }
28
+ }
29
+ });
30
+ observer.observe(element);
31
+ return () => {
32
+ observer.disconnect();
33
+ };
34
+ }, [index, updateRowHeight]);
35
+ const key = row._id || row.id;
36
+ return (_jsx("tr", { ref: rowRef, className: classNames('ff-table-data-row ', tableBodyRowClass, {
37
+ 'ff-table-disabled': row.disabled && isRowDisabled,
38
+ }), id: key, children: columns.map((column, columnIndex) => {
39
+ const isFrozen = freezeColumns && columnIndex < freezeColumns;
40
+ return (_jsx("td", { onClick: () => handleOnclick(column, row), style: {
41
+ position: isFrozen ? 'sticky' : 'static',
42
+ left: isFrozen
43
+ ? getColumnLeftPosition(columnIndex, columns, freezeColumns)
44
+ : 'auto',
45
+ zIndex: isFrozen ? 99 : 'auto',
46
+ backgroundColor: isFrozen
47
+ ? 'var(--input-label-bg-color)'
48
+ : 'transparent',
49
+ width: column.width ? `${column.width}px` : 'auto',
50
+ padding: '7px 8px',
51
+ boxSizing: 'border-box',
52
+ paddingRight: isFrozen ? 0 : '8px',
53
+ }, className: classNames('ff-table-data-cell ff-table-icon-container', column.className, {
54
+ 'ff-table-clickable-cell': column.onClick,
55
+ 'ff-table-sticky-column': isFrozen,
56
+ }), 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
57
+ ? !!row.disabled
58
+ : isRowCheckBoxDisable }) })), columnIndex === 0 && draggable && (_jsxs(_Fragment, { children: [_jsx("span", { className: row.disabled ? 'ff-table-drag' : 'ff-table-drag-icon', 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));
59
+ }) }, key));
60
+ },
61
+ // OPTIMIZATION: Custom Memo Comparison
62
+ // Returns true if props are equal (prevents re-render)
63
+ (prev, next) => {
64
+ return (prev.row === next.row &&
65
+ prev.index === next.index &&
66
+ prev.serialNumber === next.serialNumber &&
67
+ prev.updateRowHeight === next.updateRowHeight &&
68
+ prev.columns === next.columns);
69
+ });
70
+ export default SortableRow;
71
+ //# sourceMappingURL=SortableRow.js.map