@mui/x-data-grid 6.0.0-alpha.2 → 6.0.0-alpha.4

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 (293) hide show
  1. package/CHANGELOG.md +493 -141
  2. package/DataGrid/DataGrid.js +14 -34
  3. package/DataGrid/useDataGridComponent.js +8 -14
  4. package/DataGrid/useDataGridProps.js +3 -3
  5. package/colDef/gridCheckboxSelectionColDef.js +1 -1
  6. package/colDef/gridNumericOperators.d.ts +1 -1
  7. package/colDef/gridSingleSelectOperators.d.ts +1 -1
  8. package/colDef/gridStringOperators.d.ts +1 -1
  9. package/components/GridFooter.js +1 -1
  10. package/components/GridRow.js +2 -2
  11. package/components/base/GridBody.js +2 -2
  12. package/components/cell/GridEditInputCell.js +3 -8
  13. package/components/cell/GridEditSingleSelectCell.js +6 -38
  14. package/components/columnHeaders/GridColumnGroupHeader.d.ts +2 -0
  15. package/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  16. package/components/columnSelection/GridHeaderCheckbox.js +3 -3
  17. package/components/containers/GridRoot.js +4 -3
  18. package/components/panel/GridColumnsPanel.d.ts +2 -0
  19. package/components/panel/GridColumnsPanel.js +10 -4
  20. package/components/panel/filterPanel/GridFilterForm.d.ts +12 -0
  21. package/components/panel/filterPanel/GridFilterForm.js +29 -7
  22. package/components/panel/filterPanel/GridFilterPanel.d.ts +12 -0
  23. package/components/panel/filterPanel/GridFilterPanel.js +64 -19
  24. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.d.ts +1 -1
  25. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.d.ts +1 -1
  26. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.d.ts +1 -1
  27. package/hooks/core/useGridInitialization.d.ts +1 -1
  28. package/hooks/core/useGridStateInitialization.d.ts +1 -1
  29. package/hooks/features/columnGrouping/gridColumnGroupsInterfaces.d.ts +10 -1
  30. package/hooks/features/columnGrouping/gridColumnGroupsSelector.d.ts +6 -0
  31. package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +34 -1
  32. package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +15 -0
  33. package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +89 -0
  34. package/hooks/features/columnGrouping/useGridColumnGrouping.d.ts +1 -15
  35. package/hooks/features/columnGrouping/useGridColumnGrouping.js +66 -66
  36. package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +1 -1
  37. package/hooks/features/columnHeaders/useGridColumnHeaders.js +60 -116
  38. package/hooks/features/density/densitySelector.d.ts +0 -2
  39. package/hooks/features/density/densitySelector.js +1 -3
  40. package/hooks/features/density/densityState.d.ts +0 -1
  41. package/hooks/features/density/useGridDensity.d.ts +1 -1
  42. package/hooks/features/density/useGridDensity.js +9 -45
  43. package/hooks/features/dimensions/useGridDimensions.js +3 -2
  44. package/hooks/features/{editRows/gridEditRowsSelector.d.ts → editing/gridEditingSelectors.d.ts} +0 -0
  45. package/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  46. package/hooks/features/editing/index.d.ts +1 -0
  47. package/hooks/features/editing/index.js +1 -0
  48. package/hooks/features/{editRows/useGridCellEditing.new.d.ts → editing/useGridCellEditing.d.ts} +0 -0
  49. package/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  50. package/hooks/features/{editRows/useGridEditing.new.d.ts → editing/useGridEditing.d.ts} +0 -0
  51. package/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  52. package/hooks/features/{editRows/useGridRowEditing.new.d.ts → editing/useGridRowEditing.d.ts} +0 -0
  53. package/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  54. package/hooks/features/export/useGridPrintExport.js +2 -2
  55. package/hooks/features/focus/gridFocusState.d.ts +6 -0
  56. package/hooks/features/focus/gridFocusStateSelector.d.ts +2 -0
  57. package/hooks/features/focus/gridFocusStateSelector.js +6 -2
  58. package/hooks/features/focus/useGridFocus.js +69 -11
  59. package/hooks/features/index.d.ts +2 -2
  60. package/hooks/features/index.js +2 -2
  61. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
  62. package/hooks/features/{selection/gridSelectionSelector.d.ts → rowSelection/gridRowSelectionSelector.d.ts} +1 -1
  63. package/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
  64. package/hooks/features/rowSelection/index.d.ts +1 -0
  65. package/hooks/features/rowSelection/index.js +1 -0
  66. package/hooks/features/rowSelection/useGridRowSelection.d.ts +12 -0
  67. package/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  68. package/hooks/features/{selection/useGridSelectionPreProcessors.d.ts → rowSelection/useGridRowSelectionPreProcessors.d.ts} +1 -1
  69. package/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  70. package/hooks/features/rows/gridRowsInterfaces.d.ts +4 -0
  71. package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
  72. package/hooks/features/rows/gridRowsUtils.js +5 -2
  73. package/hooks/features/rows/useGridRows.js +23 -7
  74. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  75. package/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  76. package/hooks/utils/useGridApi.d.ts +1 -1
  77. package/hooks/utils/useGridApiEventHandler.d.ts +2 -2
  78. package/hooks/utils/useGridApiRef.d.ts +1 -1
  79. package/hooks/utils/useGridInitializeState.d.ts +1 -1
  80. package/hooks/utils/useGridNativeEventListener.d.ts +1 -1
  81. package/hooks/utils/useGridSelector.d.ts +1 -1
  82. package/hooks/utils/useGridState.d.ts +1 -1
  83. package/hooks/utils/useGridVisibleRows.d.ts +2 -2
  84. package/index.js +1 -1
  85. package/internals/index.d.ts +3 -5
  86. package/internals/index.js +3 -5
  87. package/legacy/DataGrid/DataGrid.js +14 -34
  88. package/legacy/DataGrid/useDataGridComponent.js +8 -14
  89. package/legacy/DataGrid/useDataGridProps.js +3 -3
  90. package/legacy/colDef/gridCheckboxSelectionColDef.js +1 -1
  91. package/legacy/components/GridFooter.js +1 -1
  92. package/legacy/components/GridRow.js +2 -2
  93. package/legacy/components/base/GridBody.js +2 -2
  94. package/legacy/components/cell/GridEditInputCell.js +3 -8
  95. package/legacy/components/cell/GridEditSingleSelectCell.js +6 -52
  96. package/legacy/components/columnHeaders/GridColumnGroupHeader.js +46 -13
  97. package/legacy/components/columnSelection/GridHeaderCheckbox.js +3 -3
  98. package/legacy/components/containers/GridRoot.js +4 -3
  99. package/legacy/components/panel/GridColumnsPanel.js +10 -3
  100. package/legacy/components/panel/filterPanel/GridFilterForm.js +31 -7
  101. package/legacy/components/panel/filterPanel/GridFilterPanel.js +67 -18
  102. package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +33 -1
  103. package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +96 -0
  104. package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +64 -64
  105. package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +70 -122
  106. package/legacy/hooks/features/density/densitySelector.js +0 -6
  107. package/legacy/hooks/features/density/useGridDensity.js +6 -44
  108. package/legacy/hooks/features/dimensions/useGridDimensions.js +3 -2
  109. package/legacy/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  110. package/legacy/hooks/features/editing/index.js +1 -0
  111. package/legacy/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  112. package/legacy/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  113. package/legacy/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  114. package/legacy/hooks/features/export/useGridPrintExport.js +2 -2
  115. package/legacy/hooks/features/focus/gridFocusStateSelector.js +8 -0
  116. package/legacy/hooks/features/focus/useGridFocus.js +72 -11
  117. package/legacy/hooks/features/index.js +2 -2
  118. package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +129 -1
  119. package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +19 -0
  120. package/legacy/hooks/features/rowSelection/index.js +1 -0
  121. package/legacy/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  122. package/legacy/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  123. package/legacy/hooks/features/rows/gridRowsUtils.js +5 -2
  124. package/legacy/hooks/features/rows/useGridRows.js +25 -7
  125. package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  126. package/legacy/index.js +1 -1
  127. package/legacy/internals/index.js +3 -5
  128. package/legacy/locales/trTR.js +17 -17
  129. package/legacy/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
  130. package/legacy/models/api/index.js +1 -1
  131. package/legacy/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
  132. package/legacy/models/index.js +1 -1
  133. package/{models/api/gridSelectionApi.js → legacy/models/params/gridColumnGroupHeaderParams.js} +0 -0
  134. package/legacy/models/params/gridEditCellParams.js +0 -4
  135. package/legacy/models/params/index.js +1 -0
  136. package/locales/trTR.js +17 -17
  137. package/models/api/gridApiCommon.d.ts +3 -6
  138. package/models/api/gridApiCommunity.d.ts +1 -7
  139. package/models/api/gridEditingApi.d.ts +36 -121
  140. package/models/api/gridFocusApi.d.ts +13 -0
  141. package/models/api/{gridSelectionApi.d.ts → gridRowSelectionApi.d.ts} +2 -2
  142. package/models/{gridSelectionModel.js → api/gridRowSelectionApi.js} +0 -0
  143. package/models/api/index.d.ts +2 -2
  144. package/models/api/index.js +1 -1
  145. package/models/colDef/gridColDef.d.ts +0 -8
  146. package/models/events/gridEventLookup.d.ts +30 -19
  147. package/models/gridColumnGrouping.d.ts +1 -26
  148. package/models/gridRowSelectionModel.d.ts +3 -0
  149. package/{modern/models/api/gridSelectionApi.js → models/gridRowSelectionModel.js} +0 -0
  150. package/models/gridStateCommunity.d.ts +2 -2
  151. package/models/index.d.ts +1 -1
  152. package/models/index.js +1 -1
  153. package/models/params/gridColumnGroupHeaderParams.d.ts +30 -0
  154. package/{modern/models/gridSelectionModel.js → models/params/gridColumnGroupHeaderParams.js} +0 -0
  155. package/models/params/gridEditCellParams.d.ts +4 -17
  156. package/models/params/gridEditCellParams.js +0 -4
  157. package/models/params/gridRowParams.d.ts +4 -4
  158. package/models/params/index.d.ts +1 -0
  159. package/models/params/index.js +1 -0
  160. package/models/props/DataGridProps.d.ts +8 -32
  161. package/modern/DataGrid/DataGrid.js +14 -34
  162. package/modern/DataGrid/useDataGridComponent.js +8 -12
  163. package/modern/DataGrid/useDataGridProps.js +3 -3
  164. package/modern/colDef/gridCheckboxSelectionColDef.js +1 -1
  165. package/modern/components/GridFooter.js +1 -1
  166. package/modern/components/GridRow.js +2 -2
  167. package/modern/components/base/GridBody.js +2 -2
  168. package/modern/components/cell/GridEditInputCell.js +3 -4
  169. package/modern/components/cell/GridEditSingleSelectCell.js +6 -34
  170. package/modern/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  171. package/modern/components/columnSelection/GridHeaderCheckbox.js +3 -3
  172. package/modern/components/containers/GridRoot.js +4 -3
  173. package/modern/components/panel/GridColumnsPanel.js +10 -4
  174. package/modern/components/panel/filterPanel/GridFilterForm.js +29 -7
  175. package/modern/components/panel/filterPanel/GridFilterPanel.js +62 -17
  176. package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +14 -1
  177. package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +83 -0
  178. package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +50 -62
  179. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +58 -98
  180. package/modern/hooks/features/density/densitySelector.js +1 -3
  181. package/modern/hooks/features/density/useGridDensity.js +9 -37
  182. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -2
  183. package/modern/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  184. package/modern/hooks/features/editing/index.js +1 -0
  185. package/modern/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +21 -6
  186. package/modern/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +3 -3
  187. package/modern/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +20 -6
  188. package/modern/hooks/features/export/useGridPrintExport.js +2 -2
  189. package/modern/hooks/features/focus/gridFocusStateSelector.js +6 -2
  190. package/modern/hooks/features/focus/useGridFocus.js +69 -11
  191. package/modern/hooks/features/index.js +2 -2
  192. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +135 -1
  193. package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +9 -0
  194. package/modern/hooks/features/rowSelection/index.js +1 -0
  195. package/modern/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +37 -37
  196. package/modern/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +1 -1
  197. package/modern/hooks/features/rows/gridRowsUtils.js +5 -2
  198. package/modern/hooks/features/rows/useGridRows.js +23 -7
  199. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +2 -2
  200. package/modern/index.js +1 -1
  201. package/modern/internals/index.js +3 -5
  202. package/modern/locales/trTR.js +17 -17
  203. package/modern/models/api/gridRowSelectionApi.js +1 -0
  204. package/modern/models/api/index.js +1 -1
  205. package/modern/models/gridRowSelectionModel.js +1 -0
  206. package/modern/models/index.js +1 -1
  207. package/modern/models/params/gridColumnGroupHeaderParams.js +1 -0
  208. package/modern/models/params/gridEditCellParams.js +0 -4
  209. package/modern/models/params/index.js +1 -0
  210. package/node/DataGrid/DataGrid.js +14 -34
  211. package/node/DataGrid/useDataGridComponent.js +9 -17
  212. package/node/DataGrid/useDataGridProps.js +3 -3
  213. package/node/colDef/gridCheckboxSelectionColDef.js +2 -2
  214. package/node/components/GridFooter.js +2 -2
  215. package/node/components/GridRow.js +2 -2
  216. package/node/components/base/GridBody.js +2 -2
  217. package/node/components/cell/GridEditInputCell.js +3 -9
  218. package/node/components/cell/GridEditSingleSelectCell.js +6 -38
  219. package/node/components/columnHeaders/GridColumnGroupHeader.js +32 -5
  220. package/node/components/columnSelection/GridHeaderCheckbox.js +3 -3
  221. package/node/components/containers/GridRoot.js +4 -2
  222. package/node/components/panel/GridColumnsPanel.js +10 -4
  223. package/node/components/panel/filterPanel/GridFilterForm.js +30 -7
  224. package/node/components/panel/filterPanel/GridFilterPanel.js +63 -19
  225. package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +40 -3
  226. package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +102 -0
  227. package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +68 -71
  228. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +57 -113
  229. package/node/hooks/features/density/densitySelector.js +2 -6
  230. package/node/hooks/features/density/useGridDensity.js +9 -48
  231. package/node/hooks/features/dimensions/useGridDimensions.js +3 -1
  232. package/node/hooks/features/{editRows/gridEditRowsSelector.js → editing/gridEditingSelectors.js} +0 -0
  233. package/node/hooks/features/{editRows → editing}/index.js +4 -4
  234. package/node/hooks/features/{editRows/useGridCellEditing.new.js → editing/useGridCellEditing.js} +28 -13
  235. package/node/hooks/features/{editRows/useGridEditing.new.js → editing/useGridEditing.js} +4 -4
  236. package/node/hooks/features/{editRows/useGridRowEditing.new.js → editing/useGridRowEditing.js} +28 -14
  237. package/node/hooks/features/export/useGridPrintExport.js +2 -2
  238. package/node/hooks/features/focus/gridFocusStateSelector.js +10 -4
  239. package/node/hooks/features/focus/useGridFocus.js +68 -10
  240. package/node/hooks/features/index.js +8 -8
  241. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +138 -1
  242. package/node/hooks/features/{selection/gridSelectionSelector.js → rowSelection/gridRowSelectionSelector.js} +6 -6
  243. package/node/hooks/features/rowSelection/index.js +18 -0
  244. package/node/hooks/features/{selection/useGridSelection.js → rowSelection/useGridRowSelection.js} +43 -43
  245. package/node/hooks/features/{selection/useGridSelectionPreProcessors.js → rowSelection/useGridRowSelectionPreProcessors.js} +3 -3
  246. package/node/hooks/features/rows/gridRowsUtils.js +5 -2
  247. package/node/hooks/features/rows/useGridRows.js +23 -7
  248. package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
  249. package/node/index.js +1 -1
  250. package/node/internals/index.js +23 -45
  251. package/node/locales/trTR.js +17 -17
  252. package/node/models/api/{gridSelectionApi.js → gridRowSelectionApi.js} +0 -0
  253. package/node/models/api/index.js +4 -4
  254. package/node/models/{gridSelectionModel.js → gridRowSelectionModel.js} +0 -0
  255. package/node/models/index.js +4 -4
  256. package/node/models/params/gridColumnGroupHeaderParams.js +5 -0
  257. package/node/models/params/gridEditCellParams.js +0 -3
  258. package/node/models/params/index.js +13 -0
  259. package/package.json +2 -2
  260. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.d.ts +0 -4
  261. package/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
  262. package/hooks/features/editRows/index.d.ts +0 -1
  263. package/hooks/features/editRows/index.js +0 -1
  264. package/hooks/features/editRows/useGridCellEditing.old.d.ts +0 -4
  265. package/hooks/features/editRows/useGridCellEditing.old.js +0 -359
  266. package/hooks/features/editRows/useGridEditing.old.d.ts +0 -11
  267. package/hooks/features/editRows/useGridEditing.old.js +0 -167
  268. package/hooks/features/editRows/useGridRowEditing.old.d.ts +0 -4
  269. package/hooks/features/editRows/useGridRowEditing.old.js +0 -334
  270. package/hooks/features/selection/gridSelectionSelector.js +0 -9
  271. package/hooks/features/selection/index.d.ts +0 -1
  272. package/hooks/features/selection/index.js +0 -1
  273. package/hooks/features/selection/useGridSelection.d.ts +0 -12
  274. package/legacy/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -35
  275. package/legacy/hooks/features/editRows/index.js +0 -1
  276. package/legacy/hooks/features/editRows/useGridCellEditing.old.js +0 -411
  277. package/legacy/hooks/features/editRows/useGridEditing.old.js +0 -184
  278. package/legacy/hooks/features/editRows/useGridRowEditing.old.js +0 -505
  279. package/legacy/hooks/features/selection/gridSelectionSelector.js +0 -19
  280. package/legacy/hooks/features/selection/index.js +0 -1
  281. package/models/gridSelectionModel.d.ts +0 -3
  282. package/modern/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -29
  283. package/modern/hooks/features/editRows/index.js +0 -1
  284. package/modern/hooks/features/editRows/useGridCellEditing.old.js +0 -355
  285. package/modern/hooks/features/editRows/useGridEditing.old.js +0 -163
  286. package/modern/hooks/features/editRows/useGridRowEditing.old.js +0 -326
  287. package/modern/hooks/features/selection/gridSelectionSelector.js +0 -9
  288. package/modern/hooks/features/selection/index.js +0 -1
  289. package/node/hooks/features/columnGrouping/useGridColumnGroupingPreProcessors.js +0 -55
  290. package/node/hooks/features/editRows/useGridCellEditing.old.js +0 -380
  291. package/node/hooks/features/editRows/useGridEditing.old.js +0 -193
  292. package/node/hooks/features/editRows/useGridRowEditing.old.js +0 -358
  293. package/node/hooks/features/selection/index.js +0 -18
