@redsift/table 9.2.0-muiv5 → 9.2.1-muiv5

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.
Files changed (3) hide show
  1. package/index.js +67 -35
  2. package/index.js.map +1 -1
  3. package/package.json +2 -2
package/index.js CHANGED
@@ -24165,14 +24165,29 @@ process.env.NODE_ENV !== "production" ? TablePagination.propTypes /* remove-prop
24165
24165
  } : void 0;
24166
24166
  var TablePagination$1 = TablePagination;
24167
24167
 
24168
- const _excluded$1 = ["apiRef", "autoHeight", "className", "components", "componentsProps", "filterModel", "height", "hideToolbar", "initialState", "license", "onFilterModelChange", "onPageChange", "onPageSizeChange", "onSelectionModelChange", "page", "pageSize", "pagination", "paginationPlacement", "rows", "rowsPerPageOptions", "sx"];
24168
+ const _excluded$1 = ["apiRef", "autoHeight", "className", "components", "componentsProps", "filterModel", "height", "hideToolbar", "initialState", "isRowSelectable", "license", "onFilterModelChange", "onPageChange", "onPageSizeChange", "onSelectionModelChange", "page", "pageSize", "pagination", "paginationPlacement", "rows", "rowsPerPageOptions", "sx"];
24169
24169
  const COMPONENT_NAME$1 = 'DataGrid';
24170
24170
  const CLASSNAME$1 = 'redsift-datagrid';
24171
24171
  const DEFAULT_PROPS = {
24172
24172
  license: process.env.MUI_LICENSE_KEY,
24173
24173
  paginationPlacement: 'both'
24174
24174
  };
24175
- const Pagination = _ref => {
24175
+ const getSelectableRowsInTable = (apiRef, isRowSelectable) => {
24176
+ return isRowSelectable && typeof isRowSelectable === 'function' ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref => {
24177
+ let {
24178
+ model
24179
+ } = _ref;
24180
+ return isRowSelectable === null || isRowSelectable === void 0 ? void 0 : isRowSelectable({
24181
+ row: model
24182
+ });
24183
+ }).map(_ref2 => {
24184
+ let {
24185
+ id
24186
+ } = _ref2;
24187
+ return id;
24188
+ }) : gridFilteredSortedRowIdsSelector(apiRef);
24189
+ };
24190
+ const Pagination = _ref3 => {
24176
24191
  let {
24177
24192
  displaySelection = false,
24178
24193
  displayRowsPerPage = false,
@@ -24183,9 +24198,13 @@ const Pagination = _ref => {
24183
24198
  onPageChange,
24184
24199
  pageSize,
24185
24200
  onPageSizeChange,
24186
- rowsPerPageOptions
24187
- } = _ref;
24188
- const rowsCount = apiRef.current.state.pagination.rowCount;
24201
+ rowsPerPageOptions,
24202
+ isRowSelectable
24203
+ } = _ref3;
24204
+ const filteredRowsInTable = getSelectableRowsInTable(apiRef);
24205
+ const selectableRowsInTable = getSelectableRowsInTable(apiRef, isRowSelectable);
24206
+ const numberOfFilteredRowsInTable = filteredRowsInTable.length;
24207
+ const numberOfSelectableRowsInTable = selectableRowsInTable.length;
24189
24208
  return /*#__PURE__*/React__default.createElement(Flexbox, {
24190
24209
  flexDirection: "row",
24191
24210
  alignItems: "center",
@@ -24193,13 +24212,13 @@ const Pagination = _ref => {
24193
24212
  marginBottom: "7px"
24194
24213
  }, displaySelection ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, selectionStatus.type === 'page' ? /*#__PURE__*/React__default.createElement(Text, {
24195
24214
  fontSize: "14px"
24196
- }, `All ${selectionStatus.numberOfSelectedRows}${rowsCount !== selectionStatus.numberOfSelectableRowsInTable ? ' selectable' : ''} rows on this page are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
24215
+ }, `All ${selectionStatus.numberOfSelectedRows}${numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''} rows on this page are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
24197
24216
  onClick: () => {
24198
- apiRef.current.selectRows(apiRef.current.getAllRowIds());
24217
+ apiRef.current.selectRows(numberOfSelectableRowsInTable ? selectableRowsInTable : apiRef.current.getAllRowIds());
24199
24218
  }
24200
- }, "Select all ", selectionStatus.numberOfSelectableRowsInTable, rowsCount !== selectionStatus.numberOfSelectableRowsInTable ? ' selectable' : '', " rows in the table.")) : selectionStatus.type === 'table' ? /*#__PURE__*/React__default.createElement(Text, {
24219
+ }, "Select all ", numberOfSelectableRowsInTable, numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : '', " rows in the table.")) : selectionStatus.type === 'table' ? /*#__PURE__*/React__default.createElement(Text, {
24201
24220
  fontSize: "14px"
24202
- }, `All ${selectionStatus.numberOfSelectedRows}${rowsCount !== selectionStatus.numberOfSelectableRowsInTable ? ' selectable' : ''} rows in the table are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
24221
+ }, `All ${selectionStatus.numberOfSelectedRows}${numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''} rows in the table are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
24203
24222
  onClick: () => {
24204
24223
  apiRef.current.selectRows([], false, true);
24205
24224
  }
@@ -24207,11 +24226,13 @@ const Pagination = _ref => {
24207
24226
  fontSize: "14px"
24208
24227
  }, `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`) : /*#__PURE__*/React__default.createElement(Text, null)) : null, displayPagination ? /*#__PURE__*/React__default.createElement(TablePagination$1, {
24209
24228
  component: "div",
24210
- count: rowsCount,
24229
+ count: numberOfFilteredRowsInTable,
24211
24230
  page: page,
24212
24231
  onPageChange: (event, newPage) => onPageChange(newPage),
24213
24232
  rowsPerPage: pageSize,
24214
- onRowsPerPageChange: event => onPageSizeChange(parseInt(event.target.value, 10)),
24233
+ onRowsPerPageChange: event => {
24234
+ onPageSizeChange(parseInt(event.target.value, 10));
24235
+ },
24215
24236
  rowsPerPageOptions: displayRowsPerPage ? rowsPerPageOptions : []
24216
24237
  }) : null);
