@mui/x-data-grid 6.3.0 → 6.4.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 (148) hide show
  1. package/CHANGELOG.md +105 -2
  2. package/DataGrid/DataGrid.js +20 -1
  3. package/DataGrid/useDataGridComponent.js +2 -2
  4. package/DataGrid/useDataGridProps.js +3 -1
  5. package/colDef/gridBooleanColDef.js +19 -1
  6. package/colDef/gridDateColDef.js +6 -2
  7. package/colDef/gridSingleSelectColDef.js +21 -1
  8. package/components/GridPagination.js +3 -1
  9. package/components/base/GridBody.d.ts +1 -0
  10. package/components/base/GridBody.js +6 -3
  11. package/components/containers/GridRootStyles.js +1 -0
  12. package/components/panel/GridPanel.d.ts +2 -1
  13. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  14. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  15. package/components/toolbar/GridToolbarFilterButton.js +3 -1
  16. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +12 -1
  17. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -1
  18. package/hooks/features/clipboard/useGridClipboard.js +43 -26
  19. package/hooks/features/dimensions/useGridDimensions.js +2 -4
  20. package/hooks/features/editing/useGridCellEditing.js +7 -3
  21. package/hooks/features/editing/useGridRowEditing.js +7 -3
  22. package/hooks/features/export/serializers/csvSerializer.d.ts +5 -0
  23. package/hooks/features/export/serializers/csvSerializer.js +46 -6
  24. package/hooks/features/export/useGridCsvExport.d.ts +2 -1
  25. package/hooks/features/export/useGridCsvExport.js +7 -5
  26. package/hooks/features/focus/useGridFocus.js +2 -2
  27. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +11 -0
  28. package/index.js +1 -1
  29. package/internals/index.d.ts +3 -2
  30. package/internals/index.js +3 -2
  31. package/joy/icons.d.ts +33 -0
  32. package/joy/icons.js +433 -0
  33. package/joy/joySlots.js +254 -42
  34. package/legacy/DataGrid/DataGrid.js +20 -1
  35. package/legacy/DataGrid/useDataGridComponent.js +2 -2
  36. package/legacy/DataGrid/useDataGridProps.js +3 -1
  37. package/legacy/colDef/gridBooleanColDef.js +21 -1
  38. package/legacy/colDef/gridDateColDef.js +10 -2
  39. package/legacy/colDef/gridSingleSelectColDef.js +21 -1
  40. package/legacy/components/GridPagination.js +3 -1
  41. package/legacy/components/base/GridBody.js +6 -3
  42. package/legacy/components/containers/GridRootStyles.js +1 -0
  43. package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  44. package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  45. package/legacy/components/toolbar/GridToolbarFilterButton.js +3 -1
  46. package/legacy/hooks/features/clipboard/useGridClipboard.js +44 -26
  47. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -4
  48. package/legacy/hooks/features/editing/useGridCellEditing.js +7 -3
  49. package/legacy/hooks/features/editing/useGridRowEditing.js +7 -3
  50. package/legacy/hooks/features/export/serializers/csvSerializer.js +43 -6
  51. package/legacy/hooks/features/export/useGridCsvExport.js +8 -5
  52. package/legacy/hooks/features/focus/useGridFocus.js +2 -2
  53. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +10 -0
  54. package/legacy/index.js +1 -1
  55. package/legacy/internals/index.js +3 -2
  56. package/legacy/joy/icons.js +432 -0
  57. package/legacy/joy/joySlots.js +273 -54
  58. package/legacy/locales/deDE.js +2 -2
  59. package/legacy/locales/frFR.js +6 -6
  60. package/legacy/locales/ptBR.js +1 -1
  61. package/legacy/locales/ukUA.js +8 -9
  62. package/legacy/material/index.js +3 -1
  63. package/legacy/models/api/index.js +0 -1
  64. package/legacy/utils/domUtils.js +14 -1
  65. package/locales/deDE.js +2 -2
  66. package/locales/frFR.js +6 -6
  67. package/locales/ptBR.js +1 -1
  68. package/locales/ukUA.js +8 -9
  69. package/material/index.d.ts +3 -1
  70. package/material/index.js +3 -1
  71. package/models/api/gridApiCommon.d.ts +1 -2
  72. package/models/api/gridCoreApi.d.ts +4 -0
  73. package/models/api/index.d.ts +0 -1
  74. package/models/api/index.js +0 -1
  75. package/models/events/gridEventLookup.d.ts +6 -0
  76. package/models/gridSlotsComponent.d.ts +5 -0
  77. package/models/gridSlotsComponentsProps.d.ts +4 -0
  78. package/models/props/DataGridProps.d.ts +19 -0
  79. package/modern/DataGrid/DataGrid.js +20 -1
  80. package/modern/DataGrid/useDataGridComponent.js +2 -2
  81. package/modern/DataGrid/useDataGridProps.js +3 -1
  82. package/modern/colDef/gridBooleanColDef.js +19 -1
  83. package/modern/colDef/gridDateColDef.js +6 -2
  84. package/modern/colDef/gridSingleSelectColDef.js +21 -1
  85. package/modern/components/GridPagination.js +2 -1
  86. package/modern/components/base/GridBody.js +6 -3
  87. package/modern/components/containers/GridRootStyles.js +1 -0
  88. package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  89. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  90. package/modern/components/toolbar/GridToolbarFilterButton.js +3 -1
  91. package/modern/hooks/features/clipboard/useGridClipboard.js +43 -26
  92. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
  93. package/modern/hooks/features/editing/useGridCellEditing.js +7 -3
  94. package/modern/hooks/features/editing/useGridRowEditing.js +7 -3
  95. package/modern/hooks/features/export/serializers/csvSerializer.js +44 -6
  96. package/modern/hooks/features/export/useGridCsvExport.js +7 -5
  97. package/modern/hooks/features/focus/useGridFocus.js +2 -2
  98. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +11 -0
  99. package/modern/index.js +1 -1
  100. package/modern/internals/index.js +3 -2
  101. package/modern/joy/icons.js +433 -0
  102. package/modern/joy/joySlots.js +248 -41
  103. package/modern/locales/deDE.js +2 -2
  104. package/modern/locales/frFR.js +6 -6
  105. package/modern/locales/ptBR.js +1 -1
  106. package/modern/locales/ukUA.js +8 -9
  107. package/modern/material/index.js +3 -1
  108. package/modern/models/api/index.js +0 -1
  109. package/modern/utils/domUtils.js +13 -1
  110. package/node/DataGrid/DataGrid.js +20 -1
  111. package/node/DataGrid/useDataGridComponent.js +2 -2
  112. package/node/DataGrid/useDataGridProps.js +3 -1
  113. package/node/colDef/gridBooleanColDef.js +19 -1
  114. package/node/colDef/gridDateColDef.js +6 -2
  115. package/node/colDef/gridSingleSelectColDef.js +21 -1
  116. package/node/components/GridPagination.js +2 -1
  117. package/node/components/base/GridBody.js +6 -3
  118. package/node/components/containers/GridRootStyles.js +1 -0
  119. package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
  120. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
  121. package/node/components/toolbar/GridToolbarFilterButton.js +3 -1
  122. package/node/hooks/features/clipboard/useGridClipboard.js +42 -25
  123. package/node/hooks/features/dimensions/useGridDimensions.js +1 -3
  124. package/node/hooks/features/editing/useGridCellEditing.js +7 -3
  125. package/node/hooks/features/editing/useGridRowEditing.js +7 -3
  126. package/node/hooks/features/export/serializers/csvSerializer.js +46 -6
  127. package/node/hooks/features/export/useGridCsvExport.js +6 -3
  128. package/node/hooks/features/focus/useGridFocus.js +2 -2
  129. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +11 -0
  130. package/node/index.js +1 -1
  131. package/node/internals/index.js +23 -1
  132. package/node/joy/icons.js +471 -0
  133. package/node/joy/joySlots.js +248 -40
  134. package/node/locales/deDE.js +2 -2
  135. package/node/locales/frFR.js +6 -6
  136. package/node/locales/ptBR.js +1 -1
  137. package/node/locales/ukUA.js +8 -9
  138. package/node/material/index.js +3 -1
  139. package/node/models/api/index.js +0 -11
  140. package/node/utils/domUtils.js +15 -1
  141. package/package.json +2 -2
  142. package/utils/domUtils.d.ts +1 -0
  143. package/utils/domUtils.js +13 -1
  144. package/legacy/models/api/gridClipboardApi.js +0 -1
  145. package/models/api/gridClipboardApi.d.ts +0 -11
  146. package/models/api/gridClipboardApi.js +0 -1
  147. package/modern/models/api/gridClipboardApi.js +0 -1
  148. package/node/models/api/gridClipboardApi.js +0 -5
