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.esm.js
CHANGED
|
@@ -9645,6 +9645,7 @@ function TableInner({
|
|
|
9645
9645
|
enableDragRow = false,
|
|
9646
9646
|
enableSearchUrlParam = false,
|
|
9647
9647
|
enableMultiSelect = false,
|
|
9648
|
+
enableGroupSelection = false,
|
|
9648
9649
|
initialSelectedRows = [],
|
|
9649
9650
|
initaialSelectedRows,
|
|
9650
9651
|
enableExternalRowDrop = false,
|
|
@@ -10225,6 +10226,36 @@ function TableInner({
|
|
|
10225
10226
|
}
|
|
10226
10227
|
return map;
|
|
10227
10228
|
}, [sortedGroupedData, groupKey]);
|
|
10229
|
+
const selectedRowsDetails = useMemo(() => {
|
|
10230
|
+
const selectedIdSet = new Set(selectedRows);
|
|
10231
|
+
const items = [];
|
|
10232
|
+
if (isGrouped) {
|
|
10233
|
+
for (const g of normalizedGroups) {
|
|
10234
|
+
const groupMeta = {
|
|
10235
|
+
groupId: g.groupId ?? null,
|
|
10236
|
+
groupName: g.groupName ?? null
|
|
10237
|
+
};
|
|
10238
|
+
for (const row of g.rows || []) {
|
|
10239
|
+
if (row && selectedIdSet.has(row.id)) {
|
|
10240
|
+
items.push({
|
|
10241
|
+
row,
|
|
10242
|
+
group: groupMeta
|
|
10243
|
+
});
|
|
10244
|
+
}
|
|
10245
|
+
}
|
|
10246
|
+
}
|
|
10247
|
+
} else {
|
|
10248
|
+
for (const row of Array.isArray(localData) ? localData : []) {
|
|
10249
|
+
if (row && selectedIdSet.has(row.id)) {
|
|
10250
|
+
items.push({
|
|
10251
|
+
row,
|
|
10252
|
+
group: null
|
|
10253
|
+
});
|
|
10254
|
+
}
|
|
10255
|
+
}
|
|
10256
|
+
}
|
|
10257
|
+
return items;
|
|
10258
|
+
}, [selectedRows, isGrouped, normalizedGroups, localData]);
|
|
10228
10259
|
const [tableDataFlat, setTableDataFlat] = useState([]);
|
|
10229
10260
|
const flattened = useMemo(() => {
|
|
10230
10261
|
const items = [];
|
|
@@ -10305,8 +10336,8 @@ function TableInner({
|
|
|
10305
10336
|
useEffect(() => {
|
|
10306
10337
|
// Only call the callback if selectedRows actually changed
|
|
10307
10338
|
// Use the ref to avoid infinite loops from callback changing on every render
|
|
10308
|
-
selectedRowsCallbackRef.current?.(selectedRows);
|
|
10309
|
-
}, [selectedRows]);
|
|
10339
|
+
selectedRowsCallbackRef.current?.(selectedRows, selectedRowsDetails);
|
|
10340
|
+
}, [selectedRows, selectedRowsDetails]);
|
|
10310
10341
|
|
|
10311
10342
|
// DELETE
|
|
10312
10343
|
const [showConfirm, setShowConfirm] = useState(false);
|
|
@@ -10842,7 +10873,7 @@ function TableInner({
|
|
|
10842
10873
|
},
|
|
10843
10874
|
className: "table-row group-row empty-group-drop",
|
|
10844
10875
|
onClick: () => toggleGroup(gid)
|
|
10845
|
-
}, enableMultiSelect && /*#__PURE__*/React__default.createElement("div", {
|
|
10876
|
+
}, enableMultiSelect && enableGroupSelection && /*#__PURE__*/React__default.createElement("div", {
|
|
10846
10877
|
className: "table-cell checkbox-cell"
|
|
10847
10878
|
}, /*#__PURE__*/React__default.createElement("input", {
|
|
10848
10879
|
type: "checkbox",
|
|
@@ -10886,7 +10917,7 @@ function TableInner({
|
|
|
10886
10917
|
style: style,
|
|
10887
10918
|
className: "table-row group-row",
|
|
10888
10919
|
onClick: () => toggleGroup(gid)
|
|
10889
|
-
}, enableMultiSelect && /*#__PURE__*/React__default.createElement("div", {
|
|
10920
|
+
}, enableMultiSelect && enableGroupSelection && /*#__PURE__*/React__default.createElement("div", {
|
|
10890
10921
|
className: "table-cell checkbox-cell"
|
|
10891
10922
|
}, /*#__PURE__*/React__default.createElement("input", {
|
|
10892
10923
|
type: "checkbox",
|