24217
24238
  };
@@ -24228,6 +24249,7 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24228
24249
  height: propsHeight,
24229
24250
  hideToolbar,
24230
24251
  initialState,
24252
+ isRowSelectable,
24231
24253
  license,
24232
24254
  onFilterModelChange: propsOnFilterModelChange,
24233
24255
  onPageChange: propsOnPageChange,
@@ -24249,9 +24271,7 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24249
24271
  const height = propsHeight !== null && propsHeight !== void 0 ? propsHeight : autoHeight ? undefined : '500px';
24250
24272
  const selectionStatus = useRef({
24251
24273
  type: 'none',
24252
- numberOfSelectedRows: 0,
24253
- numberOfSelectableRowsInPage: 0,
24254
- numberOfSelectableRowsInTable: 0
24274
+ numberOfSelectedRows: 0
24255
24275
  });
24256
24276
  const [filterModel, setFilterModel] = useState(propsFilterModel);
24257
24277
  useEffect(() => {
@@ -24274,13 +24294,18 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24274
24294
  }
24275
24295
  };
24276
24296
  const onPageSizeChange = pageSize => {
24297
+ onPageChange(0);
24277
24298
  if (propsOnPageSizeChange) {
24278
24299
  propsOnPageSizeChange(pageSize, undefined);
24279
24300
  } else {
24280
24301
  setPageSize(pageSize);
24281
- setPage(0);
24282
24302
  }
24283
24303
  };
24304
+ useEffect(() => {
24305
+ if (propsPageSize) {
24306
+ setPageSize(propsPageSize);
24307
+ }
24308
+ }, [propsPageSize]);
24284
24309
  if (!Array.isArray(rows)) {
24285
24310
  return null;
24286
24311
  }
@@ -24346,7 +24371,8 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24346
24371
  onPageChange: onPageChange,
24347
24372
  pageSize: pageSize,
24348
24373
  onPageSizeChange: onPageSizeChange,
24349
- rowsPerPageOptions: rowsPerPageOptions
24374
+ rowsPerPageOptions: rowsPerPageOptions,
24375
+ isRowSelectable: isRowSelectable
24350
24376
  }) : null);
24351
24377
  },
24352
24378
  Pagination: props => pagination ? /*#__PURE__*/React__default.createElement(Pagination, _extends$2({}, props, {
@@ -24359,7 +24385,8 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24359
24385
  onPageChange: onPageChange,
24360
24386
  pageSize: pageSize,
24361
24387
  onPageSizeChange: onPageSizeChange,
24362
- rowsPerPageOptions: rowsPerPageOptions
24388
+ rowsPerPageOptions: rowsPerPageOptions,
24389
+ isRowSelectable: isRowSelectable
24363
24390
  })) : null