@@ -1,6 +1,6 @@
1
1
  import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../../../../colDef';
2
2
  import { buildWarning } from '../../../../utils/warning';
3
- const serializeCellValue = (value, delimiterCharacter) => {
3
+ function sanitizeCellValue(value, delimiterCharacter) {
4
4
  if (typeof value === 'string') {
5
5
  const formattedValue = value.replace(/"/g, '""');
6
6
 
@@ -11,16 +11,47 @@ const serializeCellValue = (value, delimiterCharacter) => {
11
11
  return formattedValue;
12
12
  }
13
13
  return value;
14
+ }
15
+ export const serializeCellValue = (cellParams, options) => {
16
+ const {
17
+ delimiterCharacter,
18
+ ignoreValueFormatter
19
+ } = options;
20
+ let value;
21
+ if (ignoreValueFormatter) {
22
+ const columnType = cellParams.colDef.type;
23
+ if (columnType === 'number') {
24
+ value = String(cellParams.value);
25
+ } else if (columnType === 'date' || columnType === 'dateTime') {
26
+ value = cellParams.value?.toISOString();
27
+ } else if (typeof cellParams.value?.toString === 'function') {
28
+ value = cellParams.value.toString();
29
+ } else {
30
+ value = cellParams.value;
31
+ }
32
+ } else {
33
+ value = cellParams.formattedValue;
34
+ }
35
+ return sanitizeCellValue(value, delimiterCharacter);
14
36
  };
15
37
  const objectFormattedValueWarning = buildWarning(['MUI: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
16
- const serializeRow = (id, columns, getCellParams, delimiterCharacter) => columns.map(column => {
38
+ const serializeRow = ({
39
+ id,
40
+ columns,
41
+ getCellParams,
42
+ delimiterCharacter,
43
+ ignoreValueFormatter
44
+ }) => columns.map(column => {
17
45
  const cellParams = getCellParams(id, column.field);
18
46
  if (process.env.NODE_ENV !== 'production') {
19
47
  if (String(cellParams.formattedValue) === '[object Object]') {
20
48
  objectFormattedValueWarning();
21
49
  }
22
50
  }
23
- return serializeCellValue(cellParams.formattedValue, delimiterCharacter);
51
+ return serializeCellValue(cellParams, {
52
+ delimiterCharacter,
53
+ ignoreValueFormatter
54
+ });
24
55
  });
25
56
  export function buildCSV(options) {
26
57
  const {
@@ -28,12 +59,19 @@ export function buildCSV(options) {
28
59
  rowIds,
29
60
  getCellParams,
30
61
  delimiterCharacter,
31
- includeHeaders
62
+ includeHeaders,
63
+ ignoreValueFormatter
32
64
  } = options;
33
- const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow(id, columns, getCellParams, delimiterCharacter).join(delimiterCharacter)}\r\n`, '').trim();
65
+ const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow({
66
+ id,
67
+ columns,
68
+ getCellParams,
69
+ delimiterCharacter,
70
+ ignoreValueFormatter
71
+ }).join(delimiterCharacter)}\r\n`, '').trim();
34
72
  if (!includeHeaders) {
35
73
  return CSVBody;
36
74
  }
37
- const CSVHead = `${columns.filter(column => column.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field).map(column => serializeCellValue(column.headerName || column.field, delimiterCharacter)).join(delimiterCharacter)}\r\n`;
75
+ const CSVHead = `${columns.filter(column => column.field !== GRID_CHECKBOX_SELECTION_COL_DEF.field).map(column => sanitizeCellValue(column.headerName || column.field, delimiterCharacter)).join(delimiterCharacter)}\r\n`;
38
76
  return `${CSVHead}${CSVBody}`.trim();
39
77
  }
@@ -6,7 +6,7 @@ import { buildCSV } from './serializers/csvSerializer';
6
6
  import { getColumnsToExport, defaultGetRowsToExport } from './utils';
7
7
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
8
8
  import { GridCsvExportMenuItem } from '../../../components/toolbar/GridToolbarExport';
9
-
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  /**
11
11
  * @requires useGridColumns (state)
12
12
  * @requires useGridFilter (state)
@@ -14,9 +14,10 @@ import { GridCsvExportMenuItem } from '../../../components/toolbar/GridToolbarEx
14
14
  * @requires useGridSelection (state)
15
15
  * @requires useGridParamsApi (method)
16
16
  */
17
- import { jsx as _jsx } from "react/jsx-runtime";
18
- export const useGridCsvExport = apiRef => {
17
+ export const useGridCsvExport = (apiRef, props) => {
19
18
  const logger = useGridLogger(apiRef, 'useGridCsvExport');
19
+ const ignoreValueFormatterProp = props.unstable_ignoreValueFormatterDuringExport;
20
+ const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.csvExport : ignoreValueFormatterProp) || false;
20
21
  const getDataAsCsv = React.useCallback((options = {}) => {
21
22
  logger.debug(`Get data as CSV`);
22
23
  const exportedColumns = getColumnsToExport({
@@ -32,9 +33,10 @@ export const useGridCsvExport = apiRef => {
32
33
  rowIds: exportedRowIds,
33
34
  getCellParams: apiRef.current.getCellParams,
34
35
  delimiterCharacter: options.delimiter || ',',
35
- includeHeaders: options.includeHeaders ?? true
36
+ includeHeaders: options.includeHeaders ?? true,
37
+ ignoreValueFormatter
36
38
  });
37
- }, [logger, apiRef]);
39
+ }, [logger, apiRef, ignoreValueFormatter]);
38
40
  const exportDataAsCsv = React.useCallback(options => {
39
41
  logger.debug(`Export data as CSV`);
40
42
  const csv = getDataAsCsv(options);
@@ -298,9 +298,9 @@ export const useGridFocus = (apiRef, props) => {
298
298
  useGridApiMethod(apiRef, focusPrivateApi, 'private');
299
299
  React.useEffect(() => {
300
300
  const doc = ownerDocument(apiRef.current.rootElementRef.current);
301
- doc.addEventListener('click', handleDocumentClick);
301
+ doc.addEventListener('mouseup', handleDocumentClick);
302
302
  return () => {
303
- doc.removeEventListener('click', handleDocumentClick);
303
+ doc.removeEventListener('mouseup', handleDocumentClick);
304
304
  };
305
305
  }, [apiRef, handleDocumentClick]);
306
306
  useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);
@@ -14,6 +14,7 @@ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
14
14
  import { unstable_gridFocusColumnGroupHeaderSelector } from '../focus';
15
15
  import { gridColumnGroupsHeaderMaxDepthSelector } from '../columnGrouping/gridColumnGroupsSelector';
16
16
  import { useGridSelector } from '../../utils/useGridSelector';
17
+ import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
17
18
  function enrichPageRowsWithPinnedRows(apiRef, rows) {
18
19
  const pinnedRows = gridPinnedRowsSelector(apiRef) || {};
19
20
  return [...(pinnedRows.top || []), ...rows, ...(pinnedRows.bottom || [])];
@@ -450,6 +451,16 @@ export const useGridKeyboardNavigation = (apiRef, props) => {
450
451
  event.preventDefault();
451
452
  }
452
453
  }, [apiRef, currentPageRows, theme.direction, getRowIdFromIndex, goToCell, goToHeader]);
454
+ const checkIfCanStartEditing = React.useCallback((initialValue, {
455
+ event
456
+ }) => {
457
+ if (event.key === ' ') {
458
+ // Space scrolls to the last row
459
+ return false;
460
+ }
461
+ return initialValue;
462
+ }, []);
463
+ useGridRegisterPipeProcessor(apiRef, 'canStartEditing', checkIfCanStartEditing);
453
464
  useGridApiEventHandler(apiRef, 'columnHeaderKeyDown', handleColumnHeaderKeyDown);
454
465
  useGridApiEventHandler(apiRef, 'columnGroupHeaderKeyDown', handleColumnGroupHeaderKeyDown);
455
466
  useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v6.3.0
2
+ * @mui/x-data-grid v6.4.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -41,14 +41,15 @@ export { useGridEvents } from '../hooks/features/events/useGridEvents';
41
41
  export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
42
42
  export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
43
43
  export { useGridVirtualScroller, getRenderableIndexes } from '../hooks/features/virtualization/useGridVirtualScroller';
44
- export { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
44
+ export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
45
45
  export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
46
46
  export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
47
47
  export { createSelector, unstable_resetCreateSelectorCache } from '../utils/createSelector';
48
- export { findParentElementFromClassName } from '../utils/domUtils';
48
+ export { findParentElementFromClassName, getActiveElement } from '../utils/domUtils';
49
49
  export { isNavigationKey } from '../utils/keyboardUtils';
50
50
  export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/utils';
51
51
  export { buildWarning } from '../utils/warning';
52
52
  export { exportAs } from '../utils/exportAs';
53
53
  export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
54
+ export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
54
55
  export * from './utils';
@@ -0,0 +1,433 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["sx", "fontSize"],
4
+ _excluded2 = ["sortingOrder"];
5
+ /**
6
+ * Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT).
7
+ * All other copyright (c) for Lucide are held by Lucide Contributors 2022.
8
+ *
9
+ * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,
10
+ * provided that the above copyright notice and this permission notice appear in all copies.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
13
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
14
+ * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
15
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
16
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17
+ */
18
+ import * as React from 'react';
19
+ import SvgIcon from '@mui/joy/SvgIcon';
20
+ import { useGridRootProps } from '../hooks/utils/useGridRootProps';
21
+ import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { jsxs as _jsxs } from "react/jsx-runtime";
23
+ function createSvgIcon(path, displayName) {
24
+ const fontSizeMap = {
25
+ small: 'lg',
26
+ medium: 'xl',
27
+ large: 'xl2',
28
+ inherit: undefined
29
+ };
30
+ // @ts-ignore internal component
31
+ function Component(_ref, ref) {
32
+ let {
33
+ sx,
34
+ fontSize
35
+ } = _ref,
36
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
37
+ return /*#__PURE__*/_jsx(SvgIcon, _extends({
38
+ "data-testid": `${displayName}Icon`,
39
+ ref: ref,
40
+ fill: "none",
41
+ stroke: "currentColor",
42
+ strokeWidth: "2",
43
+ strokeLinecap: "round",
44
+ strokeLinejoin: "round",
45
+ sx: [{
46
+ fill: 'none'
47
+ }, ...(Array.isArray(sx) ? sx : [sx])],
48
+ fontSize: fontSize ? fontSizeMap[fontSize] : undefined
49
+ }, props, {
50
+ children: path
51
+ }));
52
+ }
53
+ if (process.env.NODE_ENV !== 'production') {
54
+ // Need to set `displayName` on the inner component for React.memo.
55
+ // React prior to 16.14 ignores `displayName` on the wrapper.
56
+ Component.displayName = `${displayName}Icon`;
57
+ }
58
+
59
+ // @ts-ignore internal component
60
+ Component.muiName = SvgIcon.muiName;
61
+
62
+ // @ts-ignore internal component
63
+ return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));
64
+ }
65
+ export const GridArrowUpwardIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
66
+ children: [/*#__PURE__*/_jsx("line", {
67
+ x1: "12",
68
+ x2: "12",
69
+ y1: "19",
70
+ y2: "5"
71
+ }), /*#__PURE__*/_jsx("polyline", {
72
+ points: "5 12 12 5 19 12"
73
+ })]
74
+ }), 'ArrowUpward');
75
+ export const GridArrowDownwardIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
76
+ children: [/*#__PURE__*/_jsx("line", {
77
+ x1: "12",
78
+ x2: "12",
79
+ y1: "5",
80
+ y2: "19"
81
+ }), /*#__PURE__*/_jsx("polyline", {
82
+ points: "19 12 12 19 5 12"
83
+ })]
84
+ }), 'ArrowDownward');
85
+ export const GridKeyboardArrowLeft = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
86
+ points: "15 18 9 12 15 6"
87
+ }), 'KeyboardArrowLeft');
88
+ export const GridKeyboardArrowRight = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
89
+ points: "9 18 15 12 9 6"
90
+ }), 'KeyboardArrowRight');
91
+ export const GridExpandMoreIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
92
+ children: [/*#__PURE__*/_jsx("path", {
93
+ d: "m7 15 5 5 5-5"
94
+ }), /*#__PURE__*/_jsx("path", {
95
+ d: "m7 9 5-5 5 5"
96
+ })]
97
+ }), 'ExpandMore');
98
+ export const GridFilterListIcon = createSvgIcon( /*#__PURE__*/_jsx("polygon", {
99
+ points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"
100
+ }), 'FilterList');
101
+ export const GridFilterAltIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
102
+ children: [/*#__PURE__*/_jsx("path", {
103
+ d: "M3 6h18"
104
+ }), /*#__PURE__*/_jsx("path", {
105
+ d: "M7 12h10"
106
+ }), /*#__PURE__*/_jsx("path", {
107
+ d: "M10 18h4"
108
+ })]
109
+ }), 'FilterAlt');
110
+ export const GridSearchIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
111
+ children: [/*#__PURE__*/_jsx("circle", {
112
+ cx: "11",
113
+ cy: "11",
114
+ r: "8"
115
+ }), /*#__PURE__*/_jsx("line", {
116
+ x1: "21",
117
+ x2: "16.65",
118
+ y1: "21",
119
+ y2: "16.65"
120
+ })]
121
+ }), 'Search');
122
+ export const GridMenuIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
123
+ children: [/*#__PURE__*/_jsx("rect", {
124
+ width: "18",
125
+ height: "18",
126
+ x: "3",
127
+ y: "3",
128
+ rx: "2"
129
+ }), /*#__PURE__*/_jsx("path", {
130
+ d: "M7 8h10"
131
+ }), /*#__PURE__*/_jsx("path", {
132
+ d: "M7 12h10"
133
+ }), /*#__PURE__*/_jsx("path", {
134
+ d: "M7 16h10"
135
+ })]
136
+ }), 'Menu');
137
+ export const GridCheckCircleIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
138
+ children: [/*#__PURE__*/_jsx("path", {
139
+ d: "M22 11.08V12a10 10 0 1 1-5.93-9.14"
140
+ }), /*#__PURE__*/_jsx("polyline", {
141
+ points: "22 4 12 14.01 9 11.01"
142
+ })]
143
+ }), 'CheckCircle');
144
+ export const GridColumnIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
145
+ children: [/*#__PURE__*/_jsx("rect", {
146
+ width: "18",
147
+ height: "18",
148
+ x: "3",
149
+ y: "3",
150
+ rx: "2",
151
+ ry: "2"
152
+ }), /*#__PURE__*/_jsx("line", {
153
+ x1: "12",
154
+ x2: "12",
155
+ y1: "3",
156
+ y2: "21"
157
+ })]
158
+ }), 'ColumnIcon');
159
+ export const GridSeparatorIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
160
+ d: "M11 19V5h2v14z"
161
+ }), 'Separator');
162
+ export const GridViewHeadlineIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
163
+ fill: "none",
164
+ stroke: "currentColor",
165
+ strokeWidth: "1.5",
166
+ d: "M3 12h18M3 12v4.5M3 12V7.5M21 12v4.5m0-4.5V7.5m-18 9v3.9a.6.6 0 0 0 .6.6h16.8a.6.6 0 0 0 .6-.6v-3.9m-18 0h18m0-9V3.6a.6.6 0 0 0-.6-.6H3.6a.6.6 0 0 0-.6.6v3.9m18 0H3"
167
+ }), 'ViewHeadline');
168
+ export const GridTableRowsIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
169
+ fill: "currentColor",
170
+ strokeWidth: "0",
171
+ d: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 2v3H5V5h14zm0 5v4H5v-4h14zM5 19v-3h14v3H5z"
172
+ }), 'TableRows');
173
+ export const GridViewStreamIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
174
+ d: "M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm0 6h16"
175
+ }), 'ViewStream');
176
+ export const GridTripleDotsVerticalIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
177
+ children: [/*#__PURE__*/_jsx("circle", {
178
+ cx: "12",
179
+ cy: "12",
180
+ r: "1"
181
+ }), /*#__PURE__*/_jsx("circle", {
182
+ cx: "12",
183
+ cy: "5",
184
+ r: "1"
185
+ }), /*#__PURE__*/_jsx("circle", {
186
+ cx: "12",
187
+ cy: "19",
188
+ r: "1"
189
+ })]
190
+ }), 'TripleDotsVertical');
191
+ export const GridCloseIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
192
+ children: [/*#__PURE__*/_jsx("circle", {
193
+ cx: "12",
194
+ cy: "12",
195
+ r: "10"
196
+ }), /*#__PURE__*/_jsx("line", {
197
+ x1: "15",
198
+ x2: "9",
199
+ y1: "9",
200
+ y2: "15"
201
+ }), /*#__PURE__*/_jsx("line", {
202
+ x1: "9",
203
+ x2: "15",
204
+ y1: "9",
205
+ y2: "15"
206
+ })]
207
+ }), 'Close');
208
+ export const GridAddIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
209
+ children: [/*#__PURE__*/_jsx("circle", {
210
+ cx: "12",
211
+ cy: "12",
212
+ r: "10"
213
+ }), /*#__PURE__*/_jsx("line", {
214
+ x1: "12",
215
+ x2: "12",
216
+ y1: "8",
217
+ y2: "16"
218
+ }), /*#__PURE__*/_jsx("line", {
219
+ x1: "8",
220
+ x2: "16",
221
+ y1: "12",
222
+ y2: "12"
223
+ })]
224
+ }), 'Add');
225
+ export const GridRemoveIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
226
+ children: [/*#__PURE__*/_jsx("circle", {
227
+ cx: "12",
228
+ cy: "12",
229
+ r: "10"
230
+ }), /*#__PURE__*/_jsx("line", {
231
+ x1: "15",
232
+ x2: "9",
233
+ y1: "9",
234
+ y2: "15"
235
+ }), /*#__PURE__*/_jsx("line", {
236
+ x1: "9",
237
+ x2: "15",
238
+ y1: "9",
239
+ y2: "15"
240
+ })]
241
+ }), 'Remove');
242
+ export const GridLoadIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
243
+ children: [/*#__PURE__*/_jsx("path", {
244
+ d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"
245
+ }), /*#__PURE__*/_jsx("polyline", {
246
+ points: "7 10 12 15 17 10"
247
+ }), /*#__PURE__*/_jsx("line", {
248
+ x1: "12",
249
+ x2: "12",
250
+ y1: "15",
251
+ y2: "3"
252
+ })]
253
+ }), 'Load');
254
+ export const GridDragIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
255
+ children: [/*#__PURE__*/_jsx("circle", {
256
+ cx: "9",
257
+ cy: "12",
258
+ r: "1"
259
+ }), /*#__PURE__*/_jsx("circle", {
260
+ cx: "9",
261
+ cy: "5",
262
+ r: "1"
263
+ }), /*#__PURE__*/_jsx("circle", {
264
+ cx: "9",
265
+ cy: "19",
266
+ r: "1"
267
+ }), /*#__PURE__*/_jsx("circle", {
268
+ cx: "15",
269
+ cy: "12",
270
+ r: "1"
271
+ }), /*#__PURE__*/_jsx("circle", {
272
+ cx: "15",
273
+ cy: "5",
274
+ r: "1"
275
+ }), /*#__PURE__*/_jsx("circle", {
276
+ cx: "15",
277
+ cy: "19",
278
+ r: "1"
279
+ })]
280
+ }), 'Drag');
281
+ export const GridSaveAltIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
282
+ children: [/*#__PURE__*/_jsx("path", {
283
+ d: "M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"
284
+ }), /*#__PURE__*/_jsx("polyline", {
285
+ points: "14 2 14 8 20 8"
286
+ }), /*#__PURE__*/_jsx("path", {
287
+ d: "M12 12v6"
288
+ }), /*#__PURE__*/_jsx("path", {
289
+ d: "m15 15-3-3-3 3"
290
+ })]
291
+ }), 'SaveAlt');
292
+ export const GridCheckIcon = createSvgIcon( /*#__PURE__*/_jsx("polyline", {
293
+ points: "20 6 9 17 4 12"
294
+ }), 'Check');
295
+ export const GridMoreVertIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
296
+ children: [/*#__PURE__*/_jsx("circle", {
297
+ cx: "12",
298
+ cy: "12",
299
+ r: "1"
300
+ }), /*#__PURE__*/_jsx("circle", {
301
+ cx: "12",
302
+ cy: "5",
303
+ r: "1"
304
+ }), /*#__PURE__*/_jsx("circle", {
305
+ cx: "12",
306
+ cy: "19",
307
+ r: "1"
308
+ })]
309
+ }), 'MoreVert');
310
+ export const GridVisibilityOffIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
311
+ children: [/*#__PURE__*/_jsx("path", {
312
+ d: "M9.88 9.88a3 3 0 1 0 4.24 4.24"
313
+ }), /*#__PURE__*/_jsx("path", {
314
+ d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"
315
+ }), /*#__PURE__*/_jsx("path", {
316
+ d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"
317
+ }), /*#__PURE__*/_jsx("line", {
318
+ x1: "2",
319
+ x2: "22",
320
+ y1: "2",
321
+ y2: "22"
322
+ })]
323
+ }), 'VisibilityOff');
324
+ export const GridViewColumnIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
325
+ children: [/*#__PURE__*/_jsx("rect", {
326
+ width: "6",
327
+ height: "20",
328
+ x: "4",
329
+ y: "2",
330
+ rx: "2"
331
+ }), /*#__PURE__*/_jsx("rect", {
332
+ width: "6",
333
+ height: "20",
334
+ x: "14",
335
+ y: "2",
336
+ rx: "2"
337
+ })]
338
+ }), 'ViewColumn');
339
+ export const GridClearIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
340
+ children: [/*#__PURE__*/_jsx("path", {
341
+ d: "m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21"
342
+ }), /*#__PURE__*/_jsx("path", {
343
+ d: "M22 21H7"
344
+ }), /*#__PURE__*/_jsx("path", {
345
+ d: "m5 11 9 9"
346
+ })]
347
+ }), 'Clear');
348
+ export const GridDeleteIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
349
+ children: [/*#__PURE__*/_jsx("path", {
350
+ d: "M3 6h18"
351
+ }), /*#__PURE__*/_jsx("path", {
352
+ d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"
353
+ }), /*#__PURE__*/_jsx("path", {
354
+ d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"
355
+ }), /*#__PURE__*/_jsx("line", {
356
+ x1: "10",
357
+ x2: "10",
358
+ y1: "11",
359
+ y2: "17"
360
+ }), /*#__PURE__*/_jsx("line", {
361
+ x1: "14",
362
+ x2: "14",
363
+ y1: "11",
364
+ y2: "17"
365
+ })]
366
+ }), 'Delete');
367
+ export const GridDeleteForeverIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
368
+ children: [/*#__PURE__*/_jsx("path", {
369
+ d: "M3 6h18"
370
+ }), /*#__PURE__*/_jsx("path", {
371
+ d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"
372
+ }), /*#__PURE__*/_jsx("path", {
373
+ d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"
374
+ }), /*#__PURE__*/_jsx("line", {
375
+ x1: "10",
376
+ x2: "10",
377
+ y1: "11",
378
+ y2: "17"
379
+ }), /*#__PURE__*/_jsx("line", {
380
+ x1: "14",
381
+ x2: "14",
382
+ y1: "11",
383
+ y2: "17"
384
+ })]
385
+ }), 'Delete');
386
+ const GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
387
+ const {
388
+ sortingOrder
389
+ } = props,
390
+ other = _objectWithoutPropertiesLoose(props, _excluded2);
391
+ const rootProps = useGridRootProps();
392
+ const [nextSortDirection] = sortingOrder;
393
+ const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
394
+ return Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, other)) : null;
395
+ });
396
+ const joyIconSlots = {
397
+ booleanCellTrueIcon: GridCheckIcon,
398
+ booleanCellFalseIcon: GridCloseIcon,
399
+ columnMenuIcon: GridTripleDotsVerticalIcon,
400
+ openFilterButtonIcon: GridFilterListIcon,
401
+ filterPanelDeleteIcon: GridCloseIcon,
402
+ columnFilteredIcon: GridFilterAltIcon,
403
+ columnSelectorIcon: GridColumnIcon,
404
+ columnUnsortedIcon: GridColumnUnsortedIcon,
405
+ columnSortedAscendingIcon: GridArrowUpwardIcon,
406
+ columnSortedDescendingIcon: GridArrowDownwardIcon,
407
+ columnResizeIcon: GridSeparatorIcon,
408
+ densityCompactIcon: GridViewHeadlineIcon,
409
+ densityStandardIcon: GridTableRowsIcon,
410
+ densityComfortableIcon: GridViewStreamIcon,
411
+ exportIcon: GridSaveAltIcon,
412
+ moreActionsIcon: GridMoreVertIcon,
413
+ treeDataCollapseIcon: GridExpandMoreIcon,
414
+ treeDataExpandIcon: GridKeyboardArrowRight,
415
+ groupingCriteriaCollapseIcon: GridExpandMoreIcon,
416
+ groupingCriteriaExpandIcon: GridKeyboardArrowRight,
417
+ detailPanelExpandIcon: GridAddIcon,
418
+ detailPanelCollapseIcon: GridRemoveIcon,
419
+ rowReorderIcon: GridDragIcon,
420
+ quickFilterIcon: GridSearchIcon,
421
+ quickFilterClearIcon: GridCloseIcon,
422
+ columnMenuHideIcon: GridVisibilityOffIcon,
423
+ columnMenuSortAscendingIcon: GridArrowUpwardIcon,
424
+ columnMenuSortDescendingIcon: GridArrowDownwardIcon,
425
+ columnMenuFilterIcon: GridFilterAltIcon,
426
+ columnMenuManageColumnsIcon: GridViewColumnIcon,
427
+ columnMenuClearIcon: GridClearIcon,
428
+ loadIcon: GridLoadIcon,
429
+ filterPanelAddIcon: GridAddIcon,
430
+ filterPanelRemoveAllIcon: GridDeleteForeverIcon,
431
+ columnReorderIcon: GridDragIcon
432
+ };
433
+ export default joyIconSlots;