trotl-table 1.0.73 → 1.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Table.cjs.js +35 -4
- package/dist/Table.cjs.js.map +1 -1
- package/dist/Table.esm.js +35 -4
- package/dist/Table.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/Table.cjs.js
CHANGED
|
@@ -9667,6 +9667,7 @@ function TableInner({
|
|
|
9667
9667
|
enableDragRow = false,
|
|
9668
9668
|
enableSearchUrlParam = false,
|
|
9669
9669
|
enableMultiSelect = false,
|
|
9670
|
+
enableGroupSelection = false,
|
|
9670
9671
|
initialSelectedRows = [],
|
|
9671
9672
|
initaialSelectedRows,
|
|
9672
9673
|
enableExternalRowDrop = false,
|
|
@@ -10247,6 +10248,36 @@ function TableInner({
|
|
|
10247
10248
|
}
|
|
10248
10249
|
return map;
|
|
10249
10250
|
}, [sortedGroupedData, groupKey]);
|
|
10251
|
+
const selectedRowsDetails = React.useMemo(() => {
|
|
10252
|
+
const selectedIdSet = new Set(selectedRows);
|
|
10253
|
+
const items = [];
|
|
10254
|
+
if (isGrouped) {
|
|
10255
|
+
for (const g of normalizedGroups) {
|
|
10256
|
+
const groupMeta = {
|
|
10257
|
+
groupId: g.groupId ?? null,
|
|
10258
|
+
groupName: g.groupName ?? null
|
|
10259
|
+
};
|
|
10260
|
+
for (const row of g.rows || []) {
|
|
10261
|
+
if (row && selectedIdSet.has(row.id)) {
|
|
10262
|
+
items.push({
|
|
10263
|
+
row,
|
|
10264
|
+
group: groupMeta
|
|
10265
|
+
});
|
|
10266
|
+
}
|
|
10267
|
+
}
|
|
10268
|
+
}
|
|
10269
|
+
} else {
|
|
10270
|
+
for (const row of Array.isArray(localData) ? localData : []) {
|
|
10271
|
+
if (row && selectedIdSet.has(row.id)) {
|
|
10272
|
+
items.push({
|
|
10273
|
+
row,
|
|
10274
|
+
group: null
|
|
10275
|
+
});
|
|
10276
|
+
}
|
|
10277
|
+
}
|
|
10278
|
+
}
|
|
10279
|
+
return items;
|
|
10280
|
+
}, [selectedRows, isGrouped, normalizedGroups, localData]);
|
|
10250
10281
|
const [tableDataFlat, setTableDataFlat] = React.useState([]);
|
|
10251
10282
|
const flattened = React.useMemo(() => {
|
|
10252
10283
|
const items = [];
|
|
@@ -10327,8 +10358,8 @@ function TableInner({
|
|
|
10327
10358
|
React.useEffect(() => {
|
|
10328
10359
|
// Only call the callback if selectedRows actually changed
|
|
10329
10360
|
// Use the ref to avoid infinite loops from callback changing on every render
|
|
10330
|
-
selectedRowsCallbackRef.current?.(selectedRows);
|
|
10331
|
-
}, [selectedRows]);
|
|
10361
|
+
selectedRowsCallbackRef.current?.(selectedRows, selectedRowsDetails);
|
|
10362
|
+
}, [selectedRows, selectedRowsDetails]);
|
|
10332
10363
|
|
|
10333
10364
|
// DELETE
|
|
10334
10365
|
const [showConfirm, setShowConfirm] = React.useState(false);
|
|
@@ -10864,7 +10895,7 @@ function TableInner({
|
|
|
10864
10895
|
},
|
|
10865
10896
|
className: "table-row group-row empty-group-drop",
|
|
10866
10897
|
onClick: () => toggleGroup(gid)
|
|
10867
|
-
}, enableMultiSelect && /*#__PURE__*/React.createElement("div", {
|
|
10898
|
+
}, enableMultiSelect && enableGroupSelection && /*#__PURE__*/React.createElement("div", {
|
|
10868
10899
|
className: "table-cell checkbox-cell"
|
|
10869
10900
|
}, /*#__PURE__*/React.createElement("input", {
|
|
10870
10901
|
type: "checkbox",
|
|
@@ -10908,7 +10939,7 @@ function TableInner({
|
|
|
10908
10939
|
style: style,
|
|
10909
10940
|
className: "table-row group-row",
|
|
10910
10941
|
onClick: () => toggleGroup(gid)
|
|
10911
|
-
}, enableMultiSelect && /*#__PURE__*/React.createElement("div", {
|
|
10942
|
+
}, enableMultiSelect && enableGroupSelection && /*#__PURE__*/React.createElement("div", {
|
|
10912
10943
|
className: "table-cell checkbox-cell"
|
|
10913
10944
|
}, /*#__PURE__*/React.createElement("input", {
|
|
10914
10945
|
type: "checkbox",
|