@redsift/table 11.5.0 → 11.6.0-muiv5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/_virtual/_commonjsHelpers.js +6 -0
  2. package/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/_virtual/_rollupPluginBabelHelpers.js +93 -0
  4. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  5. package/_virtual/index.js +4 -0
  6. package/_virtual/index.js.map +1 -0
  7. package/_virtual/index2.js +4 -0
  8. package/_virtual/index2.js.map +1 -0
  9. package/_virtual/index3.js +4 -0
  10. package/_virtual/index3.js.map +1 -0
  11. package/_virtual/jsx-runtime.js +4 -0
  12. package/_virtual/jsx-runtime.js.map +1 -0
  13. package/_virtual/react-is.development.js +4 -0
  14. package/_virtual/react-is.development.js.map +1 -0
  15. package/_virtual/react-is.development2.js +4 -0
  16. package/_virtual/react-is.development2.js.map +1 -0
  17. package/_virtual/react-is.production.min.js +4 -0
  18. package/_virtual/react-is.production.min.js.map +1 -0
  19. package/_virtual/react-is.production.min2.js +4 -0
  20. package/_virtual/react-is.production.min2.js.map +1 -0
  21. package/_virtual/react-jsx-runtime.development.js +4 -0
  22. package/_virtual/react-jsx-runtime.development.js.map +1 -0
  23. package/_virtual/react-jsx-runtime.production.min.js +4 -0
  24. package/_virtual/react-jsx-runtime.production.min.js.map +1 -0
  25. package/components/BaseComponents/BaseButton.d.ts +5 -0
  26. package/components/BaseComponents/BaseButton.js +41 -0
  27. package/components/BaseComponents/BaseButton.js.map +1 -0
  28. package/components/BaseComponents/BaseCheckbox.d.ts +5 -0
  29. package/components/BaseComponents/BaseCheckbox.js +24 -0
  30. package/components/BaseComponents/BaseCheckbox.js.map +1 -0
  31. package/components/BaseComponents/BaseIcon.d.ts +7 -0
  32. package/components/BaseComponents/BaseIcon.js +33 -0
  33. package/components/BaseComponents/BaseIcon.js.map +1 -0
  34. package/components/BaseComponents/BasePopper.d.ts +5 -0
  35. package/components/BaseComponents/BasePopper.js +13 -0
  36. package/components/BaseComponents/BasePopper.js.map +1 -0
  37. package/components/BaseComponents/BaseTextField.d.ts +5 -0
  38. package/components/BaseComponents/BaseTextField.js +26 -0
  39. package/components/BaseComponents/BaseTextField.js.map +1 -0
  40. package/components/DataGrid/DataGrid.d.ts +6 -0
  41. package/components/DataGrid/DataGrid.js +340 -0
  42. package/components/DataGrid/DataGrid.js.map +1 -0
  43. package/components/DataGrid/styles.js +74 -0
  44. package/components/DataGrid/styles.js.map +1 -0
  45. package/components/DataGrid/types.d.ts +36 -0
  46. package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.d.ts +15 -0
  47. package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js +183 -0
  48. package/components/GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js.map +1 -0
  49. package/components/GridToolbarFilterSemanticField/styles.js +20 -0
  50. package/components/GridToolbarFilterSemanticField/styles.js.map +1 -0
  51. package/components/GridToolbarFilterSemanticField/types.d.ts +39 -0
  52. package/components/Pagination/ControlledPagination.d.ts +21 -0
  53. package/components/Pagination/ControlledPagination.js +74 -0
  54. package/components/Pagination/ControlledPagination.js.map +1 -0
  55. package/components/Pagination/ServerSideControlledPagination.d.ts +23 -0
  56. package/components/Pagination/ServerSideControlledPagination.js +102 -0
  57. package/components/Pagination/ServerSideControlledPagination.js.map +1 -0
  58. package/components/StatefulDataGrid/StatefulDataGrid.d.ts +6 -0
  59. package/components/StatefulDataGrid/StatefulDataGrid.js +373 -0
  60. package/components/StatefulDataGrid/StatefulDataGrid.js.map +1 -0
  61. package/components/StatefulDataGrid/types.d.ts +16 -0
  62. package/components/TextCell/TextCell.d.ts +9 -0
  63. package/components/TextCell/TextCell.js +48 -0
  64. package/components/TextCell/TextCell.js.map +1 -0
  65. package/components/TextCell/styles.js +22 -0
  66. package/components/TextCell/styles.js.map +1 -0
  67. package/components/TextCell/types.d.ts +25 -0
  68. package/components/Toolbar/Toolbar.d.ts +20 -0
  69. package/components/Toolbar/Toolbar.js +72 -0
  70. package/components/Toolbar/Toolbar.js.map +1 -0
  71. package/components/Toolbar/styles.js +17 -0
  72. package/components/Toolbar/styles.js.map +1 -0
  73. package/components/Toolbar/types.d.ts +40 -0
  74. package/components/ToolbarWrapper/ToolbarWrapper.d.ts +25 -0
  75. package/components/ToolbarWrapper/ToolbarWrapper.js +60 -0
  76. package/components/ToolbarWrapper/ToolbarWrapper.js.map +1 -0
  77. package/hooks/useControlledDatagridState.js +109 -0
  78. package/hooks/useControlledDatagridState.js.map +1 -0
  79. package/hooks/useFetchState.js +34 -0
  80. package/hooks/useFetchState.js.map +1 -0
  81. package/hooks/useStatefulTable.d.ts +12 -0
  82. package/hooks/useStatefulTable.js +182 -0
  83. package/hooks/useStatefulTable.js.map +1 -0
  84. package/hooks/useTableStates.js +52 -0
  85. package/hooks/useTableStates.js.map +1 -0
  86. package/index.d.ts +40 -629
  87. package/index.js +36 -28267
  88. package/index.js.map +1 -1
  89. package/package.json +6 -6
  90. package/packages/design-system/src/components/theme/context.js +7 -0
  91. package/packages/design-system/src/components/theme/context.js.map +1 -0
  92. package/packages/popovers/src/components/tooltip/Tooltip.js +60 -0
  93. package/packages/popovers/src/components/tooltip/Tooltip.js.map +1 -0
  94. package/packages/popovers/src/components/tooltip/context.js +6 -0
  95. package/packages/popovers/src/components/tooltip/context.js.map +1 -0
  96. package/packages/popovers/src/components/tooltip/types.js +28 -0
  97. package/packages/popovers/src/components/tooltip/types.js.map +1 -0
  98. package/packages/popovers/src/components/tooltip/useTooltip.js +78 -0
  99. package/packages/popovers/src/components/tooltip/useTooltip.js.map +1 -0
  100. package/packages/popovers/src/components/tooltip/useTooltipContext.js +13 -0
  101. package/packages/popovers/src/components/tooltip/useTooltipContext.js.map +1 -0
  102. package/packages/popovers/src/components/tooltip-content/TooltipContent.js +79 -0
  103. package/packages/popovers/src/components/tooltip-content/TooltipContent.js.map +1 -0
  104. package/packages/popovers/src/components/tooltip-content/styles.js +127 -0
  105. package/packages/popovers/src/components/tooltip-content/styles.js.map +1 -0
  106. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js +47 -0
  107. package/packages/popovers/src/components/tooltip-trigger/TooltipTrigger.js.map +1 -0
  108. package/utils/columnTypes/index.d.ts +78 -0
  109. package/utils/columnTypes/index.js +49 -0
  110. package/utils/columnTypes/index.js.map +1 -0
  111. package/utils/columns/detailPanelToggleColDef.d.ts +5 -0
  112. package/utils/columns/detailPanelToggleColDef.js +8 -0
  113. package/utils/columns/detailPanelToggleColDef.js.map +1 -0
  114. package/utils/fields/InputNumberInterval.js +85 -0
  115. package/utils/fields/InputNumberInterval.js.map +1 -0
  116. package/utils/gpt.d.ts +3 -0
  117. package/utils/gpt.js +33 -0
  118. package/utils/gpt.js.map +1 -0
  119. package/utils/localStorage.d.ts +17 -0
  120. package/utils/localStorage.js +59 -0
  121. package/utils/localStorage.js.map +1 -0
  122. package/utils/operators/index.d.ts +68 -0
  123. package/utils/operators/index.js +52 -0
  124. package/utils/operators/index.js.map +1 -0
  125. package/utils/operators/numeric/getGridNumericOperators.d.ts +5 -0
  126. package/utils/operators/numeric/getGridNumericOperators.js +7 -0
  127. package/utils/operators/numeric/getGridNumericOperators.js.map +1 -0
  128. package/utils/operators/numeric/isBetween.d.ts +10 -0
  129. package/utils/operators/numeric/isBetween.js +28 -0
  130. package/utils/operators/numeric/isBetween.js.map +1 -0
  131. package/utils/operators/string/doesNotContain.d.ts +10 -0
  132. package/utils/operators/string/doesNotContain.js +25 -0
  133. package/utils/operators/string/doesNotContain.js.map +1 -0
  134. package/utils/operators/string/doesNotEqual.d.ts +10 -0
  135. package/utils/operators/string/doesNotEqual.js +25 -0
  136. package/utils/operators/string/doesNotEqual.js.map +1 -0
  137. package/utils/operators/string/doesNotHave.d.ts +16 -0
  138. package/utils/operators/string/doesNotHave.js +24 -0
  139. package/utils/operators/string/doesNotHave.js.map +1 -0
  140. package/utils/operators/string/getGridStringOperators.d.ts +5 -0
  141. package/utils/operators/string/getGridStringOperators.js +9 -0
  142. package/utils/operators/string/getGridStringOperators.js.map +1 -0
  143. package/utils/operators/string/has.d.ts +16 -0
  144. package/utils/operators/string/has.js +24 -0
  145. package/utils/operators/string/has.js.map +1 -0
  146. package/utils/operators/string/hasOnly.d.ts +16 -0
  147. package/utils/operators/string/hasOnly.js +24 -0
  148. package/utils/operators/string/hasOnly.js.map +1 -0
  149. package/utils/operators/string/is.d.ts +16 -0
  150. package/utils/operators/string/is.js +26 -0
  151. package/utils/operators/string/is.js.map +1 -0
  152. package/utils/operators/string/isNot.d.ts +16 -0
  153. package/utils/operators/string/isNot.js +26 -0
  154. package/utils/operators/string/isNot.js.map +1 -0
  155. package/utils/operators/string-array/containsAnyOf.d.ts +16 -0
  156. package/utils/operators/string-array/containsAnyOf.js +56 -0
  157. package/utils/operators/string-array/containsAnyOf.js.map +1 -0
  158. package/utils/operators/string-array/doesNotHaveAnyOf.js +26 -0
  159. package/utils/operators/string-array/doesNotHaveAnyOf.js.map +1 -0
  160. package/utils/operators/string-array/endsWithAnyOf.d.ts +10 -0
  161. package/utils/operators/string-array/endsWithAnyOf.js +31 -0
  162. package/utils/operators/string-array/endsWithAnyOf.js.map +1 -0
  163. package/utils/operators/string-array/getGridStringArrayOperators.d.ts +7 -0
  164. package/utils/operators/string-array/getGridStringArrayOperators.js +19 -0
  165. package/utils/operators/string-array/getGridStringArrayOperators.js.map +1 -0
  166. package/utils/operators/string-array/hasAnyOf.d.ts +16 -0
  167. package/utils/operators/string-array/hasAnyOf.js +28 -0
  168. package/utils/operators/string-array/hasAnyOf.js.map +1 -0
  169. package/utils/operators/string-array/isAnyOf.d.ts +16 -0
  170. package/utils/operators/string-array/isAnyOf.js +32 -0
  171. package/utils/operators/string-array/isAnyOf.js.map +1 -0
  172. package/utils/operators/string-array/isNotAnyOf.d.ts +10 -0
  173. package/utils/operators/string-array/isNotAnyOf.js +28 -0
  174. package/utils/operators/string-array/isNotAnyOf.js.map +1 -0
  175. package/utils/operators/string-array/startsWithAnyOf.d.ts +10 -0
  176. package/utils/operators/string-array/startsWithAnyOf.js +31 -0
  177. package/utils/operators/string-array/startsWithAnyOf.js.map +1 -0
  178. package/utils/urlLocalStorageSync.d.ts +73 -0
  179. package/utils/urlLocalStorageSync.js +756 -0
  180. package/utils/urlLocalStorageSync.js.map +1 -0
