@tanstack/table-core 8.0.14 → 8.1.0

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.
@@ -582,6 +582,7 @@ declare type RowSelectionOptions<TData extends RowData> = {
582
582
  declare type RowSelectionRow = {
583
583
  getIsSelected: () => boolean;
584
584
  getIsSomeSelected: () => boolean;
585
+ getIsAllSubRowsSelected: () => boolean;
585
586
  getCanSelect: () => boolean;
586
587
  getCanMultiSelect: () => boolean;
587
588
  getCanSelectSubRows: () => boolean;
@@ -606,7 +607,8 @@ declare type RowSelectionInstance<TData extends RowData> = {
606
607
  };
607
608
  declare const RowSelection: TableFeature;
608
609
  declare function selectRowsFn<TData extends RowData>(table: Table<TData>, rowModel: RowModel<TData>): RowModel<TData>;
609
- declare function isRowSelected<TData extends RowData>(row: Row<TData>, selection: Record<string, boolean>, table: Table<TData>): boolean | 'some';
610
+ declare function isRowSelected<TData extends RowData>(row: Row<TData>, selection: Record<string, boolean>): boolean;
611
+ declare function isSubRowSelected<TData extends RowData>(row: Row<TData>, selection: Record<string, boolean>, table: Table<TData>): boolean | 'some' | 'all';
610
612
 
611
613
  declare type CoreRow<TData extends RowData> = {
612
614
  id: string;
@@ -756,4 +758,4 @@ declare function getPaginationRowModel<TData extends RowData>(opts?: {
756
758
  initialSync: boolean;
757
759
  }): (table: Table<TData>) => () => RowModel<TData>;
758
760
 
759
- export { AccessorFn, AggregationFn, AggregationFnOption, AnyRender, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortingFn, Cell, Column, ColumnDef, ColumnDefTemplate, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnOrderDefaultOptions, ColumnOrderInstance, ColumnOrderOptions, ColumnOrderState, ColumnOrderTableState, ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningDefaultOptions, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningPosition, ColumnPinningRow, ColumnPinningState, ColumnPinningTableState, ColumnResizeMode, ColumnSizing, ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingDefaultOptions, ColumnSizingHeader, ColumnSizingInfoState, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingState, ColumnSizingTableState, ColumnSort, CoreColumn, CoreColumnDef, CoreColumnDefResolved, CoreColumnDefType, CoreHeader, CoreHeaderGroup, CoreInstance, CoreOptions, CoreRow, CoreTableState, CustomAggregationFns, CustomFilterFns, CustomSortingFns, ExpandedInstance, ExpandedOptions, ExpandedRow, ExpandedState, ExpandedStateList, ExpandedTableState, Expanding, FilterFn, FilterFnOption, Filters, FiltersColumn, FiltersColumnDef, FiltersInstance, FiltersOptions, FiltersRow, FiltersTableState, Grouping, GroupingCell, GroupingColumn, GroupingColumnDef, GroupingColumnMode, GroupingInstance, GroupingOptions, GroupingRow, GroupingState, GroupingTableState, Header, HeaderGroup, Headers, HeadersInstance, IfDefined, InitialTableState, NoInfer, OnChangeFn, Ordering, Overwrite, Pagination, PaginationDefaultOptions, PaginationInitialTableState, PaginationInstance, PaginationOptions, PaginationState, PaginationTableState, PartialKeys, Pinning, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowSelection, RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionState, RowSelectionTableState, RowValues, SortDirection, Sorting, SortingColumn, SortingColumnDef, SortingFn, SortingFnOption, SortingInstance, SortingOptions, SortingState, SortingTableState, Table, TableFeature, TableGenerics, TableOptions, TableOptionsResolved, TableState, TransformFilterValueFn, UnionToIntersection, Updater, Visibility, VisibilityColumn, VisibilityColumnDef, VisibilityDefaultOptions, VisibilityInstance, VisibilityOptions, VisibilityRow, VisibilityState, VisibilityTableState, aggregationFns, buildHeaderGroups, createColumn, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };
761
+ export { AccessorFn, AggregationFn, AggregationFnOption, AnyRender, BuiltInAggregationFn, BuiltInFilterFn, BuiltInSortingFn, Cell, Column, ColumnDef, ColumnDefTemplate, ColumnDefaultOptions, ColumnFilter, ColumnFilterAutoRemoveTestFn, ColumnFiltersState, ColumnOrderDefaultOptions, ColumnOrderInstance, ColumnOrderOptions, ColumnOrderState, ColumnOrderTableState, ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningDefaultOptions, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningPosition, ColumnPinningRow, ColumnPinningState, ColumnPinningTableState, ColumnResizeMode, ColumnSizing, ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingDefaultOptions, ColumnSizingHeader, ColumnSizingInfoState, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingState, ColumnSizingTableState, ColumnSort, CoreColumn, CoreColumnDef, CoreColumnDefResolved, CoreColumnDefType, CoreHeader, CoreHeaderGroup, CoreInstance, CoreOptions, CoreRow, CoreTableState, CustomAggregationFns, CustomFilterFns, CustomSortingFns, ExpandedInstance, ExpandedOptions, ExpandedRow, ExpandedState, ExpandedStateList, ExpandedTableState, Expanding, FilterFn, FilterFnOption, Filters, FiltersColumn, FiltersColumnDef, FiltersInstance, FiltersOptions, FiltersRow, FiltersTableState, Grouping, GroupingCell, GroupingColumn, GroupingColumnDef, GroupingColumnMode, GroupingInstance, GroupingOptions, GroupingRow, GroupingState, GroupingTableState, Header, HeaderGroup, Headers, HeadersInstance, IfDefined, InitialTableState, NoInfer, OnChangeFn, Ordering, Overwrite, Pagination, PaginationDefaultOptions, PaginationInitialTableState, PaginationInstance, PaginationOptions, PaginationState, PaginationTableState, PartialKeys, Pinning, RequiredKeys, ResolvedColumnFilter, Row, RowData, RowModel, RowSelection, RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionState, RowSelectionTableState, RowValues, SortDirection, Sorting, SortingColumn, SortingColumnDef, SortingFn, SortingFnOption, SortingInstance, SortingOptions, SortingState, SortingTableState, Table, TableFeature, TableGenerics, TableOptions, TableOptionsResolved, TableState, TransformFilterValueFn, UnionToIntersection, Updater, Visibility, VisibilityColumn, VisibilityColumnDef, VisibilityDefaultOptions, VisibilityInstance, VisibilityOptions, VisibilityRow, VisibilityState, VisibilityTableState, aggregationFns, buildHeaderGroups, createColumn, createRow, createTable, defaultColumnSizing, expandRows, filterFns, flattenBy, functionalUpdate, getCoreRowModel, getExpandedRowModel, getFacetedMinMaxValues, getFacetedRowModel, getFacetedUniqueValues, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, isFunction, isRowSelected, isSubRowSelected, makeStateUpdater, memo, noop, orderColumns, passiveEventSupported, reSplitAlphaNumeric, selectRowsFn, shouldAutoRemoveFilter, sortingFns };
@@ -2189,13 +2189,19 @@
2189
2189
  const {
2190
2190
  rowSelection
2191
2191
  } = table.getState();
2192
- return isRowSelected(row, rowSelection) === true;
2192
+ return isRowSelected(row, rowSelection);
2193
2193
  },
2194
2194
  getIsSomeSelected: () => {
2195
2195
  const {
2196
2196
  rowSelection
2197
2197
  } = table.getState();
2198
- return isRowSelected(row, rowSelection) === 'some';
2198
+ return isSubRowSelected(row, rowSelection) === 'some';
2199
+ },
2200
+ getIsAllSubRowsSelected: () => {
2201
+ const {
2202
+ rowSelection
2203
+ } = table.getState();
2204
+ return isSubRowSelected(row, rowSelection) === 'all';
2199
2205
  },
2200
2206
  getCanSelect: () => {
2201
2207
  var _table$options$enable;
@@ -2247,6 +2253,10 @@
2247
2253
  // ) {
2248
2254
 
2249
2255
  if (value) {
2256
+ if (!row.getCanMultiSelect()) {
2257
+ Object.keys(selectedRowIds).forEach(key => delete selectedRowIds[key]);
2258
+ }
2259
+
2250
2260
  selectedRowIds[id] = true;
2251
2261
  } else {
2252
2262
  delete selectedRowIds[id];
@@ -2268,7 +2278,7 @@
2268
2278
  return rows.map(row => {
2269
2279
  var _row$subRows2;
2270
2280
 
2271
- const isSelected = isRowSelected(row, rowSelection) === true;
2281
+ const isSelected = isRowSelected(row, rowSelection);
2272
2282
 
2273
2283
  if (isSelected) {
2274
2284
  newSelectedFlatRows.push(row);
@@ -2293,11 +2303,12 @@
2293
2303
  rowsById: newSelectedRowsById
2294
2304
  };
2295
2305
  }
2296
- function isRowSelected(row, selection, table) {
2297
- if (selection[row.id]) {
2298
- return true;
2299
- }
2306
+ function isRowSelected(row, selection) {
2307
+ var _selection$row$id;
2300
2308
 
2309
+ return (_selection$row$id = selection[row.id]) != null ? _selection$row$id : false;
2310
+ }
2311
+ function isSubRowSelected(row, selection, table) {
2301
2312
  if (row.subRows && row.subRows.length) {
2302
2313
  let allChildrenSelected = true;
2303
2314
  let someSelected = false;
@@ -2313,7 +2324,7 @@
2313
2324
  allChildrenSelected = false;
2314
2325
  }
2315
2326
  });
2316
- return allChildrenSelected ? true : someSelected ? 'some' : false;
2327
+ return allChildrenSelected ? 'all' : someSelected ? 'some' : false;
2317
2328
  }
2318
2329
 
2319
2330
  return false;
@@ -3780,6 +3791,7 @@
3780
3791
  exports.getSortedRowModel = getSortedRowModel;
3781
3792
  exports.isFunction = isFunction;
3782
3793
  exports.isRowSelected = isRowSelected;
3794
+ exports.isSubRowSelected = isSubRowSelected;
3783
3795
  exports.makeStateUpdater = makeStateUpdater;
3784
3796
  exports.memo = memo;
3785
3797
  exports.noop = noop;