@redsift/table 11.8.2 → 11.8.3-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.
@@ -1,9 +1,9 @@
1
- import { a as _objectWithoutProperties, b as _extends$1 } from './_rollupPluginBabelHelpers.js';
1
+ import { b as _objectWithoutProperties, a as _extends$1 } from './_rollupPluginBabelHelpers.js';
2
2
  import * as React from 'react';
3
3
  import React__default, { forwardRef } from 'react';
4
4
  import { ButtonsColorPalette, IconButton, Button, Checkbox, Icon } from '@redsift/design-system';
5
5
  import { mdiFilterVariant, mdiViewColumn, mdiChevronUp, mdiChevronDown, mdiViewHeadline, mdiViewSequential, mdiViewStream, mdiChevronRight, mdiTrayArrowDown } from '@redsift/icons';
6
- import { f as generateUtilityClass, g as generateUtilityClasses, _ as _objectWithoutPropertiesLoose, o as ownerDocument, n as Portal, a as _extends, p as chainPropTypes, P as PropTypes, H as HTMLElementType, m as refType, q as useForkRef, t as useEnhancedEffect, v as useSlotProps, l as composeClasses, w as useClassNamesOverride, h as styled, x as useTheme, j as useThemeProps } from './Portal.js';
6
+ import { j as generateUtilityClass, h as generateUtilityClasses, _ as _objectWithoutPropertiesLoose, p as ownerDocument, q as Portal, a as _extends, t as chainPropTypes, P as PropTypes, H as HTMLElementType, o as refType, v as useForkRef, w as useEnhancedEffect, x as useSlotProps, n as composeClasses, y as useClassNamesOverride, k as styled, f as useTheme, l as useThemeProps } from './Portal.js';
7
7
  import { j as jsxRuntimeExports } from './jsx-runtime.js';
8
8
 
9
9
  var top = 'top';
@@ -1,9 +1,9 @@
1
- import { b as _extends$1 } from './_rollupPluginBabelHelpers.js';
1
+ import { a as _extends$1 } from './_rollupPluginBabelHelpers.js';
2
2
  import * as React from 'react';
3
3
  import React__default, { Children, isValidElement, cloneElement, createElement } from 'react';
4
4
  import { Flexbox, Text, LinkButton } from '@redsift/design-system';
5
- import { gridPaginatedVisibleSortedGridRowEntriesSelector, gridPaginatedVisibleSortedGridRowIdsSelector, gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector } from '@mui/x-data-grid-pro';
6
- import { p as chainPropTypes, P as PropTypes, o as ownerDocument, t as useEnhancedEffect, u as useTheme$1, y as defaultTheme, T as THEME_ID, q as useForkRef, z as exactProp, f as generateUtilityClass, g as generateUtilityClasses, _ as _objectWithoutPropertiesLoose, a as _extends, v as useSlotProps, n as Portal, H as HTMLElementType, l as composeClasses, w as useClassNamesOverride, h as styled, j as useThemeProps, c as clsx, A as isHostComponent, m as refType, k as capitalize, B as formatMuiErrorMessage, r as rootShouldForwardProp, D as deepmerge, E as reactIsExports, F as resolveComponentProps, G as alpha, I as slotShouldForwardProp, J as lighten, K as darken } from './Portal.js';
5
+ import { gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector } from '@mui/x-data-grid-pro';
6
+ import { t as chainPropTypes, P as PropTypes, p as ownerDocument, w as useEnhancedEffect, u as useTheme$1, z as defaultTheme, T as THEME_ID, v as useForkRef, e as exactProp, j as generateUtilityClass, h as generateUtilityClasses, _ as _objectWithoutPropertiesLoose, a as _extends, x as useSlotProps, q as Portal, H as HTMLElementType, n as composeClasses, y as useClassNamesOverride, k as styled, l as useThemeProps, c as clsx, A as isHostComponent, o as refType, m as capitalize, B as formatMuiErrorMessage, r as rootShouldForwardProp, D as deepmerge, E as reactIsExports, F as resolveComponentProps, G as alpha, I as slotShouldForwardProp, J as lighten, K as darken } from './Portal.js';
7
7
  import { j as jsxRuntimeExports } from './jsx-runtime.js';
8
8
  import { Global, keyframes } from '@emotion/react';
9
9
  import * as ReactDOM from 'react-dom';
