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 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",