@redsift/table 11.6.0-muiv5-alpha.4 → 11.6.0-muiv5-alpha.6
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/_internal/BaseComponents.d.ts +3 -0
- package/_internal/BaseComponents.js +3 -0
- package/_internal/BaseComponents.js.map +1 -0
- package/_internal/BasePopper.js +2448 -0
- package/_internal/BasePopper.js.map +1 -0
- package/_internal/BaseTextField.d.ts +15 -0
- package/{components/BaseComponents → _internal}/BaseTextField.js +1 -1
- package/_internal/BaseTextField.js.map +1 -0
- package/_internal/ControlledPagination.js +10484 -0
- package/_internal/ControlledPagination.js.map +1 -0
- package/_internal/DataGrid.d.ts +6 -0
- package/{components/DataGrid/DataGrid.d.ts → _internal/DataGrid.d2.ts} +2 -2
- package/_internal/DataGrid.js +2 -0
- package/_internal/DataGrid.js.map +1 -0
- package/{components/DataGrid/DataGrid.js → _internal/DataGrid2.js} +9 -17
- package/_internal/DataGrid2.js.map +1 -0
- package/_internal/GridToolbarFilterSemanticField.d.ts +5 -0
- package/{components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.d.ts → _internal/GridToolbarFilterSemanticField.d2.ts} +2 -2
- package/_internal/GridToolbarFilterSemanticField.js +2 -0
- package/_internal/GridToolbarFilterSemanticField.js.map +1 -0
- package/_internal/GridToolbarFilterSemanticField2.js +5581 -0
- package/_internal/GridToolbarFilterSemanticField2.js.map +1 -0
- package/_internal/Pagination.d.ts +7 -0
- package/_internal/Pagination.js +2 -0
- package/_internal/Pagination.js.map +1 -0
- package/_internal/Portal.js +4363 -0
- package/_internal/Portal.js.map +1 -0
- package/{components/Pagination → _internal}/ServerSideControlledPagination.d.ts +19 -3
- package/_internal/StatefulDataGrid.d.ts +6 -0
- package/{components/StatefulDataGrid/types.d.ts → _internal/StatefulDataGrid.d2.ts} +5 -2
- package/_internal/StatefulDataGrid.js +2 -0
- package/_internal/StatefulDataGrid.js.map +1 -0
- package/{utils/urlLocalStorageSync.js → _internal/StatefulDataGrid2.js} +671 -5
- package/_internal/StatefulDataGrid2.js.map +1 -0
- package/_internal/TextCell.d.ts +3 -0
- package/{components/TextCell/types.d.ts → _internal/TextCell.d2.ts} +7 -2
- package/_internal/TextCell.js +2 -0
- package/_internal/TextCell.js.map +1 -0
- package/{components/TextCell/TextCell.js → _internal/TextCell2.js} +22 -4
- package/_internal/TextCell2.js.map +1 -0
- package/_internal/Toolbar.d.ts +4 -0
- package/{components/Toolbar/types.d.ts → _internal/Toolbar.d2.ts} +19 -3
- package/_internal/Toolbar.js +2 -0
- package/_internal/Toolbar.js.map +1 -0
- package/{components/Toolbar/Toolbar.js → _internal/Toolbar2.js} +18 -5
- package/_internal/Toolbar2.js.map +1 -0
- package/_internal/ToolbarWrapper.d.ts +6 -0
- package/{components/ToolbarWrapper/ToolbarWrapper.d.ts → _internal/ToolbarWrapper.d2.ts} +2 -2
- package/_internal/ToolbarWrapper.js +2 -0
- package/_internal/ToolbarWrapper.js.map +1 -0
- package/{components/ToolbarWrapper/ToolbarWrapper.js → _internal/ToolbarWrapper2.js} +4 -5
- package/_internal/ToolbarWrapper2.js.map +1 -0
- package/{_virtual → _internal}/_rollupPluginBabelHelpers.js +1 -1
- package/_internal/jsx-runtime.js +1342 -0
- package/_internal/jsx-runtime.js.map +1 -0
- package/{components/DataGrid → _internal}/types.d.ts +1 -2
- package/{components/GridToolbarFilterSemanticField/types.d.ts → _internal/types.d2.ts} +1 -1
- package/_internal/useControlledDatagridState.js +2175 -0
- package/_internal/useControlledDatagridState.js.map +1 -0
- package/index.d.ts +405 -39
- package/index.js +17 -36
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/_virtual/_commonjsHelpers.js +0 -6
- package/_virtual/_commonjsHelpers.js.map +0 -1
- package/_virtual/index.js +0 -4
- package/_virtual/index.js.map +0 -1
- package/_virtual/index2.js +0 -4
- package/_virtual/index2.js.map +0 -1
- package/_virtual/index3.js +0 -4
- package/_virtual/index3.js.map +0 -1
- package/_virtual/jsx-runtime.js +0 -4
- package/_virtual/jsx-runtime.js.map +0 -1
- package/_virtual/react-is.development.js +0 -4
- package/_virtual/react-is.development.js.map +0 -1
- package/_virtual/react-is.development2.js +0 -4
- package/_virtual/react-is.development2.js.map +0 -1
- package/_virtual/react-is.production.min.js +0 -4
- package/_virtual/react-is.production.min.js.map +0 -1
- package/_virtual/react-is.production.min2.js +0 -4
- package/_virtual/react-is.production.min2.js.map +0 -1
- package/_virtual/react-jsx-runtime.development.js +0 -4
- package/_virtual/react-jsx-runtime.development.js.map +0 -1
- package/_virtual/react-jsx-runtime.production.min.js +0 -4
- package/_virtual/react-jsx-runtime.production.min.js.map +0 -1
- package/components/BaseComponents/BaseButton.d.ts +0 -5
- package/components/BaseComponents/BaseButton.js +0 -41
- package/components/BaseComponents/BaseButton.js.map +0 -1
- package/components/BaseComponents/BaseCheckbox.d.ts +0 -5
- package/components/BaseComponents/BaseCheckbox.js +0 -24
- package/components/BaseComponents/BaseCheckbox.js.map +0 -1
- package/components/BaseComponents/BaseIcon.d.ts +0 -7
- package/components/BaseComponents/BaseIcon.js +0 -33
- package/components/BaseComponents/BaseIcon.js.map +0 -1
- package/components/BaseComponents/BasePopper.d.ts +0 -5
- package/components/BaseComponents/BasePopper.js +0 -13
- package/components/BaseComponents/BasePopper.js.map +0 -1
- package/components/BaseComponents/BaseTextField.d.ts +0 -5
- package/components/BaseComponents/BaseTextField.js.map +0 -1
- package/components/DataGrid/DataGrid.js.map +0 -1
- package/components/DataGrid/styles.js +0 -74
- package/components/DataGrid/styles.js.map +0 -1
- package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js +0 -183
- package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js.map +0 -1
- package/components/GridToolbarFilterSemanticField/styles.js +0 -20
- package/components/GridToolbarFilterSemanticField/styles.js.map +0 -1
- package/components/Pagination/ControlledPagination.d.ts +0 -21
- package/components/Pagination/ControlledPagination.js +0 -74
- package/components/Pagination/ControlledPagination.js.map +0 -1
- package/components/Pagination/ServerSideControlledPagination.js +0 -102
- package/components/Pagination/ServerSideControlledPagination.js.map +0 -1
- package/components/StatefulDataGrid/StatefulDataGrid.d.ts +0 -6
- package/components/StatefulDataGrid/StatefulDataGrid.js +0 -373
- package/components/StatefulDataGrid/StatefulDataGrid.js.map +0 -1
- package/components/TextCell/TextCell.d.ts +0 -9
- package/components/TextCell/TextCell.js.map +0 -1
- package/components/TextCell/styles.js +0 -22
- package/components/TextCell/styles.js.map +0 -1
- package/components/Toolbar/Toolbar.d.ts +0 -20
- package/components/Toolbar/Toolbar.js.map +0 -1
- package/components/Toolbar/styles.js +0 -17
- package/components/Toolbar/styles.js.map +0 -1
- package/components/ToolbarWrapper/ToolbarWrapper.js.map +0 -1
- package/hooks/useControlledDatagridState.js +0 -109
- package/hooks/useControlledDatagridState.js.map +0 -1
- package/hooks/useFetchState.js +0 -34
- package/hooks/useFetchState.js.map +0 -1
- package/hooks/useStatefulTable.d.ts +0 -12
- package/hooks/useStatefulTable.js +0 -182
- package/hooks/useStatefulTable.js.map +0 -1
- package/hooks/useTableStates.js +0 -52
- package/hooks/useTableStates.js.map +0 -1
- package/packages/design-system/src/components/theme/context.js +0 -7
- package/packages/design-system/src/components/theme/context.js.map +0 -1
- package/packages/popovers/src/components/tooltip/Tooltip.js +0 -60
- package/packages/popovers/src/components/tooltip/Tooltip.js.map +0 -1
- package/packages/popovers/src/components/tooltip/context.js +0 -6
- package/packages/popovers/src/components/tooltip/context.js.map +0 -1
- package/packages/popovers/src/components/tooltip/types.js +0 -28
- package/packages/popovers/src/components/tooltip/types.js.map +0 -1
- package/packages/popovers/src/components/tooltip/useTooltip.js +0 -78
- package/packages/popovers/src/components/tooltip/useTooltip.js.map +0 -1
- package/packages/popovers/src/components/tooltip/useTooltipContext.js +0 -13
- package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +0 -1
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js +0 -79
- package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +0 -1
- package/packages/popovers/src/components/tooltip-content/styles.js +0 -127
- package/packages/popovers/src/components/tooltip-content/styles.js.map +0 -1
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +0 -47
- package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +0 -1
- package/utils/columnTypes/index.d.ts +0 -78
- package/utils/columnTypes/index.js +0 -49
- package/utils/columnTypes/index.js.map +0 -1
- package/utils/columns/detailPanelToggleColDef.d.ts +0 -5
- package/utils/columns/detailPanelToggleColDef.js +0 -8
- package/utils/columns/detailPanelToggleColDef.js.map +0 -1
- package/utils/fields/InputNumberInterval.js +0 -85
- package/utils/fields/InputNumberInterval.js.map +0 -1
- package/utils/gpt.d.ts +0 -3
- package/utils/gpt.js +0 -33
- package/utils/gpt.js.map +0 -1
- package/utils/localStorage.d.ts +0 -17
- package/utils/localStorage.js +0 -59
- package/utils/localStorage.js.map +0 -1
- package/utils/operators/index.d.ts +0 -68
- package/utils/operators/index.js +0 -52
- package/utils/operators/index.js.map +0 -1
- package/utils/operators/numeric/getGridNumericOperators.d.ts +0 -5
- package/utils/operators/numeric/getGridNumericOperators.js +0 -7
- package/utils/operators/numeric/getGridNumericOperators.js.map +0 -1
- package/utils/operators/numeric/isBetween.d.ts +0 -10
- package/utils/operators/numeric/isBetween.js +0 -28
- package/utils/operators/numeric/isBetween.js.map +0 -1
- package/utils/operators/string/doesNotContain.d.ts +0 -10
- package/utils/operators/string/doesNotContain.js +0 -25
- package/utils/operators/string/doesNotContain.js.map +0 -1
- package/utils/operators/string/doesNotEqual.d.ts +0 -10
- package/utils/operators/string/doesNotEqual.js +0 -25
- package/utils/operators/string/doesNotEqual.js.map +0 -1
- package/utils/operators/string/doesNotHave.d.ts +0 -16
- package/utils/operators/string/doesNotHave.js +0 -24
- package/utils/operators/string/doesNotHave.js.map +0 -1
- package/utils/operators/string/getGridStringOperators.d.ts +0 -5
- package/utils/operators/string/getGridStringOperators.js +0 -9
- package/utils/operators/string/getGridStringOperators.js.map +0 -1
- package/utils/operators/string/has.d.ts +0 -16
- package/utils/operators/string/has.js +0 -24
- package/utils/operators/string/has.js.map +0 -1
- package/utils/operators/string/hasOnly.d.ts +0 -16
- package/utils/operators/string/hasOnly.js +0 -24
- package/utils/operators/string/hasOnly.js.map +0 -1
- package/utils/operators/string/is.d.ts +0 -16
- package/utils/operators/string/is.js +0 -26
- package/utils/operators/string/is.js.map +0 -1
- package/utils/operators/string/isNot.d.ts +0 -16
- package/utils/operators/string/isNot.js +0 -26
- package/utils/operators/string/isNot.js.map +0 -1
- package/utils/operators/string-array/containsAnyOf.d.ts +0 -16
- package/utils/operators/string-array/containsAnyOf.js +0 -56
- package/utils/operators/string-array/containsAnyOf.js.map +0 -1
- package/utils/operators/string-array/doesNotHaveAnyOf.js +0 -26
- package/utils/operators/string-array/doesNotHaveAnyOf.js.map +0 -1
- package/utils/operators/string-array/endsWithAnyOf.d.ts +0 -10
- package/utils/operators/string-array/endsWithAnyOf.js +0 -31
- package/utils/operators/string-array/endsWithAnyOf.js.map +0 -1
- package/utils/operators/string-array/getGridStringArrayOperators.d.ts +0 -7
- package/utils/operators/string-array/getGridStringArrayOperators.js +0 -19
- package/utils/operators/string-array/getGridStringArrayOperators.js.map +0 -1
- package/utils/operators/string-array/hasAnyOf.d.ts +0 -16
- package/utils/operators/string-array/hasAnyOf.js +0 -28
- package/utils/operators/string-array/hasAnyOf.js.map +0 -1
- package/utils/operators/string-array/isAnyOf.d.ts +0 -16
- package/utils/operators/string-array/isAnyOf.js +0 -32
- package/utils/operators/string-array/isAnyOf.js.map +0 -1
- package/utils/operators/string-array/isNotAnyOf.d.ts +0 -10
- package/utils/operators/string-array/isNotAnyOf.js +0 -28
- package/utils/operators/string-array/isNotAnyOf.js.map +0 -1
- package/utils/operators/string-array/startsWithAnyOf.d.ts +0 -10
- package/utils/operators/string-array/startsWithAnyOf.js +0 -31
- package/utils/operators/string-array/startsWithAnyOf.js.map +0 -1
- package/utils/urlLocalStorageSync.d.ts +0 -73
- package/utils/urlLocalStorageSync.js.map +0 -1
- /package/{_virtual → _internal}/_rollupPluginBabelHelpers.js.map +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React, { MutableRefObject } from 'react';
|
|
2
|
-
import { SelectionStatus, DataGridProps } from '../DataGrid/types.js';
|
|
3
|
-
import { GridApiPro } from '@mui/x-data-grid-pro/models/gridApiPro';
|
|
4
|
-
|
|
5
|
-
type ControlledPaginationProps = {
|
|
6
|
-
displaySelection?: boolean;
|
|
7
|
-
displayRowsPerPage?: boolean;
|
|
8
|
-
displayPagination?: boolean;
|
|
9
|
-
selectionStatus: SelectionStatus;
|
|
10
|
-
apiRef: MutableRefObject<GridApiPro>;
|
|
11
|
-
page: number;
|
|
12
|
-
onPageChange: (page: number) => void;
|
|
13
|
-
pageSize: number;
|
|
14
|
-
onPageSizeChange: (pageSize: number) => void;
|
|
15
|
-
rowsPerPageOptions?: number[];
|
|
16
|
-
isRowSelectable?: DataGridProps['isRowSelectable'];
|
|
17
|
-
paginationProps?: DataGridProps['paginationProps'];
|
|
18
|
-
};
|
|
19
|
-
declare const ControlledPagination: React.FC<ControlledPaginationProps>;
|
|
20
|
-
|
|
21
|
-
export { ControlledPagination, ControlledPaginationProps };
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { Flexbox, Text, LinkButton } from '@redsift/design-system';
|
|
4
|
-
import { gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector } from '@mui/x-data-grid-pro';
|
|
5
|
-
import TablePagination from '../../node_modules/@mui/material/TablePagination/TablePagination.js';
|
|
6
|
-
|
|
7
|
-
const getSelectableRowsInTable = (apiRef, isRowSelectable) => {
|
|
8
|
-
return isRowSelectable && typeof isRowSelectable === 'function' ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref => {
|
|
9
|
-
let {
|
|
10
|
-
model
|
|
11
|
-
} = _ref;
|
|
12
|
-
return isRowSelectable === null || isRowSelectable === void 0 ? void 0 : isRowSelectable({
|
|
13
|
-
row: model
|
|
14
|
-
});
|
|
15
|
-
}).map(_ref2 => {
|
|
16
|
-
let {
|
|
17
|
-
id
|
|
18
|
-
} = _ref2;
|
|
19
|
-
return id;
|
|
20
|
-
}) : gridFilteredSortedRowIdsSelector(apiRef);
|
|
21
|
-
};
|
|
22
|
-
const ControlledPagination = _ref3 => {
|
|
23
|
-
let {
|
|
24
|
-
displaySelection = false,
|
|
25
|
-
displayRowsPerPage = false,
|
|
26
|
-
displayPagination = false,
|
|
27
|
-
selectionStatus,
|
|
28
|
-
apiRef,
|
|
29
|
-
page,
|
|
30
|
-
onPageChange,
|
|
31
|
-
pageSize,
|
|
32
|
-
onPageSizeChange,
|
|
33
|
-
rowsPerPageOptions,
|
|
34
|
-
isRowSelectable,
|
|
35
|
-
paginationProps
|
|
36
|
-
} = _ref3;
|
|
37
|
-
const filteredRowsInTable = getSelectableRowsInTable(apiRef);
|
|
38
|
-
const selectableRowsInTable = getSelectableRowsInTable(apiRef, isRowSelectable);
|
|
39
|
-
const numberOfFilteredRowsInTable = filteredRowsInTable.length;
|
|
40
|
-
const numberOfSelectableRowsInTable = selectableRowsInTable.length;
|
|
41
|
-
return /*#__PURE__*/React__default.createElement(Flexbox, {
|
|
42
|
-
flexDirection: "row",
|
|
43
|
-
alignItems: "center",
|
|
44
|
-
justifyContent: "space-between",
|
|
45
|
-
marginBottom: "7px"
|
|
46
|
-
}, displaySelection ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, selectionStatus.type === 'page' ? /*#__PURE__*/React__default.createElement(Text, {
|
|
47
|
-
fontSize: "14px"
|
|
48
|
-
}, `All ${selectionStatus.numberOfSelectedRows}${numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''} rows on this page are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
|
|
49
|
-
onClick: () => {
|
|
50
|
-
apiRef.current.selectRows(numberOfSelectableRowsInTable ? selectableRowsInTable : apiRef.current.getAllRowIds());
|
|
51
|
-
}
|
|
52
|
-
}, "Select all ", numberOfSelectableRowsInTable, numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : '', " rows in the table.")) : selectionStatus.type === 'table' ? /*#__PURE__*/React__default.createElement(Text, {
|
|
53
|
-
fontSize: "14px"
|
|
54
|
-
}, `All ${selectionStatus.numberOfSelectedRows}${numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''} rows in the table are selected. `, /*#__PURE__*/React__default.createElement(LinkButton, {
|
|
55
|
-
onClick: () => {
|
|
56
|
-
apiRef.current.selectRows([], false, true);
|
|
57
|
-
}
|
|
58
|
-
}, "Clear selection.")) : selectionStatus.type === 'other' ? /*#__PURE__*/React__default.createElement(Text, {
|
|
59
|
-
fontSize: "14px"
|
|
60
|
-
}, `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`) : /*#__PURE__*/React__default.createElement(Text, null)) : null, displayPagination ? /*#__PURE__*/React__default.createElement(TablePagination, _extends({
|
|
61
|
-
component: "div",
|
|
62
|
-
count: numberOfFilteredRowsInTable,
|
|
63
|
-
page: page,
|
|
64
|
-
onPageChange: (event, newPage) => onPageChange(newPage),
|
|
65
|
-
rowsPerPage: pageSize,
|
|
66
|
-
onRowsPerPageChange: event => {
|
|
67
|
-
onPageSizeChange(parseInt(event.target.value, 10));
|
|
68
|
-
},
|
|
69
|
-
rowsPerPageOptions: displayRowsPerPage ? rowsPerPageOptions : []
|
|
70
|
-
}, paginationProps)) : null);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
export { ControlledPagination };
|
|
74
|
-
//# sourceMappingURL=ControlledPagination.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledPagination.js","sources":["../../../src/components/Pagination/ControlledPagination.tsx"],"sourcesContent":["import React, { MutableRefObject } from 'react';\nimport { Flexbox, LinkButton, Text } from '@redsift/design-system';\nimport {\n gridFilteredSortedRowEntriesSelector,\n gridFilteredSortedRowIdsSelector,\n GridRowParams,\n} from '@mui/x-data-grid-pro';\n\nimport { DataGridProps, SelectionStatus } from '../DataGrid/types';\nimport { GridApiPro } from '@mui/x-data-grid-pro/models/gridApiPro';\nimport TablePagination from '@mui/material/TablePagination';\n\nconst getSelectableRowsInTable = (\n apiRef: React.MutableRefObject<GridApiPro>,\n isRowSelectable?: DataGridProps['isRowSelectable']\n) => {\n return isRowSelectable && typeof isRowSelectable === 'function'\n ? gridFilteredSortedRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable?.({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridFilteredSortedRowIdsSelector(apiRef);\n};\n\nexport type ControlledPaginationProps = {\n displaySelection?: boolean;\n displayRowsPerPage?: boolean;\n displayPagination?: boolean;\n selectionStatus: SelectionStatus;\n apiRef: MutableRefObject<GridApiPro>;\n page: number;\n onPageChange: (page: number) => void;\n pageSize: number;\n onPageSizeChange: (pageSize: number) => void;\n rowsPerPageOptions?: number[];\n isRowSelectable?: DataGridProps['isRowSelectable'];\n paginationProps?: DataGridProps['paginationProps'];\n};\n\nexport const ControlledPagination: React.FC<ControlledPaginationProps> = ({\n displaySelection = false,\n displayRowsPerPage = false,\n displayPagination = false,\n selectionStatus,\n apiRef,\n page,\n onPageChange,\n pageSize,\n onPageSizeChange,\n rowsPerPageOptions,\n isRowSelectable,\n paginationProps,\n}) => {\n const filteredRowsInTable = getSelectableRowsInTable(apiRef);\n const selectableRowsInTable = getSelectableRowsInTable(apiRef, isRowSelectable);\n const numberOfFilteredRowsInTable = filteredRowsInTable.length;\n const numberOfSelectableRowsInTable = selectableRowsInTable.length;\n\n return (\n <Flexbox flexDirection=\"row\" alignItems=\"center\" justifyContent=\"space-between\" marginBottom=\"7px\">\n {displaySelection ? (\n <>\n {selectionStatus.type === 'page' ? (\n <Text fontSize=\"14px\">\n {`All ${selectionStatus.numberOfSelectedRows}${\n numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''\n } rows on this page are selected. `}\n <LinkButton\n onClick={() => {\n apiRef.current.selectRows(\n numberOfSelectableRowsInTable ? selectableRowsInTable : apiRef.current.getAllRowIds()\n );\n }}\n >\n Select all {numberOfSelectableRowsInTable}\n {numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''} rows in the table.\n </LinkButton>\n </Text>\n ) : selectionStatus.type === 'table' ? (\n <Text fontSize=\"14px\">\n {`All ${selectionStatus.numberOfSelectedRows}${\n numberOfFilteredRowsInTable !== numberOfSelectableRowsInTable ? ' selectable' : ''\n } rows in the table are selected. `}\n <LinkButton\n onClick={() => {\n apiRef.current.selectRows([], false, true);\n }}\n >\n Clear selection.\n </LinkButton>\n </Text>\n ) : selectionStatus.type === 'other' ? (\n <Text fontSize=\"14px\">{`${selectionStatus.numberOfSelectedRows} row${\n selectionStatus.numberOfSelectedRows > 1 ? 's' : ''\n } selected`}</Text>\n ) : (\n <Text />\n )}\n </>\n ) : null}\n {displayPagination ? (\n <TablePagination\n component=\"div\"\n count={numberOfFilteredRowsInTable}\n page={page}\n onPageChange={(event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => onPageChange(newPage)}\n rowsPerPage={pageSize}\n onRowsPerPageChange={(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n onPageSizeChange(parseInt(event.target.value, 10));\n }}\n rowsPerPageOptions={displayRowsPerPage ? rowsPerPageOptions : []}\n {...paginationProps}\n />\n ) : null}\n </Flexbox>\n );\n};\n"],"names":["getSelectableRowsInTable","apiRef","isRowSelectable","gridFilteredSortedRowEntriesSelector","filter","_ref","model","row","map","_ref2","id","gridFilteredSortedRowIdsSelector","ControlledPagination","_ref3","displaySelection","displayRowsPerPage","displayPagination","selectionStatus","page","onPageChange","pageSize","onPageSizeChange","rowsPerPageOptions","paginationProps","filteredRowsInTable","selectableRowsInTable","numberOfFilteredRowsInTable","length","numberOfSelectableRowsInTable","React","createElement","Flexbox","flexDirection","alignItems","justifyContent","marginBottom","Fragment","type","Text","fontSize","numberOfSelectedRows","LinkButton","onClick","current","selectRows","getAllRowIds","TablePagination","_extends","component","count","event","newPage","rowsPerPage","onRowsPerPageChange","parseInt","target","value"],"mappings":"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"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React__default from 'react';
|
|
3
|
-
import { Flexbox, Text } from '@redsift/design-system';
|
|
4
|
-
import { gridPaginatedVisibleSortedGridRowEntriesSelector, gridPaginatedVisibleSortedGridRowIdsSelector } from '@mui/x-data-grid-pro';
|
|
5
|
-
import TablePagination from '../../node_modules/@mui/material/TablePagination/TablePagination.js';
|
|
6
|
-
|
|
7
|
-
const onServerSideSelectionStatusChange = (newSelectionModel, apiRef, selectionStatus, isRowSelectable, page, pageSize) => {
|
|
8
|
-
const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
|
|
9
|
-
let {
|
|
10
|
-
model
|
|
11
|
-
} = _ref;
|
|
12
|
-
return isRowSelectable({
|
|
13
|
-
row: model
|
|
14
|
-
});
|
|
15
|
-
}).map(_ref2 => {
|
|
16
|
-
let {
|
|
17
|
-
id
|
|
18
|
-
} = _ref2;
|
|
19
|
-
return id;
|
|
20
|
-
}) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
|
|
21
|
-
const numberOfSelectableRowsInPage = selectableRowsInPage.length;
|
|
22
|
-
const numberOfSelectedRows = newSelectionModel.length;
|
|
23
|
-
const selectedRowsInPage = selectableRowsInPage.filter(rowId => newSelectionModel.includes(rowId));
|
|
24
|
-
const numberOfSelectedRowsInPage = selectedRowsInPage.length;
|
|
25
|
-
const isSamePage = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.page) == page;
|
|
26
|
-
const isSamePageSize = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.pageSize) == pageSize;
|
|
27
|
-
|
|
28
|
-
// if previous status is `page`,
|
|
29
|
-
// if page and pageSize didn't change
|
|
30
|
-
// and all the rows are selected, deselect all row
|
|
31
|
-
if (selectionStatus.current.type === 'page' && isSamePage && isSamePageSize && numberOfSelectedRowsInPage === numberOfSelectableRowsInPage) {
|
|
32
|
-
setTimeout(() => {
|
|
33
|
-
apiRef.current.selectRows(selectedRowsInPage, false, false);
|
|
34
|
-
}, 0);
|
|
35
|
-
}
|
|
36
|
-
if (numberOfSelectedRowsInPage === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage != 0) {
|
|
37
|
-
selectionStatus.current = {
|
|
38
|
-
type: 'page',
|
|
39
|
-
numberOfSelectedRows,
|
|
40
|
-
numberOfSelectedRowsInPage,
|
|
41
|
-
page,
|
|
42
|
-
pageSize
|
|
43
|
-
};
|
|
44
|
-
} else if (numberOfSelectedRows > 0) {
|
|
45
|
-
selectionStatus.current = {
|
|
46
|
-
type: 'other',
|
|
47
|
-
numberOfSelectedRows,
|
|
48
|
-
numberOfSelectedRowsInPage,
|
|
49
|
-
page,
|
|
50
|
-
pageSize
|
|
51
|
-
};
|
|
52
|
-
} else {
|
|
53
|
-
selectionStatus.current = {
|
|
54
|
-
type: 'none',
|
|
55
|
-
numberOfSelectedRows,
|
|
56
|
-
numberOfSelectedRowsInPage,
|
|
57
|
-
page,
|
|
58
|
-
pageSize
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const ServerSideControlledPagination = _ref3 => {
|
|
63
|
-
let {
|
|
64
|
-
selectionStatus,
|
|
65
|
-
displaySelection,
|
|
66
|
-
displayPagination,
|
|
67
|
-
page,
|
|
68
|
-
onPageChange,
|
|
69
|
-
pageSize,
|
|
70
|
-
onPageSizeChange,
|
|
71
|
-
displayRowsPerPage,
|
|
72
|
-
rowsPerPageOptions,
|
|
73
|
-
paginationProps,
|
|
74
|
-
rowCount
|
|
75
|
-
} = _ref3;
|
|
76
|
-
const totalNumberOfRowsInTable = rowCount;
|
|
77
|
-
const totalRowsLabel = `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`;
|
|
78
|
-
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)` : ''}.`;
|
|
79
|
-
return /*#__PURE__*/React__default.createElement(Flexbox, {
|
|
80
|
-
flexDirection: "row",
|
|
81
|
-
alignItems: "center",
|
|
82
|
-
justifyContent: "space-between",
|
|
83
|
-
marginBottom: "7px"
|
|
84
|
-
}, displaySelection ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, selectionStatus.type === 'page' && selectionStatus.numberOfSelectedRowsInPage != 0 ? /*#__PURE__*/React__default.createElement(Text, {
|
|
85
|
-
fontSize: "14px"
|
|
86
|
-
}, pageRowsLabel) : selectionStatus.type === 'other' ? /*#__PURE__*/React__default.createElement(Text, {
|
|
87
|
-
fontSize: "14px"
|
|
88
|
-
}, totalRowsLabel) : /*#__PURE__*/React__default.createElement(Text, null)) : null, displayPagination ? /*#__PURE__*/React__default.createElement(TablePagination, _extends({
|
|
89
|
-
component: "div",
|
|
90
|
-
count: totalNumberOfRowsInTable,
|
|
91
|
-
page: page,
|
|
92
|
-
onPageChange: (event, newPage) => onPageChange(newPage),
|
|
93
|
-
rowsPerPage: pageSize,
|
|
94
|
-
onRowsPerPageChange: event => {
|
|
95
|
-
onPageSizeChange(parseInt(event.target.value, 10));
|
|
96
|
-
},
|
|
97
|
-
rowsPerPageOptions: displayRowsPerPage ? rowsPerPageOptions : []
|
|
98
|
-
}, paginationProps)) : null);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
export { ServerSideControlledPagination, onServerSideSelectionStatusChange };
|
|
102
|
-
//# sourceMappingURL=ServerSideControlledPagination.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerSideControlledPagination.js","sources":["../../../src/components/Pagination/ServerSideControlledPagination.tsx"],"sourcesContent":["import React from 'react';\nimport { Flexbox, Text } from '@redsift/design-system';\n\nimport { DataGridProps, GridSelectionModel, SelectionStatus } from '../DataGrid/types';\nimport TablePagination from '@mui/material/TablePagination';\nimport { GridApiPro } from '@mui/x-data-grid-pro/models/gridApiPro';\nimport {\n gridPaginatedVisibleSortedGridRowEntriesSelector,\n gridPaginatedVisibleSortedGridRowIdsSelector,\n GridRowParams,\n} from '@mui/x-data-grid-pro';\n\nexport type ServerSideControlledPaginationProps = {\n displaySelection?: boolean;\n displayRowsPerPage?: boolean;\n displayPagination?: boolean;\n selectionStatus: SelectionStatus;\n page: number;\n onPageChange: (page: number) => void;\n pageSize: number;\n onPageSizeChange: (pageSize: number) => void;\n rowsPerPageOptions?: number[];\n paginationProps?: DataGridProps['paginationProps'];\n rowCount: number;\n loading?: boolean;\n};\n\nexport const onServerSideSelectionStatusChange = (\n newSelectionModel: GridSelectionModel,\n apiRef: React.MutableRefObject<GridApiPro>,\n selectionStatus: React.MutableRefObject<SelectionStatus>,\n isRowSelectable: ((params: GridRowParams<any>) => boolean) | undefined,\n page: number,\n pageSize: number\n) => {\n const selectableRowsInPage = isRowSelectable\n ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);\n const numberOfSelectableRowsInPage = selectableRowsInPage.length;\n\n const numberOfSelectedRows = newSelectionModel.length;\n\n const selectedRowsInPage = selectableRowsInPage.filter((rowId) => newSelectionModel.includes(rowId));\n const numberOfSelectedRowsInPage = selectedRowsInPage.length;\n\n const isSamePage = selectionStatus?.current.page == page;\n const isSamePageSize = selectionStatus?.current.pageSize == pageSize;\n\n // if previous status is `page`,\n // if page and pageSize didn't change\n // and all the rows are selected, deselect all row\n if (\n selectionStatus.current.type === 'page' &&\n isSamePage &&\n isSamePageSize &&\n numberOfSelectedRowsInPage === numberOfSelectableRowsInPage\n ) {\n setTimeout(() => {\n apiRef.current.selectRows(selectedRowsInPage, false, false);\n }, 0);\n }\n\n if (numberOfSelectedRowsInPage === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage != 0) {\n selectionStatus.current = {\n type: 'page',\n numberOfSelectedRows,\n numberOfSelectedRowsInPage,\n page,\n pageSize,\n };\n } else if (numberOfSelectedRows > 0) {\n selectionStatus.current = {\n type: 'other',\n numberOfSelectedRows,\n numberOfSelectedRowsInPage,\n page,\n pageSize,\n };\n } else {\n selectionStatus.current = {\n type: 'none',\n numberOfSelectedRows,\n numberOfSelectedRowsInPage,\n page,\n pageSize,\n };\n }\n};\n\nexport const ServerSideControlledPagination: React.FC<ServerSideControlledPaginationProps> = ({\n selectionStatus,\n displaySelection,\n displayPagination,\n page,\n onPageChange,\n pageSize,\n onPageSizeChange,\n displayRowsPerPage,\n rowsPerPageOptions,\n paginationProps,\n rowCount,\n}) => {\n const totalNumberOfRowsInTable = rowCount;\n\n const totalRowsLabel = `${selectionStatus.numberOfSelectedRows} row${\n selectionStatus.numberOfSelectedRows > 1 ? 's' : ''\n } selected`;\n\n const pageRowsLabel = `All ${selectionStatus.numberOfSelectedRowsInPage} selectable rows on this page are selected${\n selectionStatus.numberOfSelectedRows != selectionStatus.numberOfSelectedRowsInPage\n ? ` (${selectionStatus.numberOfSelectedRows} row${\n selectionStatus.numberOfSelectedRows > 1 ? 's' : ''\n } selected in total)`\n : ''\n }.`;\n\n return (\n <Flexbox flexDirection=\"row\" alignItems=\"center\" justifyContent=\"space-between\" marginBottom=\"7px\">\n {displaySelection ? (\n <>\n {selectionStatus.type === 'page' && selectionStatus.numberOfSelectedRowsInPage != 0 ? (\n <Text fontSize=\"14px\">{pageRowsLabel}</Text>\n ) : selectionStatus.type === 'other' ? (\n <Text fontSize=\"14px\">{totalRowsLabel}</Text>\n ) : (\n <Text />\n )}\n </>\n ) : null}\n {displayPagination ? (\n <TablePagination\n component=\"div\"\n count={totalNumberOfRowsInTable}\n page={page}\n onPageChange={(event: React.MouseEvent<HTMLButtonElement> | null, newPage: number) => onPageChange(newPage)}\n rowsPerPage={pageSize}\n onRowsPerPageChange={(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n onPageSizeChange(parseInt(event.target.value, 10));\n }}\n rowsPerPageOptions={displayRowsPerPage ? rowsPerPageOptions : []}\n {...paginationProps}\n />\n ) : null}\n </Flexbox>\n );\n};\n"],"names":["onServerSideSelectionStatusChange","newSelectionModel","apiRef","selectionStatus","isRowSelectable","page","pageSize","selectableRowsInPage","gridPaginatedVisibleSortedGridRowEntriesSelector","filter","_ref","model","row","map","_ref2","id","gridPaginatedVisibleSortedGridRowIdsSelector","numberOfSelectableRowsInPage","length","numberOfSelectedRows","selectedRowsInPage","rowId","includes","numberOfSelectedRowsInPage","isSamePage","current","isSamePageSize","type","setTimeout","selectRows","ServerSideControlledPagination","_ref3","displaySelection","displayPagination","onPageChange","onPageSizeChange","displayRowsPerPage","rowsPerPageOptions","paginationProps","rowCount","totalNumberOfRowsInTable","totalRowsLabel","pageRowsLabel","React","createElement","Flexbox","flexDirection","alignItems","justifyContent","marginBottom","Fragment","Text","fontSize","TablePagination","_extends","component","count","event","newPage","rowsPerPage","onRowsPerPageChange","parseInt","target","value"],"mappings":"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"}
|
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
-
import React__default, { forwardRef, useRef, useState, useEffect, useMemo } from 'react';
|
|
3
|
-
import classNames from 'classnames';
|
|
4
|
-
import { useTheme, ThemeProvider, RedsiftColorBlueN, RedsiftColorNeutralXDarkGrey, RedsiftColorNeutralWhite } from '@redsift/design-system';
|
|
5
|
-
import { useGridApiRef, DataGridPro, gridPaginatedVisibleSortedGridRowEntriesSelector, gridPaginatedVisibleSortedGridRowIdsSelector, gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector } from '@mui/x-data-grid-pro';
|
|
6
|
-
import { StyledDataGrid } from '../DataGrid/styles.js';
|
|
7
|
-
import { useStatefulTable } from '../../hooks/useStatefulTable.js';
|
|
8
|
-
import { customColumnTypes } from '../../utils/columnTypes/index.js';
|
|
9
|
-
import { useControlledDatagridState } from '../../hooks/useControlledDatagridState.js';
|
|
10
|
-
import createTheme from '../../node_modules/@mui/material/styles/createTheme.js';
|
|
11
|
-
import ThemeProvider$1 from '../../node_modules/@mui/material/styles/ThemeProvider.js';
|
|
12
|
-
import { Toolbar } from '../Toolbar/Toolbar.js';
|
|
13
|
-
import { LicenseInfo } from '../../node_modules/@mui/x-license-pro/utils/licenseInfo.js';
|
|
14
|
-
import { onServerSideSelectionStatusChange, ServerSideControlledPagination } from '../Pagination/ServerSideControlledPagination.js';
|
|
15
|
-
import { BaseButton } from '../BaseComponents/BaseButton.js';
|
|
16
|
-
import { BaseCheckbox } from '../BaseComponents/BaseCheckbox.js';
|
|
17
|
-
import { BasePopper } from '../BaseComponents/BasePopper.js';
|
|
18
|
-
import { BaseIcon } from '../BaseComponents/BaseIcon.js';
|
|
19
|
-
import { ToolbarWrapper } from '../ToolbarWrapper/ToolbarWrapper.js';
|
|
20
|
-
import { ControlledPagination } from '../Pagination/ControlledPagination.js';
|
|
21
|
-
|
|
22
|
-
const _excluded = ["apiRef", "autoHeight", "className", "columns", "columnTypes", "components", "componentsProps", "filterModel", "columnVisibilityModel", "pinnedColumns", "sortModel", "page", "pageSize", "height", "hideToolbar", "initialState", "isRowSelectable", "license", "localStorageVersion", "previousLocalStorageVersions", "onFilterModelChange", "selectionModel", "onColumnWidthChange", "onPageChange", "onPageSizeChange", "onSelectionModelChange", "onColumnVisibilityModelChange", "onPinnedColumnsChange", "onSortModelChange", "pagination", "paginationPlacement", "paginationProps", "rows", "rowsPerPageOptions", "sx", "theme", "useRouter", "paginationMode", "rowCount"];
|
|
23
|
-
const COMPONENT_NAME = 'DataGrid';
|
|
24
|
-
const CLASSNAME = 'redsift-datagrid';
|
|
25
|
-
const StatefulDataGrid = /*#__PURE__*/forwardRef((props, ref) => {
|
|
26
|
-
const datagridRef = ref || useRef();
|
|
27
|
-
const {
|
|
28
|
-
apiRef: propsApiRef,
|
|
29
|
-
autoHeight,
|
|
30
|
-
className,
|
|
31
|
-
columns,
|
|
32
|
-
columnTypes: propsColumnTypes,
|
|
33
|
-
components,
|
|
34
|
-
componentsProps,
|
|
35
|
-
filterModel: propsFilterModel,
|
|
36
|
-
columnVisibilityModel: propsColumnVisibilityModel,
|
|
37
|
-
pinnedColumns: propsPinnedColumns,
|
|
38
|
-
sortModel: propsSortModel,
|
|
39
|
-
page: propsPage,
|
|
40
|
-
pageSize: propsPageSize,
|
|
41
|
-
height: propsHeight,
|
|
42
|
-
hideToolbar,
|
|
43
|
-
initialState,
|
|
44
|
-
isRowSelectable,
|
|
45
|
-
license = process.env.MUI_LICENSE_KEY,
|
|
46
|
-
localStorageVersion,
|
|
47
|
-
previousLocalStorageVersions,
|
|
48
|
-
onFilterModelChange: propsOnFilterModelChange,
|
|
49
|
-
selectionModel: propsSelectionModel,
|
|
50
|
-
onColumnWidthChange: propsOnColumnWidthChange,
|
|
51
|
-
onPageChange: propsOnPageChange,
|
|
52
|
-
onPageSizeChange: propsOnPageSizeChange,
|
|
53
|
-
onSelectionModelChange: propsOnSelectionModelChange,
|
|
54
|
-
onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,
|
|
55
|
-
onPinnedColumnsChange: propsOnPinnedColumnsChange,
|
|
56
|
-
onSortModelChange: propsOnSortModelChange,
|
|
57
|
-
pagination,
|
|
58
|
-
paginationPlacement = 'both',
|
|
59
|
-
paginationProps,
|
|
60
|
-
rows,
|
|
61
|
-
rowsPerPageOptions,
|
|
62
|
-
sx,
|
|
63
|
-
theme: propsTheme,
|
|
64
|
-
useRouter,
|
|
65
|
-
paginationMode = 'client',
|
|
66
|
-
rowCount
|
|
67
|
-
} = props,
|
|
68
|
-
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
69
|
-
const theme = useTheme(propsTheme);
|
|
70
|
-
const _apiRef = useGridApiRef();
|
|
71
|
-
const apiRef = propsApiRef !== null && propsApiRef !== void 0 ? propsApiRef : _apiRef;
|
|
72
|
-
const RenderedToolbar = components !== null && components !== void 0 && components.Toolbar ? components.Toolbar : Toolbar;
|
|
73
|
-
LicenseInfo.setLicenseKey(license);
|
|
74
|
-
const height = propsHeight !== null && propsHeight !== void 0 ? propsHeight : autoHeight ? undefined : '500px';
|
|
75
|
-
const {
|
|
76
|
-
onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,
|
|
77
|
-
onFilterModelChange: controlledOnFilterModelChange,
|
|
78
|
-
onPageChange: controlledOnPageChange,
|
|
79
|
-
onPageSizeChange: controlledOnPageSizeChange,
|
|
80
|
-
onPinnedColumnsChange: controlledOnPinnedColumnsChange,
|
|
81
|
-
onSortModelChange: controlledOnSortModelChange
|
|
82
|
-
} = useControlledDatagridState({
|
|
83
|
-
initialState,
|
|
84
|
-
rowsPerPageOptions,
|
|
85
|
-
propsColumnVisibilityModel,
|
|
86
|
-
propsFilterModel,
|
|
87
|
-
propsOnColumnVisibilityModelChange,
|
|
88
|
-
propsOnFilterModelChange,
|
|
89
|
-
propsOnPinnedColumnsChange,
|
|
90
|
-
propsOnSortModelChange,
|
|
91
|
-
propsPage,
|
|
92
|
-
propsPageSize,
|
|
93
|
-
propsPinnedColumns,
|
|
94
|
-
propsSortModel,
|
|
95
|
-
propsOnPageChange,
|
|
96
|
-
propsOnPageSizeChange
|
|
97
|
-
});
|
|
98
|
-
const {
|
|
99
|
-
columnVisibilityModel,
|
|
100
|
-
filterModel,
|
|
101
|
-
onColumnVisibilityModelChange,
|
|
102
|
-
onFilterModelChange,
|
|
103
|
-
onPageChange,
|
|
104
|
-
onPageSizeChange,
|
|
105
|
-
onPinnedColumnsChange,
|
|
106
|
-
onSortModelChange,
|
|
107
|
-
page,
|
|
108
|
-
pageSize,
|
|
109
|
-
pinnedColumns,
|
|
110
|
-
sortModel,
|
|
111
|
-
onColumnWidthChange
|
|
112
|
-
} = useStatefulTable({
|
|
113
|
-
apiRef: apiRef,
|
|
114
|
-
initialState,
|
|
115
|
-
columns,
|
|
116
|
-
onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,
|
|
117
|
-
onColumnWidthChange: propsOnColumnWidthChange,
|
|
118
|
-
onFilterModelChange: controlledOnFilterModelChange,
|
|
119
|
-
onPageChange: controlledOnPageChange,
|
|
120
|
-
onPageSizeChange: controlledOnPageSizeChange,
|
|
121
|
-
onPinnedColumnsChange: controlledOnPinnedColumnsChange,
|
|
122
|
-
onSortModelChange: controlledOnSortModelChange,
|
|
123
|
-
useRouter: useRouter,
|
|
124
|
-
localStorageVersion,
|
|
125
|
-
previousLocalStorageVersions
|
|
126
|
-
});
|
|
127
|
-
const [selectionModel, setSelectionModel] = useState(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
|
|
128
|
-
useEffect(() => {
|
|
129
|
-
setSelectionModel(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
|
|
130
|
-
}, [propsSelectionModel]);
|
|
131
|
-
const onSelectionModelChange = (selectionModel, details) => {
|
|
132
|
-
if (propsOnSelectionModelChange) {
|
|
133
|
-
propsOnSelectionModelChange(selectionModel, details);
|
|
134
|
-
} else {
|
|
135
|
-
setSelectionModel(selectionModel);
|
|
136
|
-
}
|
|
137
|
-
};
|
|
138
|
-
const selectionStatus = useRef({
|
|
139
|
-
type: 'none',
|
|
140
|
-
numberOfSelectedRows: 0,
|
|
141
|
-
numberOfSelectedRowsInPage: 0,
|
|
142
|
-
page,
|
|
143
|
-
pageSize: pageSize
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
// in server-side pagination we want to update the selection status
|
|
147
|
-
// every time we navigate between pages, resize our page or select something
|
|
148
|
-
useEffect(() => {
|
|
149
|
-
if (paginationMode == 'server') {
|
|
150
|
-
onServerSideSelectionStatusChange(Array.isArray(selectionModel) ? selectionModel : [selectionModel], apiRef, selectionStatus, isRowSelectable, page, pageSize);
|
|
151
|
-
}
|
|
152
|
-
}, [selectionModel, page, pageSize]);
|
|
153
|
-
if (!Array.isArray(rows)) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
const muiTheme = useMemo(() => createTheme({
|
|
157
|
-
palette: {
|
|
158
|
-
mode: theme,
|
|
159
|
-
primary: {
|
|
160
|
-
main: RedsiftColorBlueN
|
|
161
|
-
},
|
|
162
|
-
background: {
|
|
163
|
-
default: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,
|
|
164
|
-
paper: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}), [theme]);
|
|
168
|
-
return /*#__PURE__*/React__default.createElement(ThemeProvider, {
|
|
169
|
-
value: {
|
|
170
|
-
theme
|
|
171
|
-
}
|
|
172
|
-
}, /*#__PURE__*/React__default.createElement(ThemeProvider$1, {
|
|
173
|
-
theme: muiTheme
|
|
174
|
-
}, /*#__PURE__*/React__default.createElement(StyledDataGrid, {
|
|
175
|
-
ref: datagridRef,
|
|
176
|
-
className: classNames(StatefulDataGrid.className, className),
|
|
177
|
-
$height: height
|
|
178
|
-
}, /*#__PURE__*/React__default.createElement(DataGridPro, _extends({}, forwardedProps, {
|
|
179
|
-
apiRef: apiRef,
|
|
180
|
-
columns: columns,
|
|
181
|
-
columnVisibilityModel: columnVisibilityModel,
|
|
182
|
-
filterModel: filterModel,
|
|
183
|
-
onColumnVisibilityModelChange: onColumnVisibilityModelChange,
|
|
184
|
-
onFilterModelChange: onFilterModelChange,
|
|
185
|
-
onPageChange: onPageChange,
|
|
186
|
-
onPageSizeChange: onPageSizeChange,
|
|
187
|
-
onPinnedColumnsChange: onPinnedColumnsChange,
|
|
188
|
-
onSortModelChange: onSortModelChange,
|
|
189
|
-
page: page,
|
|
190
|
-
pageSize: pageSize,
|
|
191
|
-
pinnedColumns: pinnedColumns,
|
|
192
|
-
sortModel: sortModel,
|
|
193
|
-
rowsPerPageOptions: rowsPerPageOptions,
|
|
194
|
-
onColumnWidthChange: onColumnWidthChange,
|
|
195
|
-
initialState: initialState,
|
|
196
|
-
isRowSelectable: isRowSelectable,
|
|
197
|
-
pagination: pagination,
|
|
198
|
-
paginationMode: paginationMode,
|
|
199
|
-
keepNonExistentRowsSelected: paginationMode == 'server',
|
|
200
|
-
rows: rows,
|
|
201
|
-
rowCount: rowCount,
|
|
202
|
-
autoHeight: autoHeight,
|
|
203
|
-
checkboxSelectionVisibleOnly: Boolean(pagination),
|
|
204
|
-
columnTypes: _objectSpread2(_objectSpread2({}, customColumnTypes), propsColumnTypes),
|
|
205
|
-
components: _objectSpread2(_objectSpread2({
|
|
206
|
-
BaseButton,
|
|
207
|
-
BaseCheckbox,
|
|
208
|
-
// BaseTextField,
|
|
209
|
-
BasePopper,
|
|
210
|
-
ColumnFilteredIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
211
|
-
displayName: "ColumnFilteredIcon"
|
|
212
|
-
})),
|
|
213
|
-
ColumnSelectorIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
214
|
-
displayName: "ColumnSelectorIcon"
|
|
215
|
-
})),
|
|
216
|
-
ColumnSortedAscendingIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
217
|
-
displayName: "ColumnSortedAscendingIcon"
|
|
218
|
-
})),
|
|
219
|
-
ColumnSortedDescendingIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
220
|
-
displayName: "ColumnSortedDescendingIcon"
|
|
221
|
-
})),
|
|
222
|
-
DensityCompactIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
223
|
-
displayName: "DensityCompactIcon"
|
|
224
|
-
})),
|
|
225
|
-
DensityStandardIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
226
|
-
displayName: "DensityStandardIcon"
|
|
227
|
-
})),
|
|
228
|
-
DensityComfortableIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
229
|
-
displayName: "DensityComfortableIcon"
|
|
230
|
-
})),
|
|
231
|
-
DetailPanelCollapseIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
232
|
-
displayName: "DetailPanelCollapseIcon"
|
|
233
|
-
})),
|
|
234
|
-
DetailPanelExpandIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
235
|
-
displayName: "DetailPanelExpandIcon"
|
|
236
|
-
})),
|
|
237
|
-
ExportIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({}, props, {
|
|
238
|
-
displayName: "ExportIcon"
|
|
239
|
-
})),
|
|
240
|
-
OpenFilterButtonIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends({
|
|
241
|
-
displayName: "OpenFilterButtonIcon"
|
|
242
|
-
}, props))
|
|
243
|
-
}, components), {}, {
|
|
244
|
-
Toolbar: ToolbarWrapper,
|
|
245
|
-
Pagination: props => {
|
|
246
|
-
return pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, _extends({}, props, {
|
|
247
|
-
displaySelection: false,
|
|
248
|
-
displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
|
|
249
|
-
displayPagination: ['bottom', 'both'].includes(paginationPlacement),
|
|
250
|
-
selectionStatus: selectionStatus.current,
|
|
251
|
-
page: page,
|
|
252
|
-
pageSize: pageSize,
|
|
253
|
-
onPageChange: onPageChange,
|
|
254
|
-
onPageSizeChange: onPageSizeChange,
|
|
255
|
-
rowsPerPageOptions: rowsPerPageOptions,
|
|
256
|
-
paginationProps: paginationProps,
|
|
257
|
-
paginationMode: paginationMode,
|
|
258
|
-
rowCount: rowCount
|
|
259
|
-
})) : /*#__PURE__*/React__default.createElement(ControlledPagination, _extends({}, props, {
|
|
260
|
-
displaySelection: false,
|
|
261
|
-
displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
|
|
262
|
-
displayPagination: ['bottom', 'both'].includes(paginationPlacement),
|
|
263
|
-
selectionStatus: selectionStatus.current,
|
|
264
|
-
apiRef: apiRef,
|
|
265
|
-
isRowSelectable: isRowSelectable,
|
|
266
|
-
page: page,
|
|
267
|
-
pageSize: pageSize,
|
|
268
|
-
onPageChange: onPageChange,
|
|
269
|
-
onPageSizeChange: onPageSizeChange,
|
|
270
|
-
rowsPerPageOptions: rowsPerPageOptions,
|
|
271
|
-
paginationProps: paginationProps,
|
|
272
|
-
paginationMode: paginationMode
|
|
273
|
-
})) : null;
|
|
274
|
-
}
|
|
275
|
-
}),
|
|
276
|
-
componentsProps: _objectSpread2(_objectSpread2({}, componentsProps), {}, {
|
|
277
|
-
toolbar: _objectSpread2({
|
|
278
|
-
hideToolbar,
|
|
279
|
-
RenderedToolbar,
|
|
280
|
-
filterModel,
|
|
281
|
-
onFilterModelChange,
|
|
282
|
-
pagination,
|
|
283
|
-
paginationPlacement,
|
|
284
|
-
selectionStatus,
|
|
285
|
-
apiRef,
|
|
286
|
-
isRowSelectable,
|
|
287
|
-
page,
|
|
288
|
-
pageSize,
|
|
289
|
-
onPageChange,
|
|
290
|
-
onPageSizeChange,
|
|
291
|
-
rowsPerPageOptions,
|
|
292
|
-
paginationProps,
|
|
293
|
-
paginationMode,
|
|
294
|
-
rowCount
|
|
295
|
-
}, componentsProps === null || componentsProps === void 0 ? void 0 : componentsProps.toolbar)
|
|
296
|
-
}),
|
|
297
|
-
selectionModel: selectionModel,
|
|
298
|
-
onSelectionModelChange: (newSelectionModel, details) => {
|
|
299
|
-
if (pagination && paginationMode != 'server') {
|
|
300
|
-
const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
|
|
301
|
-
let {
|
|
302
|
-
model
|
|
303
|
-
} = _ref;
|
|
304
|
-
return isRowSelectable({
|
|
305
|
-
row: model
|
|
306
|
-
});
|
|
307
|
-
}).map(_ref2 => {
|
|
308
|
-
let {
|
|
309
|
-
id
|
|
310
|
-
} = _ref2;
|
|
311
|
-
return id;
|
|
312
|
-
}) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
|
|
313
|
-
const numberOfSelectableRowsInPage = selectableRowsInPage.length;
|
|
314
|
-
const selectableRowsInTable = isRowSelectable ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref3 => {
|
|
315
|
-
let {
|
|
316
|
-
model
|
|
317
|
-
} = _ref3;
|
|
318
|
-
return isRowSelectable({
|
|
319
|
-
row: model
|
|
320
|
-
});
|
|
321
|
-
}).map(_ref4 => {
|
|
322
|
-
let {
|
|
323
|
-
id
|
|
324
|
-
} = _ref4;
|
|
325
|
-
return id;
|
|
326
|
-
}) : gridFilteredSortedRowIdsSelector(apiRef);
|
|
327
|
-
const numberOfSelectableRowsInTable = selectableRowsInTable.length;
|
|
328
|
-
const numberOfSelectedRows = newSelectionModel.length;
|
|
329
|
-
if (selectionStatus.current.type === 'table' && numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage || selectionStatus.current.type === 'table' && numberOfSelectedRows === numberOfSelectableRowsInTable || selectionStatus.current.type === 'page' && numberOfSelectedRows === numberOfSelectableRowsInPage) {
|
|
330
|
-
setTimeout(() => {
|
|
331
|
-
apiRef.current.selectRows([], true, true);
|
|
332
|
-
}, 0);
|
|
333
|
-
}
|
|
334
|
-
if (numberOfSelectedRows === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
|
|
335
|
-
selectionStatus.current = {
|
|
336
|
-
type: 'page',
|
|
337
|
-
numberOfSelectedRows
|
|
338
|
-
};
|
|
339
|
-
} else if (numberOfSelectedRows === numberOfSelectableRowsInTable && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
|
|
340
|
-
selectionStatus.current = {
|
|
341
|
-
type: 'table',
|
|
342
|
-
numberOfSelectedRows
|
|
343
|
-
};
|
|
344
|
-
} else if (numberOfSelectedRows > 0) {
|
|
345
|
-
selectionStatus.current = {
|
|
346
|
-
type: 'other',
|
|
347
|
-
numberOfSelectedRows
|
|
348
|
-
};
|
|
349
|
-
} else {
|
|
350
|
-
selectionStatus.current = {
|
|
351
|
-
type: 'none',
|
|
352
|
-
numberOfSelectedRows
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
onSelectionModelChange === null || onSelectionModelChange === void 0 ? void 0 : onSelectionModelChange(newSelectionModel, details);
|
|
357
|
-
},
|
|
358
|
-
sx: _objectSpread2(_objectSpread2({}, sx), {}, {
|
|
359
|
-
'.MuiDataGrid-columnHeaders': {
|
|
360
|
-
flexDirection: 'column',
|
|
361
|
-
alignItems: 'normal'
|
|
362
|
-
},
|
|
363
|
-
'.MuiDataGrid-selectedRowCount': {
|
|
364
|
-
margin: 'none'
|
|
365
|
-
}
|
|
366
|
-
})
|
|
367
|
-
})))));
|
|
368
|
-
});
|
|
369
|
-
StatefulDataGrid.className = CLASSNAME;
|
|
370
|
-
StatefulDataGrid.displayName = COMPONENT_NAME;
|
|
371
|
-
|
|
372
|
-
export { StatefulDataGrid };
|
|
373
|
-
//# sourceMappingURL=StatefulDataGrid.js.map
|