@@ -0,0 +1,72 @@
1
+ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React__default from 'react';
3
+ import { GridToolbarContainer, GridToolbarFilterButton, GridToolbarColumnsButton, GridToolbarDensitySelector, GridToolbarExport, gridVisibleSortedRowIdsSelector, GridToolbarQuickFilter } from '@mui/x-data-grid-pro';
4
+ import { GridToolbarWrapper } from './styles.js';
5
+ import { Flexbox } from '@redsift/design-system';
6
+ import { GridToolbarFilterSemanticField } from '../GridToolbarFilterSemanticField/GridToolbarFilterSemanticField.js';
7
+
8
+ /**
9
+ * Temporary workaround for a type mismatch between react 17 and 18
10
+ * https://github.com/mui/material-ui/issues/35287#issuecomment-1337250566
11
+ */
12
+
13
+ /** ------ */
14
+
15
+ const Toolbar = props => {
16
+ const {
17
+ hasExportButton = true,
18
+ exportButtonProps,
19
+ exportButtonRef,
20
+ hasFilterButton = true,
21
+ filterButtonProps,
22
+ filterButtonRef,
23
+ hasColumnsButton = true,
24
+ columnsButtonProps,
25
+ columnsButtonRef,
26
+ hasDensityButton = true,
27
+ densityButtonProps,
28
+ densityButtonRef,
29
+ onFilterModelChange,
30
+ semanticFilterProps = undefined,
31
+ showQuickFilter
32
+ } = props;
33
+ if (semanticFilterProps && onFilterModelChange) {
34
+ semanticFilterProps.onFilterModelChange = onFilterModelChange;
35
+ }
36
+ return /*#__PURE__*/React__default.createElement(GridToolbarWrapper, null, /*#__PURE__*/React__default.createElement(GridToolbarContainer, null, /*#__PURE__*/React__default.createElement(Flexbox, {
37
+ gap: "0"
38
+ }, hasFilterButton ? /*#__PURE__*/React__default.createElement(GridToolbarFilterButton, _extends({}, filterButtonProps, {
39
+ ref: filterButtonRef,
40
+ className: filterButtonProps !== null && filterButtonProps !== void 0 && filterButtonProps.className ? `${filterButtonProps === null || filterButtonProps === void 0 ? void 0 : filterButtonProps.className} redsift-condensed` : 'redsift-condensed'
41
+ })) : null, hasColumnsButton ? /*#__PURE__*/React__default.createElement(GridToolbarColumnsButton, _extends({}, columnsButtonProps, {
42
+ ref: columnsButtonRef,
43
+ className: filterButtonProps !== null && filterButtonProps !== void 0 && filterButtonProps.className ? `${filterButtonProps === null || filterButtonProps === void 0 ? void 0 : filterButtonProps.className} redsift-condensed` : 'redsift-condensed'
44
+ })) : null, hasDensityButton ? /*#__PURE__*/React__default.createElement(GridToolbarDensitySelector, _extends({}, densityButtonProps, {
45
+ ref: densityButtonRef,
46
+ className: filterButtonProps !== null && filterButtonProps !== void 0 && filterButtonProps.className ? `${filterButtonProps === null || filterButtonProps === void 0 ? void 0 : filterButtonProps.className} redsift-condensed` : 'redsift-condensed'
47
+ })) : null, hasExportButton ? /*#__PURE__*/React__default.createElement(GridToolbarExport, _extends({
48
+ csvOptions: {
49
+ allColumns: true,
50
+ fileName: 'csv',
51
+ getRowsToExport: _ref => {
52
+ let {
53
+ apiRef
54
+ } = _ref;
55
+ return gridVisibleSortedRowIdsSelector(apiRef);
56
+ }
57
+ },
58
+ printOptions: {
59
+ disableToolbarButton: true
60
+ }
61
+ }, exportButtonProps, {
62
+ ref: exportButtonRef,
63
+ className: filterButtonProps !== null && filterButtonProps !== void 0 && filterButtonProps.className ? `${filterButtonProps === null || filterButtonProps === void 0 ? void 0 : filterButtonProps.className} redsift-condensed` : 'redsift-condensed'
64
+ })) : null, /*#__PURE__*/React__default.createElement(Flexbox, {
65
+ marginLeft: "8px"
66
+ }, showQuickFilter ? /*#__PURE__*/React__default.createElement(GridToolbarQuickFilter, null) : null)), /*#__PURE__*/React__default.createElement(Flexbox, {
67
+ flexGrow: 3
68
+ }, semanticFilterProps ? /*#__PURE__*/React__default.createElement(GridToolbarFilterSemanticField, semanticFilterProps) : null)));
69
+ };
70
+
71
+ export { Toolbar };
72
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","sources":["../../../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import React from 'react';\n\nimport {\n GridToolbarContainer,\n GridToolbarColumnsButton,\n GridToolbarDensitySelector,\n GridToolbarFilterButton,\n GridToolbarExport,\n gridVisibleSortedRowIdsSelector,\n GridCsvGetRowsToExportParams,\n GridToolbarQuickFilter,\n} from '@mui/x-data-grid-pro';\n\nimport { GridToolbarWrapper } from './styles';\nimport { ToolbarProps } from './types';\nimport { Flexbox } from '@redsift/design-system';\nimport { GridToolbarFilterSemanticField } from '../GridToolbarFilterSemanticField';\n\n/**\n * Temporary workaround for a type mismatch between react 17 and 18\n * https://github.com/mui/material-ui/issues/35287#issuecomment-1337250566\n */\ndeclare global {\n namespace React {\n interface DOMAttributes<T> {\n onResize?: React.ReactEventHandler<T> | undefined;\n onResizeCapture?: React.ReactEventHandler<T> | undefined;\n nonce?: string | undefined;\n }\n }\n}\n/** ------ */\n\nexport const Toolbar: React.FC<ToolbarProps> = (props) => {\n const {\n hasExportButton = true,\n exportButtonProps,\n exportButtonRef,\n hasFilterButton = true,\n filterButtonProps,\n filterButtonRef,\n hasColumnsButton = true,\n columnsButtonProps,\n columnsButtonRef,\n hasDensityButton = true,\n densityButtonProps,\n densityButtonRef,\n onFilterModelChange,\n semanticFilterProps = undefined,\n showQuickFilter,\n } = props;\n\n if (semanticFilterProps && onFilterModelChange) {\n semanticFilterProps.onFilterModelChange = onFilterModelChange;\n }\n\n return (\n <GridToolbarWrapper>\n <GridToolbarContainer>\n <Flexbox gap=\"0\">\n {hasFilterButton ? (\n <GridToolbarFilterButton\n {...filterButtonProps}\n ref={filterButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasColumnsButton ? (\n <GridToolbarColumnsButton\n {...columnsButtonProps}\n ref={columnsButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasDensityButton ? (\n <GridToolbarDensitySelector\n {...densityButtonProps}\n ref={densityButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n {hasExportButton ? (\n <GridToolbarExport\n csvOptions={{\n allColumns: true,\n fileName: 'csv',\n getRowsToExport: ({ apiRef }: GridCsvGetRowsToExportParams) => gridVisibleSortedRowIdsSelector(apiRef),\n }}\n printOptions={{\n disableToolbarButton: true,\n }}\n {...exportButtonProps}\n ref={exportButtonRef}\n className={\n filterButtonProps?.className ? `${filterButtonProps?.className} redsift-condensed` : 'redsift-condensed'\n }\n />\n ) : null}\n <Flexbox marginLeft=\"8px\">{showQuickFilter ? <GridToolbarQuickFilter /> : null}</Flexbox>\n </Flexbox>\n <Flexbox flexGrow={3}>\n {semanticFilterProps ? <GridToolbarFilterSemanticField {...semanticFilterProps} /> : null}\n </Flexbox>\n </GridToolbarContainer>\n </GridToolbarWrapper>\n );\n};\n"],"names":["Toolbar","props","hasExportButton","exportButtonProps","exportButtonRef","hasFilterButton","filterButtonProps","filterButtonRef","hasColumnsButton","columnsButtonProps","columnsButtonRef","hasDensityButton","densityButtonProps","densityButtonRef","onFilterModelChange","semanticFilterProps","undefined","showQuickFilter","React","createElement","GridToolbarWrapper","GridToolbarContainer","Flexbox","gap","GridToolbarFilterButton","_extends","ref","className","GridToolbarColumnsButton","GridToolbarDensitySelector","GridToolbarExport","csvOptions","allColumns","fileName","getRowsToExport","_ref","apiRef","gridVisibleSortedRowIdsSelector","printOptions","disableToolbarButton","marginLeft","GridToolbarQuickFilter","flexGrow","GridToolbarFilterSemanticField"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import styled from 'styled-components';
2
+
3
+ /**
4
+ * Component style.
5
+ */
6
+ const GridToolbarWrapper = styled.div`
7
+ .MuiButtonBase-root-JobBs.MuiButton-root {
8
+ svg {
9
+ path {
10
+ fill: var(--redsift-color-primary-n);
11
+ }
12
+ }
13
+ }
14
+ `;
15
+
16
+ export { GridToolbarWrapper };
17
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sources":["../../../src/components/Toolbar/styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\n/**\n * Component style.\n */\nexport const GridToolbarWrapper = styled.div`\n .MuiButtonBase-root-JobBs.MuiButton-root {\n svg {\n path {\n fill: var(--redsift-color-primary-n);\n }\n }\n }\n`;\n"],"names":["GridToolbarWrapper","styled","div"],"mappings":";;AAEA;AACA;AACA;AACaA,MAAAA,kBAAkB,GAAGC,MAAM,CAACC,GAAI,CAAA;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;"}
@@ -0,0 +1,40 @@
1
+ import { RefObject } from 'react';
2
+ import { GridToolbarExportProps, GridToolbarFilterButtonProps, GridFilterModel, GridToolbarColumnsButton, GridToolbarDensitySelector } from '@mui/x-data-grid-pro';
3
+ import { GridToolbarFilterSemanticFieldProps } from '../GridToolbarFilterSemanticField/types.js';
4
+
5
+ type GridToolbarColumnsProps = Omit<typeof GridToolbarColumnsButton, 'ref'>;
6
+ type GridToolbarDensityProps = Omit<typeof GridToolbarDensitySelector, 'ref'>;
7
+ type GridToolbarFilterSemanticProps = Omit<GridToolbarFilterSemanticFieldProps, 'ref'>;
8
+ interface ToolbarProps {
9
+ /** Props to forward to the column button. */
10
+ columnsButtonProps?: GridToolbarColumnsProps;
11
+ /** Column button ref. */
12
+ columnsButtonRef?: RefObject<HTMLButtonElement>;
13
+ /** Props to forward to the density button. */
14
+ densityButtonProps?: GridToolbarDensityProps;
15
+ /** Density button ref. */
16
+ densityButtonRef?: RefObject<HTMLButtonElement>;
17
+ /** Props to forward to the export button. */
18
+ exportButtonProps?: GridToolbarExportProps;
19
+ /** Export button ref. */
20
+ exportButtonRef?: RefObject<HTMLButtonElement>;
21
+ /** Props to forward to the filter button. */
22
+ filterButtonProps?: GridToolbarFilterButtonProps;
23
+ /** Filter button ref. */
24
+ filterButtonRef?: RefObject<HTMLButtonElement>;
25
+ /** Whether the columns button is displayed or not. */
26
+ hasColumnsButton?: boolean;
27
+ /** Whether the density button is displayed or not. */
28
+ hasDensityButton?: boolean;
29
+ /** Whether the export button is displayed or not. */
30
+ hasExportButton?: boolean;
31
+ /** Whether the filter button is displayed or not. */
32
+ hasFilterButton?: boolean;
33
+ /** Configuration object for NLP filter. undefined if disabled. */
34
+ onFilterModelChange?: (filterModel: GridFilterModel) => void;
35
+ semanticFilterProps?: GridToolbarFilterSemanticProps;
36
+ /** Whether you want to show the quick filter or not. */
37
+ showQuickFilter?: boolean;
38
+ }
39
+
40
+ export { ToolbarProps };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { DataGridProps, SelectionStatus } from '../DataGrid/types.js';
3
+
4
+ type ToolbarWrapperProps = {
5
+ hideToolbar: DataGridProps['hideToolbar'];
6
+ RenderedToolbar: React.JSXElementConstructor<any>;
7
+ filterModel: DataGridProps['filterModel'];
8
+ onFilterModelChange: DataGridProps['onFilterModelChange'];
9
+ pagination: DataGridProps['pagination'];
10
+ paginationPlacement: DataGridProps['paginationPlacement'];
11
+ selectionStatus: React.MutableRefObject<SelectionStatus>;
12
+ apiRef: DataGridProps['apiRef'];
13
+ isRowSelectable: DataGridProps['isRowSelectable'];
14
+ page: DataGridProps['page'];
15
+ onPageChange: DataGridProps['onPageChange'];
16
+ pageSize: DataGridProps['pageSize'];
17
+ onPageSizeChange: DataGridProps['onPageSizeChange'];
18
+ rowsPerPageOptions: DataGridProps['rowsPerPageOptions'];
19
+ paginationProps: DataGridProps['paginationProps'];
20
+ paginationMode?: DataGridProps['paginationMode'];
21
+ rowCount?: DataGridProps['rowCount'];
22
+ };
23
+ declare const ToolbarWrapper: React.FC<ToolbarWrapperProps>;
24
+
25
+ export { ToolbarWrapper, ToolbarWrapperProps };
@@ -0,0 +1,60 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React__default from 'react';
3
+ import { ServerSideControlledPagination } from '../Pagination/ServerSideControlledPagination.js';
4
+ import { ControlledPagination } from '../Pagination/ControlledPagination.js';
5
+
6
+ const _excluded = ["hideToolbar", "RenderedToolbar", "filterModel", "onFilterModelChange", "pagination", "paginationPlacement", "selectionStatus", "apiRef", "isRowSelectable", "page", "onPageChange", "pageSize", "onPageSizeChange", "rowsPerPageOptions", "paginationProps", "paginationMode", "rowCount"];
7
+ const ToolbarWrapper = _ref => {
8
+ let {
9
+ hideToolbar,
10
+ RenderedToolbar,
11
+ filterModel,
12
+ onFilterModelChange,
13
+ pagination,
14
+ paginationPlacement,
15
+ selectionStatus,
16
+ apiRef,
17
+ isRowSelectable,
18
+ page,
19
+ onPageChange,
20
+ pageSize,
21
+ onPageSizeChange,
22
+ rowsPerPageOptions,
23
+ paginationProps,
24
+ paginationMode = 'client',
25
+ rowCount
26
+ } = _ref,
27
+ forwardedProps = _objectWithoutProperties(_ref, _excluded);
28
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !hideToolbar ? /*#__PURE__*/React__default.createElement(RenderedToolbar, _extends({}, forwardedProps, {
29
+ filterModel: filterModel,
30
+ onFilterModelChange: onFilterModelChange
31
+ })) : null, pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, {
32
+ displaySelection: true,
33
+ displayRowsPerPage: false,
34
+ displayPagination: ['top', 'both'].includes(paginationPlacement),
35
+ selectionStatus: selectionStatus.current,
36
+ page: page,
37
+ onPageChange: onPageChange,
38
+ pageSize: pageSize,
39
+ onPageSizeChange: onPageSizeChange,
40
+ rowsPerPageOptions: rowsPerPageOptions,
41
+ paginationProps: paginationProps,
42
+ rowCount: rowCount
43
+ }) : /*#__PURE__*/React__default.createElement(ControlledPagination, {
44
+ displaySelection: true,
45
+ displayRowsPerPage: false,
46
+ displayPagination: ['top', 'both'].includes(paginationPlacement),
47
+ selectionStatus: selectionStatus.current,
48
+ apiRef: apiRef,
49
+ isRowSelectable: isRowSelectable,
50
+ page: page,
51
+ onPageChange: onPageChange,
52
+ pageSize: pageSize,
53
+ onPageSizeChange: onPageSizeChange,
54
+ rowsPerPageOptions: rowsPerPageOptions,
55
+ paginationProps: paginationProps
56
+ }) : null);
57
+ };
58
+
59
+ export { ToolbarWrapper };
60
+ //# sourceMappingURL=ToolbarWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarWrapper.js","sources":["../../../src/components/ToolbarWrapper/ToolbarWrapper.tsx"],"sourcesContent":["import React from 'react';\n\nimport { DataGridProps, SelectionStatus } from '../DataGrid/types';\nimport { ServerSideControlledPagination } from '../Pagination/ServerSideControlledPagination';\nimport { ControlledPagination } from '../Pagination/ControlledPagination';\n\nexport type ToolbarWrapperProps = {\n hideToolbar: DataGridProps['hideToolbar'];\n RenderedToolbar: React.JSXElementConstructor<any>;\n filterModel: DataGridProps['filterModel'];\n onFilterModelChange: DataGridProps['onFilterModelChange'];\n pagination: DataGridProps['pagination'];\n paginationPlacement: DataGridProps['paginationPlacement'];\n selectionStatus: React.MutableRefObject<SelectionStatus>;\n apiRef: DataGridProps['apiRef'];\n isRowSelectable: DataGridProps['isRowSelectable'];\n page: DataGridProps['page'];\n onPageChange: DataGridProps['onPageChange'];\n pageSize: DataGridProps['pageSize'];\n onPageSizeChange: DataGridProps['onPageSizeChange'];\n rowsPerPageOptions: DataGridProps['rowsPerPageOptions'];\n paginationProps: DataGridProps['paginationProps'];\n paginationMode?: DataGridProps['paginationMode'];\n rowCount?: DataGridProps['rowCount'];\n};\n\nexport const ToolbarWrapper: React.FC<ToolbarWrapperProps> = ({\n hideToolbar,\n RenderedToolbar,\n filterModel,\n onFilterModelChange,\n pagination,\n paginationPlacement,\n selectionStatus,\n apiRef,\n isRowSelectable,\n page,\n onPageChange,\n pageSize,\n onPageSizeChange,\n rowsPerPageOptions,\n paginationProps,\n paginationMode = 'client',\n rowCount,\n ...forwardedProps\n}) => {\n return (\n <>\n {!hideToolbar ? (\n <RenderedToolbar {...forwardedProps} filterModel={filterModel} onFilterModelChange={onFilterModelChange} />\n ) : null}\n {pagination ? (\n paginationMode == 'server' ? (\n <ServerSideControlledPagination\n displaySelection={true}\n displayRowsPerPage={false}\n displayPagination={['top', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n page={page!}\n onPageChange={onPageChange as any}\n pageSize={pageSize!}\n onPageSizeChange={onPageSizeChange as any}\n rowsPerPageOptions={rowsPerPageOptions}\n paginationProps={paginationProps}\n rowCount={rowCount!}\n />\n ) : (\n <ControlledPagination\n displaySelection={true}\n displayRowsPerPage={false}\n displayPagination={['top', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n apiRef={apiRef!}\n isRowSelectable={isRowSelectable}\n page={page!}\n onPageChange={onPageChange as any}\n pageSize={pageSize!}\n onPageSizeChange={onPageSizeChange as any}\n rowsPerPageOptions={rowsPerPageOptions}\n paginationProps={paginationProps}\n />\n )\n ) : null}\n </>\n );\n};\n"],"names":["ToolbarWrapper","_ref","hideToolbar","RenderedToolbar","filterModel","onFilterModelChange","pagination","paginationPlacement","selectionStatus","apiRef","isRowSelectable","page","onPageChange","pageSize","onPageSizeChange","rowsPerPageOptions","paginationProps","paginationMode","rowCount","forwardedProps","_objectWithoutProperties","_excluded","React","createElement","Fragment","_extends","ServerSideControlledPagination","displaySelection","displayRowsPerPage","displayPagination","includes","current","ControlledPagination"],"mappings":";;;;;;AA0BaA,MAAAA,cAA6C,GAAGC,IAAA,IAmBvD;EAAA,IAnBwD;MAC5DC,WAAW;MACXC,eAAe;MACfC,WAAW;MACXC,mBAAmB;MACnBC,UAAU;MACVC,mBAAmB;MACnBC,eAAe;MACfC,MAAM;MACNC,eAAe;MACfC,IAAI;MACJC,YAAY;MACZC,QAAQ;MACRC,gBAAgB;MAChBC,kBAAkB;MAClBC,eAAe;AACfC,MAAAA,cAAc,GAAG,QAAQ;AACzBC,MAAAA,QAAAA;AAEF,KAAC,GAAAjB,IAAA;AADIkB,IAAAA,cAAc,GAAAC,wBAAA,CAAAnB,IAAA,EAAAoB,SAAA,CAAA,CAAA;AAEjB,EAAA,oBACEC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EACG,IAAA,EAAA,CAACtB,WAAW,gBACXoB,cAAA,CAAAC,aAAA,CAACpB,eAAe,EAAAsB,QAAA,KAAKN,cAAc,EAAA;AAAEf,IAAAA,WAAW,EAAEA,WAAY;AAACC,IAAAA,mBAAmB,EAAEA,mBAAAA;AAAoB,GAAA,CAAE,CAAC,GACzG,IAAI,EACPC,UAAU,GACTW,cAAc,IAAI,QAAQ,gBACxBK,cAAA,CAAAC,aAAA,CAACG,8BAA8B,EAAA;AAC7BC,IAAAA,gBAAgB,EAAE,IAAK;AACvBC,IAAAA,kBAAkB,EAAE,KAAM;IAC1BC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACvB,mBAAoB,CAAE;IAClEC,eAAe,EAAEA,eAAe,CAACuB,OAAQ;AACzCpB,IAAAA,IAAI,EAAEA,IAAM;AACZC,IAAAA,YAAY,EAAEA,YAAoB;AAClCC,IAAAA,QAAQ,EAAEA,QAAU;AACpBC,IAAAA,gBAAgB,EAAEA,gBAAwB;AAC1CC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAgB;AACjCE,IAAAA,QAAQ,EAAEA,QAAAA;AAAU,GACrB,CAAC,gBAEFI,cAAA,CAAAC,aAAA,CAACS,oBAAoB,EAAA;AACnBL,IAAAA,gBAAgB,EAAE,IAAK;AACvBC,IAAAA,kBAAkB,EAAE,KAAM;IAC1BC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAACC,QAAQ,CAACvB,mBAAoB,CAAE;IAClEC,eAAe,EAAEA,eAAe,CAACuB,OAAQ;AACzCtB,IAAAA,MAAM,EAAEA,MAAQ;AAChBC,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,IAAI,EAAEA,IAAM;AACZC,IAAAA,YAAY,EAAEA,YAAoB;AAClCC,IAAAA,QAAQ,EAAEA,QAAU;AACpBC,IAAAA,gBAAgB,EAAEA,gBAAwB;AAC1CC,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAAA;GAClB,CACF,GACC,IACJ,CAAC,CAAA;AAEP;;;;"}
@@ -0,0 +1,109 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ const useControlledDatagridState = _ref => {
4
+ var _initialState$paginat, _initialState$paginat2;
5
+ let {
6
+ initialState,
7
+ rowsPerPageOptions,
8
+ propsColumnVisibilityModel,
9
+ propsFilterModel,
10
+ propsOnColumnVisibilityModelChange,
11
+ propsOnFilterModelChange,
12
+ propsOnPageChange,
13
+ propsOnPageSizeChange,
14
+ propsOnPinnedColumnsChange,
15
+ propsOnSortModelChange,
16
+ propsPage,
17
+ propsPageSize,
18
+ propsPinnedColumns,
19
+ propsSortModel
20
+ } = _ref;
21
+ const [filterModel, setFilterModel] = useState(propsFilterModel);
22
+ useEffect(() => {
23
+ setFilterModel(propsFilterModel);
24
+ }, [propsFilterModel]);
25
+ const onFilterModelChange = (model, details) => {
26
+ if (propsOnFilterModelChange) {
27
+ propsOnFilterModelChange(model, details);
28
+ } else {
29
+ setFilterModel(model);
30
+ }
31
+ };
32
+ const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);
33
+ useEffect(() => {
34
+ setColumnVisibilityModel(propsColumnVisibilityModel);
35
+ }, [propsColumnVisibilityModel]);
36
+ const onColumnVisibilityModelChange = (model, details) => {
37
+ if (propsOnColumnVisibilityModelChange) {
38
+ propsOnColumnVisibilityModelChange(model, details);
39
+ } else {
40
+ setColumnVisibilityModel(model);
41
+ }
42
+ };
43
+ const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);
44
+ useEffect(() => {
45
+ setPinnedColumns(propsPinnedColumns);
46
+ }, [propsPinnedColumns]);
47
+ const onPinnedColumnsChange = (model, details) => {
48
+ if (propsOnPinnedColumnsChange) {
49
+ propsOnPinnedColumnsChange(model, details);
50
+ } else {
51
+ setPinnedColumns(model);
52
+ }
53
+ };
54
+ const [sortModel, setSortModel] = useState(propsSortModel);
55
+ useEffect(() => {
56
+ setSortModel(propsSortModel);
57
+ }, [propsSortModel]);
58
+ const onSortModelChange = (model, details) => {
59
+ if (propsOnSortModelChange) {
60
+ propsOnSortModelChange(model, details);
61
+ } else {
62
+ setSortModel(model);
63
+ }
64
+ };
65
+ const [page, setPage] = useState((initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat = initialState.pagination) === null || _initialState$paginat === void 0 ? void 0 : _initialState$paginat.page) || propsPage || 0);
66
+ const [pageSize, setPageSize] = useState((initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat2 = initialState.pagination) === null || _initialState$paginat2 === void 0 ? void 0 : _initialState$paginat2.pageSize) || propsPageSize || (rowsPerPageOptions === null || rowsPerPageOptions === void 0 ? void 0 : rowsPerPageOptions[0]) || 25);
67
+ const onPageChange = page => {
68
+ if (propsOnPageChange) {
69
+ propsOnPageChange(page, undefined);
70
+ } else {
71
+ setPage(page);
72
+ }
73
+ };
74
+ useEffect(() => {
75
+ if (propsPage || propsPage === 0) {
76
+ setPage(propsPage);
77
+ }
78
+ }, [propsPage]);
79
+ const onPageSizeChange = pageSize => {
80
+ onPageChange(0);
81
+ if (propsOnPageSizeChange) {
82
+ propsOnPageSizeChange(pageSize, undefined);
83
+ } else {
84
+ setPageSize(pageSize);
85
+ }
86
+ };
87
+ useEffect(() => {
88
+ if (propsPageSize) {
89
+ setPageSize(propsPageSize);
90
+ }
91
+ }, [propsPageSize]);
92
+ return {
93
+ filterModel,
94
+ onFilterModelChange,
95
+ columnVisibilityModel,
96
+ onColumnVisibilityModelChange,
97
+ pinnedColumns,
98
+ onPinnedColumnsChange,
99
+ sortModel,
100
+ onSortModelChange,
101
+ page,
102
+ pageSize,
103
+ onPageChange,
104
+ onPageSizeChange
105
+ };
106
+ };
107
+
108
+ export { useControlledDatagridState };
109
+ //# sourceMappingURL=useControlledDatagridState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlledDatagridState.js","sources":["../../src/hooks/useControlledDatagridState.tsx"],"sourcesContent":["import {\n GridCallbackDetails,\n GridColumnVisibilityModel,\n GridFilterModel,\n GridPinnedColumns,\n GridSortModel,\n} from '@mui/x-data-grid-pro';\nimport { useEffect, useState } from 'react';\nimport { DataGridProps } from '../components/DataGrid';\n\nexport interface UseControlledDatagridStateProps {\n initialState: DataGridProps['initialState'];\n rowsPerPageOptions: DataGridProps['rowsPerPageOptions'];\n propsColumnVisibilityModel: DataGridProps['columnVisibilityModel'];\n propsFilterModel: DataGridProps['filterModel'];\n propsOnColumnVisibilityModelChange: DataGridProps['onColumnVisibilityModelChange'];\n propsOnFilterModelChange: DataGridProps['onFilterModelChange'];\n propsOnPageChange: DataGridProps['onPageChange'];\n propsOnPageSizeChange: DataGridProps['onPageSizeChange'];\n propsOnPinnedColumnsChange: DataGridProps['onPinnedColumnsChange'];\n propsOnSortModelChange: DataGridProps['onSortModelChange'];\n propsPage: DataGridProps['page'];\n propsPageSize: DataGridProps['pageSize'];\n propsPinnedColumns: DataGridProps['pinnedColumns'];\n propsSortModel: DataGridProps['sortModel'];\n}\n\nexport const useControlledDatagridState = ({\n initialState,\n rowsPerPageOptions,\n propsColumnVisibilityModel,\n propsFilterModel,\n propsOnColumnVisibilityModelChange,\n propsOnFilterModelChange,\n propsOnPageChange,\n propsOnPageSizeChange,\n propsOnPinnedColumnsChange,\n propsOnSortModelChange,\n propsPage,\n propsPageSize,\n propsPinnedColumns,\n propsSortModel,\n}: UseControlledDatagridStateProps) => {\n const [filterModel, setFilterModel] = useState(propsFilterModel);\n useEffect(() => {\n setFilterModel(propsFilterModel);\n }, [propsFilterModel]);\n\n const onFilterModelChange = (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnFilterModelChange) {\n propsOnFilterModelChange(model, details);\n } else {\n setFilterModel(model);\n }\n };\n\n const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);\n useEffect(() => {\n setColumnVisibilityModel(propsColumnVisibilityModel);\n }, [propsColumnVisibilityModel]);\n\n const onColumnVisibilityModelChange = (model: GridColumnVisibilityModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnColumnVisibilityModelChange) {\n propsOnColumnVisibilityModelChange(model, details);\n } else {\n setColumnVisibilityModel(model);\n }\n };\n\n const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);\n useEffect(() => {\n setPinnedColumns(propsPinnedColumns);\n }, [propsPinnedColumns]);\n\n const onPinnedColumnsChange = (model: GridPinnedColumns, details: GridCallbackDetails<'filter'>) => {\n if (propsOnPinnedColumnsChange) {\n propsOnPinnedColumnsChange(model, details);\n } else {\n setPinnedColumns(model);\n }\n };\n\n const [sortModel, setSortModel] = useState(propsSortModel);\n useEffect(() => {\n setSortModel(propsSortModel);\n }, [propsSortModel]);\n\n const onSortModelChange = (model: GridSortModel, details: GridCallbackDetails<'filter'>) => {\n if (propsOnSortModelChange) {\n propsOnSortModelChange(model, details);\n } else {\n setSortModel(model);\n }\n };\n\n const [page, setPage] = useState(initialState?.pagination?.page || propsPage || 0);\n const [pageSize, setPageSize] = useState(\n initialState?.pagination?.pageSize || propsPageSize || rowsPerPageOptions?.[0] || 25\n );\n\n const onPageChange = (page: number) => {\n if (propsOnPageChange) {\n propsOnPageChange(page, undefined!);\n } else {\n setPage(page);\n }\n };\n\n useEffect(() => {\n if (propsPage || propsPage === 0) {\n setPage(propsPage);\n }\n }, [propsPage]);\n\n const onPageSizeChange = (pageSize: number) => {\n onPageChange(0);\n if (propsOnPageSizeChange) {\n propsOnPageSizeChange(pageSize, undefined!);\n } else {\n setPageSize(pageSize);\n }\n };\n\n useEffect(() => {\n if (propsPageSize) {\n setPageSize(propsPageSize);\n }\n }, [propsPageSize]);\n\n return {\n filterModel,\n onFilterModelChange,\n columnVisibilityModel,\n onColumnVisibilityModelChange,\n pinnedColumns,\n onPinnedColumnsChange,\n sortModel,\n onSortModelChange,\n page,\n pageSize,\n onPageChange,\n onPageSizeChange,\n };\n};\n"],"names":["useControlledDatagridState","_ref","_initialState$paginat","_initialState$paginat2","initialState","rowsPerPageOptions","propsColumnVisibilityModel","propsFilterModel","propsOnColumnVisibilityModelChange","propsOnFilterModelChange","propsOnPageChange","propsOnPageSizeChange","propsOnPinnedColumnsChange","propsOnSortModelChange","propsPage","propsPageSize","propsPinnedColumns","propsSortModel","filterModel","setFilterModel","useState","useEffect","onFilterModelChange","model","details","columnVisibilityModel","setColumnVisibilityModel","onColumnVisibilityModelChange","pinnedColumns","setPinnedColumns","onPinnedColumnsChange","sortModel","setSortModel","onSortModelChange","page","setPage","pagination","pageSize","setPageSize","onPageChange","undefined","onPageSizeChange"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { useCallback } from 'react';
2
+
3
+ // Get and Set data from LocalStorage WITHOUT useState
4
+
5
+ // triggering a state update and consecutive re-render
6
+ const useFetchState = (defaultValue, key) => {
7
+ let stickyValue = null;
8
+ try {
9
+ stickyValue = window.localStorage.getItem(key);
10
+ } catch (e) {
11
+ console.error('StatefulDataGrid: error getting item from local storage: ', e);
12
+ }
13
+ let parsedValue = stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined' ? JSON.parse(stickyValue) : defaultValue;
14
+
15
+ // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)
16
+ // Consider upgrading the Datagrid component library as the exception handling was added in this PR: https://github.com/mui-org/material-ui-x/pull/3224
17
+ if (parsedValue instanceof Array) {
18
+ const fields = (parsedValue || []).map(item => item.field);
19
+ if (fields.includes('screenshot') || fields.includes('diffs')) {
20
+ parsedValue = defaultValue;
21
+ }
22
+ }
23
+ const updateValue = useCallback(value => {
24
+ try {
25
+ window.localStorage.setItem(key, JSON.stringify(value));
26
+ } catch (e) {
27
+ console.error('StatefulDataGrid: error setting item into local storage: ', e);
28
+ }
29
+ }, [key]);
30
+ return [parsedValue, updateValue];
31
+ };
32
+
33
+ export { useFetchState };
34
+ //# sourceMappingURL=useFetchState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchState.js","sources":["../../src/hooks/useFetchState.tsx"],"sourcesContent":["// Get and Set data from LocalStorage WITHOUT useState\n// Useful for when you want to get and set data without\n\nimport { useCallback } from 'react';\n\n// triggering a state update and consecutive re-render\nexport const useFetchState = (defaultValue: unknown, key: string) => {\n let stickyValue = null;\n try {\n stickyValue = window.localStorage.getItem(key);\n } catch (e) {\n console.error('StatefulDataGrid: error getting item from local storage: ', e);\n }\n let parsedValue =\n stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined'\n ? JSON.parse(stickyValue)\n : defaultValue;\n\n // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)\n // Consider upgrading the Datagrid component library as the exception handling was added in this PR: https://github.com/mui-org/material-ui-x/pull/3224\n if (parsedValue instanceof Array) {\n const fields = (parsedValue || []).map((item) => item.field);\n if (fields.includes('screenshot') || fields.includes('diffs')) {\n parsedValue = defaultValue;\n }\n }\n\n const updateValue = useCallback(\n (value: unknown) => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n console.error('StatefulDataGrid: error setting item into local storage: ', e);\n }\n },\n [key]\n );\n\n return [parsedValue, updateValue];\n};\n"],"names":["useFetchState","defaultValue","key","stickyValue","window","localStorage","getItem","e","console","error","parsedValue","undefined","JSON","parse","Array","fields","map","item","field","includes","updateValue","useCallback","value","setItem","stringify"],"mappings":";;AAAA;;AAKA;MACaA,aAAa,GAAGA,CAACC,YAAqB,EAAEC,GAAW,KAAK;EACnE,IAAIC,WAAW,GAAG,IAAI,CAAA;EACtB,IAAI;IACFA,WAAW,GAAGC,MAAM,CAACC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC,CAAA;GAC/C,CAAC,OAAOK,CAAC,EAAE;AACVC,IAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEF,CAAC,CAAC,CAAA;AAC/E,GAAA;EACA,IAAIG,WAAW,GACbP,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAKQ,SAAS,IAAIR,WAAW,KAAK,WAAW,GAC5ES,IAAI,CAACC,KAAK,CAACV,WAAW,CAAC,GACvBF,YAAY,CAAA;;AAElB;AACA;EACA,IAAIS,WAAW,YAAYI,KAAK,EAAE;AAChC,IAAA,MAAMC,MAAM,GAAG,CAACL,WAAW,IAAI,EAAE,EAAEM,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,KAAK,CAAC,CAAA;AAC5D,IAAA,IAAIH,MAAM,CAACI,QAAQ,CAAC,YAAY,CAAC,IAAIJ,MAAM,CAACI,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7DT,MAAAA,WAAW,GAAGT,YAAY,CAAA;AAC5B,KAAA;AACF,GAAA;AAEA,EAAA,MAAMmB,WAAW,GAAGC,WAAW,CAC5BC,KAAc,IAAK;IAClB,IAAI;AACFlB,MAAAA,MAAM,CAACC,YAAY,CAACkB,OAAO,CAACrB,GAAG,EAAEU,IAAI,CAACY,SAAS,CAACF,KAAK,CAAC,CAAC,CAAA;KACxD,CAAC,OAAOf,CAAC,EAAE;AACVC,MAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEF,CAAC,CAAC,CAAA;AAC/E,KAAA;AACF,GAAC,EACD,CAACL,GAAG,CACN,CAAC,CAAA;AAED,EAAA,OAAO,CAACQ,WAAW,EAAEU,WAAW,CAAC,CAAA;AACnC;;;;"}
@@ -0,0 +1,12 @@
1
+ import { GridFilterModel } from '@mui/x-data-grid-pro';
2
+
3
+ interface ExtendedGridFilterModel extends GridFilterModel {
4
+ quickFilterValues?: string[];
5
+ }
6
+ interface ExtendedGridPaginationModel {
7
+ page: number;
8
+ pageSize: number;
9
+ direction?: 'next' | 'back';
10
+ }
11
+
12
+ export { ExtendedGridFilterModel, ExtendedGridPaginationModel };
@@ -0,0 +1,182 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { useEffect, useCallback, useMemo } from 'react';
3
+ import { useTableStates } from './useTableStates.js';
4
+ import { clearPreviousVersionStorage } from '../utils/localStorage.js';
5
+ import { getModelsParsedOrUpdateLocalStorage, updateUrl } from '../utils/urlLocalStorageSync.js';
6
+
7
+ const useStatefulTable = props => {
8
+ const {
9
+ // density = 'standard',
10
+ apiRef,
11
+ initialState,
12
+ columns: propsColumns,
13
+ onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,
14
+ onColumnWidthChange: propsOnColumnWidthChange,
15
+ onFilterModelChange: propsOnFilterModelChange,
16
+ onPageChange: propsOnPageChange,
17
+ onPageSizeChange: propsOnPageSizeChange,
18
+ onPinnedColumnsChange: propsOnPinnedColumnsChange,
19
+ onSortModelChange: propsOnSortModelChange,
20
+ useRouter,
21
+ localStorageVersion = 1,
22
+ previousLocalStorageVersions = []
23
+ } = props;
24
+ const {
25
+ search,
26
+ pathname,
27
+ historyReplace
28
+ } = useRouter();
29
+ const id = pathname;
30
+
31
+ // States and setters persisted in the local storage for this table
32
+ const {
33
+ paginationModel,
34
+ setPaginationModel,
35
+ sortModel,
36
+ setSortModel,
37
+ localStorageFilters,
38
+ setLocalStorageFilters,
39
+ visibilityModelLocalStorage,
40
+ setVisibilityModelLocalStorage,
41
+ pinnedColumns,
42
+ setPinnedColumns,
43
+ dimensionModel,
44
+ setDimensionModel
45
+ } = useTableStates(id, localStorageVersion);
46
+
47
+ // clearing up old version keys
48
+ useEffect(() => clearPreviousVersionStorage(id, previousLocalStorageVersions), [id, previousLocalStorageVersions]);
49
+ const onColumnDimensionChange = useCallback(_ref => {
50
+ let {
51
+ newWidth,
52
+ field
53
+ } = _ref;
54
+ setDimensionModel(_objectSpread2(_objectSpread2({}, dimensionModel), {}, {
55
+ [field]: newWidth
56
+ }));
57
+ }, [dimensionModel, setDimensionModel]);
58
+ const {
59
+ filterModel: filterParsed,
60
+ sortModel: sortModelParsed,
61
+ paginationModel: paginationModelParsed,
62
+ columnVisibilityModel: visibilityModel,
63
+ pinnedColumnsModel
64
+ } = getModelsParsedOrUpdateLocalStorage(search || '', localStorageVersion, propsColumns, historyReplace, initialState, {
65
+ localStorageFilters,
66
+ setLocalStorageFilters,
67
+ localStorageSorting: sortModel,
68
+ setLocalStorageSorting: setSortModel,
69
+ localStoragePagination: paginationModel,
70
+ setLocalStoragePagination: setPaginationModel,
71
+ localStorageColumnsVisibility: visibilityModelLocalStorage,
72
+ setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,
73
+ localStoragePinnedColumns: pinnedColumns,
74
+ setLocalStoragePinnedColumns: setPinnedColumns
75
+ });
76
+ const columns = useMemo(() => propsColumns.map(column => {
77
+ column.width = dimensionModel[column.field] || column.width || 100;
78
+ return column;
79
+ }), [propsColumns, dimensionModel]);
80
+
81
+ /** Add resetPage method to apiRef. */
82
+ apiRef.current.resetPage = () => {
83
+ apiRef.current.setPage(0);
84
+ };
85
+ return {
86
+ apiRef,
87
+ columns,
88
+ onFilterModelChange: (model, details) => {
89
+ const filterModel = _objectSpread2(_objectSpread2({}, model), {}, {
90
+ items: model.items.map(item => {
91
+ const column = apiRef.current.getColumn(item.columnField);
92
+ item.type = column.type || 'string';
93
+ return item;
94
+ }),
95
+ quickFilterValues: model.quickFilterValues || []
96
+ });
97
+ propsOnFilterModelChange === null || propsOnFilterModelChange === void 0 ? void 0 : propsOnFilterModelChange(filterModel, details);
98
+ updateUrl({
99
+ filterModel: filterModel,
100
+ sortModel: sortModelParsed,
101
+ paginationModel: paginationModelParsed,
102
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
103
+ pinnedColumnsModel: pinnedColumnsModel
104
+ }, search, localStorageVersion, historyReplace, columns);
105
+ },
106
+ filterModel: filterParsed,
107
+ onSortModelChange: (model, details) => {
108
+ propsOnSortModelChange === null || propsOnSortModelChange === void 0 ? void 0 : propsOnSortModelChange(model, details);
109
+ updateUrl({
110
+ filterModel: filterParsed,
111
+ sortModel: model,
112
+ paginationModel: paginationModelParsed,
113
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
114
+ pinnedColumnsModel: pinnedColumnsModel
115
+ }, search, localStorageVersion, historyReplace, columns);
116
+ },
117
+ sortModel: sortModelParsed,
118
+ onPinnedColumnsChange: (pinnedColumns, details) => {
119
+ propsOnPinnedColumnsChange === null || propsOnPinnedColumnsChange === void 0 ? void 0 : propsOnPinnedColumnsChange(pinnedColumns, details);
120
+ updateUrl({
121
+ filterModel: filterParsed,
122
+ sortModel: sortModelParsed,
123
+ paginationModel: paginationModelParsed,
124
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
125
+ pinnedColumnsModel: pinnedColumns
126
+ }, search, localStorageVersion, historyReplace, columns);
127
+ },
128
+ pinnedColumns: pinnedColumnsModel,
129
+ page: paginationModelParsed.page,
130
+ pageSize: paginationModelParsed.pageSize,
131
+ onPageChange: (page, details) => {
132
+ const direction = paginationModelParsed.page < page ? 'next' : 'back';
133
+ propsOnPageChange === null || propsOnPageChange === void 0 ? void 0 : propsOnPageChange(page, details);
134
+ updateUrl({
135
+ filterModel: filterParsed,
136
+ sortModel: sortModelParsed,
137
+ paginationModel: {
138
+ page,
139
+ pageSize: paginationModelParsed.pageSize,
140
+ direction
141
+ },
142
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
143
+ pinnedColumnsModel: pinnedColumnsModel
144
+ }, search, localStorageVersion, historyReplace, columns);
145
+ },
146
+ onPageSizeChange: (pageSize, details) => {
147
+ propsOnPageSizeChange === null || propsOnPageSizeChange === void 0 ? void 0 : propsOnPageSizeChange(pageSize, details);
148
+ updateUrl({
149
+ filterModel: filterParsed,
150
+ sortModel: sortModelParsed,
151
+ paginationModel: {
152
+ page: paginationModelParsed.page,
153
+ pageSize,
154
+ direction: paginationModelParsed.direction
155
+ },
156
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
157
+ pinnedColumnsModel: pinnedColumnsModel
158
+ }, search, localStorageVersion, historyReplace, columns);
159
+ },
160
+ columnVisibilityModel: visibilityModel,
161
+ onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {
162
+ propsOnColumnVisibilityModelChange === null || propsOnColumnVisibilityModelChange === void 0 ? void 0 : propsOnColumnVisibilityModelChange(columnsVisibilityModel, details);
163
+ updateUrl({
164
+ filterModel: filterParsed,
165
+ sortModel: sortModelParsed,
166
+ paginationModel: paginationModelParsed,
167
+ columnsModel: columnsVisibilityModel,
168
+ pinnedColumnsModel: pinnedColumnsModel
169
+ }, search, localStorageVersion, historyReplace, columns);
170
+ },
171
+ onColumnWidthChange: (params, event, details) => {
172
+ propsOnColumnWidthChange === null || propsOnColumnWidthChange === void 0 ? void 0 : propsOnColumnWidthChange(params, event, details);
173
+ onColumnDimensionChange({
174
+ newWidth: params.width,
175
+ field: params.colDef.field
176
+ });
177
+ }
178
+ };
179
+ };
180
+
181
+ export { useStatefulTable };
182
+ //# sourceMappingURL=useStatefulTable.js.map