@@ -1,380 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.useCellEditing = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var React = _interopRequireWildcard(require("react"));
13
-
14
- var _utils = require("@mui/material/utils");
15
-
16
- var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
17
-
18
- var _gridEditRowModel = require("../../../models/gridEditRowModel");
19
-
20
- var _keyboardUtils = require("../../../utils/keyboardUtils");
21
-
22
- var _useGridLogger = require("../../utils/useGridLogger");
23
-
24
- var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
25
-
26
- var _useGridApiMethod = require("../../utils/useGridApiMethod");
27
-
28
- var _gridEditRowsSelector = require("./gridEditRowsSelector");
29
-
30
- 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); }
31
-
32
- 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; }
33
-
34
- function isPromise(promise) {
35
- return typeof promise.then === 'function';
36
- }
37
-
38
- const useCellEditing = (apiRef, props) => {
39
- var _props$experimentalFe2;
40
-
41
- const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridEditRows');
42
-
43
- const buildCallback = callback => (...args) => {
44
- if (props.editMode === _gridEditRowModel.GridEditModes.Cell) {
45
- callback(...args);
46
- }
47
- };
48
-
49
- const setCellMode = React.useCallback((id, field, mode) => {
50
- if (apiRef.current.getCellMode(id, field) === mode) {
51
- return;
52
- }
53
-
54
- logger.debug(`Switching cell id: ${id} field: ${field} to mode: ${mode}`);
55
- apiRef.current.setState(state => {
56
- const newEditRowsState = (0, _extends2.default)({}, state.editRows);
57
- newEditRowsState[id] = (0, _extends2.default)({}, newEditRowsState[id]);
58
-
59
- if (mode === _gridEditRowModel.GridCellModes.Edit) {
60
- newEditRowsState[id][field] = {
61
- value: apiRef.current.getCellValue(id, field)
62
- };
63
- } else {
64
- delete newEditRowsState[id][field];
65
-
66
- if (!Object.keys(newEditRowsState[id]).length) {
67
- delete newEditRowsState[id];
68
- }
69
- }
70
-
71
- return (0, _extends2.default)({}, state, {
72
- editRows: newEditRowsState
73
- });
74
- });
75
- apiRef.current.forceUpdate();
76
- apiRef.current.publishEvent('cellModeChange', apiRef.current.getCellParams(id, field));
77
- }, [apiRef, logger]);
78
- const getCellMode = React.useCallback((id, field) => {
79
- const editRowsState = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
80
- const isEditing = editRowsState[id] && editRowsState[id][field];
81
- return isEditing ? _gridEditRowModel.GridCellModes.Edit : _gridEditRowModel.GridCellModes.View;
82
- }, [apiRef]); // TODO v6: it should always return a promise
83
-
84
- const commitCellChange = React.useCallback((params, event = {}) => {
85
- var _props$experimentalFe;
86
-
87
- const {
88
- id,
89
- field
90
- } = params;
91
- apiRef.current.unstable_runPendingEditCellValueMutation(id, field);
92
- const model = apiRef.current.getEditRowsModel();
93
-
94
- if (!model[id] || !model[id][field]) {
95
- throw new Error(`MUI: Cell at id: ${id} and field: ${field} is not in edit mode.`);
96
- }
97
-
98
- const editCellProps = model[id][field];
99
- const column = apiRef.current.getColumn(field);
100
- const row = apiRef.current.getRow(id);
101
-
102
- if ((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.preventCommitWhileValidating) {
103
- const cellProps = model[id][field];
104
-
105
- if (cellProps.isValidating || cellProps.error) {
106
- return false;
107
- }
108
- }
109
-
110
- const commitParams = (0, _extends2.default)({}, params, {
111
- value: editCellProps.value
112
- });
113
- let hasError = !!editCellProps.error;
114
-
115
- if (!hasError && typeof column.preProcessEditCellProps === 'function') {
116
- const result = column.preProcessEditCellProps({
117
- id,
118
- row,
119
- props: editCellProps
120
- });
121
-
122
- if (isPromise(result)) {
123
- return result.then(newEditCellProps => {
124
- apiRef.current.unstable_setEditCellProps({
125
- id,
126
- field,
127
- props: newEditCellProps
128
- });
129
-
130
- if (newEditCellProps.error) {
131
- return false;
132
- }
133
-
134
- apiRef.current.publishEvent('cellEditCommit', commitParams, event);
135
- return true;
136
- });
137
- }
138
-
139
- apiRef.current.unstable_setEditCellProps({
140
- id,
141
- field,
142
- props: result
143
- });
144
- hasError = !!result.error;
145
- }
146
-
147
- if (!hasError) {
148
- apiRef.current.publishEvent('cellEditCommit', commitParams, event);
149
- return true;
150
- }
151
-
152
- return false;
153
- }, [apiRef, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.preventCommitWhileValidating]);
154
- const setCellEditingEditCellValue = React.useCallback(params => {
155
- const column = apiRef.current.getColumn(params.field);
156
- const row = apiRef.current.getRow(params.id);
157
- return new Promise(resolve => {
158
- let newEditCellProps = {
159
- value: params.value
160
- };
161
- const model = apiRef.current.getEditRowsModel();
162
- const editCellProps = model[params.id][params.field];
163
-
164
- if (typeof column.preProcessEditCellProps !== 'function') {
165
- apiRef.current.unstable_setEditCellProps((0, _extends2.default)({}, params, {
166
- props: newEditCellProps
167
- }));
168
- resolve(true);
169
- return;
170
- } // setEditCellProps runs the value parser and returns the updated props
171
-
172
-
173
- newEditCellProps = apiRef.current.unstable_setEditCellProps((0, _extends2.default)({}, params, {
174
- props: (0, _extends2.default)({}, editCellProps, {
175
- isValidating: true
176
- })
177
- }));
178
- Promise.resolve(column.preProcessEditCellProps({
179
- id: params.id,
180
- row,
181
- props: (0, _extends2.default)({}, newEditCellProps, {
182
- value: apiRef.current.unstable_parseValue(params.id, params.field, params.value)
183
- })
184
- })).then(newEditCellPropsProcessed => {
185
- apiRef.current.unstable_setEditCellProps((0, _extends2.default)({}, params, {
186
- props: (0, _extends2.default)({}, newEditCellPropsProcessed, {
187
- isValidating: false
188
- })
189
- }));
190
- resolve(!newEditCellPropsProcessed.error);
191
- });
192
- });
193
- }, [apiRef]);
194
- const cellEditingApi = {
195
- setCellMode,
196
- getCellMode,
197
- commitCellChange,
198
- unstable_setCellEditingEditCellValue: setCellEditingEditCellValue
199
- };
200
- (0, _useGridApiMethod.useGridApiMethod)(apiRef, cellEditingApi, 'EditRowApi');
201
- const handleCellKeyDown = React.useCallback(async (params, event) => {
202
- // Wait until IME is settled for Asian languages like Japanese and Chinese
203
- // TODO: `event.which` is depricated but this is a temporary workaround
204
- if (event.which === 229) {
205
- return;
206
- }
207
-
208
- const {
209
- id,
210
- field,
211
- cellMode,
212
- isEditable
213
- } = params;
214
-
215
- if (!isEditable) {
216
- return;
217
- }
218
-
219
- const isEditMode = cellMode === _gridEditRowModel.GridCellModes.Edit;
220
- const isModifierKeyPressed = event.ctrlKey || event.metaKey || event.altKey;
221
-
222
- if (!isEditMode && (0, _keyboardUtils.isCellEnterEditModeKeys)(event) && !isModifierKeyPressed && !(event.key === ' ' && event.shiftKey)) {
223
- apiRef.current.publishEvent('cellEditStart', params, event);
224
- }
225
-
226
- if (!isEditMode && (0, _keyboardUtils.isDeleteKeys)(event.key)) {
227
- apiRef.current.setEditCellValue({
228
- id,
229
- field,
230
- value: ''
231
- });
232
- apiRef.current.commitCellChange({
233
- id,
234
- field
235
- }, event);
236
- apiRef.current.publishEvent('cellEditStop', params, event);
237
- }
238
-
239
- if (isEditMode && (0, _keyboardUtils.isCellEditCommitKeys)(event.key)) {
240
- const commitParams = {
241
- id,
242
- field
243
- };
244
- const isValid = await apiRef.current.commitCellChange(commitParams, event);
245
-
246
- if (!isValid) {
247
- return;
248
- }
249
- }
250
-
251
- if (isEditMode && (0, _keyboardUtils.isCellExitEditModeKeys)(event.key)) {
252
- apiRef.current.publishEvent('cellEditStop', params, event);
253
- }
254
- }, [apiRef]);
255
- const handleCellDoubleClick = React.useCallback((params, event) => {
256
- if (!params.isEditable) {
257
- return;
258
- }
259
-
260
- apiRef.current.publishEvent('cellEditStart', params, event);
261
- }, [apiRef]);
262
-
263
- const commitPropsAndExit = async (params, event) => {
264
- if (params.cellMode === _gridEditRowModel.GridCellModes.View) {
265
- return;
266
- }
267
-
268
- await apiRef.current.commitCellChange(params, event);
269
- apiRef.current.publishEvent('cellEditStop', params, event);
270
- };
271
-
272
- const handleCellFocusOut = (0, _utils.useEventCallback)((params, event) => {
273
- commitPropsAndExit(params, event);
274
- });
275
- const handleColumnHeaderDragStart = (0, _utils.useEventCallback)(() => {
276
- const cell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
277
-
278
- if (!cell) {
279
- return;
280
- }
281
-
282
- const params = apiRef.current.getCellParams(cell.id, cell.field);
283
- commitPropsAndExit(params, {});
284
- });
285
- const handleCellEditStart = React.useCallback((params, event) => {
286
- if (!params.isEditable) {
287
- return;
288
- }
289
-
290
- apiRef.current.setCellMode(params.id, params.field, _gridEditRowModel.GridCellModes.Edit);
291
-
292
- if ((0, _keyboardUtils.isKeyboardEvent)(event) && (0, _keyboardUtils.isPrintableKey)(event)) {
293
- apiRef.current.unstable_setEditCellProps({
294
- id: params.id,
295
- field: params.field,
296
- props: {
297
- value: ''
298
- }
299
- });
300
- }
301
- }, [apiRef]);
302
- const handleCellEditStop = React.useCallback((params, event) => {
303
- apiRef.current.setCellMode(params.id, params.field, _gridEditRowModel.GridCellModes.View);
304
-
305
- if (!(0, _keyboardUtils.isKeyboardEvent)(event)) {
306
- return;
307
- }
308
-
309
- if ((0, _keyboardUtils.isCellEditCommitKeys)(event.key)) {
310
- apiRef.current.publishEvent('cellNavigationKeyDown', params, event);
311
- return;
312
- }
313
-
314
- if (event.key === 'Escape' || (0, _keyboardUtils.isDeleteKeys)(event.key)) {
315
- apiRef.current.setCellFocus(params.id, params.field);
316
- }
317
- }, [apiRef]);
318
- const handleCellEditCommit = React.useCallback(params => {
319
- const {
320
- id,
321
- field
322
- } = params;
323
- const model = apiRef.current.getEditRowsModel();
324
- const {
325
- value
326
- } = model[id][field];
327
- logger.debug(`Setting cell id: ${id} field: ${field} to value: ${value == null ? void 0 : value.toString()}`);
328
- const row = apiRef.current.getRow(id);
329
-
330
- if (row) {
331
- const column = apiRef.current.getColumn(params.field);
332
- let rowUpdate = (0, _extends2.default)({}, row, {
333
- [field]: value
334
- });
335
-
336
- if (column.valueSetter) {
337
- rowUpdate = column.valueSetter({
338
- row,
339
- value
340
- });
341
- }
342
-
343
- apiRef.current.updateRows([rowUpdate]);
344
- }
345
- }, [apiRef, logger]);
346
- const handleEditCellPropsChange = React.useCallback(params => {
347
- const row = apiRef.current.getRow(params.id);
348
- const column = apiRef.current.getColumn(params.field);
349
- const editCellProps = column.preProcessEditCellProps ? column.preProcessEditCellProps({
350
- id: params.id,
351
- row,
352
- props: params.props
353
- }) : params.props;
354
-
355
- if (isPromise(editCellProps)) {
356
- editCellProps.then(newEditCellProps => {
357
- apiRef.current.unstable_setEditCellProps((0, _extends2.default)({}, params, {
358
- props: newEditCellProps
359
- }));
360
- });
361
- } else {
362
- apiRef.current.unstable_setEditCellProps((0, _extends2.default)({}, params, {
363
- props: editCellProps
364
- }));
365
- }
366
- }, [apiRef]);
367
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellKeyDown', buildCallback(handleCellKeyDown));
368
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellDoubleClick', buildCallback(handleCellDoubleClick));
369
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellFocusOut', buildCallback(handleCellFocusOut));
370
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', buildCallback(handleColumnHeaderDragStart));
371
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellEditStart', buildCallback(handleCellEditStart));
372
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellEditStop', buildCallback(handleCellEditStop));
373
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellEditCommit', buildCallback(handleCellEditCommit));
374
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'editCellPropsChange', buildCallback(handleEditCellPropsChange));
375
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'cellEditCommit', props.onCellEditCommit);
376
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'cellEditStart', props.onCellEditStart);
377
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'cellEditStop', props.onCellEditStop);
378
- };
379
-
380
- exports.useCellEditing = useCellEditing;
@@ -1,193 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.editingStateInitializer = void 0;
9
- exports.useGridEditing = useGridEditing;
10
-
11
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
-
13
- var React = _interopRequireWildcard(require("react"));
14
-
15
- var _gridEditRowModel = require("../../../models/gridEditRowModel");
16
-
17
- var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
18
-
19
- var _useGridApiMethod = require("../../utils/useGridApiMethod");
20
-
21
- var _useGridLogger = require("../../utils/useGridLogger");
22
-
23
- var _gridEditRowsSelector = require("./gridEditRowsSelector");
24
-
25
- var _useGridCellEditing = require("./useGridCellEditing.old");
26
-
27
- var _useGridRowEditing = require("./useGridRowEditing.old");
28
-
29
- var _gridRowsUtils = require("../rows/gridRowsUtils");
30
-
31
- 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); }
32
-
33
- 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; }
34
-
35
- const editingStateInitializer = state => (0, _extends2.default)({}, state, {
36
- editRows: {}
37
- });
38
- /**
39
- * @requires useGridFocus - can be after, async only
40
- * @requires useGridParamsApi (method)
41
- * @requires useGridColumns (state)
42
- */
43
-
44
-
45
- exports.editingStateInitializer = editingStateInitializer;
46
-
47
- function useGridEditing(apiRef, props) {
48
- var _props$experimentalFe2;
49
-
50
- const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridEditRows');
51
- (0, _useGridCellEditing.useCellEditing)(apiRef, props);
52
- (0, _useGridRowEditing.useGridRowEditing)(apiRef, props);
53
- const debounceMap = React.useRef({});
54
- apiRef.current.unstable_registerControlState({
55
- stateId: 'editRows',
56
- propModel: props.editRowsModel,
57
- propOnChange: props.onEditRowsModelChange,
58
- stateSelector: _gridEditRowsSelector.gridEditRowsStateSelector,
59
- changeEvent: 'editRowsModelChange'
60
- });
61
- const isCellEditable = React.useCallback(params => !(0, _gridRowsUtils.isAutoGeneratedRow)(params.rowNode) && params.rowNode.type !== 'pinnedRow' && !!params.colDef.editable && !!params.colDef.renderEditCell && (!props.isCellEditable || props.isCellEditable(params)), // eslint-disable-next-line react-hooks/exhaustive-deps
62
- [props.isCellEditable]);
63
-
64
- const maybeDebounce = (id, field, debounceMs, callback) => {
65
- if (!debounceMs) {
66
- callback();
67
- return;
68
- }
69
-
70
- if (!debounceMap.current[id]) {
71
- debounceMap.current[id] = {};
72
- }
73
-
74
- if (debounceMap.current[id][field]) {
75
- const [timeout] = debounceMap.current[id][field];
76
- clearTimeout(timeout);
77
- }
78
-
79
- const callbackToRunImmediately = () => {
80
- callback();
81
- const [timeout] = debounceMap.current[id][field];
82
- clearTimeout(timeout);
83
- delete debounceMap.current[id][field];
84
- };
85
-
86
- const timeout = setTimeout(() => {
87
- callback();
88
- delete debounceMap.current[id][field];
89
- }, debounceMs);
90
- debounceMap.current[id][field] = [timeout, callbackToRunImmediately];
91
- };
92
-
93
- const runPendingEditCellValueMutation = React.useCallback((id, field) => {
94
- if (!debounceMap.current[id]) {
95
- return;
96
- }
97
-
98
- if (!field) {
99
- Object.keys(debounceMap.current[id]).forEach(debouncedField => {
100
- const [, callback] = debounceMap.current[id][debouncedField];
101
- callback();
102
- });
103
- } else if (debounceMap.current[id][field]) {
104
- const [, callback] = debounceMap.current[id][field];
105
- callback();
106
- }
107
- }, []);
108
- const setEditCellValue = React.useCallback((params, event = {}) => {
109
- maybeDebounce(params.id, params.field, params.debounceMs, () => {
110
- var _props$experimentalFe;
111
-
112
- if ((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.preventCommitWhileValidating) {
113
- if (props.editMode === 'row') {
114
- return apiRef.current.unstable_setRowEditingEditCellValue(params);
115
- }
116
-
117
- return apiRef.current.unstable_setCellEditingEditCellValue(params);
118
- }
119
-
120
- const newParams = {
121
- id: params.id,
122
- field: params.field,
123
- props: {
124
- value: params.value
125
- }
126
- };
127
- return apiRef.current.publishEvent('editCellPropsChange', newParams, event);
128
- });
129
- }, [apiRef, props.editMode, (_props$experimentalFe2 = props.experimentalFeatures) == null ? void 0 : _props$experimentalFe2.preventCommitWhileValidating]);
130
- const parseValue = React.useCallback((id, field, value) => {
131
- const column = apiRef.current.getColumn(field);
132
- return column.valueParser ? column.valueParser(value, apiRef.current.getCellParams(id, field)) : value;
133
- }, [apiRef]);
134
- const setEditCellProps = React.useCallback(params => {
135
- const {
136
- id,
137
- field,
138
- props: editProps
139
- } = params;
140
- logger.debug(`Setting cell props on id: ${id} field: ${field}`);
141
- apiRef.current.setState(state => {
142
- const editRowsModel = (0, _extends2.default)({}, state.editRows);
143
- editRowsModel[id] = (0, _extends2.default)({}, state.editRows[id]);
144
- editRowsModel[id][field] = (0, _extends2.default)({}, editProps, {
145
- value: parseValue(id, field, editProps.value)
146
- });
147
- return (0, _extends2.default)({}, state, {
148
- editRows: editRowsModel
149
- });
150
- });
151
- apiRef.current.forceUpdate();
152
- const editRowsState = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
153
- return editRowsState[id][field];
154
- }, [apiRef, logger, parseValue]);
155
- const setEditRowsModel = React.useCallback(model => {
156
- const currentModel = (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state);
157
-
158
- if (currentModel !== model) {
159
- logger.debug(`Setting editRows model`);
160
- apiRef.current.setState(state => (0, _extends2.default)({}, state, {
161
- editRows: model
162
- }));
163
- apiRef.current.forceUpdate();
164
- }
165
- }, [apiRef, logger]);
166
- const getEditRowsModel = React.useCallback(() => (0, _gridEditRowsSelector.gridEditRowsStateSelector)(apiRef.current.state), [apiRef]);
167
- const preventTextSelection = React.useCallback((params, event) => {
168
- const isMoreThanOneClick = event.detail > 1;
169
-
170
- if (params.isEditable && params.cellMode === _gridEditRowModel.GridCellModes.View && isMoreThanOneClick) {
171
- // If we click more than one time, then we prevent the default behavior of selecting the text cell.
172
- event.preventDefault();
173
- }
174
- }, []);
175
- (0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'cellMouseDown', preventTextSelection);
176
- (0, _useGridApiEventHandler.useGridApiOptionHandler)(apiRef, 'editCellPropsChange', props.onEditCellPropsChange); // TODO v6: remove, use `preProcessEditCellProps` instead
177
-
178
- const editingSharedApi = {
179
- isCellEditable,
180
- setEditRowsModel,
181
- getEditRowsModel,
182
- setEditCellValue,
183
- unstable_setEditCellProps: setEditCellProps,
184
- unstable_parseValue: parseValue,
185
- unstable_runPendingEditCellValueMutation: runPendingEditCellValueMutation
186
- };
187
- (0, _useGridApiMethod.useGridApiMethod)(apiRef, editingSharedApi, 'EditRowApi');
188
- React.useEffect(() => {
189
- if (props.editRowsModel !== undefined) {
190
- apiRef.current.setEditRowsModel(props.editRowsModel);
191
- }
192
- }, [apiRef, props.editRowsModel]);
193
- }