@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.
Files changed (223) hide show
  1. package/_internal/BaseComponents.d.ts +3 -0
  2. package/_internal/BaseComponents.js +3 -0
  3. package/_internal/BaseComponents.js.map +1 -0
  4. package/_internal/BasePopper.js +2448 -0
  5. package/_internal/BasePopper.js.map +1 -0
  6. package/_internal/BaseTextField.d.ts +15 -0
  7. package/{components/BaseComponents → _internal}/BaseTextField.js +1 -1
  8. package/_internal/BaseTextField.js.map +1 -0
  9. package/_internal/ControlledPagination.js +10484 -0
  10. package/_internal/ControlledPagination.js.map +1 -0
  11. package/_internal/DataGrid.d.ts +6 -0
  12. package/{components/DataGrid/DataGrid.d.ts → _internal/DataGrid.d2.ts} +2 -2
  13. package/_internal/DataGrid.js +2 -0
  14. package/_internal/DataGrid.js.map +1 -0
  15. package/{components/DataGrid/DataGrid.js → _internal/DataGrid2.js} +9 -17
  16. package/_internal/DataGrid2.js.map +1 -0
  17. package/_internal/GridToolbarFilterSemanticField.d.ts +5 -0
  18. package/{components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.d.ts → _internal/GridToolbarFilterSemanticField.d2.ts} +2 -2
  19. package/_internal/GridToolbarFilterSemanticField.js +2 -0
  20. package/_internal/GridToolbarFilterSemanticField.js.map +1 -0
  21. package/_internal/GridToolbarFilterSemanticField2.js +5581 -0
  22. package/_internal/GridToolbarFilterSemanticField2.js.map +1 -0
  23. package/_internal/Pagination.d.ts +7 -0
  24. package/_internal/Pagination.js +2 -0
  25. package/_internal/Pagination.js.map +1 -0
  26. package/_internal/Portal.js +4363 -0
  27. package/_internal/Portal.js.map +1 -0
  28. package/{components/Pagination → _internal}/ServerSideControlledPagination.d.ts +19 -3
  29. package/_internal/StatefulDataGrid.d.ts +6 -0
  30. package/{components/StatefulDataGrid/types.d.ts → _internal/StatefulDataGrid.d2.ts} +5 -2
  31. package/_internal/StatefulDataGrid.js +2 -0
  32. package/_internal/StatefulDataGrid.js.map +1 -0
  33. package/{utils/urlLocalStorageSync.js → _internal/StatefulDataGrid2.js} +671 -5
  34. package/_internal/StatefulDataGrid2.js.map +1 -0
  35. package/_internal/TextCell.d.ts +3 -0
  36. package/{components/TextCell/types.d.ts → _internal/TextCell.d2.ts} +7 -2
  37. package/_internal/TextCell.js +2 -0
  38. package/_internal/TextCell.js.map +1 -0
  39. package/{components/TextCell/TextCell.js → _internal/TextCell2.js} +22 -4
  40. package/_internal/TextCell2.js.map +1 -0
  41. package/_internal/Toolbar.d.ts +4 -0
  42. package/{components/Toolbar/types.d.ts → _internal/Toolbar.d2.ts} +19 -3
  43. package/_internal/Toolbar.js +2 -0
  44. package/_internal/Toolbar.js.map +1 -0
  45. package/{components/Toolbar/Toolbar.js → _internal/Toolbar2.js} +18 -5
  46. package/_internal/Toolbar2.js.map +1 -0
  47. package/_internal/ToolbarWrapper.d.ts +6 -0
  48. package/{components/ToolbarWrapper/ToolbarWrapper.d.ts → _internal/ToolbarWrapper.d2.ts} +2 -2
  49. package/_internal/ToolbarWrapper.js +2 -0
  50. package/_internal/ToolbarWrapper.js.map +1 -0
  51. package/{components/ToolbarWrapper/ToolbarWrapper.js → _internal/ToolbarWrapper2.js} +4 -5
  52. package/_internal/ToolbarWrapper2.js.map +1 -0
  53. package/{_virtual → _internal}/_rollupPluginBabelHelpers.js +1 -1
  54. package/_internal/jsx-runtime.js +1342 -0
  55. package/_internal/jsx-runtime.js.map +1 -0
  56. package/{components/DataGrid → _internal}/types.d.ts +1 -2
  57. package/{components/GridToolbarFilterSemanticField/types.d.ts → _internal/types.d2.ts} +1 -1
  58. package/_internal/useControlledDatagridState.js +2175 -0
  59. package/_internal/useControlledDatagridState.js.map +1 -0
  60. package/index.d.ts +405 -39
  61. package/index.js +17 -36
  62. package/index.js.map +1 -1
  63. package/package.json +2 -2
  64. package/_virtual/_commonjsHelpers.js +0 -6
  65. package/_virtual/_commonjsHelpers.js.map +0 -1
  66. package/_virtual/index.js +0 -4
  67. package/_virtual/index.js.map +0 -1
  68. package/_virtual/index2.js +0 -4
  69. package/_virtual/index2.js.map +0 -1
  70. package/_virtual/index3.js +0 -4
  71. package/_virtual/index3.js.map +0 -1
  72. package/_virtual/jsx-runtime.js +0 -4
  73. package/_virtual/jsx-runtime.js.map +0 -1
  74. package/_virtual/react-is.development.js +0 -4
  75. package/_virtual/react-is.development.js.map +0 -1
  76. package/_virtual/react-is.development2.js +0 -4
  77. package/_virtual/react-is.development2.js.map +0 -1
  78. package/_virtual/react-is.production.min.js +0 -4
  79. package/_virtual/react-is.production.min.js.map +0 -1
  80. package/_virtual/react-is.production.min2.js +0 -4
  81. package/_virtual/react-is.production.min2.js.map +0 -1
  82. package/_virtual/react-jsx-runtime.development.js +0 -4
  83. package/_virtual/react-jsx-runtime.development.js.map +0 -1
  84. package/_virtual/react-jsx-runtime.production.min.js +0 -4
  85. package/_virtual/react-jsx-runtime.production.min.js.map +0 -1
  86. package/components/BaseComponents/BaseButton.d.ts +0 -5
  87. package/components/BaseComponents/BaseButton.js +0 -41
  88. package/components/BaseComponents/BaseButton.js.map +0 -1
  89. package/components/BaseComponents/BaseCheckbox.d.ts +0 -5
  90. package/components/BaseComponents/BaseCheckbox.js +0 -24
  91. package/components/BaseComponents/BaseCheckbox.js.map +0 -1
  92. package/components/BaseComponents/BaseIcon.d.ts +0 -7
  93. package/components/BaseComponents/BaseIcon.js +0 -33
  94. package/components/BaseComponents/BaseIcon.js.map +0 -1
  95. package/components/BaseComponents/BasePopper.d.ts +0 -5
  96. package/components/BaseComponents/BasePopper.js +0 -13
  97. package/components/BaseComponents/BasePopper.js.map +0 -1
  98. package/components/BaseComponents/BaseTextField.d.ts +0 -5
  99. package/components/BaseComponents/BaseTextField.js.map +0 -1
  100. package/components/DataGrid/DataGrid.js.map +0 -1
  101. package/components/DataGrid/styles.js +0 -74
  102. package/components/DataGrid/styles.js.map +0 -1
  103. package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js +0 -183
  104. package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js.map +0 -1
  105. package/components/GridToolbarFilterSemanticField/styles.js +0 -20
  106. package/components/GridToolbarFilterSemanticField/styles.js.map +0 -1
  107. package/components/Pagination/ControlledPagination.d.ts +0 -21
  108. package/components/Pagination/ControlledPagination.js +0 -74
  109. package/components/Pagination/ControlledPagination.js.map +0 -1
  110. package/components/Pagination/ServerSideControlledPagination.js +0 -102
  111. package/components/Pagination/ServerSideControlledPagination.js.map +0 -1
  112. package/components/StatefulDataGrid/StatefulDataGrid.d.ts +0 -6
  113. package/components/StatefulDataGrid/StatefulDataGrid.js +0 -373
  114. package/components/StatefulDataGrid/StatefulDataGrid.js.map +0 -1
  115. package/components/TextCell/TextCell.d.ts +0 -9
  116. package/components/TextCell/TextCell.js.map +0 -1
  117. package/components/TextCell/styles.js +0 -22
  118. package/components/TextCell/styles.js.map +0 -1
  119. package/components/Toolbar/Toolbar.d.ts +0 -20
  120. package/components/Toolbar/Toolbar.js.map +0 -1
  121. package/components/Toolbar/styles.js +0 -17
  122. package/components/Toolbar/styles.js.map +0 -1
  123. package/components/ToolbarWrapper/ToolbarWrapper.js.map +0 -1
  124. package/hooks/useControlledDatagridState.js +0 -109
  125. package/hooks/useControlledDatagridState.js.map +0 -1
  126. package/hooks/useFetchState.js +0 -34
  127. package/hooks/useFetchState.js.map +0 -1
  128. package/hooks/useStatefulTable.d.ts +0 -12
  129. package/hooks/useStatefulTable.js +0 -182
  130. package/hooks/useStatefulTable.js.map +0 -1
  131. package/hooks/useTableStates.js +0 -52
  132. package/hooks/useTableStates.js.map +0 -1
  133. package/packages/design-system/src/components/theme/context.js +0 -7
  134. package/packages/design-system/src/components/theme/context.js.map +0 -1
  135. package/packages/popovers/src/components/tooltip/Tooltip.js +0 -60
  136. package/packages/popovers/src/components/tooltip/Tooltip.js.map +0 -1
  137. package/packages/popovers/src/components/tooltip/context.js +0 -6
  138. package/packages/popovers/src/components/tooltip/context.js.map +0 -1
  139. package/packages/popovers/src/components/tooltip/types.js +0 -28
  140. package/packages/popovers/src/components/tooltip/types.js.map +0 -1
  141. package/packages/popovers/src/components/tooltip/useTooltip.js +0 -78
  142. package/packages/popovers/src/components/tooltip/useTooltip.js.map +0 -1
  143. package/packages/popovers/src/components/tooltip/useTooltipContext.js +0 -13
  144. package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +0 -1
  145. package/packages/popovers/src/components/tooltip-content/TooltipContent.js +0 -79
  146. package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +0 -1
  147. package/packages/popovers/src/components/tooltip-content/styles.js +0 -127
  148. package/packages/popovers/src/components/tooltip-content/styles.js.map +0 -1
  149. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +0 -47
  150. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +0 -1
  151. package/utils/columnTypes/index.d.ts +0 -78
  152. package/utils/columnTypes/index.js +0 -49
  153. package/utils/columnTypes/index.js.map +0 -1
  154. package/utils/columns/detailPanelToggleColDef.d.ts +0 -5
  155. package/utils/columns/detailPanelToggleColDef.js +0 -8
  156. package/utils/columns/detailPanelToggleColDef.js.map +0 -1
  157. package/utils/fields/InputNumberInterval.js +0 -85
  158. package/utils/fields/InputNumberInterval.js.map +0 -1
  159. package/utils/gpt.d.ts +0 -3
  160. package/utils/gpt.js +0 -33
  161. package/utils/gpt.js.map +0 -1
  162. package/utils/localStorage.d.ts +0 -17
  163. package/utils/localStorage.js +0 -59
  164. package/utils/localStorage.js.map +0 -1
  165. package/utils/operators/index.d.ts +0 -68
  166. package/utils/operators/index.js +0 -52
  167. package/utils/operators/index.js.map +0 -1
  168. package/utils/operators/numeric/getGridNumericOperators.d.ts +0 -5
  169. package/utils/operators/numeric/getGridNumericOperators.js +0 -7
  170. package/utils/operators/numeric/getGridNumericOperators.js.map +0 -1
  171. package/utils/operators/numeric/isBetween.d.ts +0 -10
  172. package/utils/operators/numeric/isBetween.js +0 -28
  173. package/utils/operators/numeric/isBetween.js.map +0 -1
  174. package/utils/operators/string/doesNotContain.d.ts +0 -10
  175. package/utils/operators/string/doesNotContain.js +0 -25
  176. package/utils/operators/string/doesNotContain.js.map +0 -1
  177. package/utils/operators/string/doesNotEqual.d.ts +0 -10
  178. package/utils/operators/string/doesNotEqual.js +0 -25
  179. package/utils/operators/string/doesNotEqual.js.map +0 -1
  180. package/utils/operators/string/doesNotHave.d.ts +0 -16
  181. package/utils/operators/string/doesNotHave.js +0 -24
  182. package/utils/operators/string/doesNotHave.js.map +0 -1
  183. package/utils/operators/string/getGridStringOperators.d.ts +0 -5
  184. package/utils/operators/string/getGridStringOperators.js +0 -9
  185. package/utils/operators/string/getGridStringOperators.js.map +0 -1
  186. package/utils/operators/string/has.d.ts +0 -16
  187. package/utils/operators/string/has.js +0 -24
  188. package/utils/operators/string/has.js.map +0 -1
  189. package/utils/operators/string/hasOnly.d.ts +0 -16
  190. package/utils/operators/string/hasOnly.js +0 -24
  191. package/utils/operators/string/hasOnly.js.map +0 -1
  192. package/utils/operators/string/is.d.ts +0 -16
  193. package/utils/operators/string/is.js +0 -26
  194. package/utils/operators/string/is.js.map +0 -1
  195. package/utils/operators/string/isNot.d.ts +0 -16
  196. package/utils/operators/string/isNot.js +0 -26
  197. package/utils/operators/string/isNot.js.map +0 -1
  198. package/utils/operators/string-array/containsAnyOf.d.ts +0 -16
  199. package/utils/operators/string-array/containsAnyOf.js +0 -56
  200. package/utils/operators/string-array/containsAnyOf.js.map +0 -1
  201. package/utils/operators/string-array/doesNotHaveAnyOf.js +0 -26
  202. package/utils/operators/string-array/doesNotHaveAnyOf.js.map +0 -1
  203. package/utils/operators/string-array/endsWithAnyOf.d.ts +0 -10
  204. package/utils/operators/string-array/endsWithAnyOf.js +0 -31
  205. package/utils/operators/string-array/endsWithAnyOf.js.map +0 -1
  206. package/utils/operators/string-array/getGridStringArrayOperators.d.ts +0 -7
  207. package/utils/operators/string-array/getGridStringArrayOperators.js +0 -19
  208. package/utils/operators/string-array/getGridStringArrayOperators.js.map +0 -1
  209. package/utils/operators/string-array/hasAnyOf.d.ts +0 -16
  210. package/utils/operators/string-array/hasAnyOf.js +0 -28
  211. package/utils/operators/string-array/hasAnyOf.js.map +0 -1
  212. package/utils/operators/string-array/isAnyOf.d.ts +0 -16
  213. package/utils/operators/string-array/isAnyOf.js +0 -32
  214. package/utils/operators/string-array/isAnyOf.js.map +0 -1
  215. package/utils/operators/string-array/isNotAnyOf.d.ts +0 -10
  216. package/utils/operators/string-array/isNotAnyOf.js +0 -28
  217. package/utils/operators/string-array/isNotAnyOf.js.map +0 -1
  218. package/utils/operators/string-array/startsWithAnyOf.d.ts +0 -10
  219. package/utils/operators/string-array/startsWithAnyOf.js +0 -31
  220. package/utils/operators/string-array/startsWithAnyOf.js.map +0 -1
  221. package/utils/urlLocalStorageSync.d.ts +0 -73
  222. package/utils/urlLocalStorageSync.js.map +0 -1
  223. /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,6 +0,0 @@
1
- import { Comp } from '@redsift/design-system';
2
- import { StatefulDataGridProps } from './types.js';
3
-
4
- declare const StatefulDataGrid: Comp<StatefulDataGridProps, HTMLDivElement>;
5
-
6
- export { StatefulDataGrid };
@@ -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