24364
24391
  }),
24365
24392
  componentsProps: _objectSpread2(_objectSpread2({}, componentsProps), {}, {
@@ -24367,6 +24394,7 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24367
24394
  }),
24368
24395
  filterModel: filterModel,
24369
24396
  initialState: initialState,
24397
+ isRowSelectable: isRowSelectable,
24370
24398
  onFilterModelChange: onFilterModelChange,
24371
24399
  pagination: pagination,
24372
24400
  rows: rows,
@@ -24377,24 +24405,36 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24377
24405
  onPageSizeChange: onPageSizeChange,
24378
24406
  onSelectionModelChange: (newSelectionModel, details) => {
24379
24407
  if (pagination) {
24380
- const numberOfSelectableRowsInPage = props.isRowSelectable && typeof props.isRowSelectable === 'function' ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref2 => {
24408
+ const selectableRowsInPage = props.isRowSelectable && typeof props.isRowSelectable === 'function' ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref4 => {
24381
24409
  var _props$isRowSelectabl;
24382
24410
  let {
24383
24411
  model
24384
- } = _ref2;
24412
+ } = _ref4;
24385
24413
  return (_props$isRowSelectabl = props.isRowSelectable) === null || _props$isRowSelectabl === void 0 ? void 0 : _props$isRowSelectabl.call(props, {
24386
24414
  row: model
24387
24415
  });
24388
- }).length : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef).length;
24389
- const numberOfSelectableRowsInTable = props.isRowSelectable && typeof props.isRowSelectable === 'function' ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref3 => {
24416
+ }).map(_ref5 => {
24417
+ let {
24418
+ id
24419
+ } = _ref5;
24420
+ return id;
24421
+ }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
24422
+ const numberOfSelectableRowsInPage = selectableRowsInPage.length;
24423
+ const selectableRowsInTable = props.isRowSelectable && typeof props.isRowSelectable === 'function' ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref6 => {
24390
24424
  var _props$isRowSelectabl2;
24391
24425
  let {
24392
24426
  model
24393
- } = _ref3;
24427
+ } = _ref6;
24394
24428
  return (_props$isRowSelectabl2 = props.isRowSelectable) === null || _props$isRowSelectabl2 === void 0 ? void 0 : _props$isRowSelectabl2.call(props, {
24395
24429
  row: model
24396
24430
  });
24397
- }).length : gridFilteredSortedRowIdsSelector(apiRef).length;
24431
+ }).map(_ref7 => {
24432
+ let {
24433
+ id
24434
+ } = _ref7;
24435
+ return id;
24436
+ }) : gridFilteredSortedRowIdsSelector(apiRef);
24437
+ const numberOfSelectableRowsInTable = selectableRowsInTable.length;
24398
24438
  const numberOfSelectedRows = newSelectionModel.length;
24399
24439
  if (selectionStatus.current.type === 'table' && numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage) {
24400
24440
  setTimeout(() => {
@@ -24404,30 +24444,22 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
24404
24444
  if (numberOfSelectedRows === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
24405
24445
  selectionStatus.current = {
24406
24446
  type: 'page',
24407
- numberOfSelectedRows,
24408
- numberOfSelectableRowsInPage,
24409
- numberOfSelectableRowsInTable
24447
+ numberOfSelectedRows
24410
24448
  };
24411
24449
  } else if (numberOfSelectedRows === numberOfSelectableRowsInTable && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
24412
24450
  selectionStatus.current = {
24413
24451
  type: 'table',
24414
- numberOfSelectedRows,
24415
- numberOfSelectableRowsInPage,
24416
- numberOfSelectableRowsInTable
24452
+ numberOfSelectedRows
24417
24453
  };
24418
24454
  } else if (numberOfSelectedRows > 0) {
24419
24455
  selectionStatus.current = {
24420
24456
  type: 'other',
24421
- numberOfSelectedRows,
24422
- numberOfSelectableRowsInPage,
24423
- numberOfSelectableRowsInTable
24457
+ numberOfSelectedRows
24424
24458
  };
24425
24459
  } else {
24426
24460
  selectionStatus.current = {
24427
24461
  type: 'none',
24428
- numberOfSelectedRows,
24429
- numberOfSelectableRowsInPage,
24430
- numberOfSelectableRowsInTable
24462
+ numberOfSelectedRows
24431
24463
  };
24432
24464
  }
24433
24465
  }