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