@mui/x-data-grid 7.23.6 → 7.24.1
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 +150 -0
- package/DataGrid/DataGrid.js +4 -5
- package/DataGrid/useDataGridComponent.d.ts +2 -1
- package/DataGrid/useDataGridComponent.js +1 -1
- package/components/GridHeaders.js +2 -2
- package/components/GridRow.d.ts +5 -9
- package/components/GridRow.js +28 -105
- package/components/GridSkeletonLoadingOverlay.js +18 -18
- package/components/cell/GridCell.d.ts +9 -16
- package/components/cell/GridCell.js +17 -35
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
- package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
- package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
- package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
- package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
- package/components/containers/GridRoot.d.ts +2 -2
- package/components/containers/GridRoot.js +14 -6
- package/components/containers/GridRootStyles.js +1 -0
- package/components/panel/GridPanel.js +2 -1
- package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +2 -1
- package/components/toolbar/GridToolbarColumnsButton.js +6 -1
- package/components/toolbar/GridToolbarFilterButton.js +6 -1
- package/components/virtualization/GridVirtualScrollbar.js +11 -12
- package/components/virtualization/GridVirtualScroller.js +4 -4
- package/context/GridContextProvider.d.ts +2 -1
- package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
- package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
- package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
- package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +2 -2
- package/hooks/core/useGridApiInitialization.d.ts +2 -2
- package/hooks/core/useGridInitialization.d.ts +2 -2
- package/hooks/core/useGridIsRtl.d.ts +2 -2
- package/hooks/core/useGridLocaleText.d.ts +2 -2
- package/hooks/core/useGridLoggerFactory.d.ts +2 -2
- package/hooks/core/useGridRefs.d.ts +2 -2
- package/hooks/core/useGridStateInitialization.d.ts +2 -2
- package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
- package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
- package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
- package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
- package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
- package/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
- package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
- package/hooks/features/columns/useGridColumns.d.ts +2 -2
- package/hooks/features/density/useGridDensity.d.ts +2 -2
- package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
- package/hooks/features/dimensions/useGridDimensions.js +1 -3
- package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
- package/hooks/features/editing/useGridEditing.d.ts +2 -2
- package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
- package/hooks/features/events/useGridEvents.d.ts +2 -2
- package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
- package/hooks/features/export/useGridCsvExport.d.ts +2 -2
- package/hooks/features/export/useGridPrintExport.d.ts +2 -2
- package/hooks/features/export/utils.d.ts +2 -2
- package/hooks/features/filter/gridFilterSelector.js +6 -1
- package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
- package/hooks/features/filter/gridFilterUtils.js +3 -3
- package/hooks/features/filter/useGridFilter.d.ts +2 -2
- package/hooks/features/focus/useGridFocus.d.ts +2 -2
- package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
- package/hooks/features/keyboardNavigation/utils.d.ts +3 -3
- package/hooks/features/listView/useGridListView.d.ts +2 -2
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
- package/hooks/features/pagination/gridPaginationSelector.d.ts +20 -1
- package/hooks/features/pagination/gridPaginationSelector.js +39 -1
- package/hooks/features/pagination/useGridPagination.d.ts +3 -3
- package/hooks/features/pagination/useGridPagination.js +5 -3
- package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
- package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
- package/hooks/features/pagination/useGridPaginationModel.js +23 -1
- package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
- package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
- package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
- package/hooks/features/preferencesPanel/index.d.ts +1 -1
- package/hooks/features/preferencesPanel/index.js +1 -1
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
- package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
- package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
- package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
- package/hooks/features/rowSelection/utils.d.ts +3 -2
- package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
- package/hooks/features/rows/gridRowsSelector.js +1 -1
- package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
- package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
- package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
- package/hooks/features/rows/useGridRows.d.ts +2 -2
- package/hooks/features/rows/useGridRows.js +2 -2
- package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
- package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
- package/hooks/features/scroll/useGridScroll.d.ts +2 -2
- package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
- package/hooks/features/sorting/gridSortingUtils.js +2 -2
- package/hooks/features/sorting/useGridSorting.d.ts +2 -2
- package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
- package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
- package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
- package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
- package/hooks/utils/useGridApiContext.d.ts +2 -2
- package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
- package/hooks/utils/useGridApiMethod.d.ts +2 -2
- package/hooks/utils/useGridApiRef.d.ts +2 -2
- package/hooks/utils/useGridApiRef.js +3 -1
- package/hooks/utils/useGridInitializeState.d.ts +3 -3
- package/hooks/utils/useGridLogger.d.ts +2 -2
- package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
- package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
- package/hooks/utils/useGridSelector.d.ts +3 -3
- package/hooks/utils/useGridVisibleRows.d.ts +8 -6
- package/hooks/utils/useGridVisibleRows.js +5 -28
- package/index.js +1 -1
- package/internals/constants.d.ts +6 -0
- package/internals/constants.js +8 -1
- package/internals/index.d.ts +1 -0
- package/internals/index.js +1 -0
- package/internals/utils/attachPinnedStyle.d.ts +2 -0
- package/internals/utils/attachPinnedStyle.js +9 -0
- package/internals/utils/getPinnedCellOffset.d.ts +3 -3
- package/internals/utils/getPinnedCellOffset.js +6 -7
- package/internals/utils/index.d.ts +1 -0
- package/internals/utils/index.js +2 -1
- package/locales/faIR.js +5 -6
- package/locales/urPK.js +9 -10
- package/models/colDef/gridColDef.d.ts +9 -8
- package/models/events/gridEventLookup.d.ts +6 -1
- package/models/gridExport.d.ts +2 -2
- package/models/gridFilterOperator.d.ts +2 -1
- package/models/gridStateCommunity.d.ts +4 -0
- package/models/props/DataGridProps.d.ts +2 -1
- package/modern/DataGrid/DataGrid.js +4 -5
- package/modern/DataGrid/useDataGridComponent.js +1 -1
- package/modern/components/GridHeaders.js +2 -2
- package/modern/components/GridRow.js +28 -105
- package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
- package/modern/components/cell/GridCell.js +17 -35
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
- package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
- package/modern/components/containers/GridRoot.js +14 -6
- package/modern/components/containers/GridRootStyles.js +1 -0
- package/modern/components/panel/GridPanel.js +2 -1
- package/modern/components/toolbar/GridToolbarColumnsButton.js +6 -1
- package/modern/components/toolbar/GridToolbarFilterButton.js +6 -1
- package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
- package/modern/components/virtualization/GridVirtualScroller.js +4 -4
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
- package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
- package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
- package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
- package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
- package/modern/hooks/features/pagination/useGridPagination.js +5 -3
- package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
- package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
- package/modern/hooks/features/preferencesPanel/index.js +1 -1
- package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
- package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
- package/modern/hooks/features/rows/useGridRows.js +2 -2
- package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
- package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
- package/modern/hooks/utils/useGridApiRef.js +3 -1
- package/modern/hooks/utils/useGridVisibleRows.js +5 -28
- package/modern/index.js +1 -1
- package/modern/internals/constants.js +8 -1
- package/modern/internals/index.js +1 -0
- package/modern/internals/utils/attachPinnedStyle.js +9 -0
- package/modern/internals/utils/getPinnedCellOffset.js +6 -7
- package/modern/internals/utils/index.js +2 -1
- package/modern/locales/faIR.js +5 -6
- package/modern/locales/urPK.js +9 -10
- package/modern/utils/cellBorderUtils.js +5 -5
- package/modern/utils/domUtils.js +7 -2
- package/modern/utils/isJSDOM.js +1 -0
- package/modern/utils/rtlFlipSide.js +22 -0
- package/node/DataGrid/DataGrid.js +2 -3
- package/node/DataGrid/useDataGridComponent.js +1 -1
- package/node/components/GridHeaders.js +2 -2
- package/node/components/GridRow.js +27 -104
- package/node/components/GridSkeletonLoadingOverlay.js +17 -17
- package/node/components/cell/GridCell.js +18 -36
- package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
- package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
- package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/node/components/containers/GridRoot.js +14 -6
- package/node/components/containers/GridRootStyles.js +1 -0
- package/node/components/panel/GridPanel.js +2 -1
- package/node/components/toolbar/GridToolbarColumnsButton.js +6 -1
- package/node/components/toolbar/GridToolbarFilterButton.js +6 -1
- package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
- package/node/components/virtualization/GridVirtualScroller.js +4 -4
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
- package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
- package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
- package/node/hooks/features/filter/gridFilterSelector.js +6 -1
- package/node/hooks/features/filter/gridFilterUtils.js +3 -3
- package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
- package/node/hooks/features/pagination/useGridPagination.js +5 -3
- package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
- package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
- package/node/hooks/features/preferencesPanel/index.js +11 -10
- package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
- package/node/hooks/features/rows/gridRowsSelector.js +1 -1
- package/node/hooks/features/rows/useGridRows.js +1 -1
- package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
- package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +94 -52
- package/node/hooks/utils/useGridApiRef.js +3 -1
- package/node/hooks/utils/useGridVisibleRows.js +3 -28
- package/node/index.js +1 -1
- package/node/internals/constants.js +9 -2
- package/node/internals/index.js +12 -0
- package/node/internals/utils/attachPinnedStyle.js +15 -0
- package/node/internals/utils/getPinnedCellOffset.js +6 -7
- package/node/internals/utils/index.js +11 -0
- package/node/locales/faIR.js +5 -6
- package/node/locales/urPK.js +9 -10
- package/node/utils/cellBorderUtils.js +5 -5
- package/node/utils/domUtils.js +7 -2
- package/node/utils/isJSDOM.js +7 -0
- package/node/utils/rtlFlipSide.js +29 -0
- package/package.json +2 -2
- package/utils/cellBorderUtils.d.ts +3 -3
- package/utils/cellBorderUtils.js +5 -5
- package/utils/createSelector.d.ts +3 -3
- package/utils/domUtils.js +7 -2
- package/utils/getPublicApiRef.d.ts +2 -1
- package/utils/isJSDOM.d.ts +1 -0
- package/utils/isJSDOM.js +1 -0
- package/utils/rtlFlipSide.d.ts +2 -0
- package/utils/rtlFlipSide.js +22 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.gridFocusedVirtualCellSelector = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _reselect = require("reselect");
|
|
10
|
+
var _createSelector = require("../../../utils/createSelector");
|
|
11
|
+
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
12
|
+
var _gridVirtualizationSelectors = require("./gridVirtualizationSelectors");
|
|
13
|
+
var _focus = require("../focus");
|
|
14
|
+
var _pagination = require("../pagination");
|
|
15
|
+
var _rows = require("../rows");
|
|
16
|
+
const gridIsFocusedCellOutOfContex = (0, _reselect.createSelector)(_focus.gridFocusCellSelector, _gridVirtualizationSelectors.gridRenderContextSelector, _pagination.gridVisibleRowsSelector, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, _rows.gridRowsLookupSelector, (focusedCell, renderContext, currentPage, visibleColumns, rows) => {
|
|
17
|
+
if (!focusedCell) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const row = rows[focusedCell.id];
|
|
21
|
+
if (!row) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const rowIndex = currentPage.rowToIndexMap.get(row);
|
|
25
|
+
const columnIndex = visibleColumns.slice(renderContext.firstColumnIndex, renderContext.lastColumnIndex).findIndex(column => column.field === focusedCell.field);
|
|
26
|
+
const isInRenderContext = rowIndex !== undefined && columnIndex !== -1 && rowIndex >= renderContext.firstRowIndex && rowIndex <= renderContext.lastRowIndex;
|
|
27
|
+
return !isInRenderContext;
|
|
28
|
+
});
|
|
29
|
+
const gridFocusedVirtualCellSelector = exports.gridFocusedVirtualCellSelector = (0, _createSelector.createSelectorMemoized)(gridIsFocusedCellOutOfContex, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, _pagination.gridVisibleRowsSelector, _rows.gridRowsLookupSelector, _focus.gridFocusCellSelector, (isFocusedCellOutOfRenderContext, visibleColumns, currentPage, rows, focusedCell) => {
|
|
30
|
+
if (!isFocusedCellOutOfRenderContext) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
const row = rows[focusedCell.id];
|
|
34
|
+
if (!row) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const rowIndex = currentPage.rowToIndexMap.get(row);
|
|
38
|
+
if (rowIndex === undefined) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const columnIndex = visibleColumns.findIndex(column => column.field === focusedCell.field);
|
|
42
|
+
if (columnIndex === -1) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return (0, _extends2.default)({}, focusedCell, {
|
|
46
|
+
rowIndex,
|
|
47
|
+
columnIndex
|
|
48
|
+
});
|
|
49
|
+
});
|
|
@@ -24,7 +24,6 @@ var _useRunOnce = require("../../utils/useRunOnce");
|
|
|
24
24
|
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
|
|
25
25
|
var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
|
|
26
26
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
27
|
-
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
28
27
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
29
28
|
var _utils2 = require("../../utils");
|
|
30
29
|
var platform = _interopRequireWildcard(require("../../../utils/platform"));
|
|
@@ -37,6 +36,8 @@ var _useGridVirtualization = require("./useGridVirtualization");
|
|
|
37
36
|
var _gridRowSpanningSelectors = require("../rows/gridRowSpanningSelectors");
|
|
38
37
|
var _gridListViewSelectors = require("../listView/gridListViewSelectors");
|
|
39
38
|
var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
39
|
+
var _gridFocusedVirtualCellSelector = require("./gridFocusedVirtualCellSelector");
|
|
40
|
+
var _isJSDOM = require("../../../utils/isJSDOM");
|
|
40
41
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
41
42
|
const MINIMUM_COLUMN_WIDTH = 50;
|
|
42
43
|
var ScrollDirection = /*#__PURE__*/function (ScrollDirection) {
|
|
@@ -56,14 +57,6 @@ const createScrollCache = (isRtl, rowBufferPx, columnBufferPx, verticalBuffer, h
|
|
|
56
57
|
direction: ScrollDirection.NONE,
|
|
57
58
|
buffer: bufferForDirection(isRtl, ScrollDirection.NONE, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer)
|
|
58
59
|
});
|
|
59
|
-
let isJSDOM = false;
|
|
60
|
-
try {
|
|
61
|
-
if (typeof window !== 'undefined') {
|
|
62
|
-
isJSDOM = /jsdom|HappyDOM/.test(window.navigator.userAgent);
|
|
63
|
-
}
|
|
64
|
-
} catch (_) {
|
|
65
|
-
/* ignore */
|
|
66
|
-
}
|
|
67
60
|
const useGridVirtualScroller = () => {
|
|
68
61
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
69
62
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
@@ -71,8 +64,8 @@ const useGridVirtualScroller = () => {
|
|
|
71
64
|
unstable_listView: listView
|
|
72
65
|
} = rootProps;
|
|
73
66
|
const visibleColumns = (0, _useGridSelector.useGridSelector)(apiRef, () => listView ? [(0, _gridListViewSelectors.gridListColumnSelector)(apiRef.current.state)] : (0, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector)(apiRef));
|
|
74
|
-
const enabledForRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridVirtualizationRowEnabledSelector) && !isJSDOM;
|
|
75
|
-
const enabledForColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridVirtualizationColumnEnabledSelector) && !isJSDOM;
|
|
67
|
+
const enabledForRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridVirtualizationRowEnabledSelector) && !_isJSDOM.isJSDOM;
|
|
68
|
+
const enabledForColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridVirtualizationColumnEnabledSelector) && !_isJSDOM.isJSDOM;
|
|
76
69
|
const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridDimensionsSelector);
|
|
77
70
|
const outerSize = dimensions.viewportOuterSize;
|
|
78
71
|
const pinnedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsSelector);
|
|
@@ -84,12 +77,9 @@ const useGridVirtualScroller = () => {
|
|
|
84
77
|
const hasBottomPinnedRows = pinnedRows.bottom.length > 0;
|
|
85
78
|
const [panels, setPanels] = React.useState(EMPTY_DETAIL_PANELS);
|
|
86
79
|
const isRtl = (0, _RtlProvider.useRtl)();
|
|
87
|
-
const cellFocus = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridFocusCellSelector);
|
|
88
|
-
const cellTabIndex = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusStateSelector.gridTabIndexCellSelector);
|
|
89
80
|
const rowsMeta = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowsMetaSelector.gridRowsMetaSelector);
|
|
90
81
|
const selectedRowsLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridRowSelectionSelector.selectedIdsLookupSelector);
|
|
91
82
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
|
|
92
|
-
const gridRootRef = apiRef.current.rootElementRef;
|
|
93
83
|
const mainRef = apiRef.current.mainElementRef;
|
|
94
84
|
const scrollerRef = apiRef.current.virtualScrollerRef;
|
|
95
85
|
const scrollbarVerticalRef = apiRef.current.virtualScrollbarVerticalRef;
|
|
@@ -97,6 +87,7 @@ const useGridVirtualScroller = () => {
|
|
|
97
87
|
const contentHeight = dimensions.contentSize.height;
|
|
98
88
|
const columnsTotalWidth = dimensions.columnsTotalWidth;
|
|
99
89
|
const hasColSpan = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridHasColSpanSelector);
|
|
90
|
+
const isRenderContextReady = React.useRef(false);
|
|
100
91
|
const previousSize = React.useRef(null);
|
|
101
92
|
const mainRefCallback = React.useCallback(node => {
|
|
102
93
|
mainRef.current = node;
|
|
@@ -149,17 +140,15 @@ const useGridVirtualScroller = () => {
|
|
|
149
140
|
* work that's not necessary. Thus we store the context at the start of the scroll in `frozenContext`, and the rows
|
|
150
141
|
* that are part of this old context will keep their same render context as to avoid re-rendering.
|
|
151
142
|
*/
|
|
152
|
-
const scrollPosition = React.useRef(EMPTY_SCROLL_POSITION);
|
|
143
|
+
const scrollPosition = React.useRef(rootProps.initialState?.scroll ?? EMPTY_SCROLL_POSITION);
|
|
144
|
+
const ignoreNextScrollEvent = React.useRef(false);
|
|
153
145
|
const previousContextScrollPosition = React.useRef(EMPTY_SCROLL_POSITION);
|
|
154
146
|
const previousRowContext = React.useRef(_useGridVirtualization.EMPTY_RENDER_CONTEXT);
|
|
155
147
|
const renderContext = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridRenderContextSelector);
|
|
148
|
+
const focusedVirtualCell = (0, _useGridSelector.useGridSelector)(apiRef, _gridFocusedVirtualCellSelector.gridFocusedVirtualCellSelector);
|
|
156
149
|
const scrollTimeout = (0, _useTimeout.default)();
|
|
157
150
|
const frozenContext = React.useRef(undefined);
|
|
158
151
|
const scrollCache = (0, _useLazyRef.default)(() => createScrollCache(isRtl, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6)).current;
|
|
159
|
-
const focusedCell = {
|
|
160
|
-
rowIndex: React.useMemo(() => cellFocus ? currentPage.rows.findIndex(row => row.id === cellFocus.id) : -1, [cellFocus, currentPage.rows]),
|
|
161
|
-
columnIndex: React.useMemo(() => cellFocus ? visibleColumns.findIndex(column => column.field === cellFocus.field) : -1, [cellFocus, visibleColumns])
|
|
162
|
-
};
|
|
163
152
|
const updateRenderContext = React.useCallback(nextRenderContext => {
|
|
164
153
|
if (areRenderContextsEqual(nextRenderContext, apiRef.current.state.virtualization.renderContext)) {
|
|
165
154
|
return;
|
|
@@ -243,6 +232,10 @@ const useGridVirtualScroller = () => {
|
|
|
243
232
|
updateRenderContext(nextRenderContext);
|
|
244
233
|
};
|
|
245
234
|
const handleScroll = (0, _utils.unstable_useEventCallback)(event => {
|
|
235
|
+
if (ignoreNextScrollEvent.current) {
|
|
236
|
+
ignoreNextScrollEvent.current = false;
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
246
239
|
const {
|
|
247
240
|
scrollTop,
|
|
248
241
|
scrollLeft
|
|
@@ -301,14 +294,14 @@ const useGridVirtualScroller = () => {
|
|
|
301
294
|
const lastRowToRender = Math.min(baseRenderContext.lastRowIndex, rowModels.length);
|
|
302
295
|
const rowIndexes = params.rows ? (0, _utils3.range)(0, params.rows.length) : (0, _utils3.range)(firstRowToRender, lastRowToRender);
|
|
303
296
|
let virtualRowIndex = -1;
|
|
304
|
-
if (!isPinnedSection &&
|
|
305
|
-
if (
|
|
306
|
-
|
|
307
|
-
|
|
297
|
+
if (!isPinnedSection && focusedVirtualCell) {
|
|
298
|
+
if (focusedVirtualCell.rowIndex < firstRowToRender) {
|
|
299
|
+
rowIndexes.unshift(focusedVirtualCell.rowIndex);
|
|
300
|
+
virtualRowIndex = focusedVirtualCell.rowIndex;
|
|
308
301
|
}
|
|
309
|
-
if (
|
|
310
|
-
|
|
311
|
-
|
|
302
|
+
if (focusedVirtualCell.rowIndex > lastRowToRender) {
|
|
303
|
+
rowIndexes.push(focusedVirtualCell.rowIndex);
|
|
304
|
+
virtualRowIndex = focusedVirtualCell.rowIndex;
|
|
312
305
|
}
|
|
313
306
|
}
|
|
314
307
|
const rows = [];
|
|
@@ -348,7 +341,6 @@ const useGridVirtualScroller = () => {
|
|
|
348
341
|
});
|
|
349
342
|
}
|
|
350
343
|
}
|
|
351
|
-
const hasFocus = cellFocus?.id === id;
|
|
352
344
|
const baseRowHeight = !apiRef.current.rowHasAutoHeight(id) ? apiRef.current.unstable_getRowHeight(id) : 'auto';
|
|
353
345
|
let isSelected;
|
|
354
346
|
if (selectedRowsLookup[id] == null) {
|
|
@@ -373,19 +365,16 @@ const useGridVirtualScroller = () => {
|
|
|
373
365
|
isLastVisible = isLastVisibleInSection;
|
|
374
366
|
}
|
|
375
367
|
}
|
|
376
|
-
const isVirtualRow = rowIndexInPage === virtualRowIndex;
|
|
377
|
-
const isNotVisible = isVirtualRow;
|
|
378
|
-
let tabbableCell = null;
|
|
379
|
-
if (cellTabIndex !== null && cellTabIndex.id === id) {
|
|
380
|
-
const cellParams = apiRef.current.getCellParams(id, cellTabIndex.field);
|
|
381
|
-
tabbableCell = cellParams.cellMode === 'view' ? cellTabIndex.field : null;
|
|
382
|
-
}
|
|
383
368
|
let currentRenderContext = baseRenderContext;
|
|
384
369
|
if (!isPinnedSection && frozenContext.current && rowIndexInPage >= frozenContext.current.firstRowIndex && rowIndexInPage < frozenContext.current.lastRowIndex) {
|
|
385
370
|
currentRenderContext = frozenContext.current;
|
|
386
371
|
}
|
|
372
|
+
const isVirtualFocusRow = rowIndexInPage === virtualRowIndex;
|
|
373
|
+
const isVirtualFocusColumn = focusedVirtualCell?.rowIndex === rowIndex;
|
|
387
374
|
const offsetLeft = computeOffsetLeft(columnPositions, currentRenderContext, pinnedColumns.left.length);
|
|
388
375
|
const showBottomBorder = isLastVisibleInSection && params.position === 'top';
|
|
376
|
+
const firstColumnIndex = currentRenderContext.firstColumnIndex;
|
|
377
|
+
const lastColumnIndex = currentRenderContext.lastColumnIndex;
|
|
389
378
|
rows.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.row, (0, _extends2.default)({
|
|
390
379
|
row: model,
|
|
391
380
|
rowId: id,
|
|
@@ -393,19 +382,21 @@ const useGridVirtualScroller = () => {
|
|
|
393
382
|
selected: isSelected,
|
|
394
383
|
offsetTop: params.rows ? undefined : rowsMeta.positions[rowIndexInPage],
|
|
395
384
|
offsetLeft: offsetLeft,
|
|
396
|
-
|
|
385
|
+
columnsTotalWidth: dimensions.columnsTotalWidth,
|
|
397
386
|
rowHeight: baseRowHeight,
|
|
398
|
-
tabbableCell: tabbableCell,
|
|
399
387
|
pinnedColumns: pinnedColumns,
|
|
400
388
|
visibleColumns: visibleColumns,
|
|
401
|
-
|
|
402
|
-
|
|
389
|
+
firstColumnIndex: firstColumnIndex,
|
|
390
|
+
lastColumnIndex: lastColumnIndex,
|
|
391
|
+
focusedColumnIndex: isVirtualFocusColumn ? focusedVirtualCell.columnIndex : undefined,
|
|
403
392
|
isFirstVisible: isFirstVisible,
|
|
404
393
|
isLastVisible: isLastVisible,
|
|
405
|
-
isNotVisible:
|
|
406
|
-
showBottomBorder: showBottomBorder
|
|
394
|
+
isNotVisible: isVirtualFocusRow,
|
|
395
|
+
showBottomBorder: showBottomBorder,
|
|
396
|
+
scrollbarWidth: dimensions.hasScrollY ? dimensions.scrollbarSize : 0,
|
|
397
|
+
gridHasFiller: dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width
|
|
407
398
|
}, rowProps), id));
|
|
408
|
-
if (
|
|
399
|
+
if (isVirtualFocusRow) {
|
|
409
400
|
return;
|
|
410
401
|
}
|
|
411
402
|
const panel = panels.get(id);
|
|
@@ -436,18 +427,21 @@ const useGridVirtualScroller = () => {
|
|
|
436
427
|
}
|
|
437
428
|
return size;
|
|
438
429
|
}, [columnsTotalWidth, contentHeight, needsHorizontalScrollbar]);
|
|
439
|
-
React.
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
443
|
-
// TODO a scroll reset should not be necessary
|
|
444
|
-
if (enabledForColumns) {
|
|
445
|
-
scrollerRef.current.scrollLeft = 0;
|
|
430
|
+
const onContentSizeApplied = React.useCallback(node => {
|
|
431
|
+
if (!node) {
|
|
432
|
+
return;
|
|
446
433
|
}
|
|
447
|
-
|
|
448
|
-
|
|
434
|
+
apiRef.current.publishEvent('virtualScrollerContentSizeChange', {
|
|
435
|
+
columnsTotalWidth,
|
|
436
|
+
contentHeight
|
|
437
|
+
});
|
|
438
|
+
}, [apiRef, columnsTotalWidth, contentHeight]);
|
|
439
|
+
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
440
|
+
if (!isRenderContextReady.current) {
|
|
441
|
+
return;
|
|
449
442
|
}
|
|
450
|
-
|
|
443
|
+
apiRef.current.updateRenderContext?.();
|
|
444
|
+
}, [apiRef, enabledForColumns, enabledForRows]);
|
|
451
445
|
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
452
446
|
if (listView) {
|
|
453
447
|
scrollerRef.current.scrollLeft = 0;
|
|
@@ -462,6 +456,53 @@ const useGridVirtualScroller = () => {
|
|
|
462
456
|
left: scrollPosition.current.left,
|
|
463
457
|
renderContext: initialRenderContext
|
|
464
458
|
});
|
|
459
|
+
isRenderContextReady.current = true;
|
|
460
|
+
if (rootProps.initialState?.scroll && scrollerRef.current) {
|
|
461
|
+
const scroller = scrollerRef.current;
|
|
462
|
+
const {
|
|
463
|
+
top,
|
|
464
|
+
left
|
|
465
|
+
} = rootProps.initialState.scroll;
|
|
466
|
+
|
|
467
|
+
// On initial mount, if we have columns available, we can restore the horizontal scroll immediately, but we need to skip the resulting scroll event, otherwise we would recalculate the render context at position top=0, left=restoredValue, but the initial render context is already calculated based on the initial value of scrollPosition ref.
|
|
468
|
+
const isScrollRestored = {
|
|
469
|
+
top: !(top > 0),
|
|
470
|
+
left: !(left > 0)
|
|
471
|
+
};
|
|
472
|
+
if (!isScrollRestored.left && columnsTotalWidth) {
|
|
473
|
+
scroller.scrollLeft = left;
|
|
474
|
+
ignoreNextScrollEvent.current = true;
|
|
475
|
+
isScrollRestored.left = true;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
// For the sake of completeness, but I'm not sure if contentHeight is ever available at this point. Maybe when virtualisation is disabled?
|
|
479
|
+
if (!isScrollRestored.top && contentHeight) {
|
|
480
|
+
scroller.scrollTop = top;
|
|
481
|
+
ignoreNextScrollEvent.current = true;
|
|
482
|
+
isScrollRestored.top = true;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// To restore the vertical scroll, we need to wait until the rows are available in the DOM (otherwise there's nowhere to scroll), but before paint to avoid reflows
|
|
486
|
+
if (!isScrollRestored.top || !isScrollRestored.left) {
|
|
487
|
+
const unsubscribeContentSizeChange = apiRef.current.subscribeEvent('virtualScrollerContentSizeChange', params => {
|
|
488
|
+
if (!isScrollRestored.left && params.columnsTotalWidth) {
|
|
489
|
+
scroller.scrollLeft = left;
|
|
490
|
+
ignoreNextScrollEvent.current = true;
|
|
491
|
+
isScrollRestored.left = true;
|
|
492
|
+
}
|
|
493
|
+
if (!isScrollRestored.top && params.contentHeight) {
|
|
494
|
+
scroller.scrollTop = top;
|
|
495
|
+
ignoreNextScrollEvent.current = true;
|
|
496
|
+
isScrollRestored.top = true;
|
|
497
|
+
}
|
|
498
|
+
if (isScrollRestored.left && isScrollRestored.top) {
|
|
499
|
+
unsubscribeContentSizeChange();
|
|
500
|
+
}
|
|
501
|
+
});
|
|
502
|
+
return unsubscribeContentSizeChange;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
return undefined;
|
|
465
506
|
});
|
|
466
507
|
apiRef.current.register('private', {
|
|
467
508
|
updateRenderContext: forceUpdateRenderContext
|
|
@@ -489,7 +530,8 @@ const useGridVirtualScroller = () => {
|
|
|
489
530
|
}),
|
|
490
531
|
getContentProps: () => ({
|
|
491
532
|
style: contentSize,
|
|
492
|
-
role: 'presentation'
|
|
533
|
+
role: 'presentation',
|
|
534
|
+
ref: onContentSizeApplied
|
|
493
535
|
}),
|
|
494
536
|
getRenderZoneProps: () => ({
|
|
495
537
|
role: 'rowgroup'
|
|
@@ -9,5 +9,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
/**
|
|
10
10
|
* Hook that instantiate a [[GridApiRef]].
|
|
11
11
|
*/
|
|
12
|
-
const useGridApiRef = () =>
|
|
12
|
+
const useGridApiRef = () =>
|
|
13
|
+
// TODO v8: initialize with null (see https://github.com/mui/mui-x/issues/16135#issuecomment-2589395230 and https://github.com/mui/mui-x/issues/16000#issuecomment-2567820735)
|
|
14
|
+
React.useRef({});
|
|
13
15
|
exports.useGridApiRef = useGridApiRef;
|
|
@@ -1,34 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.useGridVisibleRows = exports.getVisibleRows = void 0;
|
|
8
|
-
var React = _interopRequireWildcard(require("react"));
|
|
9
7
|
var _gridPaginationSelector = require("../features/pagination/gridPaginationSelector");
|
|
10
|
-
var
|
|
8
|
+
var _ = require(".");
|
|
11
9
|
const getVisibleRows = (apiRef, props) => {
|
|
12
|
-
|
|
13
|
-
let range;
|
|
14
|
-
if (props.pagination && props.paginationMode === 'client') {
|
|
15
|
-
range = (0, _gridPaginationSelector.gridPaginationRowRangeSelector)(apiRef);
|
|
16
|
-
rows = (0, _gridPaginationSelector.gridPaginatedVisibleSortedGridRowEntriesSelector)(apiRef);
|
|
17
|
-
} else {
|
|
18
|
-
rows = (0, _gridFilterSelector.gridExpandedSortedRowEntriesSelector)(apiRef);
|
|
19
|
-
if (rows.length === 0) {
|
|
20
|
-
range = null;
|
|
21
|
-
} else {
|
|
22
|
-
range = {
|
|
23
|
-
firstRowIndex: 0,
|
|
24
|
-
lastRowIndex: rows.length - 1
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return {
|
|
29
|
-
rows,
|
|
30
|
-
range
|
|
31
|
-
};
|
|
10
|
+
return (0, _gridPaginationSelector.gridVisibleRowsSelector)(apiRef);
|
|
32
11
|
};
|
|
33
12
|
|
|
34
13
|
/**
|
|
@@ -40,10 +19,6 @@ const getVisibleRows = (apiRef, props) => {
|
|
|
40
19
|
*/
|
|
41
20
|
exports.getVisibleRows = getVisibleRows;
|
|
42
21
|
const useGridVisibleRows = (apiRef, props) => {
|
|
43
|
-
|
|
44
|
-
return React.useMemo(() => ({
|
|
45
|
-
rows: response.rows,
|
|
46
|
-
range: response.range
|
|
47
|
-
}), [response.rows, response.range]);
|
|
22
|
+
return (0, _.useGridSelector)(apiRef, _gridPaginationSelector.gridVisibleRowsSelector);
|
|
48
23
|
};
|
|
49
24
|
exports.useGridVisibleRows = useGridVisibleRows;
|
package/node/index.js
CHANGED
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = void 0;
|
|
6
|
+
exports.PinnedColumnPosition = exports.GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = void 0;
|
|
7
7
|
const GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
|
8
8
|
const GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = exports.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = '__row_group_by_columns_group__';
|
|
9
|
-
const GRID_DETAIL_PANEL_TOGGLE_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = '__detail_panel_toggle__';
|
|
9
|
+
const GRID_DETAIL_PANEL_TOGGLE_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = '__detail_panel_toggle__';
|
|
10
|
+
let PinnedColumnPosition = exports.PinnedColumnPosition = /*#__PURE__*/function (PinnedColumnPosition) {
|
|
11
|
+
PinnedColumnPosition[PinnedColumnPosition["NONE"] = 0] = "NONE";
|
|
12
|
+
PinnedColumnPosition[PinnedColumnPosition["LEFT"] = 1] = "LEFT";
|
|
13
|
+
PinnedColumnPosition[PinnedColumnPosition["RIGHT"] = 2] = "RIGHT";
|
|
14
|
+
PinnedColumnPosition[PinnedColumnPosition["VIRTUAL"] = 3] = "VIRTUAL";
|
|
15
|
+
return PinnedColumnPosition;
|
|
16
|
+
}({});
|
package/node/internals/index.js
CHANGED
|
@@ -821,6 +821,18 @@ Object.keys(_createControllablePromise).forEach(function (key) {
|
|
|
821
821
|
}
|
|
822
822
|
});
|
|
823
823
|
});
|
|
824
|
+
var _rtlFlipSide = require("../utils/rtlFlipSide");
|
|
825
|
+
Object.keys(_rtlFlipSide).forEach(function (key) {
|
|
826
|
+
if (key === "default" || key === "__esModule") return;
|
|
827
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
828
|
+
if (key in exports && exports[key] === _rtlFlipSide[key]) return;
|
|
829
|
+
Object.defineProperty(exports, key, {
|
|
830
|
+
enumerable: true,
|
|
831
|
+
get: function () {
|
|
832
|
+
return _rtlFlipSide[key];
|
|
833
|
+
}
|
|
834
|
+
});
|
|
835
|
+
});
|
|
824
836
|
var _createSelector = require("../utils/createSelector");
|
|
825
837
|
var _useGridSelector = require("../hooks/utils/useGridSelector");
|
|
826
838
|
var _domUtils = require("../utils/domUtils");
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.attachPinnedStyle = attachPinnedStyle;
|
|
7
|
+
var _rtlFlipSide = require("../../utils/rtlFlipSide");
|
|
8
|
+
function attachPinnedStyle(style, isRtl, pinnedPosition, pinnedOffset) {
|
|
9
|
+
const side = (0, _rtlFlipSide.rtlFlipSide)(pinnedPosition, isRtl);
|
|
10
|
+
if (!side || pinnedOffset === undefined) {
|
|
11
|
+
return style;
|
|
12
|
+
}
|
|
13
|
+
style[side] = pinnedOffset;
|
|
14
|
+
return style;
|
|
15
|
+
}
|
|
@@ -4,19 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getPinnedCellOffset = void 0;
|
|
7
|
-
var
|
|
8
|
-
const getPinnedCellOffset = (pinnedPosition, computedWidth, columnIndex, columnPositions,
|
|
9
|
-
const scrollbarWidth = dimensions.hasScrollY ? dimensions.scrollbarSize : 0;
|
|
7
|
+
var _constants = require("../constants");
|
|
8
|
+
const getPinnedCellOffset = (pinnedPosition, computedWidth, columnIndex, columnPositions, columnsTotalWidth, scrollbarWidth) => {
|
|
10
9
|
let pinnedOffset;
|
|
11
10
|
switch (pinnedPosition) {
|
|
12
|
-
case
|
|
11
|
+
case _constants.PinnedColumnPosition.LEFT:
|
|
13
12
|
pinnedOffset = columnPositions[columnIndex];
|
|
14
13
|
break;
|
|
15
|
-
case
|
|
16
|
-
pinnedOffset =
|
|
14
|
+
case _constants.PinnedColumnPosition.RIGHT:
|
|
15
|
+
pinnedOffset = columnsTotalWidth - columnPositions[columnIndex] - computedWidth + scrollbarWidth;
|
|
17
16
|
break;
|
|
18
17
|
default:
|
|
19
|
-
pinnedOffset =
|
|
18
|
+
pinnedOffset = undefined;
|
|
20
19
|
break;
|
|
21
20
|
}
|
|
22
21
|
return pinnedOffset;
|
|
@@ -46,4 +46,15 @@ Object.keys(_gridRowGroupingUtils).forEach(function (key) {
|
|
|
46
46
|
return _gridRowGroupingUtils[key];
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
});
|
|
50
|
+
var _attachPinnedStyle = require("./attachPinnedStyle");
|
|
51
|
+
Object.keys(_attachPinnedStyle).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _attachPinnedStyle[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _attachPinnedStyle[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
49
60
|
});
|
package/node/locales/faIR.js
CHANGED
|
@@ -40,8 +40,7 @@ const faIRGrid = {
|
|
|
40
40
|
columnsManagementNoColumns: 'بدون سطر',
|
|
41
41
|
columnsManagementShowHideAllText: 'نمایش/مخفی کردن همه',
|
|
42
42
|
columnsManagementReset: 'بازنشانی',
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
columnsManagementDeleteIconLabel: 'پاک کردن',
|
|
45
44
|
// Filter panel text
|
|
46
45
|
filterPanelAddFilter: 'افزودن فیلتر',
|
|
47
46
|
filterPanelRemoveAll: 'حذف همه',
|
|
@@ -55,9 +54,9 @@ const faIRGrid = {
|
|
|
55
54
|
filterPanelInputPlaceholder: 'فیلتر مقدار',
|
|
56
55
|
// Filter operators text
|
|
57
56
|
filterOperatorContains: 'شامل',
|
|
58
|
-
|
|
57
|
+
filterOperatorDoesNotContain: 'شامل نمیشود',
|
|
59
58
|
filterOperatorEquals: 'مساوی',
|
|
60
|
-
|
|
59
|
+
filterOperatorDoesNotEqual: 'برابر نیست',
|
|
61
60
|
filterOperatorStartsWith: 'شروع با',
|
|
62
61
|
filterOperatorEndsWith: 'پایان با',
|
|
63
62
|
filterOperatorIs: 'هست',
|
|
@@ -77,9 +76,9 @@ const faIRGrid = {
|
|
|
77
76
|
'filterOperator<=': '<=',
|
|
78
77
|
// Header filter operators text
|
|
79
78
|
headerFilterOperatorContains: 'شامل',
|
|
80
|
-
|
|
79
|
+
headerFilterOperatorDoesNotContain: 'شامل نمیشود',
|
|
81
80
|
headerFilterOperatorEquals: 'مساوی',
|
|
82
|
-
|
|
81
|
+
headerFilterOperatorDoesNotEqual: 'برابر نیست',
|
|
83
82
|
headerFilterOperatorStartsWith: 'شروع با',
|
|
84
83
|
headerFilterOperatorEndsWith: 'پایان با',
|
|
85
84
|
headerFilterOperatorIs: 'هست',
|
package/node/locales/urPK.js
CHANGED
|
@@ -36,12 +36,11 @@ const urPKGrid = {
|
|
|
36
36
|
toolbarExportPrint: 'پرنٹ کریں',
|
|
37
37
|
toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
|
|
38
38
|
// Columns management text
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
columnsManagementSearchTitle: 'تلاش',
|
|
40
|
+
columnsManagementNoColumns: 'کوئی کالم نہیں',
|
|
41
|
+
columnsManagementShowHideAllText: 'تمام دکھائیں/چھپائیں',
|
|
42
|
+
columnsManagementReset: 'ریسیٹ',
|
|
43
|
+
columnsManagementDeleteIconLabel: 'کلئیر',
|
|
45
44
|
// Filter panel text
|
|
46
45
|
filterPanelAddFilter: 'نیا فلٹر',
|
|
47
46
|
filterPanelRemoveAll: 'سارے ختم کریں',
|
|
@@ -55,9 +54,9 @@ const urPKGrid = {
|
|
|
55
54
|
filterPanelInputPlaceholder: 'ویلیو کو فلٹر کریں',
|
|
56
55
|
// Filter operators text
|
|
57
56
|
filterOperatorContains: 'شامل ہے',
|
|
58
|
-
|
|
57
|
+
filterOperatorDoesNotContain: 'موجود نہیں ہے',
|
|
59
58
|
filterOperatorEquals: 'برابر ہے',
|
|
60
|
-
|
|
59
|
+
filterOperatorDoesNotEqual: 'برابر نہیں ہے',
|
|
61
60
|
filterOperatorStartsWith: 'شروع ہوتا ہے',
|
|
62
61
|
filterOperatorEndsWith: 'ختم ہوتا ہے',
|
|
63
62
|
filterOperatorIs: 'ہے',
|
|
@@ -77,9 +76,9 @@ const urPKGrid = {
|
|
|
77
76
|
'filterOperator<=': '<=',
|
|
78
77
|
// Header filter operators text
|
|
79
78
|
headerFilterOperatorContains: 'شامل ہے',
|
|
80
|
-
|
|
79
|
+
headerFilterOperatorDoesNotContain: 'موجود نہیں ہے',
|
|
81
80
|
headerFilterOperatorEquals: 'برابر ہے',
|
|
82
|
-
|
|
81
|
+
headerFilterOperatorDoesNotEqual: 'برابر نہیں ہے',
|
|
83
82
|
headerFilterOperatorStartsWith: 'شروع ہوتا ہے',
|
|
84
83
|
headerFilterOperatorEndsWith: 'ختم ہوتا ہے',
|
|
85
84
|
headerFilterOperatorIs: 'ہے',
|
|
@@ -4,17 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.shouldCellShowRightBorder = exports.shouldCellShowLeftBorder = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _constants = require("../internals/constants");
|
|
8
8
|
const shouldCellShowRightBorder = (pinnedPosition, indexInSection, sectionLength, showCellVerticalBorderRootProp, gridHasFiller) => {
|
|
9
9
|
const isSectionLastCell = indexInSection === sectionLength - 1;
|
|
10
|
-
if (pinnedPosition ===
|
|
10
|
+
if (pinnedPosition === _constants.PinnedColumnPosition.LEFT && isSectionLastCell) {
|
|
11
11
|
return true;
|
|
12
12
|
}
|
|
13
13
|
if (showCellVerticalBorderRootProp) {
|
|
14
|
-
if (pinnedPosition ===
|
|
14
|
+
if (pinnedPosition === _constants.PinnedColumnPosition.LEFT) {
|
|
15
15
|
return true;
|
|
16
16
|
}
|
|
17
|
-
if (pinnedPosition ===
|
|
17
|
+
if (pinnedPosition === _constants.PinnedColumnPosition.RIGHT) {
|
|
18
18
|
return !isSectionLastCell;
|
|
19
19
|
}
|
|
20
20
|
// pinnedPosition === undefined, middle section
|
|
@@ -24,6 +24,6 @@ const shouldCellShowRightBorder = (pinnedPosition, indexInSection, sectionLength
|
|
|
24
24
|
};
|
|
25
25
|
exports.shouldCellShowRightBorder = shouldCellShowRightBorder;
|
|
26
26
|
const shouldCellShowLeftBorder = (pinnedPosition, indexInSection) => {
|
|
27
|
-
return pinnedPosition ===
|
|
27
|
+
return pinnedPosition === _constants.PinnedColumnPosition.RIGHT && indexInSection === 0;
|
|
28
28
|
};
|
|
29
29
|
exports.shouldCellShowLeftBorder = shouldCellShowLeftBorder;
|
package/node/utils/domUtils.js
CHANGED
|
@@ -179,7 +179,7 @@ const findPinnedHeaders = ({
|
|
|
179
179
|
const elements = [];
|
|
180
180
|
api.columnHeadersContainerRef.current.querySelectorAll(`.${_gridClasses.gridClasses[position === 'left' ? 'columnHeader--pinnedLeft' : 'columnHeader--pinnedRight']}`).forEach(element => {
|
|
181
181
|
const currentColIndex = parseCellColIndex(element);
|
|
182
|
-
if (currentColIndex !== null && filterFn(currentColIndex)) {
|
|
182
|
+
if (currentColIndex !== null && filterFn(currentColIndex, element)) {
|
|
183
183
|
elements.push(element);
|
|
184
184
|
}
|
|
185
185
|
});
|
|
@@ -200,7 +200,12 @@ function findRightPinnedHeadersBeforeCol(api, col, isRtl) {
|
|
|
200
200
|
api,
|
|
201
201
|
position: isRtl ? 'left' : 'right',
|
|
202
202
|
colIndex,
|
|
203
|
-
filterFn: index =>
|
|
203
|
+
filterFn: (index, element) => {
|
|
204
|
+
if (element.classList.contains(_gridClasses.gridClasses['columnHeader--last'])) {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
return isRtl ? index > colIndex : index < colIndex;
|
|
208
|
+
}
|
|
204
209
|
});
|
|
205
210
|
}
|
|
206
211
|
function findGridHeader(api, field) {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.rtlFlipSide = void 0;
|
|
7
|
+
var _constants = require("../internals/constants");
|
|
8
|
+
const rtlFlipSide = (position, isRtl) => {
|
|
9
|
+
if (!position) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
if (!isRtl) {
|
|
13
|
+
if (position === _constants.PinnedColumnPosition.LEFT) {
|
|
14
|
+
return 'left';
|
|
15
|
+
}
|
|
16
|
+
if (position === _constants.PinnedColumnPosition.RIGHT) {
|
|
17
|
+
return 'right';
|
|
18
|
+
}
|
|
19
|
+
} else {
|
|
20
|
+
if (position === _constants.PinnedColumnPosition.LEFT) {
|
|
21
|
+
return 'right';
|
|
22
|
+
}
|
|
23
|
+
if (position === _constants.PinnedColumnPosition.RIGHT) {
|
|
24
|
+
return 'left';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
};
|
|
29
|
+
exports.rtlFlipSide = rtlFlipSide;
|