@mui/x-data-grid 6.3.1 → 6.5.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.
- package/CHANGELOG.md +113 -0
- package/DataGrid/DataGrid.js +20 -1
- package/DataGrid/useDataGridComponent.js +2 -2
- package/DataGrid/useDataGridProps.js +8 -13
- package/colDef/gridBooleanColDef.js +19 -1
- package/colDef/gridDateColDef.js +6 -2
- package/colDef/gridNumericOperators.js +0 -6
- package/colDef/gridSingleSelectColDef.js +21 -1
- package/components/base/GridBody.js +2 -1
- package/components/cell/GridEditInputCell.js +4 -1
- package/components/containers/GridRootStyles.js +1 -0
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
- package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +8 -1
- package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
- package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +8 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
- package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
- package/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/components/panel/filterPanel/index.d.ts +3 -1
- package/components/panel/filterPanel/index.js +2 -1
- package/constants/localeTextConstants.js +26 -0
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +12 -1
- package/hooks/features/clipboard/useGridClipboard.d.ts +2 -1
- package/hooks/features/clipboard/useGridClipboard.js +43 -26
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +9 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/hooks/features/dimensions/useGridDimensions.js +4 -6
- package/hooks/features/editing/useGridCellEditing.js +7 -3
- package/hooks/features/editing/useGridEditing.js +0 -3
- package/hooks/features/editing/useGridRowEditing.js +7 -3
- package/hooks/features/export/serializers/csvSerializer.d.ts +5 -0
- package/hooks/features/export/serializers/csvSerializer.js +46 -6
- package/hooks/features/export/useGridCsvExport.d.ts +2 -1
- package/hooks/features/export/useGridCsvExport.js +7 -5
- package/hooks/features/focus/gridFocusState.d.ts +2 -0
- package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
- package/hooks/features/focus/gridFocusStateSelector.js +6 -0
- package/hooks/features/focus/useGridFocus.js +55 -9
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
- package/hooks/features/headerFiltering/index.d.ts +1 -0
- package/hooks/features/headerFiltering/index.js +1 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +2 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
- package/hooks/features/rows/useGridRows.js +16 -1
- package/index.js +1 -1
- package/internals/index.d.ts +9 -3
- package/internals/index.js +7 -2
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/internals/utils/useProps.d.ts +8 -0
- package/internals/utils/useProps.js +13 -0
- package/joy/icons.d.ts +33 -0
- package/joy/icons.js +433 -0
- package/joy/joySlots.js +114 -4
- package/legacy/DataGrid/DataGrid.js +20 -1
- package/legacy/DataGrid/useDataGridComponent.js +2 -2
- package/legacy/DataGrid/useDataGridProps.js +11 -9
- package/legacy/colDef/gridBooleanColDef.js +21 -1
- package/legacy/colDef/gridDateColDef.js +10 -2
- package/legacy/colDef/gridNumericOperators.js +0 -6
- package/legacy/colDef/gridSingleSelectColDef.js +21 -1
- package/legacy/components/base/GridBody.js +2 -1
- package/legacy/components/cell/GridEditInputCell.js +4 -1
- package/legacy/components/containers/GridRootStyles.js +1 -0
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
- package/legacy/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +54 -31
- package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/legacy/components/panel/filterPanel/index.js +2 -1
- package/legacy/constants/localeTextConstants.js +26 -0
- package/legacy/hooks/features/clipboard/useGridClipboard.js +44 -26
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
- package/legacy/hooks/features/dimensions/useGridDimensions.js +4 -6
- package/legacy/hooks/features/editing/useGridCellEditing.js +7 -3
- package/legacy/hooks/features/editing/useGridEditing.js +0 -3
- package/legacy/hooks/features/editing/useGridRowEditing.js +7 -3
- package/legacy/hooks/features/export/serializers/csvSerializer.js +43 -6
- package/legacy/hooks/features/export/useGridCsvExport.js +8 -5
- package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
- package/legacy/hooks/features/focus/useGridFocus.js +58 -9
- package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
- package/legacy/hooks/features/headerFiltering/index.js +1 -0
- package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
- package/legacy/hooks/features/index.js +2 -1
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +123 -4
- package/legacy/hooks/features/rows/useGridRows.js +16 -1
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +7 -2
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/useProps.js +11 -0
- package/legacy/joy/icons.js +432 -0
- package/legacy/joy/joySlots.js +118 -4
- package/legacy/locales/arSD.js +28 -0
- package/legacy/locales/beBY.js +28 -0
- package/legacy/locales/bgBG.js +28 -0
- package/legacy/locales/csCZ.js +36 -8
- package/legacy/locales/daDK.js +28 -0
- package/legacy/locales/deDE.js +30 -2
- package/legacy/locales/elGR.js +27 -0
- package/legacy/locales/esES.js +28 -0
- package/legacy/locales/faIR.js +28 -0
- package/legacy/locales/fiFI.js +28 -0
- package/legacy/locales/frFR.js +34 -6
- package/legacy/locales/heIL.js +30 -2
- package/legacy/locales/huHU.js +28 -0
- package/legacy/locales/itIT.js +28 -0
- package/legacy/locales/jaJP.js +28 -0
- package/legacy/locales/koKR.js +28 -0
- package/legacy/locales/nbNO.js +28 -0
- package/legacy/locales/nlNL.js +28 -0
- package/legacy/locales/plPL.js +28 -0
- package/legacy/locales/ptBR.js +29 -1
- package/legacy/locales/roRO.js +28 -0
- package/legacy/locales/ruRU.js +28 -0
- package/legacy/locales/skSK.js +28 -0
- package/legacy/locales/svSE.js +28 -0
- package/legacy/locales/trTR.js +28 -0
- package/legacy/locales/ukUA.js +36 -9
- package/legacy/locales/urPK.js +28 -0
- package/legacy/locales/viVN.js +27 -0
- package/legacy/locales/zhCN.js +28 -0
- package/legacy/locales/zhTW.js +28 -0
- package/legacy/material/index.js +5 -1
- package/legacy/models/api/index.js +0 -1
- package/legacy/models/index.js +0 -1
- package/legacy/utils/domUtils.js +14 -1
- package/locales/arSD.js +28 -0
- package/locales/beBY.js +28 -0
- package/locales/bgBG.js +28 -0
- package/locales/csCZ.js +36 -8
- package/locales/daDK.js +28 -0
- package/locales/deDE.js +30 -2
- package/locales/elGR.js +27 -0
- package/locales/esES.js +28 -0
- package/locales/faIR.js +28 -0
- package/locales/fiFI.js +28 -0
- package/locales/frFR.js +34 -6
- package/locales/heIL.js +30 -2
- package/locales/huHU.js +28 -0
- package/locales/itIT.js +28 -0
- package/locales/jaJP.js +28 -0
- package/locales/koKR.js +28 -0
- package/locales/nbNO.js +28 -0
- package/locales/nlNL.js +28 -0
- package/locales/plPL.js +28 -0
- package/locales/ptBR.js +29 -1
- package/locales/roRO.js +28 -0
- package/locales/ruRU.js +28 -0
- package/locales/skSK.js +28 -0
- package/locales/svSE.js +28 -0
- package/locales/trTR.js +28 -0
- package/locales/ukUA.js +36 -9
- package/locales/urPK.js +28 -0
- package/locales/viVN.js +27 -0
- package/locales/zhCN.js +28 -0
- package/locales/zhTW.js +28 -0
- package/material/index.d.ts +3 -65
- package/material/index.js +5 -1
- package/models/api/gridApiCommon.d.ts +3 -3
- package/models/api/gridCoreApi.d.ts +8 -0
- package/models/api/gridFocusApi.d.ts +6 -0
- package/models/api/gridHeaderFilteringApi.d.ts +30 -0
- package/models/api/gridLocaleTextApi.d.ts +25 -0
- package/models/api/index.d.ts +0 -1
- package/models/api/index.js +0 -1
- package/models/events/gridEventLookup.d.ts +33 -1
- package/models/gridFilterOperator.d.ts +4 -0
- package/models/gridHeaderFilteringModel.d.ts +5 -0
- package/models/gridHeaderFilteringModel.js +1 -0
- package/models/gridSlotsComponent.d.ts +21 -4
- package/models/gridSlotsComponentsProps.d.ts +4 -0
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/index.d.ts +1 -1
- package/models/index.js +0 -1
- package/models/props/DataGridProps.d.ts +19 -0
- package/modern/DataGrid/DataGrid.js +20 -1
- package/modern/DataGrid/useDataGridComponent.js +2 -2
- package/modern/DataGrid/useDataGridProps.js +8 -13
- package/modern/colDef/gridBooleanColDef.js +19 -1
- package/modern/colDef/gridDateColDef.js +6 -2
- package/modern/colDef/gridNumericOperators.js +0 -6
- package/modern/colDef/gridSingleSelectColDef.js +21 -1
- package/modern/components/base/GridBody.js +2 -1
- package/modern/components/cell/GridEditInputCell.js +4 -1
- package/modern/components/containers/GridRootStyles.js +1 -0
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/modern/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
- package/modern/components/panel/filterPanel/index.js +2 -1
- package/modern/constants/localeTextConstants.js +26 -0
- package/modern/hooks/features/clipboard/useGridClipboard.js +43 -26
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +3 -5
- package/modern/hooks/features/editing/useGridCellEditing.js +7 -3
- package/modern/hooks/features/editing/useGridEditing.js +0 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +7 -3
- package/modern/hooks/features/export/serializers/csvSerializer.js +44 -6
- package/modern/hooks/features/export/useGridCsvExport.js +7 -5
- package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
- package/modern/hooks/features/focus/useGridFocus.js +55 -9
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
- package/modern/hooks/features/headerFiltering/index.js +1 -0
- package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
- package/modern/hooks/features/index.js +2 -1
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
- package/modern/hooks/features/rows/useGridRows.js +16 -1
- package/modern/index.js +1 -1
- package/modern/internals/index.js +7 -2
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/useProps.js +13 -0
- package/modern/joy/icons.js +433 -0
- package/modern/joy/joySlots.js +110 -4
- package/modern/locales/arSD.js +28 -0
- package/modern/locales/beBY.js +28 -0
- package/modern/locales/bgBG.js +28 -0
- package/modern/locales/csCZ.js +36 -8
- package/modern/locales/daDK.js +28 -0
- package/modern/locales/deDE.js +30 -2
- package/modern/locales/elGR.js +27 -0
- package/modern/locales/esES.js +28 -0
- package/modern/locales/faIR.js +28 -0
- package/modern/locales/fiFI.js +28 -0
- package/modern/locales/frFR.js +34 -6
- package/modern/locales/heIL.js +30 -2
- package/modern/locales/huHU.js +28 -0
- package/modern/locales/itIT.js +28 -0
- package/modern/locales/jaJP.js +28 -0
- package/modern/locales/koKR.js +28 -0
- package/modern/locales/nbNO.js +28 -0
- package/modern/locales/nlNL.js +28 -0
- package/modern/locales/plPL.js +28 -0
- package/modern/locales/ptBR.js +29 -1
- package/modern/locales/roRO.js +28 -0
- package/modern/locales/ruRU.js +28 -0
- package/modern/locales/skSK.js +28 -0
- package/modern/locales/svSE.js +28 -0
- package/modern/locales/trTR.js +28 -0
- package/modern/locales/ukUA.js +36 -9
- package/modern/locales/urPK.js +28 -0
- package/modern/locales/viVN.js +27 -0
- package/modern/locales/zhCN.js +28 -0
- package/modern/locales/zhTW.js +28 -0
- package/modern/material/index.js +5 -1
- package/modern/models/api/gridHeaderFilteringApi.js +1 -0
- package/modern/models/api/index.js +0 -1
- package/modern/models/gridHeaderFilteringModel.js +1 -0
- package/modern/models/index.js +0 -1
- package/modern/utils/domUtils.js +13 -1
- package/node/DataGrid/DataGrid.js +20 -1
- package/node/DataGrid/useDataGridComponent.js +2 -2
- package/node/DataGrid/useDataGridProps.js +7 -12
- package/node/colDef/gridBooleanColDef.js +19 -1
- package/node/colDef/gridDateColDef.js +6 -2
- package/node/colDef/gridNumericOperators.js +0 -6
- package/node/colDef/gridSingleSelectColDef.js +21 -1
- package/node/components/base/GridBody.js +2 -1
- package/node/components/cell/GridEditInputCell.js +4 -1
- package/node/components/containers/GridRootStyles.js +1 -0
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
- package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/node/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -2
- package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -2
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -32
- package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
- package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
- package/node/components/panel/filterPanel/index.js +26 -8
- package/node/constants/localeTextConstants.js +26 -0
- package/node/hooks/features/clipboard/useGridClipboard.js +42 -25
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
- package/node/hooks/features/editing/useGridCellEditing.js +7 -3
- package/node/hooks/features/editing/useGridEditing.js +0 -3
- package/node/hooks/features/editing/useGridRowEditing.js +7 -3
- package/node/hooks/features/export/serializers/csvSerializer.js +46 -6
- package/node/hooks/features/export/useGridCsvExport.js +6 -3
- package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
- package/node/hooks/features/focus/useGridFocus.js +55 -9
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
- package/node/hooks/features/headerFiltering/index.js +16 -0
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +124 -4
- package/node/hooks/features/rows/useGridRows.js +16 -1
- package/node/index.js +1 -1
- package/node/internals/index.js +69 -1
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/useProps.js +22 -0
- package/node/joy/icons.js +471 -0
- package/node/joy/joySlots.js +110 -3
- package/node/locales/arSD.js +28 -0
- package/node/locales/beBY.js +28 -0
- package/node/locales/bgBG.js +28 -0
- package/node/locales/csCZ.js +36 -8
- package/node/locales/daDK.js +28 -0
- package/node/locales/deDE.js +30 -2
- package/node/locales/elGR.js +27 -0
- package/node/locales/esES.js +28 -0
- package/node/locales/faIR.js +28 -0
- package/node/locales/fiFI.js +28 -0
- package/node/locales/frFR.js +34 -6
- package/node/locales/heIL.js +30 -2
- package/node/locales/huHU.js +28 -0
- package/node/locales/itIT.js +28 -0
- package/node/locales/jaJP.js +28 -0
- package/node/locales/koKR.js +28 -0
- package/node/locales/nbNO.js +28 -0
- package/node/locales/nlNL.js +28 -0
- package/node/locales/plPL.js +28 -0
- package/node/locales/ptBR.js +29 -1
- package/node/locales/roRO.js +28 -0
- package/node/locales/ruRU.js +28 -0
- package/node/locales/skSK.js +28 -0
- package/node/locales/svSE.js +28 -0
- package/node/locales/trTR.js +28 -0
- package/node/locales/ukUA.js +36 -9
- package/node/locales/urPK.js +28 -0
- package/node/locales/viVN.js +27 -0
- package/node/locales/zhCN.js +28 -0
- package/node/locales/zhTW.js +28 -0
- package/node/material/index.js +5 -1
- package/node/models/api/index.js +0 -11
- package/node/models/gridHeaderFilteringModel.js +5 -0
- package/node/models/index.js +0 -11
- package/node/utils/domUtils.js +15 -1
- package/package.json +1 -1
- package/utils/domUtils.d.ts +1 -0
- package/utils/domUtils.js +13 -1
- package/models/api/gridClipboardApi.d.ts +0 -11
- /package/legacy/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
- /package/{models/api/gridClipboardApi.js → legacy/models/gridHeaderFilteringModel.js} +0 -0
- /package/{modern/models/api/gridClipboardApi.js → models/api/gridHeaderFilteringApi.js} +0 -0
- /package/node/models/api/{gridClipboardApi.js → gridHeaderFilteringApi.js} +0 -0
|
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
13
|
var _utils = require("@mui/utils");
|
|
14
14
|
var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
-
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef"];
|
|
16
|
+
const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "headerFilterMenu", "isFilterActive", "clearButton", "InputProps"];
|
|
17
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
19
|
const SUBMIT_FILTER_STROKE_TIME = 500;
|
|
@@ -24,7 +24,13 @@ function GridFilterInputValue(props) {
|
|
|
24
24
|
applyValue,
|
|
25
25
|
type,
|
|
26
26
|
apiRef,
|
|
27
|
-
focusElementRef
|
|
27
|
+
focusElementRef,
|
|
28
|
+
tabIndex,
|
|
29
|
+
disabled,
|
|
30
|
+
headerFilterMenu,
|
|
31
|
+
isFilterActive,
|
|
32
|
+
clearButton,
|
|
33
|
+
InputProps
|
|
28
34
|
} = props,
|
|
29
35
|
others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
30
36
|
const filterTimeout = React.useRef();
|
|
@@ -55,9 +61,6 @@ function GridFilterInputValue(props) {
|
|
|
55
61
|
const itemValue = item.value ?? '';
|
|
56
62
|
setFilterValueState(String(itemValue));
|
|
57
63
|
}, [item.value]);
|
|
58
|
-
const InputProps = applying ? {
|
|
59
|
-
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {})
|
|
60
|
-
} : others.InputProps;
|
|
61
64
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTextField, (0, _extends2.default)({
|
|
62
65
|
id: id,
|
|
63
66
|
label: apiRef.current.getLocaleText('filterPanelInputLabel'),
|
|
@@ -66,7 +69,20 @@ function GridFilterInputValue(props) {
|
|
|
66
69
|
onChange: onFilterChange,
|
|
67
70
|
variant: "standard",
|
|
68
71
|
type: type || 'text',
|
|
69
|
-
InputProps:
|
|
72
|
+
InputProps: (0, _extends2.default)({}, applying || clearButton ? {
|
|
73
|
+
endAdornment: applying ? /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.loadIcon, {
|
|
74
|
+
fontSize: "small",
|
|
75
|
+
color: "action"
|
|
76
|
+
}) : clearButton
|
|
77
|
+
} : {}, headerFilterMenu && isFilterActive ? {
|
|
78
|
+
startAdornment: headerFilterMenu
|
|
79
|
+
} : {}, {
|
|
80
|
+
disabled
|
|
81
|
+
}, InputProps, {
|
|
82
|
+
inputProps: (0, _extends2.default)({
|
|
83
|
+
tabIndex
|
|
84
|
+
}, InputProps?.inputProps)
|
|
85
|
+
}),
|
|
70
86
|
InputLabelProps: {
|
|
71
87
|
shrink: true
|
|
72
88
|
},
|
|
@@ -82,7 +98,14 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
|
|
|
82
98
|
current: _propTypes.default.object.isRequired
|
|
83
99
|
}).isRequired,
|
|
84
100
|
applyValue: _propTypes.default.func.isRequired,
|
|
101
|
+
clearButton: _propTypes.default.node,
|
|
85
102
|
focusElementRef: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
103
|
+
headerFilterMenu: _propTypes.default.node,
|
|
104
|
+
/**
|
|
105
|
+
* It is `true` if the filter either has a value or an operator with no value
|
|
106
|
+
* required is selected (e.g. `isEmpty`)
|
|
107
|
+
*/
|
|
108
|
+
isFilterActive: _propTypes.default.bool,
|
|
86
109
|
item: _propTypes.default.shape({
|
|
87
110
|
field: _propTypes.default.string.isRequired,
|
|
88
111
|
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.GridFilterPanel = void 0;
|
|
7
|
+
exports.getGridFilter = exports.GridFilterPanel = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -28,6 +28,7 @@ const getGridFilter = col => ({
|
|
|
28
28
|
operator: col.filterOperators[0].value,
|
|
29
29
|
id: Math.round(Math.random() * 1e5)
|
|
30
30
|
});
|
|
31
|
+
exports.getGridFilter = getGridFilter;
|
|
31
32
|
const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(props, ref) {
|
|
32
33
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
33
34
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
@@ -3,9 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
GridFilterPanel: true
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "GridFilterPanel", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _GridFilterPanel.GridFilterPanel;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
6
15
|
var _GridFilterForm = require("./GridFilterForm");
|
|
7
16
|
Object.keys(_GridFilterForm).forEach(function (key) {
|
|
8
17
|
if (key === "default" || key === "__esModule") return;
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
9
19
|
if (key in exports && exports[key] === _GridFilterForm[key]) return;
|
|
10
20
|
Object.defineProperty(exports, key, {
|
|
11
21
|
enumerable: true,
|
|
@@ -17,6 +27,7 @@ Object.keys(_GridFilterForm).forEach(function (key) {
|
|
|
17
27
|
var _GridFilterInputValue = require("./GridFilterInputValue");
|
|
18
28
|
Object.keys(_GridFilterInputValue).forEach(function (key) {
|
|
19
29
|
if (key === "default" || key === "__esModule") return;
|
|
30
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
20
31
|
if (key in exports && exports[key] === _GridFilterInputValue[key]) return;
|
|
21
32
|
Object.defineProperty(exports, key, {
|
|
22
33
|
enumerable: true,
|
|
@@ -28,6 +39,7 @@ Object.keys(_GridFilterInputValue).forEach(function (key) {
|
|
|
28
39
|
var _GridFilterInputDate = require("./GridFilterInputDate");
|
|
29
40
|
Object.keys(_GridFilterInputDate).forEach(function (key) {
|
|
30
41
|
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
43
|
if (key in exports && exports[key] === _GridFilterInputDate[key]) return;
|
|
32
44
|
Object.defineProperty(exports, key, {
|
|
33
45
|
enumerable: true,
|
|
@@ -39,6 +51,7 @@ Object.keys(_GridFilterInputDate).forEach(function (key) {
|
|
|
39
51
|
var _GridFilterInputSingleSelect = require("./GridFilterInputSingleSelect");
|
|
40
52
|
Object.keys(_GridFilterInputSingleSelect).forEach(function (key) {
|
|
41
53
|
if (key === "default" || key === "__esModule") return;
|
|
54
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
42
55
|
if (key in exports && exports[key] === _GridFilterInputSingleSelect[key]) return;
|
|
43
56
|
Object.defineProperty(exports, key, {
|
|
44
57
|
enumerable: true,
|
|
@@ -47,31 +60,35 @@ Object.keys(_GridFilterInputSingleSelect).forEach(function (key) {
|
|
|
47
60
|
}
|
|
48
61
|
});
|
|
49
62
|
});
|
|
50
|
-
var
|
|
51
|
-
Object.keys(
|
|
63
|
+
var _GridFilterInputBoolean = require("./GridFilterInputBoolean");
|
|
64
|
+
Object.keys(_GridFilterInputBoolean).forEach(function (key) {
|
|
52
65
|
if (key === "default" || key === "__esModule") return;
|
|
53
|
-
if (
|
|
66
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
67
|
+
if (key in exports && exports[key] === _GridFilterInputBoolean[key]) return;
|
|
54
68
|
Object.defineProperty(exports, key, {
|
|
55
69
|
enumerable: true,
|
|
56
70
|
get: function () {
|
|
57
|
-
return
|
|
71
|
+
return _GridFilterInputBoolean[key];
|
|
58
72
|
}
|
|
59
73
|
});
|
|
60
74
|
});
|
|
61
|
-
var
|
|
62
|
-
Object.keys(
|
|
75
|
+
var _GridFilterInputValueProps = require("./GridFilterInputValueProps");
|
|
76
|
+
Object.keys(_GridFilterInputValueProps).forEach(function (key) {
|
|
63
77
|
if (key === "default" || key === "__esModule") return;
|
|
64
|
-
if (
|
|
78
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
79
|
+
if (key in exports && exports[key] === _GridFilterInputValueProps[key]) return;
|
|
65
80
|
Object.defineProperty(exports, key, {
|
|
66
81
|
enumerable: true,
|
|
67
82
|
get: function () {
|
|
68
|
-
return
|
|
83
|
+
return _GridFilterInputValueProps[key];
|
|
69
84
|
}
|
|
70
85
|
});
|
|
71
86
|
});
|
|
87
|
+
var _GridFilterPanel = require("./GridFilterPanel");
|
|
72
88
|
var _GridFilterInputMultipleValue = require("./GridFilterInputMultipleValue");
|
|
73
89
|
Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
|
|
74
90
|
if (key === "default" || key === "__esModule") return;
|
|
91
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
75
92
|
if (key in exports && exports[key] === _GridFilterInputMultipleValue[key]) return;
|
|
76
93
|
Object.defineProperty(exports, key, {
|
|
77
94
|
enumerable: true,
|
|
@@ -83,6 +100,7 @@ Object.keys(_GridFilterInputMultipleValue).forEach(function (key) {
|
|
|
83
100
|
var _GridFilterInputMultipleSingleSelect = require("./GridFilterInputMultipleSingleSelect");
|
|
84
101
|
Object.keys(_GridFilterInputMultipleSingleSelect).forEach(function (key) {
|
|
85
102
|
if (key === "default" || key === "__esModule") return;
|
|
103
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
86
104
|
if (key in exports && exports[key] === _GridFilterInputMultipleSingleSelect[key]) return;
|
|
87
105
|
Object.defineProperty(exports, key, {
|
|
88
106
|
enumerable: true,
|
|
@@ -64,6 +64,32 @@ const GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
64
64
|
filterOperatorIsEmpty: 'is empty',
|
|
65
65
|
filterOperatorIsNotEmpty: 'is not empty',
|
|
66
66
|
filterOperatorIsAnyOf: 'is any of',
|
|
67
|
+
'filterOperator=': '=',
|
|
68
|
+
'filterOperator!=': '!=',
|
|
69
|
+
'filterOperator>': '>',
|
|
70
|
+
'filterOperator>=': '>=',
|
|
71
|
+
'filterOperator<': '<',
|
|
72
|
+
'filterOperator<=': '<=',
|
|
73
|
+
// Header filter operators text
|
|
74
|
+
headerFilterOperatorContains: 'Contains',
|
|
75
|
+
headerFilterOperatorEquals: 'Equals',
|
|
76
|
+
headerFilterOperatorStartsWith: 'Starts with',
|
|
77
|
+
headerFilterOperatorEndsWith: 'Ends with',
|
|
78
|
+
headerFilterOperatorIs: 'Is',
|
|
79
|
+
headerFilterOperatorNot: 'Is not',
|
|
80
|
+
headerFilterOperatorAfter: 'Is after',
|
|
81
|
+
headerFilterOperatorOnOrAfter: 'Is on or after',
|
|
82
|
+
headerFilterOperatorBefore: 'Is before',
|
|
83
|
+
headerFilterOperatorOnOrBefore: 'Is on or before',
|
|
84
|
+
headerFilterOperatorIsEmpty: 'Is empty',
|
|
85
|
+
headerFilterOperatorIsNotEmpty: 'Is not empty',
|
|
86
|
+
headerFilterOperatorIsAnyOf: 'Is any of',
|
|
87
|
+
'headerFilterOperator=': 'Equals',
|
|
88
|
+
'headerFilterOperator!=': 'Not equals',
|
|
89
|
+
'headerFilterOperator>': 'Is greater than',
|
|
90
|
+
'headerFilterOperator>=': 'Is greater than or equal to',
|
|
91
|
+
'headerFilterOperator<': 'Is less than',
|
|
92
|
+
'headerFilterOperator<=': 'Is less than or equal to',
|
|
67
93
|
// Filter values text
|
|
68
94
|
filterValueAny: 'any',
|
|
69
95
|
filterValueTrue: 'true',
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useGridClipboard = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("../../utils");
|
|
9
|
+
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
10
|
+
var _csvSerializer = require("../export/serializers/csvSerializer");
|
|
9
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
13
|
function writeToClipboardPolyfill(data) {
|
|
@@ -26,6 +28,15 @@ function writeToClipboardPolyfill(data) {
|
|
|
26
28
|
document.body.removeChild(span);
|
|
27
29
|
}
|
|
28
30
|
}
|
|
31
|
+
function copyToClipboard(data) {
|
|
32
|
+
if (navigator.clipboard) {
|
|
33
|
+
navigator.clipboard.writeText(data).catch(() => {
|
|
34
|
+
writeToClipboardPolyfill(data);
|
|
35
|
+
});
|
|
36
|
+
} else {
|
|
37
|
+
writeToClipboardPolyfill(data);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
29
40
|
function hasNativeSelection(element) {
|
|
30
41
|
// When getSelection is called on an <iframe> that is not displayed Firefox will return null.
|
|
31
42
|
if (window.getSelection()?.toString()) {
|
|
@@ -45,24 +56,11 @@ function hasNativeSelection(element) {
|
|
|
45
56
|
* @requires useGridCsvExport (method)
|
|
46
57
|
* @requires useGridSelection (method)
|
|
47
58
|
*/
|
|
48
|
-
const useGridClipboard = apiRef => {
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const data = apiRef.current.getDataAsCsv({
|
|
54
|
-
includeHeaders: false,
|
|
55
|
-
delimiter: '\t'
|
|
56
|
-
});
|
|
57
|
-
if (navigator.clipboard) {
|
|
58
|
-
navigator.clipboard.writeText(data).catch(() => {
|
|
59
|
-
writeToClipboardPolyfill(data);
|
|
60
|
-
});
|
|
61
|
-
} else {
|
|
62
|
-
writeToClipboardPolyfill(data);
|
|
63
|
-
}
|
|
64
|
-
}, [apiRef]);
|
|
65
|
-
const handleKeydown = React.useCallback(event => {
|
|
59
|
+
const useGridClipboard = (apiRef, props) => {
|
|
60
|
+
const ignoreValueFormatterProp = props.unstable_ignoreValueFormatterDuringExport;
|
|
61
|
+
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
|
|
62
|
+
const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
|
|
63
|
+
const handleCopy = React.useCallback(event => {
|
|
66
64
|
const isModifierKeyPressed = event.ctrlKey || event.metaKey;
|
|
67
65
|
// event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would
|
|
68
66
|
// be wrong with a Dvorak keyboard (as if pressing J).
|
|
@@ -74,12 +72,31 @@ const useGridClipboard = apiRef => {
|
|
|
74
72
|
if (hasNativeSelection(event.target)) {
|
|
75
73
|
return;
|
|
76
74
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
let textToCopy = '';
|
|
76
|
+
const selectedRows = apiRef.current.getSelectedRows();
|
|
77
|
+
if (selectedRows.size > 0) {
|
|
78
|
+
textToCopy = apiRef.current.getDataAsCsv({
|
|
79
|
+
includeHeaders: false,
|
|
80
|
+
// TODO: make it configurable
|
|
81
|
+
delimiter: clipboardCopyCellDelimiter
|
|
82
|
+
});
|
|
83
|
+
} else {
|
|
84
|
+
const focusedCell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
85
|
+
if (focusedCell) {
|
|
86
|
+
const cellParams = apiRef.current.getCellParams(focusedCell.id, focusedCell.field);
|
|
87
|
+
textToCopy = (0, _csvSerializer.serializeCellValue)(cellParams, {
|
|
88
|
+
delimiterCharacter: clipboardCopyCellDelimiter,
|
|
89
|
+
ignoreValueFormatter
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
textToCopy = apiRef.current.unstable_applyPipeProcessors('clipboardCopy', textToCopy);
|
|
94
|
+
if (textToCopy) {
|
|
95
|
+
copyToClipboard(textToCopy);
|
|
96
|
+
apiRef.current.publishEvent('clipboardCopy', textToCopy);
|
|
97
|
+
}
|
|
98
|
+
}, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter]);
|
|
99
|
+
(0, _utils.useGridNativeEventListener)(apiRef, apiRef.current.rootElementRef, 'keydown', handleCopy);
|
|
100
|
+
(0, _utils.useGridApiOptionHandler)(apiRef, 'clipboardCopy', props.onClipboardCopy);
|
|
84
101
|
};
|
|
85
102
|
exports.useGridClipboard = useGridClipboard;
|
|
@@ -269,7 +269,7 @@ const useGridColumnHeaders = props => {
|
|
|
269
269
|
const tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
270
270
|
const headerInfo = {
|
|
271
271
|
groupId,
|
|
272
|
-
width: columnFields.
|
|
272
|
+
width: columnFields.reduce((acc, field) => acc + apiRef.current.getColumn(field).computedWidth, 0),
|
|
273
273
|
fields: columnFields,
|
|
274
274
|
colIndex: columnIndex,
|
|
275
275
|
hasFocus,
|
|
@@ -325,6 +325,7 @@ const useGridColumnHeaders = props => {
|
|
|
325
325
|
return {
|
|
326
326
|
renderContext,
|
|
327
327
|
getColumnHeaders,
|
|
328
|
+
getColumnsToRender,
|
|
328
329
|
getColumnGroupHeaders,
|
|
329
330
|
isDragging: !!dragCol,
|
|
330
331
|
getRootProps: (other = {}) => (0, _extends2.default)({
|
|
@@ -333,7 +334,8 @@ const useGridColumnHeaders = props => {
|
|
|
333
334
|
getInnerProps: () => ({
|
|
334
335
|
ref: handleInnerRef,
|
|
335
336
|
role: 'rowgroup'
|
|
336
|
-
})
|
|
337
|
+
}),
|
|
338
|
+
headerHeight
|
|
337
339
|
};
|
|
338
340
|
};
|
|
339
341
|
exports.useGridColumnHeaders = useGridColumnHeaders;
|
|
@@ -16,7 +16,6 @@ var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
|
16
16
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
17
17
|
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
18
18
|
var _gridColumnsUtils = require("../columns/gridColumnsUtils");
|
|
19
|
-
var _gridClasses = require("../../../constants/gridClasses");
|
|
20
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
21
|
const isTestEnvironment = process.env.NODE_ENV === 'test';
|
|
@@ -158,13 +157,12 @@ function useGridDimensions(apiRef, props) {
|
|
|
158
157
|
return Math.min(maximumPageSizeWithoutScrollBar, currentPage.rows.length);
|
|
159
158
|
}, [apiRef, props.pagination, props.paginationMode, props.getRowHeight, rowHeight]);
|
|
160
159
|
const computeSizeAndPublishResizeEvent = React.useCallback(() => {
|
|
161
|
-
const
|
|
162
|
-
const mainEl = rootEl?.querySelector(`.${_gridClasses.gridClasses.main}`);
|
|
160
|
+
const mainEl = apiRef.current.mainElementRef?.current;
|
|
163
161
|
if (!mainEl) {
|
|
164
162
|
return;
|
|
165
163
|
}
|
|
166
|
-
const height = mainEl.
|
|
167
|
-
const width = mainEl.
|
|
164
|
+
const height = mainEl.clientHeight || 0;
|
|
165
|
+
const width = mainEl.clientWidth || 0;
|
|
168
166
|
const win = (0, _utils.unstable_ownerWindow)(mainEl);
|
|
169
167
|
const computedStyle = win.getComputedStyle(mainEl);
|
|
170
168
|
const paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
|
|
@@ -99,10 +99,14 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
99
99
|
}
|
|
100
100
|
} else if (params.isEditable) {
|
|
101
101
|
let reason;
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
const canStartEditing = apiRef.current.unstable_applyPipeProcessors('canStartEditing', true, {
|
|
103
|
+
event,
|
|
104
|
+
cellParams: params,
|
|
105
|
+
editMode: 'cell'
|
|
106
|
+
});
|
|
107
|
+
if (!canStartEditing) {
|
|
108
|
+
return;
|
|
104
109
|
}
|
|
105
|
-
|
|
106
110
|
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
107
111
|
reason = _gridEditCellParams.GridCellEditStartReasons.printableKeyDown;
|
|
108
112
|
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
@@ -39,9 +39,6 @@ const useGridEditing = (apiRef, props) => {
|
|
|
39
39
|
if (isCellEditableProp) {
|
|
40
40
|
return isCellEditableProp(params);
|
|
41
41
|
}
|
|
42
|
-
if (params.rowNode.type === 'pinnedRow') {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
42
|
return true;
|
|
46
43
|
}, [isCellEditableProp]);
|
|
47
44
|
const maybeDebounce = (id, field, debounceMs, callback) => {
|
|
@@ -152,10 +152,14 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
152
152
|
}
|
|
153
153
|
} else if (params.isEditable) {
|
|
154
154
|
let reason;
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
const canStartEditing = apiRef.current.unstable_applyPipeProcessors('canStartEditing', true, {
|
|
156
|
+
event,
|
|
157
|
+
cellParams: params,
|
|
158
|
+
editMode: 'row'
|
|
159
|
+
});
|
|
160
|
+
if (!canStartEditing) {
|
|
161
|
+
return;
|
|
157
162
|
}
|
|
158
|
-
|
|
159
163
|
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
160
164
|
reason = _gridRowParams.GridRowEditStartReasons.printableKeyDown;
|
|
161
165
|
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
@@ -4,9 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.buildCSV = buildCSV;
|
|
7
|
+
exports.serializeCellValue = void 0;
|
|
7
8
|
var _colDef = require("../../../../colDef");
|
|
8
9
|
var _warning = require("../../../../utils/warning");
|
|
9
|
-
|
|
10
|
+
function sanitizeCellValue(value, delimiterCharacter) {
|
|
10
11
|
if (typeof value === 'string') {
|
|
11
12
|
const formattedValue = value.replace(/"/g, '""');
|
|
12
13
|
|
|
@@ -17,16 +18,48 @@ const serializeCellValue = (value, delimiterCharacter) => {
|
|
|
17
18
|
return formattedValue;
|
|
18
19
|
}
|
|
19
20
|
return value;
|
|
21
|
+
}
|
|
22
|
+
const serializeCellValue = (cellParams, options) => {
|
|
23
|
+
const {
|
|
24
|
+
delimiterCharacter,
|
|
25
|
+
ignoreValueFormatter
|
|
26
|
+
} = options;
|
|
27
|
+
let value;
|
|
28
|
+
if (ignoreValueFormatter) {
|
|
29
|
+
const columnType = cellParams.colDef.type;
|
|
30
|
+
if (columnType === 'number') {
|
|
31
|
+
value = String(cellParams.value);
|
|
32
|
+
} else if (columnType === 'date' || columnType === 'dateTime') {
|
|
33
|
+
value = cellParams.value?.toISOString();
|
|
34
|
+
} else if (typeof cellParams.value?.toString === 'function') {
|
|
35
|
+
value = cellParams.value.toString();
|
|
36
|
+
} else {
|
|
37
|
+
value = cellParams.value;
|
|
38
|
+
}
|
|
39
|
+
} else {
|
|
40
|
+
value = cellParams.formattedValue;
|
|
41
|
+
}
|
|
42
|
+
return sanitizeCellValue(value, delimiterCharacter);
|
|
20
43
|
};
|
|
44
|
+
exports.serializeCellValue = serializeCellValue;
|
|
21
45
|
const objectFormattedValueWarning = (0, _warning.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.']);
|
|
22
|
-
const serializeRow = (
|
|
46
|
+
const serializeRow = ({
|
|
47
|
+
id,
|
|
48
|
+
columns,
|
|
49
|
+
getCellParams,
|
|
50
|
+
delimiterCharacter,
|
|
51
|
+
ignoreValueFormatter
|
|
52
|
+
}) => columns.map(column => {
|
|
23
53
|
const cellParams = getCellParams(id, column.field);
|
|
24
54
|
if (process.env.NODE_ENV !== 'production') {
|
|
25
55
|
if (String(cellParams.formattedValue) === '[object Object]') {
|
|
26
56
|
objectFormattedValueWarning();
|
|
27
57
|
}
|
|
28
58
|
}
|
|
29
|
-
return serializeCellValue(cellParams
|
|
59
|
+
return serializeCellValue(cellParams, {
|
|
60
|
+
delimiterCharacter,
|
|
61
|
+
ignoreValueFormatter
|
|
62
|
+
});
|
|
30
63
|
});
|
|
31
64
|
function buildCSV(options) {
|
|
32
65
|
const {
|
|
@@ -34,12 +67,19 @@ function buildCSV(options) {
|
|
|
34
67
|
rowIds,
|
|
35
68
|
getCellParams,
|
|
36
69
|
delimiterCharacter,
|
|
37
|
-
includeHeaders
|
|
70
|
+
includeHeaders,
|
|
71
|
+
ignoreValueFormatter
|
|
38
72
|
} = options;
|
|
39
|
-
const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow(
|
|
73
|
+
const CSVBody = rowIds.reduce((acc, id) => `${acc}${serializeRow({
|
|
74
|
+
id,
|
|
75
|
+
columns,
|
|
76
|
+
getCellParams,
|
|
77
|
+
delimiterCharacter,
|
|
78
|
+
ignoreValueFormatter
|
|
79
|
+
}).join(delimiterCharacter)}\r\n`, '').trim();
|
|
40
80
|
if (!includeHeaders) {
|
|
41
81
|
return CSVBody;
|
|
42
82
|
}
|
|
43
|
-
const CSVHead = `${columns.filter(column => column.field !== _colDef.GRID_CHECKBOX_SELECTION_COL_DEF.field).map(column =>
|
|
83
|
+
const CSVHead = `${columns.filter(column => column.field !== _colDef.GRID_CHECKBOX_SELECTION_COL_DEF.field).map(column => sanitizeCellValue(column.headerName || column.field, delimiterCharacter)).join(delimiterCharacter)}\r\n`;
|
|
44
84
|
return `${CSVHead}${CSVBody}`.trim();
|
|
45
85
|
}
|
|
@@ -22,8 +22,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
22
22
|
* @requires useGridSelection (state)
|
|
23
23
|
* @requires useGridParamsApi (method)
|
|
24
24
|
*/
|
|
25
|
-
const useGridCsvExport = apiRef => {
|
|
25
|
+
const useGridCsvExport = (apiRef, props) => {
|
|
26
26
|
const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridCsvExport');
|
|
27
|
+
const ignoreValueFormatterProp = props.unstable_ignoreValueFormatterDuringExport;
|
|
28
|
+
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.csvExport : ignoreValueFormatterProp) || false;
|
|
27
29
|
const getDataAsCsv = React.useCallback((options = {}) => {
|
|
28
30
|
logger.debug(`Get data as CSV`);
|
|
29
31
|
const exportedColumns = (0, _utils.getColumnsToExport)({
|
|
@@ -39,9 +41,10 @@ const useGridCsvExport = apiRef => {
|
|
|
39
41
|
rowIds: exportedRowIds,
|
|
40
42
|
getCellParams: apiRef.current.getCellParams,
|
|
41
43
|
delimiterCharacter: options.delimiter || ',',
|
|
42
|
-
includeHeaders: options.includeHeaders ?? true
|
|
44
|
+
includeHeaders: options.includeHeaders ?? true,
|
|
45
|
+
ignoreValueFormatter
|
|
43
46
|
});
|
|
44
|
-
}, [logger, apiRef]);
|
|
47
|
+
}, [logger, apiRef, ignoreValueFormatter]);
|
|
45
48
|
const exportDataAsCsv = React.useCallback(options => {
|
|
46
49
|
logger.debug(`Export data as CSV`);
|
|
47
50
|
const csv = getDataAsCsv(options);
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusCellSelector = void 0;
|
|
6
|
+
exports.unstable_gridTabIndexColumnHeaderFilterSelector = exports.unstable_gridTabIndexColumnGroupHeaderSelector = exports.unstable_gridFocusColumnHeaderFilterSelector = exports.unstable_gridFocusColumnGroupHeaderSelector = exports.gridTabIndexStateSelector = exports.gridTabIndexColumnHeaderSelector = exports.gridTabIndexCellSelector = exports.gridFocusStateSelector = exports.gridFocusColumnHeaderSelector = exports.gridFocusCellSelector = void 0;
|
|
7
7
|
var _createSelector = require("../../../utils/createSelector");
|
|
8
8
|
const gridFocusStateSelector = state => state.focus;
|
|
9
9
|
exports.gridFocusStateSelector = gridFocusStateSelector;
|
|
@@ -13,6 +13,10 @@ const gridFocusColumnHeaderSelector = (0, _createSelector.createSelector)(gridFo
|
|
|
13
13
|
|
|
14
14
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
15
15
|
exports.gridFocusColumnHeaderSelector = gridFocusColumnHeaderSelector;
|
|
16
|
+
const unstable_gridFocusColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnHeaderFilter);
|
|
17
|
+
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
19
|
+
exports.unstable_gridFocusColumnHeaderFilterSelector = unstable_gridFocusColumnHeaderFilterSelector;
|
|
16
20
|
const unstable_gridFocusColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridFocusStateSelector, focusState => focusState.columnGroupHeader);
|
|
17
21
|
exports.unstable_gridFocusColumnGroupHeaderSelector = unstable_gridFocusColumnGroupHeaderSelector;
|
|
18
22
|
const gridTabIndexStateSelector = state => state.tabIndex;
|
|
@@ -23,5 +27,9 @@ const gridTabIndexColumnHeaderSelector = (0, _createSelector.createSelector)(gri
|
|
|
23
27
|
|
|
24
28
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
25
29
|
exports.gridTabIndexColumnHeaderSelector = gridTabIndexColumnHeaderSelector;
|
|
30
|
+
const unstable_gridTabIndexColumnHeaderFilterSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnHeaderFilter);
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
33
|
+
exports.unstable_gridTabIndexColumnHeaderFilterSelector = unstable_gridTabIndexColumnHeaderFilterSelector;
|
|
26
34
|
const unstable_gridTabIndexColumnGroupHeaderSelector = (0, _createSelector.createSelector)(gridTabIndexStateSelector, state => state.columnGroupHeader);
|
|
27
35
|
exports.unstable_gridTabIndexColumnGroupHeaderSelector = unstable_gridTabIndexColumnGroupHeaderSelector;
|