@mui/x-data-grid 6.4.0 → 6.6.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 +134 -2
- package/DataGrid/DataGrid.js +10 -3
- package/DataGrid/useDataGridProps.js +5 -12
- package/README.md +2 -2
- package/colDef/gridNumericOperators.js +0 -6
- package/components/GridColumnHeaders.js +4 -9
- package/components/GridHeader.d.ts +2 -2
- package/components/base/GridBody.d.ts +1 -1
- package/components/base/GridFooterPlaceholder.d.ts +2 -2
- package/components/base/GridOverlays.d.ts +2 -2
- package/components/cell/GridActionsCell.d.ts +3 -3
- package/components/cell/GridActionsCell.js +3 -3
- package/components/cell/GridBooleanCell.d.ts +1 -1
- package/components/cell/GridEditBooleanCell.d.ts +2 -2
- package/components/cell/GridEditDateCell.d.ts +2 -2
- package/components/cell/GridEditInputCell.d.ts +1 -1
- package/components/cell/GridEditInputCell.js +4 -1
- package/components/cell/GridEditSingleSelectCell.d.ts +3 -3
- package/components/cell/GridEditSingleSelectCell.js +5 -5
- package/components/cell/GridSkeletonCell.d.ts +1 -1
- package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
- package/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -2
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +1 -1
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -2
- package/components/columnHeaders/GridColumnHeaderSeparator.d.ts +1 -1
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
- package/components/columnHeaders/GridColumnHeaderTitle.d.ts +1 -1
- package/components/containers/GridRoot.js +1 -3
- package/components/index.d.ts +0 -1
- package/components/index.js +1 -2
- package/components/menu/GridMenu.d.ts +1 -1
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
- package/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.d.ts +2 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.d.ts +2 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.d.ts +2 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.d.ts +2 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.d.ts +2 -2
- package/components/panel/GridColumnsPanel.d.ts +2 -2
- package/components/panel/GridPanelContent.d.ts +1 -1
- package/components/panel/GridPanelFooter.d.ts +1 -1
- package/components/panel/GridPanelHeader.d.ts +1 -1
- package/components/panel/GridPreferencesPanel.js +3 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
- package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/components/panel/filterPanel/GridFilterInputDate.d.ts +9 -2
- package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
- package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
- package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +9 -2
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -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/components/toolbar/GridToolbarColumnsButton.js +11 -6
- package/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/components/toolbar/GridToolbarExport.d.ts +2 -2
- package/components/toolbar/GridToolbarExportContainer.js +7 -7
- package/components/toolbar/GridToolbarFilterButton.js +11 -4
- package/components/toolbar/GridToolbarQuickFilter.d.ts +2 -2
- package/constants/localeTextConstants.js +26 -0
- package/context/GridContextProvider.d.ts +1 -1
- package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +10 -2
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +10 -3
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/hooks/features/editing/useGridEditing.js +0 -3
- package/hooks/features/filter/gridFilterSelector.d.ts +2 -2
- package/hooks/features/filter/gridFilterSelector.js +2 -2
- package/hooks/features/filter/gridFilterState.d.ts +6 -6
- package/hooks/features/filter/gridFilterState.js +6 -0
- package/hooks/features/filter/useGridFilter.js +29 -9
- 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 +113 -4
- package/hooks/features/preferencesPanel/gridPreferencePanelState.d.ts +2 -0
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
- package/hooks/features/rows/useGridRows.js +16 -1
- package/hooks/features/rows/useGridRowsMeta.js +11 -12
- package/index.js +1 -1
- package/internals/index.d.ts +6 -1
- package/internals/index.js +4 -0
- 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 +33 -0
- package/legacy/DataGrid/DataGrid.js +10 -3
- package/legacy/DataGrid/useDataGridProps.js +8 -8
- package/legacy/colDef/gridNumericOperators.js +0 -6
- package/legacy/components/GridColumnHeaders.js +4 -9
- package/legacy/components/cell/GridActionsCell.js +3 -3
- package/legacy/components/cell/GridEditInputCell.js +4 -1
- package/legacy/components/cell/GridEditSingleSelectCell.js +5 -5
- package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
- package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
- package/legacy/components/containers/GridRoot.js +1 -3
- package/legacy/components/index.js +1 -2
- package/legacy/components/panel/GridPreferencesPanel.js +3 -1
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
- package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -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/components/toolbar/GridToolbarColumnsButton.js +11 -5
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/legacy/components/toolbar/GridToolbarExportContainer.js +7 -7
- package/legacy/components/toolbar/GridToolbarFilterButton.js +11 -4
- package/legacy/constants/localeTextConstants.js +26 -0
- package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
- package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/legacy/hooks/features/editing/useGridEditing.js +0 -3
- package/legacy/hooks/features/filter/gridFilterSelector.js +4 -4
- package/legacy/hooks/features/filter/gridFilterState.js +6 -0
- package/legacy/hooks/features/filter/useGridFilter.js +29 -9
- 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 +113 -4
- package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
- package/legacy/hooks/features/rows/useGridRows.js +16 -1
- package/legacy/hooks/features/rows/useGridRowsMeta.js +12 -20
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +4 -0
- package/legacy/internals/utils/index.js +2 -1
- package/legacy/internals/utils/useProps.js +33 -0
- 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 +28 -0
- 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 +26 -0
- 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 +26 -0
- package/legacy/locales/plPL.js +28 -0
- package/legacy/locales/ptBR.js +28 -0
- 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 +28 -0
- 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 +2 -0
- package/legacy/models/api/gridHeaderFilteringApi.js +1 -0
- package/legacy/models/gridFilterItem.js +1 -1
- package/legacy/models/gridHeaderFilteringModel.js +1 -0
- package/legacy/models/index.js +0 -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 +28 -0
- 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 +26 -0
- 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 +26 -0
- package/locales/plPL.js +28 -0
- package/locales/ptBR.js +28 -0
- 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 +28 -0
- 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/components/MUISelectOption.d.ts +2 -2
- package/material/index.d.ts +3 -66
- package/material/index.js +2 -0
- package/models/api/gridApiCommon.d.ts +3 -2
- package/models/api/gridCoreApi.d.ts +4 -0
- package/models/api/gridFilterApi.d.ts +3 -1
- package/models/api/gridFocusApi.d.ts +6 -0
- package/models/api/gridHeaderFilteringApi.d.ts +30 -0
- package/models/api/gridHeaderFilteringApi.js +1 -0
- package/models/api/gridLocaleTextApi.d.ts +25 -0
- package/models/api/gridPreferencesPanelApi.d.ts +3 -1
- package/models/events/gridEventLookup.d.ts +27 -1
- package/models/gridFilterItem.d.ts +1 -1
- package/models/gridFilterItem.js +1 -1
- package/models/gridFilterOperator.d.ts +5 -1
- package/models/gridHeaderFilteringModel.d.ts +5 -0
- package/models/gridHeaderFilteringModel.js +1 -0
- package/models/gridSlotsComponent.d.ts +16 -4
- package/models/gridStateCommunity.d.ts +4 -0
- package/models/index.d.ts +1 -1
- package/models/index.js +0 -1
- package/models/props/DataGridProps.d.ts +5 -0
- package/modern/DataGrid/DataGrid.js +10 -3
- package/modern/DataGrid/useDataGridProps.js +5 -12
- package/modern/colDef/gridNumericOperators.js +0 -6
- package/modern/components/GridColumnHeaders.js +4 -9
- package/modern/components/cell/GridActionsCell.js +3 -3
- package/modern/components/cell/GridEditInputCell.js +4 -1
- package/modern/components/cell/GridEditSingleSelectCell.js +5 -5
- package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
- package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
- package/modern/components/containers/GridRoot.js +1 -3
- package/modern/components/index.js +1 -2
- package/modern/components/panel/GridPreferencesPanel.js +3 -1
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
- package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -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/components/toolbar/GridToolbarColumnsButton.js +11 -6
- package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/modern/components/toolbar/GridToolbarExportContainer.js +7 -7
- package/modern/components/toolbar/GridToolbarFilterButton.js +11 -4
- package/modern/constants/localeTextConstants.js +26 -0
- package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/modern/hooks/features/editing/useGridEditing.js +0 -3
- package/modern/hooks/features/filter/gridFilterSelector.js +2 -2
- package/modern/hooks/features/filter/gridFilterState.js +6 -0
- package/modern/hooks/features/filter/useGridFilter.js +29 -9
- 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 +113 -4
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
- package/modern/hooks/features/rows/useGridRows.js +16 -1
- package/modern/hooks/features/rows/useGridRowsMeta.js +11 -12
- package/modern/index.js +1 -1
- package/modern/internals/index.js +4 -0
- package/modern/internals/utils/index.js +2 -1
- package/modern/internals/utils/useProps.js +32 -0
- 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 +28 -0
- 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 +26 -0
- 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 +26 -0
- package/modern/locales/plPL.js +28 -0
- package/modern/locales/ptBR.js +28 -0
- 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 +28 -0
- 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 +2 -0
- package/modern/models/api/gridHeaderFilteringApi.js +1 -0
- package/modern/models/gridFilterItem.js +1 -1
- package/modern/models/gridHeaderFilteringModel.js +1 -0
- package/modern/models/index.js +0 -1
- package/node/DataGrid/DataGrid.js +10 -3
- package/node/DataGrid/useDataGridProps.js +4 -11
- package/node/colDef/gridNumericOperators.js +0 -6
- package/node/components/GridColumnHeaders.js +3 -8
- package/node/components/cell/GridActionsCell.js +3 -3
- package/node/components/cell/GridEditInputCell.js +4 -1
- package/node/components/cell/GridEditSingleSelectCell.js +5 -5
- package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
- package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +12 -3
- package/node/components/containers/GridRoot.js +1 -3
- package/node/components/index.js +0 -11
- package/node/components/panel/GridPreferencesPanel.js +3 -1
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
- package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -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/components/toolbar/GridToolbarColumnsButton.js +11 -6
- package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
- package/node/components/toolbar/GridToolbarExportContainer.js +7 -7
- package/node/components/toolbar/GridToolbarFilterButton.js +10 -3
- package/node/constants/localeTextConstants.js +26 -0
- package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
- package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
- package/node/hooks/features/editing/useGridEditing.js +0 -3
- package/node/hooks/features/filter/gridFilterSelector.js +2 -2
- package/node/hooks/features/filter/gridFilterState.js +6 -0
- package/node/hooks/features/filter/useGridFilter.js +30 -10
- 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 +113 -4
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
- package/node/hooks/features/rows/useGridRows.js +16 -1
- package/node/hooks/features/rows/useGridRowsMeta.js +11 -12
- package/node/index.js +1 -1
- package/node/internals/index.js +46 -0
- package/node/internals/utils/index.js +11 -0
- package/node/internals/utils/useProps.js +41 -0
- 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 +28 -0
- 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 +26 -0
- 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 +26 -0
- package/node/locales/plPL.js +28 -0
- package/node/locales/ptBR.js +28 -0
- 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 +28 -0
- 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 +2 -0
- package/node/models/api/gridHeaderFilteringApi.js +5 -0
- package/node/models/gridFilterItem.js +1 -1
- package/node/models/gridHeaderFilteringModel.js +5 -0
- package/node/models/index.js +0 -11
- package/package.json +4 -4
- package/components/GridScrollArea.d.ts +0 -10
- package/components/GridScrollArea.js +0 -117
- package/legacy/components/GridScrollArea.js +0 -119
- package/legacy/lib/createDetectElementResize/index.js +0 -145
- package/lib/createDetectElementResize/index.d.ts +0 -18
- package/lib/createDetectElementResize/index.js +0 -145
- package/lib/createDetectElementResize/types.d.ts +0 -9
- package/modern/components/GridScrollArea.js +0 -117
- package/modern/lib/createDetectElementResize/index.js +0 -145
- package/node/components/GridScrollArea.js +0 -126
- package/node/lib/createDetectElementResize/index.js +0 -151
|
@@ -2,10 +2,11 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
5
|
-
var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue"];
|
|
5
|
+
var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "getOptionLabel", "getOptionValue", "placeholder", "tabIndex", "label", "headerFilterMenu", "isFilterActive", "clearButton"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { unstable_useId as useId } from '@mui/utils';
|
|
9
|
+
import { styled } from '@mui/material/styles';
|
|
9
10
|
import { useGridRootProps } from '../../../hooks/utils/useGridRootProps';
|
|
10
11
|
import { getValueFromValueOptions, isSingleSelectColDef } from './filterPanelUtils';
|
|
11
12
|
import { createElement as _createElement } from "react";
|
|
@@ -33,6 +34,11 @@ var renderSingleSelectOptions = function renderSingleSelectOptions(_ref) {
|
|
|
33
34
|
}), label);
|
|
34
35
|
});
|
|
35
36
|
};
|
|
37
|
+
var SingleSelectOperatorContainer = styled('div')({
|
|
38
|
+
display: 'flex',
|
|
39
|
+
alignItems: 'flex-end',
|
|
40
|
+
width: '100%'
|
|
41
|
+
});
|
|
36
42
|
function GridFilterInputSingleSelect(props) {
|
|
37
43
|
var _item$value, _rootProps$slotProps$, _rootProps$slotProps, _rootProps$slotProps$2, _resolvedColumn, _resolvedColumn2, _rootProps$slotProps2, _rootProps$slotProps3, _rootProps$slotProps4;
|
|
38
44
|
var item = props.item,
|
|
@@ -42,6 +48,12 @@ function GridFilterInputSingleSelect(props) {
|
|
|
42
48
|
focusElementRef = props.focusElementRef,
|
|
43
49
|
getOptionLabelProp = props.getOptionLabel,
|
|
44
50
|
getOptionValueProp = props.getOptionValue,
|
|
51
|
+
placeholder = props.placeholder,
|
|
52
|
+
tabIndex = props.tabIndex,
|
|
53
|
+
labelProp = props.label,
|
|
54
|
+
headerFilterMenu = props.headerFilterMenu,
|
|
55
|
+
isFilterActive = props.isFilterActive,
|
|
56
|
+
clearButton = props.clearButton,
|
|
45
57
|
others = _objectWithoutProperties(props, _excluded);
|
|
46
58
|
var _React$useState = React.useState((_item$value = item.value) != null ? _item$value : ''),
|
|
47
59
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -102,36 +114,41 @@ function GridFilterInputSingleSelect(props) {
|
|
|
102
114
|
if (!isSingleSelectColDef(resolvedColumn)) {
|
|
103
115
|
return null;
|
|
104
116
|
}
|
|
105
|
-
var label = apiRef.current.getLocaleText('filterPanelInputLabel');
|
|
106
|
-
return /*#__PURE__*/_jsxs(
|
|
107
|
-
children: [/*#__PURE__*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
117
|
+
var label = labelProp != null ? labelProp : apiRef.current.getLocaleText('filterPanelInputLabel');
|
|
118
|
+
return /*#__PURE__*/_jsxs(SingleSelectOperatorContainer, {
|
|
119
|
+
children: [/*#__PURE__*/_jsxs(rootProps.slots.baseFormControl, {
|
|
120
|
+
children: [/*#__PURE__*/_jsx(rootProps.slots.baseInputLabel, _extends({}, (_rootProps$slotProps2 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps2.baseInputLabel, {
|
|
121
|
+
id: labelId,
|
|
122
|
+
htmlFor: id,
|
|
123
|
+
shrink: true,
|
|
124
|
+
variant: "standard",
|
|
125
|
+
children: label
|
|
126
|
+
})), /*#__PURE__*/_jsx(rootProps.slots.baseSelect, _extends({
|
|
127
|
+
id: id,
|
|
128
|
+
label: label,
|
|
129
|
+
labelId: labelId,
|
|
130
|
+
value: filterValueState,
|
|
131
|
+
onChange: onFilterChange,
|
|
132
|
+
startAdornment: isFilterActive ? headerFilterMenu : null,
|
|
133
|
+
variant: "standard",
|
|
134
|
+
type: type || 'text',
|
|
135
|
+
inputProps: {
|
|
136
|
+
tabIndex: tabIndex,
|
|
137
|
+
ref: focusElementRef,
|
|
138
|
+
placeholder: placeholder != null ? placeholder : apiRef.current.getLocaleText('filterPanelInputPlaceholder')
|
|
139
|
+
},
|
|
140
|
+
native: isSelectNative
|
|
141
|
+
}, others, (_rootProps$slotProps3 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps3.baseSelect, {
|
|
142
|
+
children: renderSingleSelectOptions({
|
|
143
|
+
column: resolvedColumn,
|
|
144
|
+
OptionComponent: rootProps.slots.baseSelectOption,
|
|
145
|
+
getOptionLabel: getOptionLabel,
|
|
146
|
+
getOptionValue: getOptionValue,
|
|
147
|
+
isSelectNative: isSelectNative,
|
|
148
|
+
baseSelectOptionProps: (_rootProps$slotProps4 = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps4.baseSelectOption
|
|
149
|
+
})
|
|
150
|
+
}))]
|
|
151
|
+
}), clearButton]
|
|
135
152
|
});
|
|
136
153
|
}
|
|
137
154
|
process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes = {
|
|
@@ -143,6 +160,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
|
|
|
143
160
|
current: PropTypes.object.isRequired
|
|
144
161
|
}).isRequired,
|
|
145
162
|
applyValue: PropTypes.func.isRequired,
|
|
163
|
+
clearButton: PropTypes.node,
|
|
146
164
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
147
165
|
/**
|
|
148
166
|
* Used to determine the label displayed for a given value option.
|
|
@@ -156,6 +174,12 @@ process.env.NODE_ENV !== "production" ? GridFilterInputSingleSelect.propTypes =
|
|
|
156
174
|
* @returns {string} The value to be used.
|
|
157
175
|
*/
|
|
158
176
|
getOptionValue: PropTypes.func,
|
|
177
|
+
headerFilterMenu: PropTypes.node,
|
|
178
|
+
/**
|
|
179
|
+
* It is `true` if the filter either has a value or an operator with no value
|
|
180
|
+
* required is selected (e.g. `isEmpty`)
|
|
181
|
+
*/
|
|
182
|
+
isFilterActive: PropTypes.bool,
|
|
159
183
|
item: PropTypes.shape({
|
|
160
184
|
field: PropTypes.string.isRequired,
|
|
161
185
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef"];
|
|
4
|
+
var _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "headerFilterMenu", "isFilterActive", "clearButton", "InputProps"];
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { unstable_useId as useId } from '@mui/utils';
|
|
@@ -15,6 +15,12 @@ function GridFilterInputValue(props) {
|
|
|
15
15
|
type = props.type,
|
|
16
16
|
apiRef = props.apiRef,
|
|
17
17
|
focusElementRef = props.focusElementRef,
|
|
18
|
+
tabIndex = props.tabIndex,
|
|
19
|
+
disabled = props.disabled,
|
|
20
|
+
headerFilterMenu = props.headerFilterMenu,
|
|
21
|
+
isFilterActive = props.isFilterActive,
|
|
22
|
+
clearButton = props.clearButton,
|
|
23
|
+
InputProps = props.InputProps,
|
|
18
24
|
others = _objectWithoutProperties(props, _excluded);
|
|
19
25
|
var filterTimeout = React.useRef();
|
|
20
26
|
var _React$useState = React.useState((_item$value = item.value) != null ? _item$value : ''),
|
|
@@ -49,9 +55,6 @@ function GridFilterInputValue(props) {
|
|
|
49
55
|
var itemValue = (_item$value2 = item.value) != null ? _item$value2 : '';
|
|
50
56
|
setFilterValueState(String(itemValue));
|
|
51
57
|
}, [item.value]);
|
|
52
|
-
var InputProps = applying ? {
|
|
53
|
-
endAdornment: /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {})
|
|
54
|
-
} : others.InputProps;
|
|
55
58
|
return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
|
|
56
59
|
id: id,
|
|
57
60
|
label: apiRef.current.getLocaleText('filterPanelInputLabel'),
|
|
@@ -60,7 +63,20 @@ function GridFilterInputValue(props) {
|
|
|
60
63
|
onChange: onFilterChange,
|
|
61
64
|
variant: "standard",
|
|
62
65
|
type: type || 'text',
|
|
63
|
-
InputProps:
|
|
66
|
+
InputProps: _extends({}, applying || clearButton ? {
|
|
67
|
+
endAdornment: applying ? /*#__PURE__*/_jsx(rootProps.slots.loadIcon, {
|
|
68
|
+
fontSize: "small",
|
|
69
|
+
color: "action"
|
|
70
|
+
}) : clearButton
|
|
71
|
+
} : {}, headerFilterMenu && isFilterActive ? {
|
|
72
|
+
startAdornment: headerFilterMenu
|
|
73
|
+
} : {}, {
|
|
74
|
+
disabled: disabled
|
|
75
|
+
}, InputProps, {
|
|
76
|
+
inputProps: _extends({
|
|
77
|
+
tabIndex: tabIndex
|
|
78
|
+
}, InputProps == null ? void 0 : InputProps.inputProps)
|
|
79
|
+
}),
|
|
64
80
|
InputLabelProps: {
|
|
65
81
|
shrink: true
|
|
66
82
|
},
|
|
@@ -76,7 +92,14 @@ process.env.NODE_ENV !== "production" ? GridFilterInputValue.propTypes = {
|
|
|
76
92
|
current: PropTypes.object.isRequired
|
|
77
93
|
}).isRequired,
|
|
78
94
|
applyValue: PropTypes.func.isRequired,
|
|
95
|
+
clearButton: PropTypes.node,
|
|
79
96
|
focusElementRef: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.func, PropTypes.object]),
|
|
97
|
+
headerFilterMenu: PropTypes.node,
|
|
98
|
+
/**
|
|
99
|
+
* It is `true` if the filter either has a value or an operator with no value
|
|
100
|
+
* required is selected (e.g. `isEmpty`)
|
|
101
|
+
*/
|
|
102
|
+
isFilterActive: PropTypes.bool,
|
|
80
103
|
item: PropTypes.shape({
|
|
81
104
|
field: PropTypes.string.isRequired,
|
|
82
105
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
@@ -218,4 +218,4 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
218
218
|
*/
|
|
219
219
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
220
220
|
} : void 0;
|
|
221
|
-
export { GridFilterPanel };
|
|
221
|
+
export { GridFilterPanel, getGridFilter };
|
|
@@ -2,7 +2,8 @@ export * from './GridFilterForm';
|
|
|
2
2
|
export * from './GridFilterInputValue';
|
|
3
3
|
export * from './GridFilterInputDate';
|
|
4
4
|
export * from './GridFilterInputSingleSelect';
|
|
5
|
+
export * from './GridFilterInputBoolean';
|
|
5
6
|
export * from './GridFilterInputValueProps';
|
|
6
|
-
export
|
|
7
|
+
export { GridFilterPanel } from './GridFilterPanel';
|
|
7
8
|
export * from './GridFilterInputMultipleValue';
|
|
8
9
|
export * from './GridFilterInputMultipleSingleSelect';
|
|
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
3
|
var _excluded = ["onClick"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import { unstable_useId as useId } from '@mui/material/utils';
|
|
5
6
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
6
7
|
import { gridPreferencePanelStateSelector } from '../../hooks/features/preferencesPanel/gridPreferencePanelSelector';
|
|
7
8
|
import { GridPreferencePanelsValue } from '../../hooks/features/preferencesPanel/gridPreferencePanelsValue';
|
|
@@ -12,16 +13,16 @@ export var GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function Gri
|
|
|
12
13
|
var _rootProps$slotProps;
|
|
13
14
|
var onClick = props.onClick,
|
|
14
15
|
other = _objectWithoutProperties(props, _excluded);
|
|
16
|
+
var columnButtonId = useId();
|
|
17
|
+
var columnPanelId = useId();
|
|
15
18
|
var apiRef = useGridApiContext();
|
|
16
19
|
var rootProps = useGridRootProps();
|
|
17
|
-
var
|
|
18
|
-
open = _useGridSelector.open,
|
|
19
|
-
openedPanelValue = _useGridSelector.openedPanelValue;
|
|
20
|
+
var preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);
|
|
20
21
|
var showColumns = function showColumns(event) {
|
|
21
|
-
if (open && openedPanelValue === GridPreferencePanelsValue.columns) {
|
|
22
|
+
if (preferencePanel.open && preferencePanel.openedPanelValue === GridPreferencePanelsValue.columns) {
|
|
22
23
|
apiRef.current.hidePreferences();
|
|
23
24
|
} else {
|
|
24
|
-
apiRef.current.showPreferences(GridPreferencePanelsValue.columns);
|
|
25
|
+
apiRef.current.showPreferences(GridPreferencePanelsValue.columns, columnPanelId, columnButtonId);
|
|
25
26
|
}
|
|
26
27
|
onClick == null ? void 0 : onClick(event);
|
|
27
28
|
};
|
|
@@ -30,10 +31,15 @@ export var GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function Gri
|
|
|
30
31
|
if (rootProps.disableColumnSelector) {
|
|
31
32
|
return null;
|
|
32
33
|
}
|
|
34
|
+
var isOpen = preferencePanel.open && preferencePanel.panelId === columnPanelId;
|
|
33
35
|
return /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
|
|
34
36
|
ref: ref,
|
|
37
|
+
id: columnButtonId,
|
|
35
38
|
size: "small",
|
|
36
39
|
"aria-label": apiRef.current.getLocaleText('toolbarColumnsLabel'),
|
|
40
|
+
"aria-haspopup": "menu",
|
|
41
|
+
"aria-expanded": isOpen,
|
|
42
|
+
"aria-controls": isOpen ? columnPanelId : undefined,
|
|
37
43
|
startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {})
|
|
38
44
|
}, other, {
|
|
39
45
|
onClick: showColumns
|
|
@@ -102,9 +102,9 @@ export var GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function G
|
|
|
102
102
|
size: "small",
|
|
103
103
|
startIcon: startIcon,
|
|
104
104
|
"aria-label": apiRef.current.getLocaleText('toolbarDensityLabel'),
|
|
105
|
-
"aria-expanded": open ? 'true' : undefined,
|
|
106
105
|
"aria-haspopup": "menu",
|
|
107
|
-
"aria-
|
|
106
|
+
"aria-expanded": open,
|
|
107
|
+
"aria-controls": open ? densityMenuId : undefined,
|
|
108
108
|
id: densityButtonId
|
|
109
109
|
}, other, {
|
|
110
110
|
onClick: handleDensitySelectorOpen
|
|
@@ -19,8 +19,8 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
|
|
|
19
19
|
other = _objectWithoutProperties(props, _excluded);
|
|
20
20
|
var apiRef = useGridApiContext();
|
|
21
21
|
var rootProps = useGridRootProps();
|
|
22
|
-
var
|
|
23
|
-
var
|
|
22
|
+
var exportButtonId = useId();
|
|
23
|
+
var exportMenuId = useId();
|
|
24
24
|
var _React$useState = React.useState(false),
|
|
25
25
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
26
26
|
open = _React$useState2[0],
|
|
@@ -60,11 +60,11 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
|
|
|
60
60
|
ref: handleRef,
|
|
61
61
|
size: "small",
|
|
62
62
|
startIcon: /*#__PURE__*/_jsx(rootProps.slots.exportIcon, {}),
|
|
63
|
-
"aria-expanded": open
|
|
63
|
+
"aria-expanded": open,
|
|
64
64
|
"aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
|
|
65
65
|
"aria-haspopup": "menu",
|
|
66
|
-
"aria-
|
|
67
|
-
id:
|
|
66
|
+
"aria-controls": open ? exportMenuId : undefined,
|
|
67
|
+
id: exportButtonId
|
|
68
68
|
}, other, {
|
|
69
69
|
onClick: handleMenuOpen
|
|
70
70
|
}, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseButton, {
|
|
@@ -75,9 +75,9 @@ export var GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function G
|
|
|
75
75
|
onClickAway: handleMenuClickAway,
|
|
76
76
|
position: "bottom-start",
|
|
77
77
|
children: /*#__PURE__*/_jsx(MenuList, {
|
|
78
|
-
id:
|
|
78
|
+
id: exportMenuId,
|
|
79
79
|
className: gridClasses.menuList,
|
|
80
|
-
"aria-labelledby":
|
|
80
|
+
"aria-labelledby": exportButtonId,
|
|
81
81
|
onKeyDown: handleListKeyDown,
|
|
82
82
|
autoFocusItem: open,
|
|
83
83
|
children: React.Children.map(children, function (child) {
|
|
@@ -4,7 +4,7 @@ var _excluded = ["componentsProps"];
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { styled } from '@mui/material/styles';
|
|
7
|
-
import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize } from '@mui/utils';
|
|
7
|
+
import { unstable_composeClasses as composeClasses, unstable_capitalize as capitalize, unstable_useId as useId } from '@mui/utils';
|
|
8
8
|
import Badge from '@mui/material/Badge';
|
|
9
9
|
import { gridColumnLookupSelector } from '../../hooks/features/columns/gridColumnsSelector';
|
|
10
10
|
import { useGridSelector } from '../../hooks/utils/useGridSelector';
|
|
@@ -26,7 +26,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
|
26
26
|
var GridToolbarFilterListRoot = styled('ul', {
|
|
27
27
|
name: 'MuiDataGrid',
|
|
28
28
|
slot: 'ToolbarFilterList',
|
|
29
|
-
overridesResolver: function overridesResolver(
|
|
29
|
+
overridesResolver: function overridesResolver(_props, styles) {
|
|
30
30
|
return styles.toolbarFilterList;
|
|
31
31
|
}
|
|
32
32
|
})(function (_ref) {
|
|
@@ -48,6 +48,8 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
|
|
|
48
48
|
var lookup = useGridSelector(apiRef, gridColumnLookupSelector);
|
|
49
49
|
var preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);
|
|
50
50
|
var classes = useUtilityClasses(rootProps);
|
|
51
|
+
var filterButtonId = useId();
|
|
52
|
+
var filterPanelId = useId();
|
|
51
53
|
var tooltipContentNode = React.useMemo(function () {
|
|
52
54
|
if (preferencePanel.open) {
|
|
53
55
|
return apiRef.current.getLocaleText('toolbarFiltersTooltipHide');
|
|
@@ -86,9 +88,9 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
|
|
|
86
88
|
var open = preferencePanel.open,
|
|
87
89
|
openedPanelValue = preferencePanel.openedPanelValue;
|
|
88
90
|
if (open && openedPanelValue === GridPreferencePanelsValue.filters) {
|
|
89
|
-
apiRef.current.
|
|
91
|
+
apiRef.current.hidePreferences();
|
|
90
92
|
} else {
|
|
91
|
-
apiRef.current.
|
|
93
|
+
apiRef.current.showPreferences(GridPreferencePanelsValue.filters, filterPanelId, filterButtonId);
|
|
92
94
|
}
|
|
93
95
|
(_buttonProps$onClick = buttonProps.onClick) == null ? void 0 : _buttonProps$onClick.call(buttonProps, event);
|
|
94
96
|
};
|
|
@@ -97,14 +99,19 @@ var GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolbar
|
|
|
97
99
|
if (rootProps.disableColumnFilter) {
|
|
98
100
|
return null;
|
|
99
101
|
}
|
|
102
|
+
var isOpen = preferencePanel.open && preferencePanel.panelId === filterPanelId;
|
|
100
103
|
return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
|
|
101
104
|
title: tooltipContentNode,
|
|
102
105
|
enterDelay: 1000
|
|
103
106
|
}, other, (_rootProps$slotProps = rootProps.slotProps) == null ? void 0 : _rootProps$slotProps.baseTooltip, {
|
|
104
107
|
children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
|
|
105
108
|
ref: ref,
|
|
109
|
+
id: filterButtonId,
|
|
106
110
|
size: "small",
|
|
107
111
|
"aria-label": apiRef.current.getLocaleText('toolbarFiltersLabel'),
|
|
112
|
+
"aria-controls": isOpen ? filterPanelId : undefined,
|
|
113
|
+
"aria-expanded": isOpen,
|
|
114
|
+
"aria-haspopup": true,
|
|
108
115
|
startIcon: /*#__PURE__*/_jsx(Badge, {
|
|
109
116
|
badgeContent: activeFilters.length,
|
|
110
117
|
color: "primary",
|
|
@@ -60,6 +60,32 @@ export var GRID_DEFAULT_LOCALE_TEXT = {
|
|
|
60
60
|
filterOperatorIsEmpty: 'is empty',
|
|
61
61
|
filterOperatorIsNotEmpty: 'is not empty',
|
|
62
62
|
filterOperatorIsAnyOf: 'is any of',
|
|
63
|
+
'filterOperator=': '=',
|
|
64
|
+
'filterOperator!=': '!=',
|
|
65
|
+
'filterOperator>': '>',
|
|
66
|
+
'filterOperator>=': '>=',
|
|
67
|
+
'filterOperator<': '<',
|
|
68
|
+
'filterOperator<=': '<=',
|
|
69
|
+
// Header filter operators text
|
|
70
|
+
headerFilterOperatorContains: 'Contains',
|
|
71
|
+
headerFilterOperatorEquals: 'Equals',
|
|
72
|
+
headerFilterOperatorStartsWith: 'Starts with',
|
|
73
|
+
headerFilterOperatorEndsWith: 'Ends with',
|
|
74
|
+
headerFilterOperatorIs: 'Is',
|
|
75
|
+
headerFilterOperatorNot: 'Is not',
|
|
76
|
+
headerFilterOperatorAfter: 'Is after',
|
|
77
|
+
headerFilterOperatorOnOrAfter: 'Is on or after',
|
|
78
|
+
headerFilterOperatorBefore: 'Is before',
|
|
79
|
+
headerFilterOperatorOnOrBefore: 'Is on or before',
|
|
80
|
+
headerFilterOperatorIsEmpty: 'Is empty',
|
|
81
|
+
headerFilterOperatorIsNotEmpty: 'Is not empty',
|
|
82
|
+
headerFilterOperatorIsAnyOf: 'Is any of',
|
|
83
|
+
'headerFilterOperator=': 'Equals',
|
|
84
|
+
'headerFilterOperator!=': 'Not equals',
|
|
85
|
+
'headerFilterOperator>': 'Is greater than',
|
|
86
|
+
'headerFilterOperator>=': 'Is greater than or equal to',
|
|
87
|
+
'headerFilterOperator<': 'Is less than',
|
|
88
|
+
'headerFilterOperator<=': 'Is less than or equal to',
|
|
63
89
|
// Filter values text
|
|
64
90
|
filterValueAny: 'any',
|
|
65
91
|
filterValueTrue: 'true',
|
|
@@ -7,7 +7,8 @@ export var GRID_DEFAULT_STRATEGY = 'none';
|
|
|
7
7
|
export var GRID_STRATEGIES_PROCESSORS = {
|
|
8
8
|
rowTreeCreation: 'rowTree',
|
|
9
9
|
filtering: 'rowTree',
|
|
10
|
-
sorting: 'rowTree'
|
|
10
|
+
sorting: 'rowTree',
|
|
11
|
+
visibleRowsLookupCreation: 'rowTree'
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* Implements a variant of the Strategy Pattern (see https://en.wikipedia.org/wiki/Strategy_pattern)
|
|
@@ -298,10 +298,8 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
298
298
|
var tabIndex = columnGroupHeaderTabIndexState !== null && columnGroupHeaderTabIndexState.depth === depth && columnFields.includes(columnGroupHeaderTabIndexState.field) ? 0 : -1;
|
|
299
299
|
var headerInfo = {
|
|
300
300
|
groupId: groupId,
|
|
301
|
-
width: columnFields.
|
|
302
|
-
return apiRef.current.getColumn(field).computedWidth;
|
|
303
|
-
}).reduce(function (acc, val) {
|
|
304
|
-
return acc + val;
|
|
301
|
+
width: columnFields.reduce(function (acc, field) {
|
|
302
|
+
return acc + apiRef.current.getColumn(field).computedWidth;
|
|
305
303
|
}, 0),
|
|
306
304
|
fields: columnFields,
|
|
307
305
|
colIndex: columnIndex,
|
|
@@ -360,6 +358,7 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
360
358
|
return {
|
|
361
359
|
renderContext: renderContext,
|
|
362
360
|
getColumnHeaders: getColumnHeaders,
|
|
361
|
+
getColumnsToRender: getColumnsToRender,
|
|
363
362
|
getColumnGroupHeaders: getColumnGroupHeaders,
|
|
364
363
|
isDragging: !!dragCol,
|
|
365
364
|
getRootProps: function getRootProps() {
|
|
@@ -373,6 +372,7 @@ export var useGridColumnHeaders = function useGridColumnHeaders(props) {
|
|
|
373
372
|
ref: handleInnerRef,
|
|
374
373
|
role: 'rowgroup'
|
|
375
374
|
};
|
|
376
|
-
}
|
|
375
|
+
},
|
|
376
|
+
headerHeight: headerHeight
|
|
377
377
|
};
|
|
378
378
|
};
|
|
@@ -162,8 +162,8 @@ export function useGridDimensions(apiRef, props) {
|
|
|
162
162
|
if (!mainEl) {
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
|
-
var height = mainEl.
|
|
166
|
-
var width = mainEl.
|
|
165
|
+
var height = mainEl.clientHeight || 0;
|
|
166
|
+
var width = mainEl.clientWidth || 0;
|
|
167
167
|
var win = ownerWindow(mainEl);
|
|
168
168
|
var computedStyle = win.getComputedStyle(mainEl);
|
|
169
169
|
var paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;
|
|
@@ -32,9 +32,6 @@ export var useGridEditing = function useGridEditing(apiRef, props) {
|
|
|
32
32
|
if (isCellEditableProp) {
|
|
33
33
|
return isCellEditableProp(params);
|
|
34
34
|
}
|
|
35
|
-
if (params.rowNode.type === 'pinnedRow') {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
35
|
return true;
|
|
39
36
|
}, [isCellEditableProp]);
|
|
40
37
|
var maybeDebounce = function maybeDebounce(id, field, debounceMs, callback) {
|
|
@@ -27,12 +27,12 @@ export var gridQuickFilterValuesSelector = createSelector(gridFilterModelSelecto
|
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* @category
|
|
30
|
+
* @category Visible rows
|
|
31
31
|
* @ignore - do not document.
|
|
32
32
|
*/
|
|
33
|
-
export var gridVisibleRowsLookupSelector =
|
|
34
|
-
return
|
|
35
|
-
}
|
|
33
|
+
export var gridVisibleRowsLookupSelector = function gridVisibleRowsLookupSelector(state) {
|
|
34
|
+
return state.visibleRowsLookup;
|
|
35
|
+
};
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* @category Filtering
|
|
@@ -11,4 +11,10 @@ export var getDefaultGridFilterModel = function getDefaultGridFilterModel() {
|
|
|
11
11
|
/**
|
|
12
12
|
* @param {GridRowId} rowId The id of the row we want to filter.
|
|
13
13
|
* @param {(filterItem: GridFilterItem) => boolean} shouldApplyItem An optional callback to allow the filtering engine to only apply some items.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Visibility status for each row.
|
|
18
|
+
* A row is visible if it is passing the filters AND if its parents are expanded.
|
|
19
|
+
* If a row is not registered in this lookup, it is visible.
|
|
14
20
|
*/
|
|
@@ -21,11 +21,21 @@ export var filterStateInitializer = function filterStateInitializer(state, props
|
|
|
21
21
|
return _extends({}, state, {
|
|
22
22
|
filter: {
|
|
23
23
|
filterModel: sanitizeFilterModel(filterModel, props.disableMultipleColumnsFiltering, apiRef),
|
|
24
|
-
visibleRowsLookup: {},
|
|
25
24
|
filteredDescendantCountLookup: {}
|
|
26
|
-
}
|
|
25
|
+
},
|
|
26
|
+
visibleRowsLookup: {}
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
+
var getVisibleRowsLookup = function getVisibleRowsLookup(params) {
|
|
30
|
+
// For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` are equals since no row is collapsed.
|
|
31
|
+
return params.filteredRowsLookup;
|
|
32
|
+
};
|
|
33
|
+
function getVisibleRowsLookupState(apiRef, state) {
|
|
34
|
+
return apiRef.current.applyStrategyProcessor('visibleRowsLookupCreation', {
|
|
35
|
+
tree: state.rows.tree,
|
|
36
|
+
filteredRowsLookup: state.filter.filteredRowsLookup
|
|
37
|
+
});
|
|
38
|
+
}
|
|
29
39
|
|
|
30
40
|
/**
|
|
31
41
|
* @requires useGridColumns (method, event)
|
|
@@ -50,9 +60,13 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
50
60
|
isRowMatchingFilters: isRowMatchingFilters,
|
|
51
61
|
filterModel: filterModel != null ? filterModel : getDefaultGridFilterModel()
|
|
52
62
|
});
|
|
53
|
-
|
|
63
|
+
var newState = _extends({}, state, {
|
|
54
64
|
filter: _extends({}, state.filter, filteringResult)
|
|
55
65
|
});
|
|
66
|
+
var visibleRowsLookupState = getVisibleRowsLookupState(apiRef, newState);
|
|
67
|
+
return _extends({}, newState, {
|
|
68
|
+
visibleRowsLookup: visibleRowsLookupState
|
|
69
|
+
});
|
|
56
70
|
});
|
|
57
71
|
apiRef.current.publishEvent('filteredRowsSet');
|
|
58
72
|
}, [props.filterMode, apiRef]);
|
|
@@ -114,7 +128,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
114
128
|
items: items
|
|
115
129
|
}), 'deleteFilterItem');
|
|
116
130
|
}, [apiRef]);
|
|
117
|
-
var showFilterPanel = React.useCallback(function (targetColumnField) {
|
|
131
|
+
var showFilterPanel = React.useCallback(function (targetColumnField, panelId, labelId) {
|
|
118
132
|
logger.debug('Displaying filter panel');
|
|
119
133
|
if (targetColumnField) {
|
|
120
134
|
var filterModel = gridFilterModelSelector(apiRef);
|
|
@@ -164,7 +178,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
164
178
|
items: newFilterItems
|
|
165
179
|
}));
|
|
166
180
|
}
|
|
167
|
-
apiRef.current.showPreferences(GridPreferencePanelsValue.filters);
|
|
181
|
+
apiRef.current.showPreferences(GridPreferencePanelsValue.filters, panelId, labelId);
|
|
168
182
|
}, [apiRef, logger, props.disableMultipleColumnsFiltering]);
|
|
169
183
|
var hideFilterPanel = React.useCallback(function () {
|
|
170
184
|
logger.debug('Hiding filter panel');
|
|
@@ -272,13 +286,10 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
272
286
|
}
|
|
273
287
|
return {
|
|
274
288
|
filteredRowsLookup: filteredRowsLookup,
|
|
275
|
-
// For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` are equals since no row is collapsed.
|
|
276
|
-
visibleRowsLookup: filteredRowsLookup,
|
|
277
289
|
filteredDescendantCountLookup: {}
|
|
278
290
|
};
|
|
279
291
|
}
|
|
280
292
|
return {
|
|
281
|
-
visibleRowsLookup: {},
|
|
282
293
|
filteredRowsLookup: {},
|
|
283
294
|
filteredDescendantCountLookup: {}
|
|
284
295
|
};
|
|
@@ -288,6 +299,7 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
288
299
|
useGridRegisterPipeProcessor(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
289
300
|
useGridRegisterPipeProcessor(apiRef, 'preferencePanel', preferencePanelPreProcessing);
|
|
290
301
|
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'filtering', flatFilteringMethod);
|
|
302
|
+
useGridRegisterStrategyProcessor(apiRef, GRID_DEFAULT_STRATEGY, 'visibleRowsLookupCreation', getVisibleRowsLookup);
|
|
291
303
|
|
|
292
304
|
/**
|
|
293
305
|
* EVENTS
|
|
@@ -310,13 +322,21 @@ export var useGridFilter = function useGridFilter(apiRef, props) {
|
|
|
310
322
|
apiRef.current.unstable_applyFilters();
|
|
311
323
|
}
|
|
312
324
|
}, [apiRef]);
|
|
325
|
+
var updateVisibleRowsLookupState = React.useCallback(function () {
|
|
326
|
+
apiRef.current.setState(function (state) {
|
|
327
|
+
return _extends({}, state, {
|
|
328
|
+
visibleRowsLookup: getVisibleRowsLookupState(apiRef, state)
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
apiRef.current.forceUpdate();
|
|
332
|
+
}, [apiRef]);
|
|
313
333
|
|
|
314
334
|
// Do not call `apiRef.current.forceUpdate` to avoid re-render before updating the sorted rows.
|
|
315
335
|
// Otherwise, the state is not consistent during the render
|
|
316
336
|
useGridApiEventHandler(apiRef, 'rowsSet', updateFilteredRows);
|
|
317
|
-
useGridApiEventHandler(apiRef, 'rowExpansionChange', apiRef.current.unstable_applyFilters);
|
|
318
337
|
useGridApiEventHandler(apiRef, 'columnsChange', handleColumnsChange);
|
|
319
338
|
useGridApiEventHandler(apiRef, 'activeStrategyProcessorChange', handleStrategyProcessorChange);
|
|
339
|
+
useGridApiEventHandler(apiRef, 'rowExpansionChange', updateVisibleRowsLookupState);
|
|
320
340
|
|
|
321
341
|
/**
|
|
322
342
|
* 1ST RENDER
|
|
@@ -9,6 +9,11 @@ export var gridFocusColumnHeaderSelector = createSelector(gridFocusStateSelector
|
|
|
9
9
|
return focusState.columnHeader;
|
|
10
10
|
});
|
|
11
11
|
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
|
+
export var unstable_gridFocusColumnHeaderFilterSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
14
|
+
return focusState.columnHeaderFilter;
|
|
15
|
+
});
|
|
16
|
+
|
|
12
17
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
18
|
export var unstable_gridFocusColumnGroupHeaderSelector = createSelector(gridFocusStateSelector, function (focusState) {
|
|
14
19
|
return focusState.columnGroupHeader;
|
|
@@ -23,6 +28,11 @@ export var gridTabIndexColumnHeaderSelector = createSelector(gridTabIndexStateSe
|
|
|
23
28
|
return state.columnHeader;
|
|
24
29
|
});
|
|
25
30
|
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
32
|
+
export var unstable_gridTabIndexColumnHeaderFilterSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
33
|
+
return state.columnHeaderFilter;
|
|
34
|
+
});
|
|
35
|
+
|
|
26
36
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
27
37
|
export var unstable_gridTabIndexColumnGroupHeaderSelector = createSelector(gridTabIndexStateSelector, function (state) {
|
|
28
38
|
return state.columnGroupHeader;
|