@mui/x-data-grid 6.4.0 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. package/CHANGELOG.md +134 -2
  2. package/DataGrid/DataGrid.js +10 -3
  3. package/DataGrid/useDataGridProps.js +5 -12
  4. package/README.md +2 -2
  5. package/colDef/gridNumericOperators.js +0 -6
  6. package/components/GridColumnHeaders.js +4 -9
  7. package/components/GridHeader.d.ts +2 -2
  8. package/components/base/GridBody.d.ts +1 -1
  9. package/components/base/GridFooterPlaceholder.d.ts +2 -2
  10. package/components/base/GridOverlays.d.ts +2 -2
  11. package/components/cell/GridActionsCell.d.ts +3 -3
  12. package/components/cell/GridActionsCell.js +3 -3
  13. package/components/cell/GridBooleanCell.d.ts +1 -1
  14. package/components/cell/GridEditBooleanCell.d.ts +2 -2
  15. package/components/cell/GridEditDateCell.d.ts +2 -2
  16. package/components/cell/GridEditInputCell.d.ts +1 -1
  17. package/components/cell/GridEditInputCell.js +4 -1
  18. package/components/cell/GridEditSingleSelectCell.d.ts +3 -3
  19. package/components/cell/GridEditSingleSelectCell.js +5 -5
  20. package/components/cell/GridSkeletonCell.d.ts +1 -1
  21. package/components/columnHeaders/ColumnHeaderMenuIcon.d.ts +1 -1
  22. package/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  23. package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -2
  24. package/components/columnHeaders/GridColumnHeaderFilterIconButton.d.ts +1 -1
  25. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  26. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -2
  27. package/components/columnHeaders/GridColumnHeaderSeparator.d.ts +1 -1
  28. package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
  29. package/components/columnHeaders/GridColumnHeaderTitle.d.ts +1 -1
  30. package/components/containers/GridRoot.js +1 -3
  31. package/components/index.d.ts +0 -1
  32. package/components/index.js +1 -2
  33. package/components/menu/GridMenu.d.ts +1 -1
  34. package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
  35. package/components/menu/columnMenu/menuItems/GridColumnMenuColumnsItem.d.ts +2 -2
  36. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.d.ts +2 -2
  37. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.d.ts +2 -2
  38. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.d.ts +2 -2
  39. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.d.ts +2 -2
  40. package/components/panel/GridColumnsPanel.d.ts +2 -2
  41. package/components/panel/GridPanelContent.d.ts +1 -1
  42. package/components/panel/GridPanelFooter.d.ts +1 -1
  43. package/components/panel/GridPanelHeader.d.ts +1 -1
  44. package/components/panel/GridPreferencesPanel.js +3 -1
  45. package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +15 -2
  46. package/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  47. package/components/panel/filterPanel/GridFilterInputDate.d.ts +9 -2
  48. package/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  49. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.d.ts +2 -2
  50. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +2 -2
  51. package/components/panel/filterPanel/GridFilterInputSingleSelect.d.ts +9 -2
  52. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  53. package/components/panel/filterPanel/GridFilterInputValue.d.ts +11 -4
  54. package/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  55. package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -1
  56. package/components/panel/filterPanel/GridFilterPanel.js +1 -1
  57. package/components/panel/filterPanel/index.d.ts +3 -1
  58. package/components/panel/filterPanel/index.js +2 -1
  59. package/components/toolbar/GridToolbarColumnsButton.js +11 -6
  60. package/components/toolbar/GridToolbarDensitySelector.js +2 -2
  61. package/components/toolbar/GridToolbarExport.d.ts +2 -2
  62. package/components/toolbar/GridToolbarExportContainer.js +7 -7
  63. package/components/toolbar/GridToolbarFilterButton.js +11 -4
  64. package/components/toolbar/GridToolbarQuickFilter.d.ts +2 -2
  65. package/constants/localeTextConstants.js +26 -0
  66. package/context/GridContextProvider.d.ts +1 -1
  67. package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +10 -2
  68. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  69. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +10 -3
  70. package/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  71. package/hooks/features/dimensions/useGridDimensions.js +2 -2
  72. package/hooks/features/editing/useGridEditing.js +0 -3
  73. package/hooks/features/filter/gridFilterSelector.d.ts +2 -2
  74. package/hooks/features/filter/gridFilterSelector.js +2 -2
  75. package/hooks/features/filter/gridFilterState.d.ts +6 -6
  76. package/hooks/features/filter/gridFilterState.js +6 -0
  77. package/hooks/features/filter/useGridFilter.js +29 -9
  78. package/hooks/features/focus/gridFocusState.d.ts +2 -0
  79. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  80. package/hooks/features/focus/gridFocusStateSelector.js +6 -0
  81. package/hooks/features/focus/useGridFocus.js +55 -9
  82. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +4 -0
  83. package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  84. package/hooks/features/headerFiltering/index.d.ts +1 -0
  85. package/hooks/features/headerFiltering/index.js +1 -0
  86. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +6 -0
  87. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +91 -0
  88. package/hooks/features/index.d.ts +1 -0
  89. package/hooks/features/index.js +2 -1
  90. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +1 -1
  91. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  92. package/hooks/features/preferencesPanel/gridPreferencePanelState.d.ts +2 -0
  93. package/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  94. package/hooks/features/rows/useGridRows.js +16 -1
  95. package/hooks/features/rows/useGridRowsMeta.js +11 -12
  96. package/index.js +1 -1
  97. package/internals/index.d.ts +6 -1
  98. package/internals/index.js +4 -0
  99. package/internals/utils/index.d.ts +1 -0
  100. package/internals/utils/index.js +2 -1
  101. package/internals/utils/useProps.d.ts +8 -0
  102. package/internals/utils/useProps.js +33 -0
  103. package/legacy/DataGrid/DataGrid.js +10 -3
  104. package/legacy/DataGrid/useDataGridProps.js +8 -8
  105. package/legacy/colDef/gridNumericOperators.js +0 -6
  106. package/legacy/components/GridColumnHeaders.js +4 -9
  107. package/legacy/components/cell/GridActionsCell.js +3 -3
  108. package/legacy/components/cell/GridEditInputCell.js +4 -1
  109. package/legacy/components/cell/GridEditSingleSelectCell.js +5 -5
  110. package/legacy/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  111. package/legacy/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  112. package/legacy/components/containers/GridRoot.js +1 -3
  113. package/legacy/components/index.js +1 -2
  114. package/legacy/components/panel/GridPreferencesPanel.js +3 -1
  115. package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +79 -35
  116. package/legacy/components/panel/filterPanel/GridFilterInputDate.js +26 -5
  117. package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +55 -31
  118. package/legacy/components/panel/filterPanel/GridFilterInputValue.js +28 -5
  119. package/legacy/components/panel/filterPanel/GridFilterPanel.js +1 -1
  120. package/legacy/components/panel/filterPanel/index.js +2 -1
  121. package/legacy/components/toolbar/GridToolbarColumnsButton.js +11 -5
  122. package/legacy/components/toolbar/GridToolbarDensitySelector.js +2 -2
  123. package/legacy/components/toolbar/GridToolbarExportContainer.js +7 -7
  124. package/legacy/components/toolbar/GridToolbarFilterButton.js +11 -4
  125. package/legacy/constants/localeTextConstants.js +26 -0
  126. package/legacy/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  127. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -5
  128. package/legacy/hooks/features/dimensions/useGridDimensions.js +2 -2
  129. package/legacy/hooks/features/editing/useGridEditing.js +0 -3
  130. package/legacy/hooks/features/filter/gridFilterSelector.js +4 -4
  131. package/legacy/hooks/features/filter/gridFilterState.js +6 -0
  132. package/legacy/hooks/features/filter/useGridFilter.js +29 -9
  133. package/legacy/hooks/features/focus/gridFocusStateSelector.js +10 -0
  134. package/legacy/hooks/features/focus/useGridFocus.js +58 -9
  135. package/legacy/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +11 -0
  136. package/legacy/hooks/features/headerFiltering/index.js +1 -0
  137. package/legacy/hooks/features/headerFiltering/useGridHeaderFiltering.js +93 -0
  138. package/legacy/hooks/features/index.js +2 -1
  139. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  140. package/legacy/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  141. package/legacy/hooks/features/rows/useGridRows.js +16 -1
  142. package/legacy/hooks/features/rows/useGridRowsMeta.js +12 -20
  143. package/legacy/index.js +1 -1
  144. package/legacy/internals/index.js +4 -0
  145. package/legacy/internals/utils/index.js +2 -1
  146. package/legacy/internals/utils/useProps.js +33 -0
  147. package/legacy/locales/arSD.js +28 -0
  148. package/legacy/locales/beBY.js +28 -0
  149. package/legacy/locales/bgBG.js +28 -0
  150. package/legacy/locales/csCZ.js +36 -8
  151. package/legacy/locales/daDK.js +28 -0
  152. package/legacy/locales/deDE.js +28 -0
  153. package/legacy/locales/elGR.js +27 -0
  154. package/legacy/locales/esES.js +28 -0
  155. package/legacy/locales/faIR.js +28 -0
  156. package/legacy/locales/fiFI.js +28 -0
  157. package/legacy/locales/frFR.js +26 -0
  158. package/legacy/locales/heIL.js +30 -2
  159. package/legacy/locales/huHU.js +28 -0
  160. package/legacy/locales/itIT.js +28 -0
  161. package/legacy/locales/jaJP.js +28 -0
  162. package/legacy/locales/koKR.js +28 -0
  163. package/legacy/locales/nbNO.js +28 -0
  164. package/legacy/locales/nlNL.js +26 -0
  165. package/legacy/locales/plPL.js +28 -0
  166. package/legacy/locales/ptBR.js +28 -0
  167. package/legacy/locales/roRO.js +28 -0
  168. package/legacy/locales/ruRU.js +28 -0
  169. package/legacy/locales/skSK.js +28 -0
  170. package/legacy/locales/svSE.js +28 -0
  171. package/legacy/locales/trTR.js +28 -0
  172. package/legacy/locales/ukUA.js +28 -0
  173. package/legacy/locales/urPK.js +28 -0
  174. package/legacy/locales/viVN.js +27 -0
  175. package/legacy/locales/zhCN.js +28 -0
  176. package/legacy/locales/zhTW.js +28 -0
  177. package/legacy/material/index.js +2 -0
  178. package/legacy/models/api/gridHeaderFilteringApi.js +1 -0
  179. package/legacy/models/gridFilterItem.js +1 -1
  180. package/legacy/models/gridHeaderFilteringModel.js +1 -0
  181. package/legacy/models/index.js +0 -1
  182. package/locales/arSD.js +28 -0
  183. package/locales/beBY.js +28 -0
  184. package/locales/bgBG.js +28 -0
  185. package/locales/csCZ.js +36 -8
  186. package/locales/daDK.js +28 -0
  187. package/locales/deDE.js +28 -0
  188. package/locales/elGR.js +27 -0
  189. package/locales/esES.js +28 -0
  190. package/locales/faIR.js +28 -0
  191. package/locales/fiFI.js +28 -0
  192. package/locales/frFR.js +26 -0
  193. package/locales/heIL.js +30 -2
  194. package/locales/huHU.js +28 -0
  195. package/locales/itIT.js +28 -0
  196. package/locales/jaJP.js +28 -0
  197. package/locales/koKR.js +28 -0
  198. package/locales/nbNO.js +28 -0
  199. package/locales/nlNL.js +26 -0
  200. package/locales/plPL.js +28 -0
  201. package/locales/ptBR.js +28 -0
  202. package/locales/roRO.js +28 -0
  203. package/locales/ruRU.js +28 -0
  204. package/locales/skSK.js +28 -0
  205. package/locales/svSE.js +28 -0
  206. package/locales/trTR.js +28 -0
  207. package/locales/ukUA.js +28 -0
  208. package/locales/urPK.js +28 -0
  209. package/locales/viVN.js +27 -0
  210. package/locales/zhCN.js +28 -0
  211. package/locales/zhTW.js +28 -0
  212. package/material/components/MUISelectOption.d.ts +2 -2
  213. package/material/index.d.ts +3 -66
  214. package/material/index.js +2 -0
  215. package/models/api/gridApiCommon.d.ts +3 -2
  216. package/models/api/gridCoreApi.d.ts +4 -0
  217. package/models/api/gridFilterApi.d.ts +3 -1
  218. package/models/api/gridFocusApi.d.ts +6 -0
  219. package/models/api/gridHeaderFilteringApi.d.ts +30 -0
  220. package/models/api/gridHeaderFilteringApi.js +1 -0
  221. package/models/api/gridLocaleTextApi.d.ts +25 -0
  222. package/models/api/gridPreferencesPanelApi.d.ts +3 -1
  223. package/models/events/gridEventLookup.d.ts +27 -1
  224. package/models/gridFilterItem.d.ts +1 -1
  225. package/models/gridFilterItem.js +1 -1
  226. package/models/gridFilterOperator.d.ts +5 -1
  227. package/models/gridHeaderFilteringModel.d.ts +5 -0
  228. package/models/gridHeaderFilteringModel.js +1 -0
  229. package/models/gridSlotsComponent.d.ts +16 -4
  230. package/models/gridStateCommunity.d.ts +4 -0
  231. package/models/index.d.ts +1 -1
  232. package/models/index.js +0 -1
  233. package/models/props/DataGridProps.d.ts +5 -0
  234. package/modern/DataGrid/DataGrid.js +10 -3
  235. package/modern/DataGrid/useDataGridProps.js +5 -12
  236. package/modern/colDef/gridNumericOperators.js +0 -6
  237. package/modern/components/GridColumnHeaders.js +4 -9
  238. package/modern/components/cell/GridActionsCell.js +3 -3
  239. package/modern/components/cell/GridEditInputCell.js +4 -1
  240. package/modern/components/cell/GridEditSingleSelectCell.js +5 -5
  241. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  242. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +13 -4
  243. package/modern/components/containers/GridRoot.js +1 -3
  244. package/modern/components/index.js +1 -2
  245. package/modern/components/panel/GridPreferencesPanel.js +3 -1
  246. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +80 -36
  247. package/modern/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  248. package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  249. package/modern/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  250. package/modern/components/panel/filterPanel/GridFilterPanel.js +1 -1
  251. package/modern/components/panel/filterPanel/index.js +2 -1
  252. package/modern/components/toolbar/GridToolbarColumnsButton.js +11 -6
  253. package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -2
  254. package/modern/components/toolbar/GridToolbarExportContainer.js +7 -7
  255. package/modern/components/toolbar/GridToolbarFilterButton.js +11 -4
  256. package/modern/constants/localeTextConstants.js +26 -0
  257. package/modern/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  258. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  259. package/modern/hooks/features/dimensions/useGridDimensions.js +2 -2
  260. package/modern/hooks/features/editing/useGridEditing.js +0 -3
  261. package/modern/hooks/features/filter/gridFilterSelector.js +2 -2
  262. package/modern/hooks/features/filter/gridFilterState.js +6 -0
  263. package/modern/hooks/features/filter/useGridFilter.js +29 -9
  264. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -0
  265. package/modern/hooks/features/focus/useGridFocus.js +55 -9
  266. package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +5 -0
  267. package/modern/hooks/features/headerFiltering/index.js +1 -0
  268. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +90 -0
  269. package/modern/hooks/features/index.js +2 -1
  270. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  271. package/modern/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  272. package/modern/hooks/features/rows/useGridRows.js +16 -1
  273. package/modern/hooks/features/rows/useGridRowsMeta.js +11 -12
  274. package/modern/index.js +1 -1
  275. package/modern/internals/index.js +4 -0
  276. package/modern/internals/utils/index.js +2 -1
  277. package/modern/internals/utils/useProps.js +32 -0
  278. package/modern/locales/arSD.js +28 -0
  279. package/modern/locales/beBY.js +28 -0
  280. package/modern/locales/bgBG.js +28 -0
  281. package/modern/locales/csCZ.js +36 -8
  282. package/modern/locales/daDK.js +28 -0
  283. package/modern/locales/deDE.js +28 -0
  284. package/modern/locales/elGR.js +27 -0
  285. package/modern/locales/esES.js +28 -0
  286. package/modern/locales/faIR.js +28 -0
  287. package/modern/locales/fiFI.js +28 -0
  288. package/modern/locales/frFR.js +26 -0
  289. package/modern/locales/heIL.js +30 -2
  290. package/modern/locales/huHU.js +28 -0
  291. package/modern/locales/itIT.js +28 -0
  292. package/modern/locales/jaJP.js +28 -0
  293. package/modern/locales/koKR.js +28 -0
  294. package/modern/locales/nbNO.js +28 -0
  295. package/modern/locales/nlNL.js +26 -0
  296. package/modern/locales/plPL.js +28 -0
  297. package/modern/locales/ptBR.js +28 -0
  298. package/modern/locales/roRO.js +28 -0
  299. package/modern/locales/ruRU.js +28 -0
  300. package/modern/locales/skSK.js +28 -0
  301. package/modern/locales/svSE.js +28 -0
  302. package/modern/locales/trTR.js +28 -0
  303. package/modern/locales/ukUA.js +28 -0
  304. package/modern/locales/urPK.js +28 -0
  305. package/modern/locales/viVN.js +27 -0
  306. package/modern/locales/zhCN.js +28 -0
  307. package/modern/locales/zhTW.js +28 -0
  308. package/modern/material/index.js +2 -0
  309. package/modern/models/api/gridHeaderFilteringApi.js +1 -0
  310. package/modern/models/gridFilterItem.js +1 -1
  311. package/modern/models/gridHeaderFilteringModel.js +1 -0
  312. package/modern/models/index.js +0 -1
  313. package/node/DataGrid/DataGrid.js +10 -3
  314. package/node/DataGrid/useDataGridProps.js +4 -11
  315. package/node/colDef/gridNumericOperators.js +0 -6
  316. package/node/components/GridColumnHeaders.js +3 -8
  317. package/node/components/cell/GridActionsCell.js +3 -3
  318. package/node/components/cell/GridEditInputCell.js +4 -1
  319. package/node/components/cell/GridEditSingleSelectCell.js +5 -5
  320. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +3 -3
  321. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +12 -3
  322. package/node/components/containers/GridRoot.js +1 -3
  323. package/node/components/index.js +0 -11
  324. package/node/components/panel/GridPreferencesPanel.js +3 -1
  325. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +78 -35
  326. package/node/components/panel/filterPanel/GridFilterInputDate.js +27 -6
  327. package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +56 -32
  328. package/node/components/panel/filterPanel/GridFilterInputValue.js +29 -6
  329. package/node/components/panel/filterPanel/GridFilterPanel.js +2 -1
  330. package/node/components/panel/filterPanel/index.js +26 -8
  331. package/node/components/toolbar/GridToolbarColumnsButton.js +11 -6
  332. package/node/components/toolbar/GridToolbarDensitySelector.js +2 -2
  333. package/node/components/toolbar/GridToolbarExportContainer.js +7 -7
  334. package/node/components/toolbar/GridToolbarFilterButton.js +10 -3
  335. package/node/constants/localeTextConstants.js +26 -0
  336. package/node/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -1
  337. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +4 -2
  338. package/node/hooks/features/dimensions/useGridDimensions.js +2 -2
  339. package/node/hooks/features/editing/useGridEditing.js +0 -3
  340. package/node/hooks/features/filter/gridFilterSelector.js +2 -2
  341. package/node/hooks/features/filter/gridFilterState.js +6 -0
  342. package/node/hooks/features/filter/useGridFilter.js +30 -10
  343. package/node/hooks/features/focus/gridFocusStateSelector.js +9 -1
  344. package/node/hooks/features/focus/useGridFocus.js +55 -9
  345. package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +15 -0
  346. package/node/hooks/features/headerFiltering/index.js +16 -0
  347. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +101 -0
  348. package/node/hooks/features/index.js +11 -0
  349. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +113 -4
  350. package/node/hooks/features/preferencesPanel/useGridPreferencesPanel.js +4 -2
  351. package/node/hooks/features/rows/useGridRows.js +16 -1
  352. package/node/hooks/features/rows/useGridRowsMeta.js +11 -12
  353. package/node/index.js +1 -1
  354. package/node/internals/index.js +46 -0
  355. package/node/internals/utils/index.js +11 -0
  356. package/node/internals/utils/useProps.js +41 -0
  357. package/node/locales/arSD.js +28 -0
  358. package/node/locales/beBY.js +28 -0
  359. package/node/locales/bgBG.js +28 -0
  360. package/node/locales/csCZ.js +36 -8
  361. package/node/locales/daDK.js +28 -0
  362. package/node/locales/deDE.js +28 -0
  363. package/node/locales/elGR.js +27 -0
  364. package/node/locales/esES.js +28 -0
  365. package/node/locales/faIR.js +28 -0
  366. package/node/locales/fiFI.js +28 -0
  367. package/node/locales/frFR.js +26 -0
  368. package/node/locales/heIL.js +30 -2
  369. package/node/locales/huHU.js +28 -0
  370. package/node/locales/itIT.js +28 -0
  371. package/node/locales/jaJP.js +28 -0
  372. package/node/locales/koKR.js +28 -0
  373. package/node/locales/nbNO.js +28 -0
  374. package/node/locales/nlNL.js +26 -0
  375. package/node/locales/plPL.js +28 -0
  376. package/node/locales/ptBR.js +28 -0
  377. package/node/locales/roRO.js +28 -0
  378. package/node/locales/ruRU.js +28 -0
  379. package/node/locales/skSK.js +28 -0
  380. package/node/locales/svSE.js +28 -0
  381. package/node/locales/trTR.js +28 -0
  382. package/node/locales/ukUA.js +28 -0
  383. package/node/locales/urPK.js +28 -0
  384. package/node/locales/viVN.js +27 -0
  385. package/node/locales/zhCN.js +28 -0
  386. package/node/locales/zhTW.js +28 -0
  387. package/node/material/index.js +2 -0
  388. package/node/models/api/gridHeaderFilteringApi.js +5 -0
  389. package/node/models/gridFilterItem.js +1 -1
  390. package/node/models/gridHeaderFilteringModel.js +5 -0
  391. package/node/models/index.js +0 -11
  392. package/package.json +4 -4
  393. package/components/GridScrollArea.d.ts +0 -10
  394. package/components/GridScrollArea.js +0 -117
  395. package/legacy/components/GridScrollArea.js +0 -119
  396. package/legacy/lib/createDetectElementResize/index.js +0 -145
  397. package/lib/createDetectElementResize/index.d.ts +0 -18
  398. package/lib/createDetectElementResize/index.js +0 -145
  399. package/lib/createDetectElementResize/types.d.ts +0 -9
  400. package/modern/components/GridScrollArea.js +0 -117
  401. package/modern/lib/createDetectElementResize/index.js +0 -145
  402. package/node/components/GridScrollArea.js +0 -126
  403. package/node/lib/createDetectElementResize/index.js +0 -151