@@ -10321,19 +10321,22 @@ process.env.NODE_ENV !== "production" ? TablePagination.propTypes /* remove-prop
10321
10321
  var TablePagination$1 = TablePagination;
10322
10322
 
10323
10323
  const onServerSideSelectionStatusChange = (newSelectionModel, apiRef, selectionStatus, isRowSelectable, page, pageSize) => {
10324
- const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
10325
- let {
10326
- model
10327
- } = _ref;
10328
- return isRowSelectable({
10329
- row: model
10330
- });
10331
- }).map(_ref2 => {
10324
+ // We can't rely on the gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef) function to fetch the list of visible rows
10325
+ // as it doesn't work properly when all rows are selected on a page via checkbox
10326
+ // and then navigate to another page.
10327
+ // So instead we fetch the visible rows directly from the apiRef state, since the logic in `onServerSideSelectionStatusChange` applies
10328
+ // to server-side pagination only and visible rows are all loaded rows.
10329
+ // The bug may have been latent for several MUI releases now, as it seems to have been fixed in MUI v7.
10330
+ // See https://github.com/mui/mui-x/pull/14083
10331
+ const rowsInPage = Array.from(apiRef.current.getVisibleRowModels().values());
10332
+ const selectableRowsInPage = isRowSelectable ? rowsInPage.filter(model => isRowSelectable({
10333
+ row: model
10334
+ })).map(_ref => {
10332
10335
  let {
10333
10336
  id
10334
- } = _ref2;
10337
+ } = _ref;
10335
10338
  return id;
10336
- }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
10339
+ }) : rowsInPage;
10337
10340
  const numberOfSelectableRowsInPage = selectableRowsInPage.length;
10338
10341
  const numberOfSelectedRows = newSelectionModel.length;
10339
10342
  const selectedRowsInPage = selectableRowsInPage.filter(rowId => newSelectionModel.includes(rowId));
@@ -10375,18 +10378,20 @@ const onServerSideSelectionStatusChange = (newSelectionModel, apiRef, selectionS
10375
10378
  };
10376
10379
  }
10377
10380
  };
10378
- const ServerSideControlledPagination = _ref3 => {
10381
+ const ServerSideControlledPagination = _ref2 => {
10379
10382
  let {
10380
10383
  selectionStatus,
10381
10384
  displaySelection,
10382
10385
  displayPagination,
10383
- paginationModel,
10384
- onPaginationModelChange,
10385
- pageSizeOptions,
10386
+ page,
10387
+ onPageChange,
10388
+ pageSize,
10389
+ onPageSizeChange,
10386
10390
  displayRowsPerPage,
10391
+ rowsPerPageOptions,
10387
10392
  paginationProps,
10388
10393
  rowCount
10389
- } = _ref3;
10394
+ } = _ref2;
10390
10395
  const totalNumberOfRowsInTable = rowCount;
10391
10396
  const totalRowsLabel = `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`;
10392
10397
  const pageRowsLabel = `All ${selectionStatus.numberOfSelectedRowsInPage} selectable rows on this page are selected${selectionStatus.numberOfSelectedRows != selectionStatus.numberOfSelectedRowsInPage ? ` (${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected in total)` : ''}.`;
@@ -10402,17 +10407,13 @@ const ServerSideControlledPagination = _ref3 => {
10402
10407
  }, totalRowsLabel) : /*#__PURE__*/React__default.createElement(Text, null)) : null, displayPagination ? /*#__PURE__*/React__default.createElement(TablePagination$1, _extends$1({
10403
10408
  component: "div",
10404
10409
  count: totalNumberOfRowsInTable,
10405
- page: paginationModel.page,
10406
- onPageChange: (event, page) => onPaginationModelChange({
10407
- page,
10408
- pageSize: paginationModel.pageSize
10409
- }),
10410
- rowsPerPage: paginationModel.pageSize,
10411
- onRowsPerPageChange: event => onPaginationModelChange({
10412
- page: paginationModel.page,
10413
- pageSize: parseInt(event.target.value, 10)
10414
- }),
10415
- rowsPerPageOptions: displayRowsPerPage ? pageSizeOptions : []
10410
+ page: page,
10411
+ onPageChange: (event, newPage) => onPageChange(newPage),
10412
+ rowsPerPage: pageSize,
10413
+ onRowsPerPageChange: event => {
10414
+ onPageSizeChange(parseInt(event.target.value, 10));
10415
+ },
10416
+ rowsPerPageOptions: displayRowsPerPage ? rowsPerPageOptions : []
10416
10417
  }, paginationProps)) : null);
10417
10418
  };
10418
10419
 
@@ -10438,9 +10439,11 @@ const ControlledPagination = _ref3 => {
10438
10439
  displayPagination = false,
10439
10440
  selectionStatus,
10440
10441
  apiRef,
10441
- paginationModel,
10442
- onPaginationModelChange,
10443
- pageSizeOptions,
10442
+ page,
10443
+ onPageChange,
10444
+ pageSize,
10445
+ onPageSizeChange,
10446
+ rowsPerPageOptions,
10444
10447
  isRowSelectable,
10445
10448
  paginationProps
10446
10449
  } = _ref3;
@@ -10470,21 +10473,13 @@ const ControlledPagination = _ref3 => {
10470
10473
  }, `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`) : /*#__PURE__*/React__default.createElement(Text, null)) : null, displayPagination ? /*#__PURE__*/React__default.createElement(TablePagination$1, _extends$1({
10471
10474
  component: "div",
10472
10475
  count: numberOfFilteredRowsInTable,
10473
- page: paginationModel.page,
10474
- onPageChange: (event, page) => {
10475
- onPaginationModelChange({
10476
- page,
10477
- pageSize: paginationModel.pageSize
10478
- });
10479
- },
10480
- rowsPerPage: paginationModel.pageSize,
10476
+ page: page,
10477
+ onPageChange: (event, newPage) => onPageChange(newPage),
10478
+ rowsPerPage: pageSize,
10481
10479
  onRowsPerPageChange: event => {
10482
- onPaginationModelChange({
10483
- page: paginationModel.page,
10484
- pageSize: parseInt(event.target.value, 10)
10485
- });
10480
+ onPageSizeChange(parseInt(event.target.value, 10));
10486
10481
  },
10487
- rowsPerPageOptions: displayRowsPerPage ? pageSizeOptions : []
10482
+ rowsPerPageOptions: displayRowsPerPage ? rowsPerPageOptions : []
10488
10483
  }, paginationProps)) : null);
10489
10484
  };
10490
10485