@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.
Files changed (244) hide show
  1. package/CHANGELOG.md +150 -0
  2. package/DataGrid/DataGrid.js +4 -5
  3. package/DataGrid/useDataGridComponent.d.ts +2 -1
  4. package/DataGrid/useDataGridComponent.js +1 -1
  5. package/components/GridHeaders.js +2 -2
  6. package/components/GridRow.d.ts +5 -9
  7. package/components/GridRow.js +28 -105
  8. package/components/GridSkeletonLoadingOverlay.js +18 -18
  9. package/components/cell/GridCell.d.ts +9 -16
  10. package/components/cell/GridCell.js +17 -35
  11. package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -5
  12. package/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  13. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +3 -3
  14. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
  15. package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -5
  16. package/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  17. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  18. package/components/containers/GridRoot.d.ts +2 -2
  19. package/components/containers/GridRoot.js +14 -6
  20. package/components/containers/GridRootStyles.js +1 -0
  21. package/components/panel/GridPanel.js +2 -1
  22. package/components/panel/filterPanel/GridFilterInputValueProps.d.ts +2 -1
  23. package/components/toolbar/GridToolbarColumnsButton.js +6 -1
  24. package/components/toolbar/GridToolbarFilterButton.js +6 -1
  25. package/components/virtualization/GridVirtualScrollbar.js +11 -12
  26. package/components/virtualization/GridVirtualScroller.js +4 -4
  27. package/context/GridContextProvider.d.ts +2 -1
  28. package/hooks/core/pipeProcessing/useGridPipeProcessing.d.ts +2 -2
  29. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +2 -2
  30. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +2 -2
  31. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +2 -2
  32. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +2 -2
  33. package/hooks/core/useGridApiInitialization.d.ts +2 -2
  34. package/hooks/core/useGridInitialization.d.ts +2 -2
  35. package/hooks/core/useGridIsRtl.d.ts +2 -2
  36. package/hooks/core/useGridLocaleText.d.ts +2 -2
  37. package/hooks/core/useGridLoggerFactory.d.ts +2 -2
  38. package/hooks/core/useGridRefs.d.ts +2 -2
  39. package/hooks/core/useGridStateInitialization.d.ts +2 -2
  40. package/hooks/features/clipboard/useGridClipboard.d.ts +2 -2
  41. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +2 -2
  42. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +5 -7
  43. package/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  44. package/hooks/features/columnMenu/useGridColumnMenu.d.ts +2 -2
  45. package/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  46. package/hooks/features/columnResize/useGridColumnResize.d.ts +2 -2
  47. package/hooks/features/columnResize/useGridColumnResize.js +4 -2
  48. package/hooks/features/columns/gridColumnsUtils.d.ts +4 -4
  49. package/hooks/features/columns/useGridColumnSpanning.d.ts +2 -2
  50. package/hooks/features/columns/useGridColumns.d.ts +2 -2
  51. package/hooks/features/density/useGridDensity.d.ts +2 -2
  52. package/hooks/features/dimensions/useGridDimensions.d.ts +2 -2
  53. package/hooks/features/dimensions/useGridDimensions.js +1 -3
  54. package/hooks/features/editing/useGridCellEditing.d.ts +2 -2
  55. package/hooks/features/editing/useGridEditing.d.ts +2 -2
  56. package/hooks/features/editing/useGridRowEditing.d.ts +2 -2
  57. package/hooks/features/events/useGridEvents.d.ts +2 -2
  58. package/hooks/features/export/serializers/csvSerializer.d.ts +2 -1
  59. package/hooks/features/export/useGridCsvExport.d.ts +2 -2
  60. package/hooks/features/export/useGridPrintExport.d.ts +2 -2
  61. package/hooks/features/export/utils.d.ts +2 -2
  62. package/hooks/features/filter/gridFilterSelector.js +6 -1
  63. package/hooks/features/filter/gridFilterUtils.d.ts +7 -7
  64. package/hooks/features/filter/gridFilterUtils.js +3 -3
  65. package/hooks/features/filter/useGridFilter.d.ts +2 -2
  66. package/hooks/features/focus/useGridFocus.d.ts +2 -2
  67. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  68. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  69. package/hooks/features/keyboardNavigation/utils.d.ts +3 -3
  70. package/hooks/features/listView/useGridListView.d.ts +2 -2
  71. package/hooks/features/pagination/gridPaginationInterfaces.d.ts +3 -0
  72. package/hooks/features/pagination/gridPaginationSelector.d.ts +20 -1
  73. package/hooks/features/pagination/gridPaginationSelector.js +39 -1
  74. package/hooks/features/pagination/useGridPagination.d.ts +3 -3
  75. package/hooks/features/pagination/useGridPagination.js +5 -3
  76. package/hooks/features/pagination/useGridPaginationMeta.d.ts +2 -2
  77. package/hooks/features/pagination/useGridPaginationModel.d.ts +2 -2
  78. package/hooks/features/pagination/useGridPaginationModel.js +23 -1
  79. package/hooks/features/pagination/useGridRowCount.d.ts +2 -2
  80. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.d.ts +1 -0
  81. package/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  82. package/hooks/features/preferencesPanel/index.d.ts +1 -1
  83. package/hooks/features/preferencesPanel/index.js +1 -1
  84. package/hooks/features/preferencesPanel/useGridPreferencesPanel.d.ts +2 -2
  85. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  86. package/hooks/features/rowSelection/useGridRowSelection.d.ts +2 -2
  87. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.d.ts +2 -2
  88. package/hooks/features/rowSelection/utils.d.ts +3 -2
  89. package/hooks/features/rows/gridRowSpanningUtils.d.ts +2 -2
  90. package/hooks/features/rows/gridRowsSelector.js +1 -1
  91. package/hooks/features/rows/gridRowsUtils.d.ts +4 -4
  92. package/hooks/features/rows/useGridParamsApi.d.ts +2 -2
  93. package/hooks/features/rows/useGridRowSpanning.d.ts +2 -2
  94. package/hooks/features/rows/useGridRows.d.ts +2 -2
  95. package/hooks/features/rows/useGridRows.js +2 -2
  96. package/hooks/features/rows/useGridRowsMeta.d.ts +2 -2
  97. package/hooks/features/rows/useGridRowsPreProcessors.d.ts +2 -2
  98. package/hooks/features/scroll/useGridScroll.d.ts +2 -2
  99. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -3
  100. package/hooks/features/sorting/gridSortingUtils.js +2 -2
  101. package/hooks/features/sorting/useGridSorting.d.ts +2 -2
  102. package/hooks/features/statePersistence/useGridStatePersistence.d.ts +2 -2
  103. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.d.ts +6 -0
  104. package/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  105. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -1
  106. package/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  107. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  108. package/hooks/utils/useGridApiContext.d.ts +2 -2
  109. package/hooks/utils/useGridApiEventHandler.d.ts +4 -4
  110. package/hooks/utils/useGridApiMethod.d.ts +2 -2
  111. package/hooks/utils/useGridApiRef.d.ts +2 -2
  112. package/hooks/utils/useGridApiRef.js +3 -1
  113. package/hooks/utils/useGridInitializeState.d.ts +3 -3
  114. package/hooks/utils/useGridLogger.d.ts +2 -2
  115. package/hooks/utils/useGridNativeEventListener.d.ts +2 -1
  116. package/hooks/utils/useGridPrivateApiContext.d.ts +2 -1
  117. package/hooks/utils/useGridSelector.d.ts +3 -3
  118. package/hooks/utils/useGridVisibleRows.d.ts +8 -6
  119. package/hooks/utils/useGridVisibleRows.js +5 -28
  120. package/index.js +1 -1
  121. package/internals/constants.d.ts +6 -0
  122. package/internals/constants.js +8 -1
  123. package/internals/index.d.ts +1 -0
  124. package/internals/index.js +1 -0
  125. package/internals/utils/attachPinnedStyle.d.ts +2 -0
  126. package/internals/utils/attachPinnedStyle.js +9 -0
  127. package/internals/utils/getPinnedCellOffset.d.ts +3 -3
  128. package/internals/utils/getPinnedCellOffset.js +6 -7
  129. package/internals/utils/index.d.ts +1 -0
  130. package/internals/utils/index.js +2 -1
  131. package/locales/faIR.js +5 -6
  132. package/locales/urPK.js +9 -10
  133. package/models/colDef/gridColDef.d.ts +9 -8
  134. package/models/events/gridEventLookup.d.ts +6 -1
  135. package/models/gridExport.d.ts +2 -2
  136. package/models/gridFilterOperator.d.ts +2 -1
  137. package/models/gridStateCommunity.d.ts +4 -0
  138. package/models/props/DataGridProps.d.ts +2 -1
  139. package/modern/DataGrid/DataGrid.js +4 -5
  140. package/modern/DataGrid/useDataGridComponent.js +1 -1
  141. package/modern/components/GridHeaders.js +2 -2
  142. package/modern/components/GridRow.js +28 -105
  143. package/modern/components/GridSkeletonLoadingOverlay.js +18 -18
  144. package/modern/components/cell/GridCell.js +17 -35
  145. package/modern/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  146. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +21 -7
  147. package/modern/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  148. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -2
  149. package/modern/components/containers/GridRoot.js +14 -6
  150. package/modern/components/containers/GridRootStyles.js +1 -0
  151. package/modern/components/panel/GridPanel.js +2 -1
  152. package/modern/components/toolbar/GridToolbarColumnsButton.js +6 -1
  153. package/modern/components/toolbar/GridToolbarFilterButton.js +6 -1
  154. package/modern/components/virtualization/GridVirtualScrollbar.js +11 -12
  155. package/modern/components/virtualization/GridVirtualScroller.js +4 -4
  156. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +34 -76
  157. package/modern/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  158. package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
  159. package/modern/hooks/features/dimensions/useGridDimensions.js +1 -3
  160. package/modern/hooks/features/filter/gridFilterSelector.js +6 -1
  161. package/modern/hooks/features/filter/gridFilterUtils.js +3 -3
  162. package/modern/hooks/features/pagination/gridPaginationSelector.js +39 -1
  163. package/modern/hooks/features/pagination/useGridPagination.js +5 -3
  164. package/modern/hooks/features/pagination/useGridPaginationModel.js +23 -1
  165. package/modern/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +8 -1
  166. package/modern/hooks/features/preferencesPanel/index.js +1 -1
  167. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  168. package/modern/hooks/features/rows/gridRowsSelector.js +1 -1
  169. package/modern/hooks/features/rows/useGridRows.js +2 -2
  170. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -2
  171. package/modern/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +42 -0
  172. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +92 -50
  173. package/modern/hooks/utils/useGridApiRef.js +3 -1
  174. package/modern/hooks/utils/useGridVisibleRows.js +5 -28
  175. package/modern/index.js +1 -1
  176. package/modern/internals/constants.js +8 -1
  177. package/modern/internals/index.js +1 -0
  178. package/modern/internals/utils/attachPinnedStyle.js +9 -0
  179. package/modern/internals/utils/getPinnedCellOffset.js +6 -7
  180. package/modern/internals/utils/index.js +2 -1
  181. package/modern/locales/faIR.js +5 -6
  182. package/modern/locales/urPK.js +9 -10
  183. package/modern/utils/cellBorderUtils.js +5 -5
  184. package/modern/utils/domUtils.js +7 -2
  185. package/modern/utils/isJSDOM.js +1 -0
  186. package/modern/utils/rtlFlipSide.js +22 -0
  187. package/node/DataGrid/DataGrid.js +2 -3
  188. package/node/DataGrid/useDataGridComponent.js +1 -1
  189. package/node/components/GridHeaders.js +2 -2
  190. package/node/components/GridRow.js +27 -104
  191. package/node/components/GridSkeletonLoadingOverlay.js +17 -17
  192. package/node/components/cell/GridCell.js +18 -36
  193. package/node/components/columnHeaders/GridColumnGroupHeader.js +7 -10
  194. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +20 -6
  195. package/node/components/columnHeaders/GridColumnHeaderItem.js +13 -12
  196. package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
  197. package/node/components/containers/GridRoot.js +14 -6
  198. package/node/components/containers/GridRootStyles.js +1 -0
  199. package/node/components/panel/GridPanel.js +2 -1
  200. package/node/components/toolbar/GridToolbarColumnsButton.js +6 -1
  201. package/node/components/toolbar/GridToolbarFilterButton.js +6 -1
  202. package/node/components/virtualization/GridVirtualScrollbar.js +11 -12
  203. package/node/components/virtualization/GridVirtualScroller.js +4 -4
  204. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +32 -74
  205. package/node/hooks/features/columnMenu/useGridColumnMenu.js +0 -2
  206. package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
  207. package/node/hooks/features/dimensions/useGridDimensions.js +3 -5
  208. package/node/hooks/features/filter/gridFilterSelector.js +6 -1
  209. package/node/hooks/features/filter/gridFilterUtils.js +3 -3
  210. package/node/hooks/features/pagination/gridPaginationSelector.js +41 -3
  211. package/node/hooks/features/pagination/useGridPagination.js +5 -3
  212. package/node/hooks/features/pagination/useGridPaginationModel.js +23 -1
  213. package/node/hooks/features/preferencesPanel/gridPreferencePanelSelector.js +9 -2
  214. package/node/hooks/features/preferencesPanel/index.js +11 -10
  215. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +14 -38
  216. package/node/hooks/features/rows/gridRowsSelector.js +1 -1
  217. package/node/hooks/features/rows/useGridRows.js +1 -1
  218. package/node/hooks/features/sorting/gridSortingUtils.js +2 -2
  219. package/node/hooks/features/virtualization/gridFocusedVirtualCellSelector.js +49 -0
  220. package/node/hooks/features/virtualization/useGridVirtualScroller.js +94 -52
  221. package/node/hooks/utils/useGridApiRef.js +3 -1
  222. package/node/hooks/utils/useGridVisibleRows.js +3 -28
  223. package/node/index.js +1 -1
  224. package/node/internals/constants.js +9 -2
  225. package/node/internals/index.js +12 -0
  226. package/node/internals/utils/attachPinnedStyle.js +15 -0
  227. package/node/internals/utils/getPinnedCellOffset.js +6 -7
  228. package/node/internals/utils/index.js +11 -0
  229. package/node/locales/faIR.js +5 -6
  230. package/node/locales/urPK.js +9 -10
  231. package/node/utils/cellBorderUtils.js +5 -5
  232. package/node/utils/domUtils.js +7 -2
  233. package/node/utils/isJSDOM.js +7 -0
  234. package/node/utils/rtlFlipSide.js +29 -0
  235. package/package.json +2 -2
  236. package/utils/cellBorderUtils.d.ts +3 -3
  237. package/utils/cellBorderUtils.js +5 -5
  238. package/utils/createSelector.d.ts +3 -3
  239. package/utils/domUtils.js +7 -2
  240. package/utils/getPublicApiRef.d.ts +2 -1
  241. package/utils/isJSDOM.d.ts +1 -0
  242. package/utils/isJSDOM.js +1 -0
  243. package/utils/rtlFlipSide.d.ts +2 -0
  244. 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 && focusedCell.rowIndex !== -1) {
305
- if (focusedCell.rowIndex < firstRowToRender) {
306
- virtualRowIndex = focusedCell.rowIndex;
307
- rowIndexes.unshift(virtualRowIndex);
297
+ if (!isPinnedSection && focusedVirtualCell) {
298
+ if (focusedVirtualCell.rowIndex < firstRowToRender) {
299
+ rowIndexes.unshift(focusedVirtualCell.rowIndex);
300
+ virtualRowIndex = focusedVirtualCell.rowIndex;
308
301
  }
309
- if (focusedCell.rowIndex >= lastRowToRender) {
310
- virtualRowIndex = focusedCell.rowIndex;
311
- rowIndexes.push(virtualRowIndex);
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
- dimensions: dimensions,
385
+ columnsTotalWidth: dimensions.columnsTotalWidth,
397
386
  rowHeight: baseRowHeight,
398
- tabbableCell: tabbableCell,
399
387
  pinnedColumns: pinnedColumns,
400
388
  visibleColumns: visibleColumns,
401
- renderContext: currentRenderContext,
402
- focusedColumnIndex: hasFocus ? focusedCell.columnIndex : undefined,
389
+ firstColumnIndex: firstColumnIndex,
390
+ lastColumnIndex: lastColumnIndex,
391
+ focusedColumnIndex: isVirtualFocusColumn ? focusedVirtualCell.columnIndex : undefined,
403
392
  isFirstVisible: isFirstVisible,
404
393
  isLastVisible: isLastVisible,
405
- isNotVisible: 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 (isNotVisible) {
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.useEffect(() => {
440
- apiRef.current.publishEvent('virtualScrollerContentSizeChange');
441
- }, [apiRef, contentSize]);
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
- if (enabledForRows) {
448
- scrollerRef.current.scrollTop = 0;
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
- }, [enabledForColumns, enabledForRows, gridRootRef, scrollerRef]);
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 = () => React.useRef({});
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 _gridFilterSelector = require("../features/filter/gridFilterSelector");
8
+ var _ = require(".");
11
9
  const getVisibleRows = (apiRef, props) => {
12
- let rows;
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
- const response = getVisibleRows(apiRef, props);
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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.23.6
2
+ * @mui/x-data-grid v7.24.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -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
+ }({});
@@ -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 _columns = require("../../hooks/features/columns");
8
- const getPinnedCellOffset = (pinnedPosition, computedWidth, columnIndex, columnPositions, dimensions) => {
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 _columns.GridPinnedColumnPosition.LEFT:
11
+ case _constants.PinnedColumnPosition.LEFT:
13
12
  pinnedOffset = columnPositions[columnIndex];
14
13
  break;
15
- case _columns.GridPinnedColumnPosition.RIGHT:
16
- pinnedOffset = dimensions.columnsTotalWidth - columnPositions[columnIndex] - computedWidth + scrollbarWidth;
14
+ case _constants.PinnedColumnPosition.RIGHT:
15
+ pinnedOffset = columnsTotalWidth - columnPositions[columnIndex] - computedWidth + scrollbarWidth;
17
16
  break;
18
17
  default:
19
- pinnedOffset = 0;
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
  });
@@ -40,8 +40,7 @@ const faIRGrid = {
40
40
  columnsManagementNoColumns: 'بدون سطر',
41
41
  columnsManagementShowHideAllText: 'نمایش/مخفی کردن همه',
42
42
  columnsManagementReset: 'بازنشانی',
43
- // columnsManagementDeleteIconLabel: 'Clear',
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
- // filterOperatorDoesNotContain: 'does not contain',
57
+ filterOperatorDoesNotContain: 'شامل نمیشود',
59
58
  filterOperatorEquals: 'مساوی',
60
- // filterOperatorDoesNotEqual: 'does not equal',
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
- // headerFilterOperatorDoesNotContain: 'Does not contain',
79
+ headerFilterOperatorDoesNotContain: 'شامل نمیشود',
81
80
  headerFilterOperatorEquals: 'مساوی',
82
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
81
+ headerFilterOperatorDoesNotEqual: 'برابر نیست',
83
82
  headerFilterOperatorStartsWith: 'شروع با',
84
83
  headerFilterOperatorEndsWith: 'پایان با',
85
84
  headerFilterOperatorIs: 'هست',
@@ -36,12 +36,11 @@ const urPKGrid = {
36
36
  toolbarExportPrint: 'پرنٹ کریں',
37
37
  toolbarExportExcel: 'ایکسل کے طور پر ڈاوٴنلوڈ کریں',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
- // columnsManagementReset: 'Reset',
43
- // columnsManagementDeleteIconLabel: 'Clear',
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
- // filterOperatorDoesNotContain: 'does not contain',
57
+ filterOperatorDoesNotContain: 'موجود نہیں ہے',
59
58
  filterOperatorEquals: 'برابر ہے',
60
- // filterOperatorDoesNotEqual: 'does not equal',
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
- // headerFilterOperatorDoesNotContain: 'Does not contain',
79
+ headerFilterOperatorDoesNotContain: 'موجود نہیں ہے',
81
80
  headerFilterOperatorEquals: 'برابر ہے',
82
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
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 _gridColumnsInterfaces = require("../hooks/features/columns/gridColumnsInterfaces");
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 === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT && isSectionLastCell) {
10
+ if (pinnedPosition === _constants.PinnedColumnPosition.LEFT && isSectionLastCell) {
11
11
  return true;
12
12
  }
13
13
  if (showCellVerticalBorderRootProp) {
14
- if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT) {
14
+ if (pinnedPosition === _constants.PinnedColumnPosition.LEFT) {
15
15
  return true;
16
16
  }
17
- if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT) {
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 === _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT && indexInSection === 0;
27
+ return pinnedPosition === _constants.PinnedColumnPosition.RIGHT && indexInSection === 0;
28
28
  };
29
29
  exports.shouldCellShowLeftBorder = shouldCellShowLeftBorder;
@@ -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 => isRtl ? index > colIndex : index < colIndex
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,7 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isJSDOM = void 0;
7
+ const isJSDOM = exports.isJSDOM = typeof window !== 'undefined' && /jsdom|HappyDOM/.test(window.navigator.userAgent);
@@ -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;