@@ -1,145 +0,0 @@
1
- /**
2
- * Detect Element Resize.
3
- * https://github.com/sdecima/javascript-detect-element-resize
4
- * Sebastian Decima
5
- *
6
- * Forked from version 0.5.3; includes the following modifications:
7
- * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
8
- * 2) Defer initialization code via a top-level function wrapper (to support SSR).
9
- * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
10
- * 4) Add nonce for style element.
11
- *
12
- * TODO replace with https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver
13
- * once browser support allows it.
14
- **/
15
- export default function createDetectElementResize(nonce, hostWindow) {
16
- var resetTriggers = function resetTriggers(element) {
17
- var triggers = element.__resizeTriggers__,
18
- expand = triggers.firstElementChild,
19
- contract = triggers.lastElementChild,
20
- expandChild = expand.firstElementChild;
21
- contract.scrollLeft = contract.scrollWidth;
22
- contract.scrollTop = contract.scrollHeight;
23
- expandChild.style.width = expand.offsetWidth + 1 + 'px';
24
- expandChild.style.height = expand.offsetHeight + 1 + 'px';
25
- expand.scrollLeft = expand.scrollWidth;
26
- expand.scrollTop = expand.scrollHeight;
27
- };
28
- var checkTriggers = function checkTriggers(element) {
29
- return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
30
- };
31
- var scrollListener = function scrollListener(e) {
32
- // Don't measure (which forces) reflow for scrolls that happen inside of children!
33
- if (e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
34
- return;
35
- }
36
- var element = this;
37
- resetTriggers(this);
38
- if (this.__resizeRAF__) {
39
- hostWindow.cancelAnimationFrame(this.__resizeRAF__);
40
- }
41
- this.__resizeRAF__ = hostWindow.requestAnimationFrame(function () {
42
- if (checkTriggers(element)) {
43
- element.__resizeLast__.width = element.offsetWidth;
44
- element.__resizeLast__.height = element.offsetHeight;
45
- element.__resizeListeners__.forEach(function (fn) {
46
- fn.call(element, e);
47
- });
48
- }
49
- });
50
- };
51
-
52
- /* Detect CSS Animations support to detect element display/re-attach */
53
- var animation = false,
54
- keyframeprefix = '',
55
- animationstartevent = 'animationstart',
56
- domPrefixes = 'Webkit Moz O ms'.split(' '),
57
- startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
58
- pfx = '';
59
- {
60
- var elm = document.createElement('fakeelement');
61
- if (elm.style.animationName !== undefined) {
62
- animation = true;
63
- }
64
- if (animation === false) {
65
- for (var i = 0; i < domPrefixes.length; i++) {
66
- if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
67
- pfx = domPrefixes[i];
68
- keyframeprefix = '-' + pfx.toLowerCase() + '-';
69
- animationstartevent = startEvents[i];
70
- animation = true;
71
- break;
72
- }
73
- }
74
- }
75
- }
76
- var animationName = 'resizeanim';
77
- var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
78
- var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
79
- var createStyles = function createStyles(doc, root) {
80
- if (!root.getElementById('muiDetectElementResize')) {
81
- //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
82
- var css = (animationKeyframes ? animationKeyframes : '') + '.Mui-resizeTriggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.Mui-resizeTriggers, .Mui-resizeTriggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .Mui-resizeTriggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
83
- container = root.constructor.name === 'ShadowRoot' ? root : doc.head || doc.getElementsByTagName('head')[0],
84
- style = doc.createElement('style');
85
- style.id = 'muiDetectElementResize';
86
- style.type = 'text/css';
87
- if (nonce != null) {
88
- style.setAttribute('nonce', nonce);
89
- }
90
- if (style.styleSheet) {
91
- style.styleSheet.cssText = css;
92
- } else {
93
- style.appendChild(doc.createTextNode(css));
94
- }
95
- container.appendChild(style);
96
- }
97
- };
98
- var addResizeListener = function addResizeListener(element, fn) {
99
- if (!element.__resizeTriggers__) {
100
- var doc = element.ownerDocument;
101
- var elementStyle = hostWindow.getComputedStyle(element);
102
- if (elementStyle && elementStyle.position == 'static') {
103
- element.style.position = 'relative';
104
- }
105
- createStyles(doc, element.getRootNode());
106
- element.__resizeLast__ = {};
107
- element.__resizeListeners__ = [];
108
- (element.__resizeTriggers__ = doc.createElement('div')).className = 'Mui-resizeTriggers';
109
- element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';
110
- element.appendChild(element.__resizeTriggers__);
111
- resetTriggers(element);
112
- element.addEventListener('scroll', scrollListener, true);
113
-
114
- /* Listen for a css animation to detect element display/re-attach */
115
- if (animationstartevent) {
116
- element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
117
- if (e.animationName == animationName) {
118
- resetTriggers(element);
119
- }
120
- };
121
- element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
122
- }
123
- }
124
- element.__resizeListeners__.push(fn);
125
- };
126
- var removeResizeListener = function removeResizeListener(element, fn) {
127
- element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
128
- if (!element.__resizeListeners__.length) {
129
- element.removeEventListener('scroll', scrollListener, true);
130
- if (element.__resizeTriggers__.__animationListener__) {
131
- element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
132
- element.__resizeTriggers__.__animationListener__ = null;
133
- }
134
- try {
135
- element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
136
- } catch (e) {
137
- // Preact compat; see developit/preact-compat/issues/228
138
- }
139
- }
140
- };
141
- return {
142
- addResizeListener,
143
- removeResizeListener
144
- };
145
- }
@@ -1,9 +0,0 @@
1
- interface DetectElementResize {
2
- addResizeListener: any;
3
- removeResizeListener: any;
4
- }
5
-
6
- export default function createDetectElementResize(
7
- nonce?: string,
8
- hostWindow?: Window,
9
- ): DetectElementResize;
@@ -1,117 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import PropTypes from 'prop-types';
4
- import clsx from 'clsx';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
6
- import { styled } from '@mui/system';
7
- import { useGridApiEventHandler } from '../hooks/utils/useGridApiEventHandler';
8
- import { useGridApiContext } from '../hooks/utils/useGridApiContext';
9
- import { getDataGridUtilityClass, gridClasses } from '../constants/gridClasses';
10
- import { useGridRootProps } from '../hooks/utils/useGridRootProps';
11
- import { gridDensityFactorSelector } from '../hooks/features/density/densitySelector';
12
- import { useGridSelector } from '../hooks/utils/useGridSelector';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
- const CLIFF = 1;
15
- const SLOP = 1.5;
16
- const useUtilityClasses = ownerState => {
17
- const {
18
- scrollDirection,
19
- classes
20
- } = ownerState;
21
- const slots = {
22
- root: ['scrollArea', `scrollArea--${scrollDirection}`]
23
- };
24
- return composeClasses(slots, getDataGridUtilityClass, classes);
25
- };
26
- const GridScrollAreaRawRoot = styled('div', {
27
- name: 'MuiDataGrid',
28
- slot: 'ScrollArea',
29
- overridesResolver: (props, styles) => [{
30
- [`&.${gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
31
- }, {
32
- [`&.${gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
33
- }, styles.scrollArea]
34
- })(() => ({
35
- position: 'absolute',
36
- top: 0,
37
- zIndex: 101,
38
- width: 20,
39
- bottom: 0,
40
- [`&.${gridClasses['scrollArea--left']}`]: {
41
- left: 0
42
- },
43
- [`&.${gridClasses['scrollArea--right']}`]: {
44
- right: 0
45
- }
46
- }));
47
- function GridScrollAreaRaw(props) {
48
- const {
49
- scrollDirection
50
- } = props;
51
- const rootRef = React.useRef(null);
52
- const apiRef = useGridApiContext();
53
- const timeout = React.useRef();
54
- const [dragging, setDragging] = React.useState(false);
55
- const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector);
56
- const scrollPosition = React.useRef({
57
- left: 0,
58
- top: 0
59
- });
60
- const rootProps = useGridRootProps();
61
- const ownerState = _extends({}, rootProps, {
62
- scrollDirection
63
- });
64
- const classes = useUtilityClasses(ownerState);
65
- const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
66
- const handleScrolling = React.useCallback(newScrollPosition => {
67
- scrollPosition.current = newScrollPosition;
68
- }, []);
69
- const handleDragOver = React.useCallback(event => {
70
- let offset;
71
- if (scrollDirection === 'left') {
72
- offset = event.clientX - rootRef.current.getBoundingClientRect().right;
73
- } else if (scrollDirection === 'right') {
74
- offset = Math.max(1, event.clientX - rootRef.current.getBoundingClientRect().left);
75
- } else {
76
- throw new Error('MUI: Wrong drag direction');
77
- }
78
- offset = (offset - CLIFF) * SLOP + CLIFF;
79
- clearTimeout(timeout.current);
80
- // Avoid freeze and inertia.
81
- timeout.current = setTimeout(() => {
82
- apiRef.current.scroll({
83
- left: scrollPosition.current.left + offset,
84
- top: scrollPosition.current.top
85
- });
86
- });
87
- }, [scrollDirection, apiRef]);
88
- React.useEffect(() => {
89
- return () => {
90
- clearTimeout(timeout.current);
91
- };
92
- }, []);
93
- const toggleDragging = React.useCallback(() => {
94
- setDragging(prevDragging => !prevDragging);
95
- }, []);
96
- useGridApiEventHandler(apiRef, 'scrollPositionChange', handleScrolling);
97
- useGridApiEventHandler(apiRef, 'columnHeaderDragStart', toggleDragging);
98
- useGridApiEventHandler(apiRef, 'columnHeaderDragEnd', toggleDragging);
99
- return dragging ? /*#__PURE__*/_jsx(GridScrollAreaRawRoot, {
100
- ref: rootRef,
101
- className: clsx(classes.root),
102
- ownerState: ownerState,
103
- onDragOver: handleDragOver,
104
- style: {
105
- height: headerHeight
106
- }
107
- }) : null;
108
- }
109
- process.env.NODE_ENV !== "production" ? GridScrollAreaRaw.propTypes = {
110
- // ----------------------------- Warning --------------------------------
111
- // | These PropTypes are generated from the TypeScript type definitions |
112
- // | To update them edit the TypeScript types and run "yarn proptypes" |
113
- // ----------------------------------------------------------------------
114
- scrollDirection: PropTypes.oneOf(['left', 'right']).isRequired
115
- } : void 0;
116
- const GridScrollArea = /*#__PURE__*/React.memo(GridScrollAreaRaw);
117
- export { GridScrollArea };
@@ -1,145 +0,0 @@
1
- /**
2
- * Detect Element Resize.
3
- * https://github.com/sdecima/javascript-detect-element-resize
4
- * Sebastian Decima
5
- *
6
- * Forked from version 0.5.3; includes the following modifications:
7
- * 1) Guard against unsafe 'window' and 'document' references (to support SSR).
8
- * 2) Defer initialization code via a top-level function wrapper (to support SSR).
9
- * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.
10
- * 4) Add nonce for style element.
11
- *
12
- * TODO replace with https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver
13
- * once browser support allows it.
14
- **/
15
- export default function createDetectElementResize(nonce, hostWindow) {
16
- var resetTriggers = function resetTriggers(element) {
17
- var triggers = element.__resizeTriggers__,
18
- expand = triggers.firstElementChild,
19
- contract = triggers.lastElementChild,
20
- expandChild = expand.firstElementChild;
21
- contract.scrollLeft = contract.scrollWidth;
22
- contract.scrollTop = contract.scrollHeight;
23
- expandChild.style.width = expand.offsetWidth + 1 + 'px';
24
- expandChild.style.height = expand.offsetHeight + 1 + 'px';
25
- expand.scrollLeft = expand.scrollWidth;
26
- expand.scrollTop = expand.scrollHeight;
27
- };
28
- var checkTriggers = function checkTriggers(element) {
29
- return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;
30
- };
31
- var scrollListener = function scrollListener(e) {
32
- // Don't measure (which forces) reflow for scrolls that happen inside of children!
33
- if (e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {
34
- return;
35
- }
36
- var element = this;
37
- resetTriggers(this);
38
- if (this.__resizeRAF__) {
39
- hostWindow.cancelAnimationFrame(this.__resizeRAF__);
40
- }
41
- this.__resizeRAF__ = hostWindow.requestAnimationFrame(function () {
42
- if (checkTriggers(element)) {
43
- element.__resizeLast__.width = element.offsetWidth;
44
- element.__resizeLast__.height = element.offsetHeight;
45
- element.__resizeListeners__.forEach(function (fn) {
46
- fn.call(element, e);
47
- });
48
- }
49
- });
50
- };
51
-
52
- /* Detect CSS Animations support to detect element display/re-attach */
53
- var animation = false,
54
- keyframeprefix = '',
55
- animationstartevent = 'animationstart',
56
- domPrefixes = 'Webkit Moz O ms'.split(' '),
57
- startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),
58
- pfx = '';
59
- {
60
- var elm = document.createElement('fakeelement');
61
- if (elm.style.animationName !== undefined) {
62
- animation = true;
63
- }
64
- if (animation === false) {
65
- for (var i = 0; i < domPrefixes.length; i++) {
66
- if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
67
- pfx = domPrefixes[i];
68
- keyframeprefix = '-' + pfx.toLowerCase() + '-';
69
- animationstartevent = startEvents[i];
70
- animation = true;
71
- break;
72
- }
73
- }
74
- }
75
- }
76
- var animationName = 'resizeanim';
77
- var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';
78
- var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';
79
- var createStyles = function createStyles(doc, root) {
80
- if (!root.getElementById('muiDetectElementResize')) {
81
- //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360
82
- var css = (animationKeyframes ? animationKeyframes : '') + '.Mui-resizeTriggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.Mui-resizeTriggers, .Mui-resizeTriggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .Mui-resizeTriggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',
83
- container = root.constructor.name === 'ShadowRoot' ? root : doc.head || doc.getElementsByTagName('head')[0],
84
- style = doc.createElement('style');
85
- style.id = 'muiDetectElementResize';
86
- style.type = 'text/css';
87
- if (nonce != null) {
88
- style.setAttribute('nonce', nonce);
89
- }
90
- if (style.styleSheet) {
91
- style.styleSheet.cssText = css;
92
- } else {
93
- style.appendChild(doc.createTextNode(css));
94
- }
95
- container.appendChild(style);
96
- }
97
- };
98
- var addResizeListener = function addResizeListener(element, fn) {
99
- if (!element.__resizeTriggers__) {
100
- var doc = element.ownerDocument;
101
- var elementStyle = hostWindow.getComputedStyle(element);
102
- if (elementStyle && elementStyle.position == 'static') {
103
- element.style.position = 'relative';
104
- }
105
- createStyles(doc, element.getRootNode());
106
- element.__resizeLast__ = {};
107
- element.__resizeListeners__ = [];
108
- (element.__resizeTriggers__ = doc.createElement('div')).className = 'Mui-resizeTriggers';
109
- element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + '<div class="contract-trigger"></div>';
110
- element.appendChild(element.__resizeTriggers__);
111
- resetTriggers(element);
112
- element.addEventListener('scroll', scrollListener, true);
113
-
114
- /* Listen for a css animation to detect element display/re-attach */
115
- if (animationstartevent) {
116
- element.__resizeTriggers__.__animationListener__ = function animationListener(e) {
117
- if (e.animationName == animationName) {
118
- resetTriggers(element);
119
- }
120
- };
121
- element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
122
- }
123
- }
124
- element.__resizeListeners__.push(fn);
125
- };
126
- var removeResizeListener = function removeResizeListener(element, fn) {
127
- element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
128
- if (!element.__resizeListeners__.length) {
129
- element.removeEventListener('scroll', scrollListener, true);
130
- if (element.__resizeTriggers__.__animationListener__) {
131
- element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);
132
- element.__resizeTriggers__.__animationListener__ = null;
133
- }
134
- try {
135
- element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);
136
- } catch (e) {
137
- // Preact compat; see developit/preact-compat/issues/228
138
- }
139
- }
140
- };
141
- return {
142
- addResizeListener,
143
- removeResizeListener
144
- };
145
- }
@@ -1,126 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.GridScrollArea = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var React = _interopRequireWildcard(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _clsx = _interopRequireDefault(require("clsx"));
12
- var _utils = require("@mui/utils");
13
- var _system = require("@mui/system");
14
- var _useGridApiEventHandler = require("../hooks/utils/useGridApiEventHandler");
15
- var _useGridApiContext = require("../hooks/utils/useGridApiContext");
16
- var _gridClasses = require("../constants/gridClasses");
17
- var _useGridRootProps = require("../hooks/utils/useGridRootProps");
18
- var _densitySelector = require("../hooks/features/density/densitySelector");
19
- var _useGridSelector = require("../hooks/utils/useGridSelector");
20
- var _jsxRuntime = require("react/jsx-runtime");
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
- const CLIFF = 1;
24
- const SLOP = 1.5;
25
- const useUtilityClasses = ownerState => {
26
- const {
27
- scrollDirection,
28
- classes
29
- } = ownerState;
30
- const slots = {
31
- root: ['scrollArea', `scrollArea--${scrollDirection}`]
32
- };
33
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
34
- };
35
- const GridScrollAreaRawRoot = (0, _system.styled)('div', {
36
- name: 'MuiDataGrid',
37
- slot: 'ScrollArea',
38
- overridesResolver: (props, styles) => [{
39
- [`&.${_gridClasses.gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
40
- }, {
41
- [`&.${_gridClasses.gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
42
- }, styles.scrollArea]
43
- })(() => ({
44
- position: 'absolute',
45
- top: 0,
46
- zIndex: 101,
47
- width: 20,
48
- bottom: 0,
49
- [`&.${_gridClasses.gridClasses['scrollArea--left']}`]: {
50
- left: 0
51
- },
52
- [`&.${_gridClasses.gridClasses['scrollArea--right']}`]: {
53
- right: 0
54
- }
55
- }));
56
- function GridScrollAreaRaw(props) {
57
- const {
58
- scrollDirection
59
- } = props;
60
- const rootRef = React.useRef(null);
61
- const apiRef = (0, _useGridApiContext.useGridApiContext)();
62
- const timeout = React.useRef();
63
- const [dragging, setDragging] = React.useState(false);
64
- const densityFactor = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityFactorSelector);
65
- const scrollPosition = React.useRef({
66
- left: 0,
67
- top: 0
68
- });
69
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
70
- const ownerState = (0, _extends2.default)({}, rootProps, {
71
- scrollDirection
72
- });
73
- const classes = useUtilityClasses(ownerState);
74
- const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
75
- const handleScrolling = React.useCallback(newScrollPosition => {
76
- scrollPosition.current = newScrollPosition;
77
- }, []);
78
- const handleDragOver = React.useCallback(event => {
79
- let offset;
80
- if (scrollDirection === 'left') {
81
- offset = event.clientX - rootRef.current.getBoundingClientRect().right;
82
- } else if (scrollDirection === 'right') {
83
- offset = Math.max(1, event.clientX - rootRef.current.getBoundingClientRect().left);
84
- } else {
85
- throw new Error('MUI: Wrong drag direction');
86
- }
87
- offset = (offset - CLIFF) * SLOP + CLIFF;
88
- clearTimeout(timeout.current);
89
- // Avoid freeze and inertia.
90
- timeout.current = setTimeout(() => {
91
- apiRef.current.scroll({
92
- left: scrollPosition.current.left + offset,
93
- top: scrollPosition.current.top
94
- });
95
- });
96
- }, [scrollDirection, apiRef]);
97
- React.useEffect(() => {
98
- return () => {
99
- clearTimeout(timeout.current);
100
- };
101
- }, []);
102
- const toggleDragging = React.useCallback(() => {
103
- setDragging(prevDragging => !prevDragging);
104
- }, []);
105
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'scrollPositionChange', handleScrolling);
106
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', toggleDragging);
107
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', toggleDragging);
108
- return dragging ? /*#__PURE__*/(0, _jsxRuntime.jsx)(GridScrollAreaRawRoot, {
109
- ref: rootRef,
110
- className: (0, _clsx.default)(classes.root),
111
- ownerState: ownerState,
112
- onDragOver: handleDragOver,
113
- style: {
114
- height: headerHeight
115
- }
116
- }) : null;
117
- }
118
- process.env.NODE_ENV !== "production" ? GridScrollAreaRaw.propTypes = {
119
- // ----------------------------- Warning --------------------------------
120
- // | These PropTypes are generated from the TypeScript type definitions |
121
- // | To update them edit the TypeScript types and run "yarn proptypes" |
122
- // ----------------------------------------------------------------------
123
- scrollDirection: _propTypes.default.oneOf(['left', 'right']).isRequired
124
- } : void 0;
125
- const GridScrollArea = /*#__PURE__*/React.memo(GridScrollAreaRaw);
126
- exports.GridScrollArea = GridScrollArea;