@lemon-fe/kits 1.0.0-21 → 1.0.0-211

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 (351) hide show
  1. package/README.md +5 -0
  2. package/es/components/Actions/index.d.ts +8 -5
  3. package/es/components/Actions/index.js +44 -28
  4. package/es/components/Actions/index.less +5 -4
  5. package/es/components/Alert/index.d.ts +3 -0
  6. package/es/components/Alert/index.js +23 -0
  7. package/es/components/BaseTable/Actions.js +2 -2
  8. package/es/components/BaseTable/VirtualBody.js +2 -2
  9. package/es/components/BaseTable/index.js +2 -2
  10. package/es/components/BaseTable/utils.d.ts +1 -1
  11. package/es/components/DataGrid/cell-editors/Date.d.ts +15 -5
  12. package/es/components/DataGrid/cell-editors/Date.js +52 -14
  13. package/es/components/DataGrid/cell-editors/Number.d.ts +14 -6
  14. package/es/components/DataGrid/cell-editors/Number.js +94 -34
  15. package/es/components/DataGrid/cell-editors/Row.d.ts +23 -0
  16. package/es/components/DataGrid/cell-editors/Row.js +146 -0
  17. package/es/components/DataGrid/cell-editors/Select.d.ts +29 -3
  18. package/es/components/DataGrid/cell-editors/Select.js +82 -18
  19. package/es/components/DataGrid/cell-editors/Text.d.ts +7 -5
  20. package/es/components/DataGrid/cell-editors/Text.js +55 -9
  21. package/es/components/DataGrid/cell-editors/Wrapper.d.ts +2 -1
  22. package/es/components/DataGrid/cell-editors/Wrapper.js +4 -2
  23. package/es/components/DataGrid/cell-editors/utils.d.ts +9 -0
  24. package/es/components/DataGrid/cell-editors/utils.js +56 -1
  25. package/es/components/DataGrid/components/CustomColumnPanel/DragContext.d.ts +4 -0
  26. package/es/components/DataGrid/components/CustomColumnPanel/DragContext.js +3 -0
  27. package/es/components/DataGrid/components/CustomColumnPanel/FieldModal.d.ts +10 -0
  28. package/es/components/DataGrid/components/CustomColumnPanel/FieldModal.js +256 -0
  29. package/es/components/DataGrid/components/CustomColumnPanel/Item.d.ts +14 -0
  30. package/es/components/DataGrid/components/CustomColumnPanel/Item.js +200 -0
  31. package/es/components/DataGrid/components/CustomColumnPanel/index.d.ts +5 -0
  32. package/es/components/DataGrid/components/CustomColumnPanel/index.js +366 -0
  33. package/es/components/DataGrid/components/CustomColumnPanel/typings.d.ts +25 -0
  34. package/es/components/DataGrid/components/Search.d.ts +4 -0
  35. package/es/components/DataGrid/components/Search.js +186 -0
  36. package/es/components/DataGrid/components/Selected.d.ts +7 -0
  37. package/es/components/DataGrid/components/Selected.js +32 -0
  38. package/es/components/DataGrid/context/GridStore.d.ts +4 -0
  39. package/es/components/DataGrid/context/GridStore.js +4 -0
  40. package/es/components/DataGrid/hooks.d.ts +18 -0
  41. package/es/components/DataGrid/hooks.js +46 -3
  42. package/es/components/DataGrid/index.d.ts +62 -25
  43. package/es/components/DataGrid/index.js +1299 -504
  44. package/es/components/DataGrid/index.less +382 -41
  45. package/es/components/DataGrid/modules/clipboard/clipboard/clipboardService.d.ts +60 -60
  46. package/es/components/DataGrid/modules/clipboard/clipboard/clipboardService.js +359 -69
  47. package/es/components/DataGrid/modules/clipboard/clipboardModule.d.ts +2 -7
  48. package/es/components/DataGrid/modules/clipboard/clipboardModule.js +4 -2
  49. package/es/components/DataGrid/modules/clipboard/main.d.ts +1 -0
  50. package/es/components/DataGrid/modules/clipboard/version.d.ts +1 -0
  51. package/es/components/DataGrid/modules/clipboard/version.js +2 -0
  52. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/columnModelItem.d.ts +24 -30
  53. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/columnModelItem.js +1 -1
  54. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/columnToolPanel.d.ts +30 -49
  55. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/columnToolPanel.js +7 -7
  56. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/modelItemUtils.d.ts +14 -18
  57. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/modelItemUtils.js +7 -7
  58. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/pivotModePanel.d.ts +7 -7
  59. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/pivotModePanel.js +8 -8
  60. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsHeaderPanel.d.ts +28 -28
  61. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsHeaderPanel.js +17 -17
  62. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsListPanel.d.ts +42 -47
  63. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsListPanel.js +8 -8
  64. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsListPanelItemDragFeature.d.ts +24 -24
  65. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsListPanelItemDragFeature.js +6 -6
  66. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsPanel.d.ts +23 -31
  67. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/primaryColsPanel.js +9 -16
  68. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelColumnComp.d.ts +35 -41
  69. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelColumnComp.js +18 -18
  70. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelColumnGroupComp.d.ts +49 -60
  71. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelColumnGroupComp.js +21 -20
  72. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelContextMenu.d.ts +22 -22
  73. package/es/components/DataGrid/modules/column-tool-panel/columnToolPanel/toolPanelContextMenu.js +16 -16
  74. package/es/components/DataGrid/modules/column-tool-panel/columnsToolPanelModule.d.ts +2 -24
  75. package/es/components/DataGrid/modules/column-tool-panel/columnsToolPanelModule.js +8 -3
  76. package/es/components/DataGrid/modules/column-tool-panel/main.d.ts +2 -0
  77. package/es/components/DataGrid/modules/column-tool-panel/version.d.ts +1 -0
  78. package/es/components/DataGrid/modules/column-tool-panel/version.js +2 -0
  79. package/es/components/DataGrid/modules/master-detail/main.d.ts +1 -0
  80. package/es/components/DataGrid/modules/master-detail/main.js +1 -0
  81. package/es/components/DataGrid/modules/master-detail/masterDetail/detailCellRenderer.d.ts +14 -0
  82. package/es/components/DataGrid/modules/master-detail/masterDetail/detailCellRenderer.js +170 -0
  83. package/es/components/DataGrid/modules/master-detail/masterDetail/detailCellRendererCtrl.d.ts +19 -0
  84. package/es/components/DataGrid/modules/master-detail/masterDetail/detailCellRendererCtrl.js +245 -0
  85. package/es/components/DataGrid/modules/master-detail/masterDetailModule.d.ts +2 -0
  86. package/es/components/DataGrid/modules/master-detail/masterDetailModule.js +18 -0
  87. package/es/components/DataGrid/modules/master-detail/version.d.ts +1 -0
  88. package/es/components/DataGrid/modules/master-detail/version.js +2 -0
  89. package/es/components/DataGrid/modules/menu/menu/chartMenuItemMapper.d.ts +13 -0
  90. package/es/components/DataGrid/modules/menu/menu/chartMenuItemMapper.js +417 -0
  91. package/es/components/DataGrid/modules/menu/menu/contextMenu.d.ts +11 -24
  92. package/es/components/DataGrid/modules/menu/menu/contextMenu.js +32 -25
  93. package/es/components/DataGrid/modules/menu/menu/enterpriseMenu.d.ts +60 -79
  94. package/es/components/DataGrid/modules/menu/menu/enterpriseMenu.js +182 -129
  95. package/es/components/DataGrid/modules/menu/menu/menuItemMapper.d.ts +10 -12
  96. package/es/components/DataGrid/modules/menu/menu/menuItemMapper.js +81 -249
  97. package/es/components/DataGrid/modules/menu/menuModule.d.ts +2 -8
  98. package/es/components/DataGrid/modules/menu/menuModule.js +6 -2
  99. package/es/components/DataGrid/modules/menu/version.d.ts +1 -0
  100. package/es/components/DataGrid/modules/menu/version.js +2 -0
  101. package/es/components/DataGrid/modules/row-grouping/main.d.ts +4 -0
  102. package/es/components/DataGrid/modules/row-grouping/rowGrouping/aggFuncService.js +1 -1
  103. package/es/components/DataGrid/modules/row-grouping/rowGrouping/aggregationStage.d.ts +3 -1
  104. package/es/components/DataGrid/modules/row-grouping/rowGrouping/aggregationStage.js +30 -12
  105. package/es/components/DataGrid/modules/row-grouping/rowGrouping/batchRemover.d.ts +2 -0
  106. package/es/components/DataGrid/modules/row-grouping/rowGrouping/batchRemover.js +12 -0
  107. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/baseDropZonePanel.d.ts +2 -2
  108. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/baseDropZonePanel.js +12 -10
  109. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/dropZoneColumnComp.js +20 -21
  110. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/gridHeaderDropZones.js +5 -5
  111. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/pivotDropZonePanel.js +7 -7
  112. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/rowGroupDropZonePanel.js +6 -6
  113. package/es/components/DataGrid/modules/row-grouping/rowGrouping/columnDropZones/valueDropZonePanel.js +6 -6
  114. package/es/components/DataGrid/modules/row-grouping/rowGrouping/filterAggregatesStage.js +2 -2
  115. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupFilter/groupFilter.d.ts +39 -0
  116. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupFilter/groupFilter.js +395 -0
  117. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupFilter/groupFloatingFilter.d.ts +23 -0
  118. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupFilter/groupFloatingFilter.js +207 -0
  119. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupStage.d.ts +2 -1
  120. package/es/components/DataGrid/modules/row-grouping/rowGrouping/groupStage.js +66 -20
  121. package/es/components/DataGrid/modules/row-grouping/rowGrouping/pivotColDefService.js +8 -8
  122. package/es/components/DataGrid/modules/row-grouping/rowGrouping/pivotStage.js +19 -15
  123. package/es/components/DataGrid/modules/row-grouping/rowGroupingModule.d.ts +2 -16
  124. package/es/components/DataGrid/modules/row-grouping/rowGroupingModule.js +14 -2
  125. package/es/components/DataGrid/modules/row-grouping/version.d.ts +1 -0
  126. package/es/components/DataGrid/modules/row-grouping/version.js +2 -0
  127. package/es/components/DataGrid/modules/side-bar/main.d.ts +2 -0
  128. package/es/components/DataGrid/modules/side-bar/sideBar/common/toolPanelColDefService.d.ts +9 -9
  129. package/es/components/DataGrid/modules/side-bar/sideBar/common/toolPanelColDefService.js +3 -8
  130. package/es/components/DataGrid/modules/side-bar/sideBar/horizontalResizeComp.d.ts +17 -17
  131. package/es/components/DataGrid/modules/side-bar/sideBar/horizontalResizeComp.js +5 -5
  132. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarButtonComp.d.ts +14 -14
  133. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarButtonComp.js +8 -8
  134. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarButtonsComp.d.ts +14 -14
  135. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarButtonsComp.js +6 -6
  136. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarComp.d.ts +26 -27
  137. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarComp.js +82 -45
  138. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarDefParser.d.ts +10 -0
  139. package/es/components/DataGrid/modules/side-bar/sideBar/sideBarDefParser.js +111 -0
  140. package/es/components/DataGrid/modules/side-bar/sideBar/toolPanelWrapper.d.ts +15 -15
  141. package/es/components/DataGrid/modules/side-bar/sideBar/toolPanelWrapper.js +5 -5
  142. package/es/components/DataGrid/modules/side-bar/sideBarModule.d.ts +2 -19
  143. package/es/components/DataGrid/modules/side-bar/sideBarModule.js +5 -2
  144. package/es/components/DataGrid/modules/side-bar/version.d.ts +1 -0
  145. package/es/components/DataGrid/modules/side-bar/version.js +2 -0
  146. package/es/components/DataGrid/{Actions.d.ts → renderer/Actions.d.ts} +1 -1
  147. package/es/components/DataGrid/{Actions.js → renderer/Actions.js} +4 -4
  148. package/es/components/DataGrid/renderer/CellDeleteRenderer.d.ts +5 -0
  149. package/es/components/DataGrid/renderer/CellDeleteRenderer.js +64 -0
  150. package/es/components/DataGrid/renderer/CellIndexRenderer.d.ts +4 -0
  151. package/es/components/DataGrid/renderer/CellIndexRenderer.js +59 -0
  152. package/es/components/DataGrid/{CellRenderer.d.ts → renderer/CellRenderer.d.ts} +2 -2
  153. package/es/components/DataGrid/{CellRenderer.js → renderer/CellRenderer.js} +18 -8
  154. package/es/components/DataGrid/renderer/DetailCellRenderer.d.ts +9 -0
  155. package/es/components/DataGrid/renderer/DetailCellRenderer.js +71 -0
  156. package/es/components/DataGrid/{HeaderRenderer.d.ts → renderer/HeaderRenderer.d.ts} +3 -3
  157. package/es/components/DataGrid/{HeaderRenderer.js → renderer/HeaderRenderer.js} +35 -15
  158. package/es/components/DataGrid/typings.d.ts +109 -32
  159. package/es/components/DataGrid/utils.d.ts +13 -6
  160. package/es/components/DataGrid/utils.js +116 -28
  161. package/es/components/Dropdown/index.d.ts +7 -8
  162. package/es/components/Dropdown/index.js +40 -47
  163. package/es/components/Dropdown/index.less +2 -10
  164. package/es/components/DurationPicker/index.d.ts +12 -9
  165. package/es/components/DurationPicker/index.js +87 -57
  166. package/es/components/DurationPicker/index.less +3 -52
  167. package/es/components/EditableTable/EditableCell.d.ts +1 -1
  168. package/es/components/EditableTable/EditableTableFormItem.d.ts +1 -1
  169. package/es/components/EditableTable/Table.d.ts +1 -1
  170. package/es/components/EditableTable/Table.js +7 -7
  171. package/es/components/EditableTable/typings.d.ts +1 -1
  172. package/es/components/Filter/index.js +157 -98
  173. package/es/components/Filter/index.less +1 -5
  174. package/es/components/Filter/typings.d.ts +36 -2
  175. package/es/components/FormLayout/index.d.ts +5 -1
  176. package/es/components/FormLayout/index.js +5 -4
  177. package/es/components/FormLayout/index.less +18 -8
  178. package/es/components/GreyPanel/index.d.ts +6 -0
  179. package/es/components/GreyPanel/index.js +20 -0
  180. package/es/components/GreyPanel/index.less +11 -0
  181. package/es/components/Icons/Add.d.ts +6 -0
  182. package/es/components/Icons/Add.js +42 -0
  183. package/es/components/Icons/BigTip/index.d.ts +1 -1
  184. package/es/components/Icons/Calendar.d.ts +1 -1
  185. package/es/components/Icons/Calendar.js +12 -17
  186. package/es/components/Icons/Clear.d.ts +3 -0
  187. package/es/components/Icons/Clear.js +21 -0
  188. package/es/components/Icons/Clock.d.ts +5 -0
  189. package/es/components/Icons/Clock.js +30 -0
  190. package/es/components/Icons/Close.d.ts +1 -1
  191. package/es/components/Icons/CloseLight.d.ts +5 -0
  192. package/es/components/Icons/CloseLight.js +34 -0
  193. package/es/components/Icons/CollapseUp.d.ts +1 -1
  194. package/es/components/Icons/DarkSearch.d.ts +1 -1
  195. package/es/components/Icons/Delete.d.ts +3 -0
  196. package/es/components/Icons/Delete.js +40 -0
  197. package/es/components/Icons/Down.d.ts +3 -5
  198. package/es/components/Icons/Down.js +5 -15
  199. package/es/components/Icons/Drag/drag.svg +7 -0
  200. package/es/components/Icons/Drag/index.d.ts +3 -0
  201. package/es/components/Icons/Drag/index.js +34 -0
  202. package/es/components/Icons/LookUp.d.ts +1 -1
  203. package/es/components/Icons/More.d.ts +3 -5
  204. package/es/components/Icons/NewTag.d.ts +3 -0
  205. package/es/components/Icons/NewTag.js +22 -0
  206. package/es/components/Icons/Plus/index.d.ts +3 -0
  207. package/es/components/Icons/Plus/index.js +30 -0
  208. package/es/components/Icons/Plus/plus.svg +6 -0
  209. package/es/components/Icons/Question.d.ts +3 -0
  210. package/es/components/Icons/Question.js +21 -0
  211. package/es/components/Icons/Reload.d.ts +3 -0
  212. package/es/components/Icons/Reload.js +21 -0
  213. package/es/components/Icons/Search.d.ts +3 -5
  214. package/es/components/Icons/Search.js +7 -17
  215. package/es/components/Icons/Tip.d.ts +4 -5
  216. package/es/components/Icons/Tip.js +59 -68
  217. package/es/components/Icons/index.d.ts +27 -7
  218. package/es/components/Icons/index.js +29 -9
  219. package/es/components/InputCompact/index.d.ts +11 -0
  220. package/es/components/InputCompact/index.js +80 -0
  221. package/es/components/InputCompact/index.less +33 -0
  222. package/es/components/InputNumber/index.d.ts +8 -0
  223. package/es/components/InputNumber/index.js +38 -0
  224. package/es/components/InputNumber/index.less +58 -0
  225. package/es/components/Layout/index.d.ts +26 -8
  226. package/es/components/Layout/index.js +159 -54
  227. package/es/components/Layout/index.less +58 -33
  228. package/es/components/Popup/index.d.ts +43 -7
  229. package/es/components/Popup/index.js +183 -89
  230. package/es/components/Popup/index.less +23 -1
  231. package/es/components/Portal/index.d.ts +7 -6
  232. package/es/components/Portal/index.js +57 -12
  233. package/es/components/Section/TabBar.d.ts +2 -1
  234. package/es/components/Section/index.d.ts +6 -2
  235. package/es/components/Section/index.js +30 -23
  236. package/es/components/Section/index.less +6 -2
  237. package/es/components/SelectPanel/index.d.ts +17 -0
  238. package/es/components/SelectPanel/index.js +70 -0
  239. package/es/components/SelectPanel/index.less +112 -0
  240. package/es/components/SelectView/index.d.ts +16 -5
  241. package/es/components/SelectView/index.js +162 -119
  242. package/es/components/SelectView/index.less +23 -26
  243. package/es/components/SiderTree/TreeNodeTitle.js +2 -2
  244. package/es/components/SiderTree/index.d.ts +4 -2
  245. package/es/components/SiderTree/index.js +50 -71
  246. package/es/components/SiderTree/index.less +23 -77
  247. package/es/components/State/index.d.ts +8 -0
  248. package/es/components/State/index.js +25 -0
  249. package/es/components/State/index.less +131 -0
  250. package/es/components/TabBar/index.d.ts +2 -3
  251. package/es/components/TabBar/index.js +24 -42
  252. package/es/components/TabBar/index.less +2 -28
  253. package/es/components/Table/typings.d.ts +1 -2
  254. package/es/components/Table/utils.d.ts +1 -1
  255. package/es/components/TipMark/index.d.ts +8 -0
  256. package/es/components/{DataGrid/cell-editors/Custom.js → TipMark/index.js} +40 -12
  257. package/es/components/utils.d.ts +1 -1
  258. package/es/components/utils.js +2 -2
  259. package/es/hooks/useBatchOperator/index.d.ts +83 -10
  260. package/es/hooks/useBatchOperator/index.js +644 -300
  261. package/es/hooks/useHistoryBlock/index.d.ts +8 -0
  262. package/es/hooks/useHistoryBlock/index.js +30 -0
  263. package/es/index.d.ts +20 -4
  264. package/es/index.js +15 -2
  265. package/es/index.less +5 -0
  266. package/es/init.js +82 -24
  267. package/es/layouts/BasicLayout/components/Main.js +37 -4
  268. package/es/layouts/BasicLayout/components/MainFramework/components/Menu/index.js +23 -22
  269. package/es/layouts/BasicLayout/components/MainFramework/index.less +19 -0
  270. package/es/layouts/BasicLayout/typings.d.ts +3 -3
  271. package/es/layouts/Breadcrumb/index.d.ts +13 -5
  272. package/es/layouts/Breadcrumb/index.js +31 -10
  273. package/es/layouts/Breadcrumb/index.less +5 -1
  274. package/es/layouts/MicroLayout/index.js +69 -5
  275. package/es/layouts/MicroLayout/typings.d.ts +5 -3
  276. package/es/layouts/TabInstance.d.ts +31 -0
  277. package/es/layouts/TabInstance.js +115 -0
  278. package/es/layouts/components/RouteTab.d.ts +7 -3
  279. package/es/layouts/components/RouteTab.js +6 -2
  280. package/es/layouts/typings.d.ts +0 -2
  281. package/es/layouts/utils.d.ts +1 -1
  282. package/es/layouts/utils.js +4 -4
  283. package/es/styles/empty.png +0 -0
  284. package/es/styles/overrides.less +203 -59
  285. package/es/styles/theme.less +21 -1
  286. package/es/styles/utils.less +18 -18
  287. package/package.json +28 -12
  288. package/es/components/DataGrid/GridContext.d.ts +0 -4
  289. package/es/components/DataGrid/GridContext.js +0 -4
  290. package/es/components/DataGrid/cell-editors/Custom.d.ts +0 -9
  291. package/es/components/DataGrid/empty.png +0 -0
  292. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/clientSideNodeManager.d.ts +0 -35
  293. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/clientSideNodeManager.js +0 -378
  294. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/clientSideRowModel.d.ts +0 -99
  295. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/clientSideRowModel.js +0 -1160
  296. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/filterService.d.ts +0 -7
  297. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/filterService.js +0 -137
  298. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/filterStage.d.ts +0 -5
  299. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/filterStage.js +0 -60
  300. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/flattenStage.d.ts +0 -10
  301. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/flattenStage.js +0 -199
  302. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/immutableService.d.ts +0 -13
  303. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/immutableService.js +0 -175
  304. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/sortService.d.ts +0 -14
  305. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/sortService.js +0 -330
  306. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/sortStage.d.ts +0 -7
  307. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModel/sortStage.js +0 -75
  308. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModelModule.d.ts +0 -2
  309. package/es/components/DataGrid/modules/client-side-row-model/clientSideRowModelModule.js +0 -15
  310. package/es/components/DataGrid/modules/client-side-row-model/index.d.ts +0 -1
  311. package/es/components/DataGrid/modules/client-side-row-model/index.js +0 -1
  312. package/es/components/DataGrid/modules/clipboard/index.d.ts +0 -1
  313. package/es/components/DataGrid/modules/column-tool-panel/index.d.ts +0 -2
  314. package/es/components/DataGrid/modules/row-grouping/index.d.ts +0 -4
  315. package/es/components/DataGrid/modules/server-side-row-model/index.d.ts +0 -1
  316. package/es/components/DataGrid/modules/server-side-row-model/index.js +0 -1
  317. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/blocks/blockUtils.d.ts +0 -47
  318. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/blocks/blockUtils.js +0 -444
  319. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/blocks/infiniteStoreBlock.d.ts +0 -92
  320. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/blocks/infiniteStoreBlock.js +0 -510
  321. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/expandListener.d.ts +0 -9
  322. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/expandListener.js +0 -115
  323. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/filterListener.d.ts +0 -9
  324. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/filterListener.js +0 -114
  325. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/listenerUtils.d.ts +0 -5
  326. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/listenerUtils.js +0 -68
  327. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/sortListener.d.ts +0 -13
  328. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/listeners/sortListener.js +0 -194
  329. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/nodeManager.d.ts +0 -7
  330. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/nodeManager.js +0 -63
  331. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/serverSideRowModel.d.ts +0 -88
  332. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/serverSideRowModel.js +0 -572
  333. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/fullStore.d.ts +0 -108
  334. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/fullStore.js +0 -876
  335. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/infiniteStore.d.ts +0 -102
  336. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/infiniteStore.js +0 -918
  337. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/storeFactory.d.ts +0 -12
  338. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/storeFactory.js +0 -141
  339. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/storeUtils.d.ts +0 -35
  340. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/stores/storeUtils.js +0 -154
  341. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/transactionManager.d.ts +0 -23
  342. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModel/transactionManager.js +0 -210
  343. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModelModule.d.ts +0 -18
  344. package/es/components/DataGrid/modules/server-side-row-model/serverSideRowModelModule.js +0 -18
  345. package/es/components/DataGrid/modules/side-bar/index.d.ts +0 -2
  346. /package/es/components/DataGrid/modules/clipboard/{index.js → main.js} +0 -0
  347. /package/es/components/DataGrid/modules/column-tool-panel/{index.js → main.js} +0 -0
  348. /package/es/components/DataGrid/modules/menu/{index.d.ts → main.d.ts} +0 -0
  349. /package/es/components/DataGrid/modules/menu/{index.js → main.js} +0 -0
  350. /package/es/components/DataGrid/modules/row-grouping/{index.js → main.js} +0 -0
  351. /package/es/components/DataGrid/modules/side-bar/{index.js → main.js} +0 -0
@@ -1,22 +1,24 @@
1
1
  var _excluded = ["validator"],
2
- _excluded2 = ["title", "key", "dataIndex", "align", "type", "fixed", "render", "ellipsis", "cellRenderer", "cellRendererParams", "className", "sorter", "editable"],
2
+ _excluded2 = ["title", "dataIndex", "render", "ellipsis", "sorter", "editable", "className"],
3
3
  _excluded3 = ["title", "children"],
4
- _excluded4 = ["rowSelection", "rowKey", "fetch", "dataSource", "summary", "rowActions", "context", "onGridReady", "pagination", "columnTypes", "defaultColDef", "components", "columns", "loading", "autoLoad", "sideBar"];
4
+ _excluded4 = ["rowKey", "fetch", "dataSource", "rowActions", "columns", "autoLoad", "loading", "summary", "detailCell", "pagination", "rowSelection", "columnTypes", "defaultColDef", "components", "sideBar", "detailCellRendererParams", "context", "showSearch", "cellDisplayFlex"];
5
5
 
6
6
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
7
7
 
8
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
9
-
10
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
11
-
12
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13
-
14
8
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
9
 
16
10
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
17
11
 
18
12
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
19
13
 
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+
16
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
17
+
18
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
19
+
20
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21
+
20
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
23
 
22
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -33,6 +35,12 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
33
35
 
34
36
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
35
37
 
38
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
39
+
40
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
41
+
42
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
43
+
36
44
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
37
45
 
38
46
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@@ -55,40 +63,107 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
55
63
 
56
64
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
57
65
 
58
- import React, { Component } from 'react';
59
- import { AgGridReact } from '@ag-grid-community/react';
60
- import shallowEqual from 'shallowequal';
66
+ import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
61
67
  import { ModuleRegistry, GridApi, ColumnApi } from '@ag-grid-community/core';
62
68
  import { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';
63
- import { get, set } from 'lodash';
64
- import Scheme from 'async-validator';
65
- import GridContext from "./GridContext";
66
- import { RowGroupingModule } from "./modules/row-grouping";
67
- import { ClipboardModule } from "./modules/clipboard";
68
- import { MenuModule } from "./modules/menu";
69
- import { ColumnsToolPanelModule } from "./modules/column-tool-panel";
70
- import { SideBarModule } from "./modules/side-bar";
71
- import { ServerSideRowModelModule } from "./modules/server-side-row-model";
72
- import { ClientSideRowModelModule } from "./modules/client-side-row-model";
69
+ import { AgGridReact } from '@ag-grid-community/react';
73
70
  import { Spin, Pagination } from 'antd';
74
- import { prefix, getColField, isColumnType, withSyncRender, ColMethod, Store, Selection, columnTypes } from "./utils";
75
- import HeaderRenderer from "./HeaderRenderer";
76
- import CellRenderer from "./CellRenderer";
77
- import Actions from "./Actions";
71
+ import Scheme from 'async-validator';
72
+ import BigNumber from 'bignumber.js';
73
+ import classNames from 'classnames';
74
+ import { get, set } from 'lodash';
75
+ import { create, parseDependencies, factory } from 'mathjs';
76
+ import memoizeOne from 'memoize-one';
77
+ import React, { Component, createRef } from 'react';
78
+ import shallowEqual from 'shallowequal';
78
79
  import DateEditor from "./cell-editors/Date";
79
- import TextEditor from "./cell-editors/Text";
80
80
  import NumberEditor from "./cell-editors/Number";
81
+ import RowEditor, { RowEditorData } from "./cell-editors/Row";
81
82
  import SelectEditor from "./cell-editors/Select";
82
- import Custom from "./cell-editors/Custom";
83
+ import TextEditor from "./cell-editors/Text";
83
84
  import EditorWrapper from "./cell-editors/Wrapper";
84
- import empty from "./empty.png";
85
- export { AgGridReact } from '@ag-grid-community/react';
86
- ModuleRegistry.registerModules([ClientSideRowModelModule, RowGroupingModule, InfiniteRowModelModule, ClipboardModule, MenuModule, SideBarModule, ColumnsToolPanelModule, ServerSideRowModelModule], false);
85
+ import CustomColumnPanel from "./components/CustomColumnPanel";
86
+ import Search from "./components/Search";
87
+ import Selected from "./components/Selected";
88
+ import GridStoreContext from "./context/GridStore";
89
+ import { useGridStore } from "./hooks";
90
+ import { ClipboardModule } from "./modules/clipboard/main";
91
+ import { ColumnsToolPanelModule } from "./modules/column-tool-panel/main";
92
+ import { MasterDetailModule } from "./modules/master-detail/main";
93
+ import { MenuModule } from "./modules/menu/main";
94
+ import { RowGroupingModule } from "./modules/row-grouping/main";
95
+ import { SideBarModule } from "./modules/side-bar/main";
96
+ import Actions from "./renderer/Actions";
97
+ import CellIndexRender from "./renderer/CellIndexRenderer";
98
+ import CellRenderer from "./renderer/CellRenderer";
99
+ import DetailCellRenderer from "./renderer/DetailCellRenderer";
100
+ import HeaderRenderer from "./renderer/HeaderRenderer";
101
+ import { prefix, getColField, isColumn, withSyncRender, Store, Selection, columnTypes } from "./utils";
102
+
103
+ var add = function add(a, b) {
104
+ return new BigNumber(a).plus(b);
105
+ };
106
+
107
+ var subtract = function subtract(a, b) {
108
+ return new BigNumber(a).minus(b);
109
+ };
110
+
111
+ var multiply = function multiply(a, b) {
112
+ return new BigNumber(a).times(b);
113
+ };
114
+
115
+ var divide = function divide(a, b) {
116
+ return new BigNumber(a).div(b);
117
+ };
118
+
119
+ var _create = create({
120
+ parseDependencies: parseDependencies,
121
+ createAdd: factory('add', [], function () {
122
+ return add;
123
+ }),
124
+ createSubtract: factory('subtract', [], function () {
125
+ return subtract;
126
+ }),
127
+ createMultiply: factory('multiply', [], function () {
128
+ return multiply;
129
+ }),
130
+ createDivide: factory('divide', [], function () {
131
+ return divide;
132
+ })
133
+ }),
134
+ parse = _create.parse;
135
+
136
+ ModuleRegistry.registerModules([ClientSideRowModelModule, RowGroupingModule, InfiniteRowModelModule, ClipboardModule, MenuModule, SideBarModule, ColumnsToolPanelModule, MasterDetailModule], false);
87
137
  var defaultColDef = {
88
138
  resizable: true,
89
- width: 140,
139
+ initialWidth: 140,
90
140
  suppressMenu: true
91
141
  };
142
+ var defaultComponents = {
143
+ agColumnHeader: HeaderRenderer,
144
+ agColumnGroupHeader: HeaderRenderer,
145
+ 'text-editor': TextEditor,
146
+ 'number-editor': NumberEditor,
147
+ 'date-editor': DateEditor,
148
+ 'select-editor': SelectEditor,
149
+ 'row-editor': RowEditor,
150
+ 'row-index': CellIndexRender
151
+ };
152
+
153
+ function unsort() {
154
+ return 0;
155
+ }
156
+
157
+ function EmptyOverlay(props) {
158
+ var err = useGridStore(function (state) {
159
+ return state.fetchError;
160
+ });
161
+ var _props$desc = props.desc,
162
+ desc = _props$desc === void 0 ? '暂无数据' : _props$desc;
163
+ return /*#__PURE__*/React.createElement("div", {
164
+ className: prefix('empty-overlay')
165
+ }, err ? err.message : desc, "~");
166
+ }
92
167
 
93
168
  var DataGrid = /*#__PURE__*/function (_Component) {
94
169
  _inherits(DataGrid, _Component);
@@ -104,11 +179,9 @@ var DataGrid = /*#__PURE__*/function (_Component) {
104
179
 
105
180
  _defineProperty(_assertThisInitialized(_this), "api", new GridApi());
106
181
 
107
- _defineProperty(_assertThisInitialized(_this), "selected", new Selection());
108
-
109
182
  _defineProperty(_assertThisInitialized(_this), "columnApi", new ColumnApi());
110
183
 
111
- _defineProperty(_assertThisInitialized(_this), "colRenderer", new ColMethod());
184
+ _defineProperty(_assertThisInitialized(_this), "selected", void 0);
112
185
 
113
186
  _defineProperty(_assertThisInitialized(_this), "store", void 0);
114
187
 
@@ -130,69 +203,147 @@ var DataGrid = /*#__PURE__*/function (_Component) {
130
203
  labelDefault: 'Columns',
131
204
  labelKey: 'columns',
132
205
  iconKey: 'columns',
133
- toolPanel: 'agColumnsToolPanel',
206
+ toolPanel: CustomColumnPanel,
134
207
  toolPanelParams: {
135
- suppressRowGroups: true,
136
- suppressValues: true,
137
- suppressPivots: true,
138
- suppressPivotMode: true
208
+ enableSave: !!_this.props.customColumnPanelStorage
139
209
  }
140
210
  }]
141
211
  });
142
212
 
143
- _defineProperty(_assertThisInitialized(_this), "init", function (args) {
144
- var api = args.api,
145
- columnApi = args.columnApi;
146
- _this.api = api;
147
- _this.columnApi = columnApi;
148
- _this.isReady = true;
213
+ _defineProperty(_assertThisInitialized(_this), "searchRef", /*#__PURE__*/createRef());
149
214
 
150
- _this.clearReadyQueue();
215
+ _defineProperty(_assertThisInitialized(_this), "prevFocusedCell", null);
151
216
 
152
- var _this$props = _this.props,
153
- onGridReady = _this$props.onGridReady,
154
- autoLoad = _this$props.autoLoad;
217
+ _defineProperty(_assertThisInitialized(_this), "fields", []);
155
218
 
156
- if (onGridReady !== undefined) {
157
- onGridReady(args);
158
- }
219
+ _defineProperty(_assertThisInitialized(_this), "getFieldsSummary", memoizeOne(function (dataSource, fields) {
220
+ var summaryField = fields.filter(function (field) {
221
+ return field.summary;
222
+ });
223
+ var summary = {};
224
+ dataSource.forEach(function (data) {
225
+ var rowId = _this.getRowId({
226
+ data: data
227
+ });
159
228
 
160
- if (_this.isClientMode()) {
161
- _this.syncRowData();
162
- } else if (autoLoad) {
163
- _this.getDataFromServer();
164
- }
229
+ var node = _this.api.getRowNode(rowId);
230
+
231
+ if (node === undefined) {
232
+ return;
233
+ }
234
+
235
+ summaryField.forEach(function (field) {
236
+ if (field.summaryType === 2) {
237
+ return;
238
+ }
165
239
 
166
- api.addEventListener('sortChanged', function (evt) {
167
- _this.sort(evt);
168
- }); // 用于同步selection
240
+ var column = _this.columnApi.getColumn(field.id);
169
241
 
170
- api.addEventListener('rowSelected', function (_ref) {
171
- var node = _ref.node;
172
- var rowSelection = _this.props.rowSelection;
242
+ if (column === null) {
243
+ return;
244
+ }
173
245
 
174
- if (rowSelection !== undefined && node.id !== undefined && node.data !== undefined && api.getRowNode(node.id) !== undefined) {
175
- var prevSelected = _this.selected.has(node.id);
246
+ var colDef = column.getColDef();
176
247
 
177
- var currSelected = node.isSelected();
248
+ var value = _this.api.getValue(field.id, node);
178
249
 
179
- if (currSelected !== prevSelected) {
180
- if (currSelected) {
181
- _this.selected.set(node.id, node.data);
182
- } else {
183
- _this.selected.delete(node.id);
184
- }
250
+ if (typeof colDef.valueFormatter === 'function') {
251
+ value = colDef.valueFormatter({
252
+ api: _this.api,
253
+ columnApi: _this.columnApi,
254
+ context: _this.store.getState().context,
255
+ node: node,
256
+ data: data,
257
+ column: column,
258
+ colDef: colDef,
259
+ value: value
260
+ });
185
261
  }
186
- }
262
+
263
+ if (summary[field.id] === undefined) {
264
+ summary[field.id] = new BigNumber(0);
265
+ }
266
+
267
+ summary[field.id] = summary[field.id].plus(value);
268
+ });
187
269
  });
188
- api.addEventListener('selectionChanged', function () {
189
- var rowSelection = _this.props.rowSelection;
270
+ return summary;
271
+ }));
272
+
273
+ _defineProperty(_assertThisInitialized(_this), "init", /*#__PURE__*/function () {
274
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(args) {
275
+ var api, columnApi, onGridReady;
276
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
277
+ while (1) {
278
+ switch (_context.prev = _context.next) {
279
+ case 0:
280
+ api = args.api, columnApi = args.columnApi;
281
+ _this.api = api;
282
+ _this.columnApi = columnApi;
283
+ _this.isReady = true;
190
284
 
191
- if (_this.selected.isDirty() && rowSelection !== undefined && rowSelection.onChange !== undefined) {
192
- var result = _this.selected.flush();
285
+ _this.clearReadyQueue();
193
286
 
194
- rowSelection.onChange(result[0], result[1].filter(Boolean));
195
- }
287
+ onGridReady = _this.props.onGridReady;
288
+
289
+ if (onGridReady !== undefined) {
290
+ onGridReady(args);
291
+ }
292
+
293
+ api.addEventListener('sortChanged', function () {
294
+ if (!_this.isClientMode()) {
295
+ _this.getDataFromServer();
296
+ }
297
+ }); // 用于同步selection
298
+
299
+ api.addEventListener('rowSelected', function (_ref2) {
300
+ var node = _ref2.node;
301
+ var rowSelection = _this.props.rowSelection;
302
+
303
+ if (rowSelection !== undefined && node.id !== undefined && node.data !== undefined && api.getRowNode(node.id) !== undefined) {
304
+ var prevSelected = _this.selected.has(node.id);
305
+
306
+ var currSelected = node.isSelected();
307
+
308
+ if (currSelected !== prevSelected) {
309
+ if (rowSelection.type === 'radio') {
310
+ _this.selected.clear();
311
+ }
312
+
313
+ if (currSelected) {
314
+ _this.selected.set(node.id, node.data);
315
+ } else {
316
+ _this.selected.delete(node.id);
317
+ }
318
+ }
319
+ }
320
+ });
321
+ api.addEventListener('selectionChanged', function () {
322
+ var rowSelection = _this.props.rowSelection;
323
+
324
+ if (_this.selected.isDirty() && rowSelection !== undefined && rowSelection.onChange !== undefined) {
325
+ var result = _this.selected.flush();
326
+
327
+ rowSelection.onChange(result[0], result[1].filter(Boolean));
328
+ }
329
+ });
330
+
331
+ case 10:
332
+ case "end":
333
+ return _context.stop();
334
+ }
335
+ }
336
+ }, _callee);
337
+ }));
338
+
339
+ return function (_x) {
340
+ return _ref.apply(this, arguments);
341
+ };
342
+ }());
343
+
344
+ _defineProperty(_assertThisInitialized(_this), "NoRowsOverlay", function () {
345
+ return /*#__PURE__*/React.createElement(EmptyOverlay, {
346
+ desc: _this.props.emptyText
196
347
  });
197
348
  });
198
349
 
@@ -203,31 +354,40 @@ var DataGrid = /*#__PURE__*/function (_Component) {
203
354
  });
204
355
 
205
356
  _defineProperty(_assertThisInitialized(_this), "cellValueChanged", function (evt) {
206
- var _this$props2 = _this.props,
207
- onDataSouceChange = _this$props2.onDataSouceChange,
208
- onCellValueChanged = _this$props2.onCellValueChanged;
357
+ var _this$props = _this.props,
358
+ onDataSourceChange = _this$props.onDataSourceChange,
359
+ onCellValueChanged = _this$props.onCellValueChanged;
209
360
 
210
361
  if (onCellValueChanged) {
211
362
  onCellValueChanged(evt);
212
363
  }
213
364
 
214
- if (onDataSouceChange !== undefined) {
365
+ if (onDataSourceChange !== undefined) {
366
+ var _this$searchRef$curre;
367
+
215
368
  /**
216
369
  * 这么做是为了解决可编辑表格直接修改了原始数据的问题
217
370
  */
218
371
  _this.dataSource = _toConsumableArray(_this.dataSource);
219
- onDataSouceChange(_this.dataSource);
372
+ (_this$searchRef$curre = _this.searchRef.current) === null || _this$searchRef$curre === void 0 ? void 0 : _this$searchRef$curre.reset();
373
+ onDataSourceChange(_this.dataSource, evt);
220
374
  }
221
375
  });
222
376
 
223
- _defineProperty(_assertThisInitialized(_this), "rowDataUpdated", function () {
377
+ _defineProperty(_assertThisInitialized(_this), "rowDataUpdated", function (evt) {
224
378
  if (!_this.isReady) {
225
379
  return;
226
380
  }
227
381
 
228
- var onDataSouceChange = _this.props.onDataSouceChange;
382
+ var _this$props2 = _this.props,
383
+ onDataSourceChange = _this$props2.onDataSourceChange,
384
+ onRowDataUpdated = _this$props2.onRowDataUpdated;
229
385
  var data = [];
230
386
 
387
+ if (onRowDataUpdated !== undefined) {
388
+ onRowDataUpdated(evt);
389
+ }
390
+
231
391
  _this.api.forEachNode(function (rowNode) {
232
392
  if (rowNode.data !== undefined) {
233
393
  data.push(rowNode.data);
@@ -241,33 +401,142 @@ var DataGrid = /*#__PURE__*/function (_Component) {
241
401
  if (!shallowEqual(data, _this.dataSource)) {
242
402
  _this.dataSource = data;
243
403
 
244
- if (onDataSouceChange !== undefined) {
245
- onDataSouceChange(data);
404
+ if (onDataSourceChange !== undefined) {
405
+ var _this$searchRef$curre2;
406
+
407
+ (_this$searchRef$curre2 = _this.searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.reset();
408
+ onDataSourceChange(data, evt);
246
409
  }
247
410
  }
248
411
  });
249
412
 
250
413
  _defineProperty(_assertThisInitialized(_this), "cellEditingStop", function (evt) {
414
+ var onCellEditingStopped = _this.props.onCellEditingStopped;
251
415
  var data = evt.data;
252
416
 
253
417
  _this.validateRecord(data);
418
+
419
+ onCellEditingStopped === null || onCellEditingStopped === void 0 ? void 0 : onCellEditingStopped(evt);
420
+ });
421
+
422
+ _defineProperty(_assertThisInitialized(_this), "blurTimer", null);
423
+
424
+ _defineProperty(_assertThisInitialized(_this), "handleBlur", function () {
425
+ if (_this.props.stopEditingWhenCellsLoseFocus) {
426
+ _this.blurTimer = setTimeout(function () {
427
+ if (_this.isReady) {
428
+ _this.api.clearFocusedCell();
429
+ }
430
+
431
+ _this.blurTimer = null;
432
+ }, 4);
433
+ }
434
+ });
435
+
436
+ _defineProperty(_assertThisInitialized(_this), "handleFocus", function () {
437
+ if (_this.blurTimer !== null) {
438
+ clearTimeout(_this.blurTimer);
439
+ }
440
+ });
441
+
442
+ _defineProperty(_assertThisInitialized(_this), "handleClearSelected", function () {
443
+ _this.selected.clear();
444
+
445
+ _this.api.getSelectedNodes().forEach(function (node) {
446
+ node.setSelected(false, false, true);
447
+ });
448
+
449
+ _this.api.dispatchEvent({
450
+ type: 'selectionChanged'
451
+ });
452
+ });
453
+
454
+ _defineProperty(_assertThisInitialized(_this), "getMemoizedDefaultColDef", memoizeOne(function (defaultColDefProp) {
455
+ return _objectSpread(_objectSpread({
456
+ comparator: _this.isClientMode() ? undefined : unsort
457
+ }, defaultColDef), defaultColDefProp);
458
+ }, function (next, prev) {
459
+ return shallowEqual(prev[0], next[0]);
460
+ }));
461
+
462
+ _defineProperty(_assertThisInitialized(_this), "getMemoizedColumnTypes", memoizeOne(function (columnTypesProp) {
463
+ return _objectSpread(_objectSpread({}, columnTypes), columnTypesProp);
464
+ }));
465
+
466
+ _defineProperty(_assertThisInitialized(_this), "getMemoizedComponents", memoizeOne(function (componentsProp) {
467
+ return _objectSpread(_objectSpread({}, defaultComponents), componentsProp);
468
+ }, function (next, prev) {
469
+ return shallowEqual(prev[0], next[0]);
470
+ }));
471
+
472
+ _defineProperty(_assertThisInitialized(_this), "getMemoizedDetailCellParams", memoizeOne(function (detailCell, params, autoHeight) {
473
+ if (detailCell === undefined) {
474
+ return params;
475
+ }
476
+
477
+ return {
478
+ masterDetail: true,
479
+ detailCellRenderer: DetailCellRenderer,
480
+ detailCellRendererParams: _objectSpread(_objectSpread(_objectSpread({}, params), detailCell.params), {}, {
481
+ autoHeight: autoHeight,
482
+ render: detailCell.render
483
+ })
484
+ };
485
+ }));
486
+
487
+ _defineProperty(_assertThisInitialized(_this), "getRowStyle", function (params) {
488
+ var getRowStyle = _this.props.getRowStyle;
489
+ var style = getRowStyle === null || getRowStyle === void 0 ? void 0 : getRowStyle(params);
490
+
491
+ if (params.node.rowPinned === 'bottom') {
492
+ return _objectSpread({
493
+ fontWeight: 'bold'
494
+ }, style);
495
+ }
496
+
497
+ return style;
498
+ });
499
+
500
+ _defineProperty(_assertThisInitialized(_this), "cellFocused", function (evt) {
501
+ var rowIndex = evt.rowIndex,
502
+ rowPinned = evt.rowPinned,
503
+ column = evt.column,
504
+ api = evt.api;
505
+ var onCellFocused = _this.props.onCellFocused;
506
+ onCellFocused === null || onCellFocused === void 0 ? void 0 : onCellFocused(evt);
507
+
508
+ if (rowIndex === null || column === null || rowPinned) {
509
+ _this.prevFocusedCell = null;
510
+ return;
511
+ }
512
+
513
+ var node = api.getModel().getRow(rowIndex);
514
+
515
+ if (node === undefined || !node.id) {
516
+ _this.prevFocusedCell = null;
517
+ return;
518
+ }
519
+
520
+ _this.prevFocusedCell = {
521
+ row: node.id,
522
+ column: typeof column === 'string' ? column : column.getColId()
523
+ };
254
524
  });
255
525
 
256
526
  _this.state = _objectSpread({
257
- colDefs: _this.getColumDefs(),
258
- loading: props.loading
527
+ loading: false,
528
+ useDataSource: props.dataSource !== undefined
259
529
  }, _this.getPagination());
260
530
  _this.store = new Store({
261
531
  errors: new Map(),
262
- context: props.context
532
+ context: props.context,
533
+ grid: _assertThisInitialized(_this)
263
534
  });
264
535
  var _props$rowSelection = props.rowSelection;
265
536
  _props$rowSelection = _props$rowSelection === void 0 ? {} : _props$rowSelection;
266
537
  var _props$rowSelection$s = _props$rowSelection.selectedRowKeys,
267
538
  selectedRowKeys = _props$rowSelection$s === void 0 ? [] : _props$rowSelection$s;
268
- selectedRowKeys.forEach(function (key) {
269
- _this.selected.set(key, null);
270
- });
539
+ _this.selected = new Selection(selectedRowKeys);
271
540
 
272
541
  _this.syncColRender();
273
542
 
@@ -275,6 +544,88 @@ var DataGrid = /*#__PURE__*/function (_Component) {
275
544
  }
276
545
 
277
546
  _createClass(DataGrid, [{
547
+ key: "setField",
548
+ value: function setField(field) {
549
+ var idx = this.fields.findIndex(function (item) {
550
+ return item.id === field.id;
551
+ });
552
+
553
+ if (idx >= 0) {
554
+ this.fields[idx] = field;
555
+ } else {
556
+ this.fields.push(field);
557
+ }
558
+
559
+ this.updateColumnDefs(this.columnApi.getColumnState());
560
+ }
561
+ }, {
562
+ key: "getField",
563
+ value: function getField(id) {
564
+ return this.fields.find(function (item) {
565
+ return item.id === id;
566
+ });
567
+ }
568
+ }, {
569
+ key: "deleteField",
570
+ value: function deleteField(id) {
571
+ var idx = this.fields.findIndex(function (item) {
572
+ return item.id === id;
573
+ });
574
+
575
+ if (idx >= 0) {
576
+ this.fields.splice(idx, 1);
577
+ this.updateColumnDefs(this.columnApi.getColumnState());
578
+ }
579
+ }
580
+ }, {
581
+ key: "saveFields",
582
+ value: function () {
583
+ var _saveFields = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
584
+ var customColumnPanelStorage;
585
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
586
+ while (1) {
587
+ switch (_context2.prev = _context2.next) {
588
+ case 0:
589
+ customColumnPanelStorage = this.props.customColumnPanelStorage;
590
+
591
+ if (!customColumnPanelStorage) {
592
+ _context2.next = 4;
593
+ break;
594
+ }
595
+
596
+ _context2.next = 4;
597
+ return customColumnPanelStorage.set({
598
+ fields: this.fields,
599
+ columState: this.columnApi.getColumnState()
600
+ });
601
+
602
+ case 4:
603
+ case "end":
604
+ return _context2.stop();
605
+ }
606
+ }
607
+ }, _callee2, this);
608
+ }));
609
+
610
+ function saveFields() {
611
+ return _saveFields.apply(this, arguments);
612
+ }
613
+
614
+ return saveFields;
615
+ }()
616
+ }, {
617
+ key: "resetFields",
618
+ value: function resetFields() {
619
+ this.fields = [];
620
+
621
+ var _this$getColumnDefs = this.getColumnDefs(),
622
+ _this$getColumnDefs2 = _slicedToArray(_this$getColumnDefs, 1),
623
+ defs = _this$getColumnDefs2[0];
624
+
625
+ this.api.setColumnDefs([]);
626
+ this.api.setColumnDefs(defs);
627
+ }
628
+ }, {
278
629
  key: "getPagination",
279
630
  value: function getPagination() {
280
631
  var _this$props3 = this.props,
@@ -310,17 +661,28 @@ var DataGrid = /*#__PURE__*/function (_Component) {
310
661
  }, {
311
662
  key: "componentDidUpdate",
312
663
  value: function componentDidUpdate(prevProps) {
313
- var _prevProps$rowSelecti;
664
+ var _this2 = this,
665
+ _prevProps$rowSelecti;
314
666
 
315
667
  var _this$props4 = this.props,
316
668
  columns = _this$props4.columns,
317
669
  rowSelection = _this$props4.rowSelection,
318
670
  dataSource = _this$props4.dataSource,
319
- context = _this$props4.context,
320
- loading = _this$props4.loading;
671
+ context = _this$props4.context;
321
672
 
322
673
  if (columns !== prevProps.columns) {
323
674
  this.syncColRender();
675
+ this.afterReady(function () {
676
+ _this2.updateColumnDefs(_this2.columnApi.getColumnState());
677
+
678
+ if (_this2.fields.length > 0) {
679
+ _this2.api.refreshCells({
680
+ columns: _this2.fields.map(function (item) {
681
+ return item.id;
682
+ })
683
+ });
684
+ }
685
+ });
324
686
  }
325
687
 
326
688
  if ((rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.selectedRowKeys) !== ((_prevProps$rowSelecti = prevProps.rowSelection) === null || _prevProps$rowSelecti === void 0 ? void 0 : _prevProps$rowSelecti.selectedRowKeys)) {
@@ -336,52 +698,126 @@ var DataGrid = /*#__PURE__*/function (_Component) {
336
698
  context: context
337
699
  });
338
700
  }
701
+ }
702
+ }, {
703
+ key: "componentWillUnmount",
704
+ value: function componentWillUnmount() {
705
+ this.isReady = false;
706
+ window.removeEventListener('blur', this.handleFocus);
707
+ }
708
+ }, {
709
+ key: "componentDidMount",
710
+ value: function () {
711
+ var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
712
+ var _this$props5, customColumnPanelStorage, autoLoad, state, data;
339
713
 
340
- if (loading !== prevProps.loading) {
341
- this.setState({
342
- loading: loading
343
- });
714
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
715
+ while (1) {
716
+ switch (_context3.prev = _context3.next) {
717
+ case 0:
718
+ window.addEventListener('blur', this.handleFocus);
719
+ _this$props5 = this.props, customColumnPanelStorage = _this$props5.customColumnPanelStorage, autoLoad = _this$props5.autoLoad;
720
+
721
+ if (!customColumnPanelStorage) {
722
+ _context3.next = 18;
723
+ break;
724
+ }
725
+
726
+ this.setState({
727
+ loading: true
728
+ });
729
+ _context3.prev = 4;
730
+ _context3.next = 7;
731
+ return customColumnPanelStorage.get();
732
+
733
+ case 7:
734
+ data = _context3.sent;
735
+
736
+ if (data) {
737
+ this.fields = data.fields;
738
+ state = data.columState;
739
+ }
740
+
741
+ _context3.next = 14;
742
+ break;
743
+
744
+ case 11:
745
+ _context3.prev = 11;
746
+ _context3.t0 = _context3["catch"](4);
747
+ console.log('获取列定制失败', _context3.t0.message);
748
+
749
+ case 14:
750
+ this.setState({
751
+ loading: false
752
+ });
753
+ this.updateColumnDefs(state, true);
754
+ _context3.next = 19;
755
+ break;
756
+
757
+ case 18:
758
+ this.updateColumnDefs();
759
+
760
+ case 19:
761
+ if (this.isClientMode()) {
762
+ this.syncRowData();
763
+ } else if (autoLoad) {
764
+ this.getDataFromServer();
765
+ }
766
+
767
+ case 20:
768
+ case "end":
769
+ return _context3.stop();
770
+ }
771
+ }
772
+ }, _callee3, this, [[4, 11]]);
773
+ }));
774
+
775
+ function componentDidMount() {
776
+ return _componentDidMount.apply(this, arguments);
344
777
  }
345
- }
778
+
779
+ return componentDidMount;
780
+ }()
346
781
  }, {
347
782
  key: "syncColRender",
348
783
  value: function syncColRender() {
349
- var _this2 = this;
350
-
351
- var _this$props5 = this.props,
352
- _this$props5$columns = _this$props5.columns,
353
- columns = _this$props5$columns === void 0 ? [] : _this$props5$columns,
354
- _this$props5$columnRe = _this$props5.columnRenderMethods,
355
- columnRenderMethods = _this$props5$columnRe === void 0 ? ['title', 'render', 'editable.render'] : _this$props5$columnRe;
356
- this.colRenderer.reset();
784
+ var _this$props$columns = this.props.columns,
785
+ columns = _this$props$columns === void 0 ? [] : _this$props$columns;
357
786
  var descriptor = Object.create(null);
358
787
 
359
788
  var traverse = function traverse(cols) {
360
789
  cols.forEach(function (item) {
361
- columnRenderMethods.forEach(function (path) {
362
- _this2.colRenderer.set(item, path);
363
- });
364
790
  var rules = get(item, ['editable', 'rules']);
365
791
 
366
792
  if (rules !== undefined) {
367
793
  var id = getColField(item);
368
794
 
369
795
  if (id !== undefined) {
370
- descriptor[id] = rules.map(function (rule) {
371
- var validator = rule.validator,
372
- restRule = _objectWithoutProperties(rule, _excluded);
373
-
374
- return _objectSpread(_objectSpread({}, restRule), {}, {
375
- asyncValidator: validator ? function (mRule, value, _, record) {
376
- return validator(mRule, value, record);
377
- } : undefined,
378
- validator: undefined
796
+ var path = id.split('.');
797
+ var node = {};
798
+
799
+ for (var i = path.length - 1; i >= 0; i -= 1) {
800
+ node = _defineProperty({}, path[i], i === path.length - 1 ? rules.map(function (rule) {
801
+ var validator = rule.validator,
802
+ restRule = _objectWithoutProperties(rule, _excluded);
803
+
804
+ return _objectSpread(_objectSpread({}, restRule), {}, {
805
+ asyncValidator: validator ? function (mRule, value, _, record) {
806
+ return validator(mRule, value, record);
807
+ } : undefined,
808
+ validator: undefined
809
+ });
810
+ }) : {
811
+ type: 'object',
812
+ fields: node
379
813
  });
380
- });
814
+ }
815
+
816
+ Object.assign(descriptor, node);
381
817
  }
382
818
  }
383
819
 
384
- if (!isColumnType(item)) {
820
+ if (!isColumn(item)) {
385
821
  traverse(item.children);
386
822
  }
387
823
  });
@@ -400,261 +836,460 @@ var DataGrid = /*#__PURE__*/function (_Component) {
400
836
  value: function syncSelection() {
401
837
  var _this3 = this;
402
838
 
403
- var _this$props$rowSelect = this.props.rowSelection;
404
- _this$props$rowSelect = _this$props$rowSelect === void 0 ? {} : _this$props$rowSelect;
405
- var selectedRowKeys = _this$props$rowSelect.selectedRowKeys;
839
+ this.afterReady(function () {
840
+ var _this3$props$rowSelec = _this3.props.rowSelection;
841
+ _this3$props$rowSelec = _this3$props$rowSelec === void 0 ? {} : _this3$props$rowSelec;
842
+ var selectedRowKeys = _this3$props$rowSelec.selectedRowKeys;
843
+
844
+ if (selectedRowKeys !== undefined && !_this3.selected.isSameKeys(selectedRowKeys)) {
845
+ var newSelected = new Map();
406
846
 
407
- if (selectedRowKeys !== undefined && !this.selected.isSameKeys(selectedRowKeys)) {
408
- var newSelected = new Map();
409
- this.selected.forEach(function (id) {
410
- var node = _this3.api.getRowNode(id);
847
+ _this3.selected.forEach(function (id) {
848
+ var node = _this3.api.getRowNode(id);
411
849
 
412
- if (node !== undefined) {
413
- node.setSelected(false, false, true);
414
- }
415
- });
416
- selectedRowKeys.forEach(function (id) {
417
- newSelected.set(id, _this3.selected.get(id) || null);
850
+ if (node !== undefined) {
851
+ node.setSelected(false, false, true);
852
+ }
853
+ });
418
854
 
419
- var node = _this3.api.getRowNode(id);
855
+ selectedRowKeys.forEach(function (id) {
856
+ var node = _this3.api.getRowNode(id);
420
857
 
421
- if (node !== undefined) {
422
- node.setSelected(true, false, true);
423
- }
424
- });
425
- this.selected.clone(newSelected);
426
- this.api.dispatchEvent({
427
- type: 'selectionChanged'
428
- });
429
- }
858
+ var data;
859
+
860
+ if (node !== undefined) {
861
+ node.setSelected(true, false, true);
862
+ data = node.data;
863
+ }
864
+
865
+ newSelected.set(id, data || _this3.selected.get(id) || null);
866
+ });
867
+
868
+ _this3.selected.clone(newSelected);
869
+
870
+ _this3.api.dispatchEvent({
871
+ type: 'selectionChanged'
872
+ });
873
+ }
874
+ });
430
875
  }
431
876
  }, {
432
877
  key: "syncRowData",
433
878
  value: function syncRowData() {
879
+ var _this4 = this;
880
+
434
881
  var dataSource = this.props.dataSource;
435
882
 
436
883
  if (dataSource !== undefined && dataSource !== this.dataSource) {
884
+ this.updateRowData(dataSource);
885
+ var _this$state = this.state,
886
+ page = _this$state.page,
887
+ pageSize = _this$state.pageSize;
888
+ var totalPages = Math.ceil(dataSource.length / pageSize) || 1;
889
+ var newPage = page > totalPages ? totalPages : page;
437
890
  this.setState({
438
- total: dataSource.length
891
+ total: dataSource.length,
892
+ page: newPage
893
+ }, function () {
894
+ if (newPage !== page && _this4.isClientMode()) {
895
+ _this4.api.paginationGoToPage(newPage - 1);
896
+ }
439
897
  });
440
- this.updateRowData(dataSource);
441
898
  }
442
899
  }
443
900
  }, {
444
- key: "getColumDefs",
445
- value: function getColumDefs() {
446
- var _this4 = this;
901
+ key: "updateColumnDefs",
902
+ value: function updateColumnDefs(state) {
903
+ var _this5 = this;
904
+
905
+ var allState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
906
+ this.afterReady(function () {
907
+ var _this5$getColumnDefs = _this5.getColumnDefs(),
908
+ _this5$getColumnDefs2 = _slicedToArray(_this5$getColumnDefs, 2),
909
+ defs = _this5$getColumnDefs2[0],
910
+ leafColIds = _this5$getColumnDefs2[1];
911
+
912
+ _this5.api.setColumnDefs(defs);
913
+
914
+ if (state) {
915
+ var newState = _toConsumableArray(state);
916
+
917
+ leafColIds.forEach(function (colId, index) {
918
+ if (!colId) {
919
+ return;
920
+ }
921
+
922
+ var idx = state.findIndex(function (item) {
923
+ return item.colId === colId;
924
+ });
925
+
926
+ if (idx < 0) {
927
+ newState.splice(index, 0, {
928
+ colId: colId
929
+ });
930
+ }
931
+ });
932
+ /**
933
+ * 初始化的时候,需要使用存储的columnState,不仅仅是顺序,其他情况由于在defs里已经有列的状态控制了
934
+ */
935
+
936
+ _this5.columnApi.applyColumnState({
937
+ state: allState ? newState : newState.map(function (item) {
938
+ return {
939
+ colId: item.colId
940
+ };
941
+ }),
942
+ applyOrder: true
943
+ });
944
+ }
945
+ });
946
+ }
947
+ }, {
948
+ key: "getFullColumnDef",
949
+ value: function getFullColumnDef(col) {
950
+ if (col.type === undefined) {
951
+ return _objectSpread({}, col);
952
+ }
447
953
 
448
954
  var _this$props6 = this.props,
449
- _this$props6$columns = _this$props6.columns,
450
- columns = _this$props6$columns === void 0 ? [] : _this$props6$columns,
451
- rowActions = _this$props6.rowActions;
955
+ mColumnTypes = _this$props6.columnTypes,
956
+ mDefaultColDef = _this$props6.defaultColDef;
957
+ var colTypes = this.getMemoizedColumnTypes(mColumnTypes);
958
+ var result = {};
959
+ var types;
960
+
961
+ if (typeof col.type === 'string') {
962
+ types = [col.type];
963
+ } else {
964
+ types = col.type;
965
+ }
966
+
967
+ types.forEach(function (type) {
968
+ var colType = colTypes[type];
969
+
970
+ if (colType !== undefined) {
971
+ Object.assign(result, colType);
972
+ }
973
+ });
974
+ Object.assign(result, mDefaultColDef);
975
+ return _objectSpread(_objectSpread({}, result), col);
976
+ }
977
+ }, {
978
+ key: "getColumnDefs",
979
+ value: function getColumnDefs() {
980
+ var _this6 = this;
981
+
982
+ var _this$props7 = this.props,
983
+ _this$props7$columns = _this$props7.columns,
984
+ columns = _this$props7$columns === void 0 ? [] : _this$props7$columns,
985
+ rowActions = _this$props7.rowActions,
986
+ rowSelection = _this$props7.rowSelection;
987
+ var leafColIds = [];
452
988
 
453
989
  var map = function map(cols) {
454
990
  return cols.map(function (item) {
455
- var field = getColField(item);
456
-
457
- if (isColumnType(item)) {
458
- var _title = item.title,
459
- key = item.key,
991
+ if (isColumn(item)) {
992
+ var title = item.title,
460
993
  dataIndex = item.dataIndex,
461
- align = item.align,
462
- type = item.type,
463
- fixed = item.fixed,
464
994
  render = item.render,
465
995
  _item$ellipsis = item.ellipsis,
466
996
  ellipsis = _item$ellipsis === void 0 ? true : _item$ellipsis,
467
- cellRenderer = item.cellRenderer,
468
- cellRendererParams = item.cellRendererParams,
469
- className = item.className,
470
997
  sorter = item.sorter,
471
998
  editable = item.editable,
472
- _rest = _objectWithoutProperties(item, _excluded2);
999
+ className = item.className,
1000
+ colDef = _objectWithoutProperties(item, _excluded2);
473
1001
 
474
- var _opts = {
475
- cellClass: className,
476
- pinned: fixed,
477
- lockPinned: true,
478
- field: field,
479
- type: type,
480
- cellRenderer: cellRenderer,
481
- cellRendererParams: cellRendererParams
482
- }; // title
1002
+ var opts = colDef;
1003
+ var field = getColField(item);
483
1004
 
484
- if (_typeof(_title) === 'object' || typeof _title === 'function') {
485
- _opts.headerComponentParams = _objectSpread(_objectSpread({}, _opts.headerComponentParams), {}, {
486
- title: typeof _title === 'function' ? _this4.colRenderer.toRef(field, 'title') : _title
487
- });
488
- } else if (_title !== undefined) {
489
- _opts.headerName = _title.toString();
490
- } // align
1005
+ if (field !== undefined) {
1006
+ opts.field = getColField(item);
1007
+ }
491
1008
 
1009
+ var def = _this6.getFullColumnDef(opts);
1010
+ /** 部分列由于使用type 可能存在colId以及field都不存在, maintainColumnOrder下updateColumnDefs有问题,故从merge后的def中提取field或者colId */
492
1011
 
493
- if (align === 'right') {
494
- if (!_opts.type) {
495
- _opts.type = [];
496
- }
497
1012
 
498
- if (!Array.isArray(_opts.type)) {
499
- _opts.type = [_opts.type];
500
- }
1013
+ opts.colId = def.colId || def.field; // className
1014
+
1015
+ if (className) {
1016
+ opts.cellClass = className;
1017
+ } // title
1018
+
501
1019
 
502
- _opts.type = [].concat(_toConsumableArray(_opts.type), ['rightAligned']);
1020
+ if (_typeof(title) === 'object' || typeof title === 'function') {
1021
+ opts.headerComponentParams = _objectSpread(_objectSpread({}, opts.headerComponentParams), {}, {
1022
+ title: title
1023
+ });
1024
+ } else if (title !== undefined) {
1025
+ opts.headerName = title.toString();
503
1026
  } // render
504
1027
 
505
1028
 
506
- if (!_opts.cellRenderer && render) {
507
- _opts.cellRenderer = CellRenderer;
508
- _opts.cellRendererParams = _objectSpread(_objectSpread({}, _opts.cellRendererParams), {}, {
509
- render: _this4.colRenderer.toRef(field, 'render')
1029
+ if (render !== undefined) {
1030
+ opts.cellRenderer = CellRenderer;
1031
+ opts.cellRendererParams = _objectSpread(_objectSpread({}, opts.cellRendererParams), {}, {
1032
+ render: render
510
1033
  });
511
1034
  } // ellipsis
512
1035
 
513
1036
 
514
- if (!ellipsis) {
515
- _opts.wrapText = true;
516
- _opts.autoHeight = true;
517
- } // sorter
518
-
1037
+ if (ellipsis === false) {
1038
+ opts.wrapText = true;
1039
+ opts.autoHeight = true;
1040
+ } // sortable
519
1041
 
520
- if (sorter) {
521
- _opts.sortable = true;
522
1042
 
1043
+ if (sorter !== undefined) {
523
1044
  if (typeof sorter === 'function') {
524
- _opts.comparator = function (_1, _2, nodeA, nodeB) {
1045
+ opts.sortable = true;
1046
+
1047
+ opts.comparator = function (valA, valB, nodeA, nodeB) {
525
1048
  return sorter(nodeA.data, nodeB.data);
526
1049
  };
1050
+ } else {
1051
+ opts.sortable = sorter;
527
1052
  }
528
- } else {
529
- _opts.sortable = false;
530
1053
  } // editable
531
1054
 
532
1055
 
533
1056
  if (_typeof(editable) === 'object') {
534
- var _type = editable.type,
535
- params = editable.params,
536
- _render = editable.render,
537
- valueSetter = editable.valueSetter;
538
- _opts.editable = true;
539
- _opts.cellClassRules = _defineProperty({}, prefix('editor-cell'), function () {
540
- return true;
541
- });
1057
+ var renderer = editable.renderer,
1058
+ valueSetter = editable.valueSetter,
1059
+ enable = editable.enable;
1060
+
1061
+ opts.editable = function (mParams) {
1062
+ if (DataGrid.isSummaryRow({
1063
+ node: mParams.node
1064
+ })) {
1065
+ return false;
1066
+ }
542
1067
 
543
- if (_opts.cellRenderer === undefined) {
544
- _opts.cellRenderer = CellRenderer;
545
- }
1068
+ if (enable !== undefined) {
1069
+ return enable(mParams);
1070
+ }
546
1071
 
547
- if (_opts.valueSetter === undefined && valueSetter !== undefined) {
548
- _opts.valueSetter = function (mParams) {
549
- var field = mParams.colDef.field,
550
- data = mParams.data,
551
- newValue = mParams.newValue;
1072
+ return true;
1073
+ };
552
1074
 
553
- if (field) {
554
- set(data, field, newValue);
555
- }
1075
+ opts.cellClassRules = _objectSpread(_objectSpread({}, opts.cellClassRules), {}, _defineProperty({}, prefix('editor-cell'), function (mParams) {
1076
+ if (mParams.node.isRowPinned()) {
1077
+ return false;
1078
+ }
556
1079
 
557
- var result = valueSetter(mParams.newValue, mParams.data);
558
- Object.assign(data, result);
559
- return true;
560
- };
561
- }
1080
+ if (enable !== undefined) {
1081
+ return enable(mParams);
1082
+ }
562
1083
 
563
- switch (_type) {
564
- case 'text':
565
- _opts.cellEditor = TextEditor;
566
- _opts.cellEditorParams = params;
567
- break;
1084
+ return true;
1085
+ }));
1086
+ /** 由于ag-grid注册事件使用的是js原生事件,不在React事件流内,会产生很多问题,所以默认关闭所有Enter导致关闭编辑,由组件内部自行实现回车 */
568
1087
 
569
- case 'number':
570
- _opts.cellEditor = NumberEditor;
571
- _opts.cellEditorParams = params;
572
- break;
1088
+ opts.suppressKeyboardEvent = function (keyParmas) {
1089
+ if (item.suppressKeyboardEvent !== undefined && item.suppressKeyboardEvent(keyParmas)) {
1090
+ return true;
1091
+ }
573
1092
 
574
- case 'date':
575
- _opts.cellEditor = DateEditor;
576
- _opts.cellEditorParams = params;
1093
+ if (keyParmas.editing && keyParmas.event.key === 'Enter') {
1094
+ return true;
1095
+ }
577
1096
 
578
- _opts.suppressKeyboardEvent = function (_ref2) {
579
- var editing = _ref2.editing,
580
- event = _ref2.event;
1097
+ return false;
1098
+ };
581
1099
 
582
- if (editing && event.key === 'Enter') {
583
- return true;
584
- }
1100
+ opts.cellRenderer = CellRenderer;
585
1101
 
586
- return false;
587
- };
1102
+ if (def.cellRenderer && render === undefined) {
1103
+ opts.cellRendererParams = _objectSpread(_objectSpread({}, opts.cellRendererParams), {}, {
1104
+ render: function render(val, idx, data, params) {
1105
+ return def.cellRenderer(params);
1106
+ }
1107
+ });
1108
+ }
588
1109
 
589
- break;
1110
+ opts.valueSetter = function (mParams) {
1111
+ var colField = mParams.colDef.field,
1112
+ data = mParams.data,
1113
+ newValue = mParams.newValue,
1114
+ oldValue = mParams.oldValue;
590
1115
 
591
- case 'select':
592
- _opts.cellEditor = SelectEditor;
593
- _opts.cellEditorParams = params;
1116
+ if (!colField || newValue === oldValue) {
1117
+ return false;
1118
+ }
594
1119
 
595
- _opts.suppressKeyboardEvent = function (_ref3) {
596
- var editing = _ref3.editing,
597
- event = _ref3.event;
1120
+ if (valueSetter !== undefined) {
1121
+ var _result = valueSetter(newValue, data);
598
1122
 
599
- if (editing && event.key === 'Enter') {
600
- return true;
601
- }
1123
+ set(data, colField, newValue);
1124
+ Object.assign(data, _result);
1125
+ } else if (newValue instanceof RowEditorData) {
1126
+ Object.assign(data, newValue.getValue());
1127
+ } else {
1128
+ set(data, colField, newValue);
1129
+ }
602
1130
 
603
- return false;
1131
+ return true;
1132
+ };
1133
+
1134
+ if (typeof renderer === 'function') {
1135
+ opts.cellEditorSelector = function (editorParams) {
1136
+ var result = renderer(editorParams);
1137
+ return {
1138
+ component: result.component || result.type,
1139
+ params: result.params
604
1140
  };
605
-
606
- break;
607
-
608
- case 'custom':
609
- if (_render !== undefined) {
610
- _opts.cellEditor = Custom;
611
- _opts.cellEditorParams = _objectSpread(_objectSpread({}, params), {}, {
612
- render: _render
613
- });
614
- }
615
-
616
- default:
1141
+ };
1142
+ } else {
1143
+ opts.cellEditor = renderer.component || renderer.type;
1144
+ opts.cellEditorParams = renderer.params;
617
1145
  }
618
1146
  } else {
619
- _opts.editable = editable;
1147
+ opts.editable = editable;
620
1148
  }
621
1149
 
622
- return _objectSpread(_objectSpread({}, _opts), _rest);
623
- }
1150
+ leafColIds.push(opts.colId);
1151
+ return opts;
1152
+ } else {
1153
+ var _title = item.title,
1154
+ _item$children = item.children,
1155
+ children = _item$children === void 0 ? [] : _item$children,
1156
+ rest = _objectWithoutProperties(item, _excluded3);
624
1157
 
625
- var title = item.title,
626
- _item$children = item.children,
627
- children = _item$children === void 0 ? [] : _item$children,
628
- rest = _objectWithoutProperties(item, _excluded3);
1158
+ var _opts = {
1159
+ children: map(children)
1160
+ };
629
1161
 
630
- var opts = {
631
- children: map(children)
632
- };
1162
+ if (_typeof(_title) === 'object' || typeof _title === 'function') {
1163
+ _opts.headerGroupComponentParams = _objectSpread(_objectSpread({}, _opts.headerGroupComponentParams), {}, {
1164
+ title: _title
1165
+ });
1166
+ _opts.headerGroupComponent = HeaderRenderer;
1167
+ } else if (_title !== undefined) {
1168
+ _opts.headerName = _title.toString();
1169
+ }
633
1170
 
634
- if (title !== undefined) {
635
- opts.headerName = title.toString();
1171
+ return _objectSpread(_objectSpread({}, _opts), rest);
636
1172
  }
637
-
638
- return _objectSpread(_objectSpread({}, opts), rest);
639
1173
  });
640
1174
  };
641
1175
 
642
1176
  var result = map(columns);
643
- var rowSelection = this.props.rowSelection;
1177
+ this.fields.forEach(function (field) {
1178
+ var expression = field.expression.replace(/\$\{([^{}]+)\}/g, function (match, p1) {
1179
+ if (p1) {
1180
+ return p1;
1181
+ }
1182
+
1183
+ return match;
1184
+ });
1185
+ leafColIds.push(field.id);
1186
+ var code = parse(expression).compile();
1187
+ result.push({
1188
+ colId: field.id,
1189
+ headerName: field.name,
1190
+ spanHeaderHeight: true,
1191
+ sortable: false,
1192
+ type: 'rightAligned',
1193
+ valueGetter: function valueGetter(params) {
1194
+ var api = params.api,
1195
+ node = params.node,
1196
+ columnApi = params.columnApi;
1197
+
1198
+ if (node !== null && node.data !== undefined) {
1199
+ if (DataGrid.isSummaryRow({
1200
+ node: node
1201
+ }) && field.summaryType === 1) {
1202
+ var summary = _this6.getFieldsSummary(_this6.dataSource, _this6.fields);
1203
+
1204
+ return get(summary, field.id);
1205
+ }
1206
+
1207
+ var scope = {
1208
+ get: function get(key) {
1209
+ var col = columnApi.getColumn(key);
1210
+
1211
+ if (col === null) {
1212
+ return NaN;
1213
+ }
1214
+
1215
+ var colDef = col.getColDef();
1216
+ var value = api.getValue(key, node);
1217
+
1218
+ if (typeof colDef.valueFormatter === 'function') {
1219
+ value = colDef.valueFormatter(_objectSpread(_objectSpread({}, params), {}, {
1220
+ value: value
1221
+ }));
1222
+ }
1223
+
1224
+ return value;
1225
+ },
1226
+ set: function set() {},
1227
+ has: function has(key) {
1228
+ return columnApi.getColumn(key) !== null;
1229
+ },
1230
+ keys: function keys() {
1231
+ var currentColumns = columnApi.getColumns();
1232
+
1233
+ if (currentColumns === null) {
1234
+ return [];
1235
+ }
1236
+
1237
+ return currentColumns.map(function (col) {
1238
+ var def = col.getColDef();
1239
+ return def.field || def.colId;
1240
+ });
1241
+ }
1242
+ };
1243
+
1244
+ try {
1245
+ return code.evaluate(scope);
1246
+ } catch (err) {
1247
+ console.warn('DataGrid field evaluate', err);
1248
+ return null;
1249
+ }
1250
+ }
644
1251
 
645
- if (rowSelection !== undefined && result.length > 0) {
646
- result[0] = _objectSpread(_objectSpread({
647
- checkboxSelection: true,
648
- showDisabledCheckboxes: true,
649
- headerCheckboxSelection: rowSelection.type !== 'radio'
650
- }, result[0]), {}, {
651
- headerComponent: HeaderRenderer
1252
+ return null;
1253
+ }
652
1254
  });
1255
+ });
1256
+
1257
+ if (rowSelection !== undefined) {
1258
+ var checkboxSelection = rowSelection.checkboxSelection;
1259
+
1260
+ if (checkboxSelection === undefined) {
1261
+ checkboxSelection = rowSelection.type !== 'radio' ? true : false;
1262
+ }
1263
+
1264
+ if (checkboxSelection) {
1265
+ var _rowSelection$fixed;
1266
+
1267
+ leafColIds.unshift('$$selection');
1268
+ result.unshift({
1269
+ width: 32,
1270
+ colId: '$$selection',
1271
+ checkboxSelection: checkboxSelection,
1272
+ showDisabledCheckboxes: true,
1273
+ headerCheckboxSelection: rowSelection.type !== 'radio',
1274
+ spanHeaderHeight: true,
1275
+ sortable: false,
1276
+ suppressAutoSize: true,
1277
+ suppressMovable: true,
1278
+ suppressMenu: true,
1279
+ lockPinned: true,
1280
+ lockVisible: true,
1281
+ suppressColumnsToolPanel: true,
1282
+ cellClass: prefix('cell-selection'),
1283
+ headerClass: prefix('cell-selection'),
1284
+ pinned: (_rowSelection$fixed = rowSelection.fixed) !== null && _rowSelection$fixed !== void 0 ? _rowSelection$fixed : 'left'
1285
+ });
1286
+ }
653
1287
  }
654
1288
 
655
1289
  if (rowActions !== undefined) {
1290
+ leafColIds.push('$$actions');
656
1291
  result.push({
657
- colId: '__actions__',
1292
+ colId: '$$actions',
658
1293
  pinned: 'right',
659
1294
  cellRenderer: CellRenderer,
660
1295
  width: 1,
@@ -670,12 +1305,12 @@ var DataGrid = /*#__PURE__*/function (_Component) {
670
1305
  headerClass: prefix('operator-cell'),
671
1306
  cellRendererParams: {
672
1307
  render: function render(_, data) {
673
- var rowActions = _this4.props.rowActions;
1308
+ var actions = _this6.props.rowActions;
674
1309
 
675
- if (rowActions !== undefined) {
1310
+ if (actions !== undefined) {
676
1311
  return /*#__PURE__*/React.createElement(Actions, {
677
1312
  data: data,
678
- actions: rowActions
1313
+ actions: actions
679
1314
  });
680
1315
  }
681
1316
 
@@ -685,7 +1320,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
685
1320
  });
686
1321
  }
687
1322
 
688
- return result;
1323
+ return [result, leafColIds];
689
1324
  }
690
1325
  }, {
691
1326
  key: "isClientMode",
@@ -709,156 +1344,222 @@ var DataGrid = /*#__PURE__*/function (_Component) {
709
1344
  this.readyQueue.push(cb);
710
1345
  }
711
1346
  }
1347
+ }, {
1348
+ key: "isPreserveSelected",
1349
+ value: function isPreserveSelected() {
1350
+ var rowSelection = this.props.rowSelection;
1351
+
1352
+ if (rowSelection === undefined) {
1353
+ return false;
1354
+ }
1355
+
1356
+ if (rowSelection.preserveSelectedRowKeys === undefined) {
1357
+ return !this.isClientMode();
1358
+ }
1359
+
1360
+ return rowSelection.preserveSelectedRowKeys;
1361
+ }
712
1362
  }, {
713
1363
  key: "updateRowData",
714
1364
  value: function updateRowData() {
715
- var _this5 = this;
1365
+ var _this7 = this;
716
1366
 
717
1367
  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
718
1368
  this.afterReady(function () {
719
- _this5.dataSource = data;
1369
+ _this7.dataSource = data;
720
1370
 
721
- _this5.api.setRowData(data);
1371
+ _this7.api.setRowData(data);
722
1372
 
723
- _this5.api.forEachNode(function (node) {
724
- if (node.id && _this5.selected.has(node.id)) {
725
- node.setSelected(true, false, true);
726
- }
727
- });
1373
+ if (_this7.isPreserveSelected()) {
1374
+ _this7.api.forEachNode(function (node) {
1375
+ if (node.id && _this7.selected.has(node.id)) {
1376
+ var rowData = _this7.selected.get(node.id);
728
1377
 
729
- _this5.api.dispatchEvent({
730
- type: 'selectionChanged'
731
- });
1378
+ if (node.data !== undefined && rowData !== node.data) {
1379
+ _this7.selected.set(node.id, node.data);
1380
+ }
1381
+
1382
+ if (!node.isSelected()) {
1383
+ node.setSelected(true, false, true);
1384
+ }
1385
+ }
1386
+ });
1387
+ } else {
1388
+ var keys = new Map(data.map(function (item) {
1389
+ return [_this7.getRowId({
1390
+ data: item
1391
+ }), item];
1392
+ }));
1393
+
1394
+ _this7.selected.forEach(function (id) {
1395
+ if (!keys.has(id)) {
1396
+ _this7.selected.delete(id);
1397
+ } else {
1398
+ var node = _this7.api.getRowNode(id);
1399
+
1400
+ if (node !== undefined) {
1401
+ if (node.data !== undefined && _this7.selected.get(id) !== node.data) {
1402
+ _this7.selected.set(id, node.data);
1403
+ }
1404
+
1405
+ if (!node.isSelected()) {
1406
+ node.setSelected(true, false, true);
1407
+ }
1408
+ }
1409
+ }
1410
+ });
1411
+ }
1412
+
1413
+ if (_this7.selected.isDirty()) {
1414
+ _this7.api.dispatchEvent({
1415
+ type: 'selectionChanged'
1416
+ });
1417
+ }
732
1418
  });
733
1419
  }
734
1420
  }, {
735
- key: "getDataFromServer",
736
- value: function getDataFromServer() {
737
- var _this6 = this;
1421
+ key: "getSummaryRowData",
1422
+ value: function getSummaryRowData() {
1423
+ var result = [];
738
1424
 
739
- var fetch = this.props.fetch;
1425
+ for (var _len = arguments.length, summaries = new Array(_len), _key = 0; _key < _len; _key++) {
1426
+ summaries[_key] = arguments[_key];
1427
+ }
740
1428
 
741
- if (typeof fetch === 'function') {
742
- if (this.requestId < Number.MAX_SAFE_INTEGER) {
743
- this.requestId += 1;
1429
+ summaries.forEach(function (summary) {
1430
+ if (Array.isArray(summary)) {
1431
+ result.push.apply(result, _toConsumableArray(summary));
1432
+ } else if (summary) {
1433
+ result.push(summary);
744
1434
  }
1435
+ });
745
1436
 
746
- var _this$state = this.state,
747
- page = _this$state.page,
748
- pageSize = _this$state.pageSize;
749
- var columnState = this.columnApi.getColumnState();
750
- var id = this.requestId;
751
- this.setState({
752
- loading: true
753
- });
754
- fetch({
755
- current: page,
756
- pageSize: pageSize,
757
- sort: columnState.filter(function (item) {
758
- return item.sort !== undefined && item.sort !== null;
759
- }).map(function (item) {
760
- return {
761
- field: item.colId,
762
- order: item.sort === 'desc' ? 'descend' : 'ascend'
763
- };
764
- })
765
- }).then(function (res) {
766
- _this6.setState({
767
- loading: false
768
- });
1437
+ if (result.length <= 0) {
1438
+ return;
1439
+ }
769
1440
 
770
- if (id !== _this6.requestId) {
771
- return;
772
- }
1441
+ return result.map(function (item) {
1442
+ return _objectSpread(_objectSpread({}, item), {}, _defineProperty({}, DataGrid.SummaryFlag, true));
1443
+ });
1444
+ }
1445
+ }, {
1446
+ key: "getDataFromServer",
1447
+ value: function getDataFromServer() {
1448
+ var _this8 = this;
773
1449
 
774
- if (res.total !== undefined) {
775
- _this6.setState({
776
- page: page,
777
- pageSize: pageSize,
778
- total: res.total
1450
+ this.afterReady(function () {
1451
+ var _this8$props = _this8.props,
1452
+ fetch = _this8$props.fetch,
1453
+ onLoading = _this8$props.onLoading,
1454
+ onLoad = _this8$props.onLoad;
1455
+
1456
+ var loadingChange = function loadingChange(flag) {
1457
+ if (onLoading) {
1458
+ onLoading(flag);
1459
+ } else {
1460
+ _this8.setState({
1461
+ loading: flag
779
1462
  });
780
1463
  }
1464
+ };
781
1465
 
782
- var _this6$props = _this6.props,
783
- summary = _this6$props.summary,
784
- onLoad = _this6$props.onLoad;
785
- var pinned = [];
1466
+ if (typeof fetch === 'function') {
1467
+ if (_this8.requestId < Number.MAX_SAFE_INTEGER) {
1468
+ _this8.requestId += 1;
1469
+ }
786
1470
 
787
- if (summary !== undefined) {
788
- if (Array.isArray(summary)) {
789
- pinned = summary;
790
- } else {
791
- pinned.push(summary);
1471
+ var _this8$state = _this8.state,
1472
+ page = _this8$state.page,
1473
+ pageSize = _this8$state.pageSize;
1474
+
1475
+ var columnState = _this8.columnApi.getColumnState();
1476
+
1477
+ var id = _this8.requestId;
1478
+ loadingChange(true);
1479
+ fetch({
1480
+ current: page,
1481
+ pageSize: pageSize,
1482
+ sort: columnState.filter(function (item) {
1483
+ return item.sort !== undefined && item.sort !== null;
1484
+ }).map(function (item) {
1485
+ return {
1486
+ field: item.colId,
1487
+ order: item.sort
1488
+ };
1489
+ })
1490
+ }).then(function (res) {
1491
+ if (id !== _this8.requestId) {
1492
+ return;
792
1493
  }
793
- }
794
1494
 
795
- if (res.summary !== undefined && res.summary !== null) {
796
- pinned.push(res.summary);
797
- } // 重置滚动条
1495
+ loadingChange(false);
1496
+
1497
+ if (res.total !== undefined) {
1498
+ _this8.setState({
1499
+ page: page,
1500
+ pageSize: pageSize,
1501
+ total: res.total
1502
+ });
1503
+ }
798
1504
 
1505
+ var summary = _this8.props.summary;
799
1506
 
800
- var bean = _this6.api.__getContext().getBean('ctrlsService');
1507
+ _this8.updateRowData(res.data);
801
1508
 
802
- bean.getGridBodyCtrl().getScrollFeature().scrollToTop();
1509
+ _this8.api.setPinnedBottomRowData(_this8.getSummaryRowData(summary, res.summary));
803
1510
 
804
- _this6.api.setPinnedBottomRowData(pinned);
1511
+ if (res.data.length > 0) {
1512
+ _this8.api.ensureIndexVisible(0);
1513
+ }
805
1514
 
806
- _this6.updateRowData(res.data);
1515
+ if (onLoad) {
1516
+ onLoad(res.extra);
1517
+ }
807
1518
 
808
- if (onLoad) {
809
- onLoad(res.extra);
810
- }
811
- }).catch(function () {
812
- _this6.setState({
813
- loading: false
1519
+ _this8.store.setState({
1520
+ fetchError: undefined
1521
+ });
1522
+ }).catch(function (err) {
1523
+ _this8.store.setState({
1524
+ fetchError: err
1525
+ });
1526
+
1527
+ loadingChange(false);
1528
+ /** 如果当前是在第一页说明根本没有数据,会误杀其他情况,但不重要 */
1529
+
1530
+ _this8.setState(function (prev) {
1531
+ return {
1532
+ total: prev.page === 1 ? 0 : prev.total
1533
+ };
1534
+ });
1535
+
1536
+ _this8.updateRowData([]);
1537
+
1538
+ _this8.api.setPinnedBottomRowData([]);
814
1539
  });
815
- });
816
- }
817
- }
818
- }, {
819
- key: "sort",
820
- value: function sort(evt) {
821
- if (this.isClientMode()) {
822
- var model = this.api.getModel();
823
- model.onSortChanged(evt);
824
- } else {
825
- this.getDataFromServer();
826
- }
1540
+ }
1541
+ });
827
1542
  }
828
1543
  }, {
829
1544
  key: "pagination",
830
1545
  value: function pagination(page, pageSize) {
831
- var _this7 = this;
1546
+ var _this9 = this;
832
1547
 
833
1548
  this.setState({
834
1549
  page: page,
835
1550
  pageSize: pageSize
836
1551
  }, function () {
837
- if (_this7.isClientMode()) {
1552
+ if (_this9.isClientMode()) {
838
1553
  withSyncRender(function () {
839
- _this7.api.paginationGoToPage(page - 1);
1554
+ _this9.api.paginationGoToPage(page - 1);
840
1555
 
841
- _this7.api.paginationSetPageSize(pageSize);
1556
+ _this9.api.paginationSetPageSize(pageSize);
842
1557
  });
843
1558
  } else {
844
- _this7.getDataFromServer();
1559
+ _this9.getDataFromServer();
845
1560
  }
846
1561
  });
847
1562
  }
848
- }, {
849
- key: "LoadingOverlay",
850
- value: function LoadingOverlay() {
851
- return /*#__PURE__*/React.createElement(Spin, null);
852
- }
853
- }, {
854
- key: "NoRowsOverlay",
855
- value: function NoRowsOverlay() {
856
- return /*#__PURE__*/React.createElement("div", {
857
- className: prefix('empty')
858
- }, /*#__PURE__*/React.createElement("img", {
859
- src: empty
860
- }), /*#__PURE__*/React.createElement("div", null, "\u6682\u65E0\u6570\u636E"));
861
- }
862
1563
  }, {
863
1564
  key: "getMainMenuItems",
864
1565
  value: function getMainMenuItems(params) {
@@ -871,7 +1572,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
871
1572
  }, {
872
1573
  key: "validateRecord",
873
1574
  value: function validateRecord(record) {
874
- var _this8 = this;
1575
+ var _this10 = this;
875
1576
 
876
1577
  if (this.validator === null) {
877
1578
  return;
@@ -881,7 +1582,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
881
1582
  data: record
882
1583
  });
883
1584
  return this.validator.validate(record).then(function () {
884
- var errors = new Map(_this8.store.getState().errors);
1585
+ var errors = new Map(_this10.store.getState().errors);
885
1586
  var error = errors.get(rowId);
886
1587
 
887
1588
  if (error === undefined) {
@@ -890,12 +1591,12 @@ var DataGrid = /*#__PURE__*/function (_Component) {
890
1591
 
891
1592
  errors.delete(rowId);
892
1593
 
893
- _this8.store.setState({
1594
+ _this10.store.setState({
894
1595
  errors: errors
895
1596
  });
896
- }).catch(function (_ref4) {
897
- var fields = _ref4.fields;
898
- var errors = new Map(_this8.store.getState().errors);
1597
+ }).catch(function (_ref3) {
1598
+ var fields = _ref3.fields;
1599
+ var errors = new Map(_this10.store.getState().errors);
899
1600
  var error = new Map();
900
1601
  Object.entries(fields).forEach(function (item) {
901
1602
  error.set(item[0], item[1].map(function (err) {
@@ -904,7 +1605,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
904
1605
  });
905
1606
  errors.set(rowId, error);
906
1607
 
907
- _this8.store.setState({
1608
+ _this10.store.setState({
908
1609
  errors: errors
909
1610
  });
910
1611
  });
@@ -912,13 +1613,13 @@ var DataGrid = /*#__PURE__*/function (_Component) {
912
1613
  }, {
913
1614
  key: "validate",
914
1615
  value: function () {
915
- var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
916
- var _this9 = this;
1616
+ var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
1617
+ var _this11 = this;
917
1618
 
918
1619
  var promises, result, flag, errors, failed;
919
- return _regeneratorRuntime().wrap(function _callee$(_context) {
1620
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
920
1621
  while (1) {
921
- switch (_context.prev = _context.next) {
1622
+ switch (_context4.prev = _context4.next) {
922
1623
  case 0:
923
1624
  promises = [];
924
1625
  this.api.forEachNode(function (rowNode) {
@@ -928,15 +1629,15 @@ var DataGrid = /*#__PURE__*/function (_Component) {
928
1629
  return;
929
1630
  }
930
1631
 
931
- var rowId = _this9.getRowId({
1632
+ var rowId = _this11.getRowId({
932
1633
  data: record
933
1634
  });
934
1635
 
935
- if (_this9.validator === null) {
1636
+ if (_this11.validator === null) {
936
1637
  promises.push(Promise.resolve(true));
937
1638
  } else {
938
- promises.push(_this9.validator.validate(record).catch(function (_ref5) {
939
- var fields = _ref5.fields;
1639
+ promises.push(_this11.validator.validate(record).catch(function (_ref4) {
1640
+ var fields = _ref4.fields;
940
1641
  return Promise.reject({
941
1642
  id: rowId,
942
1643
  fields: fields
@@ -944,23 +1645,27 @@ var DataGrid = /*#__PURE__*/function (_Component) {
944
1645
  }));
945
1646
  }
946
1647
  });
947
- _context.next = 4;
1648
+ _context4.next = 4;
948
1649
  return Promise.allSettled(promises);
949
1650
 
950
1651
  case 4:
951
- result = _context.sent;
1652
+ result = _context4.sent;
952
1653
  flag = false;
953
1654
  errors = new Map();
954
1655
  failed = [];
955
1656
  result.forEach(function (item) {
956
1657
  if (item.status === 'rejected') {
957
- var _ref6 = item.reason,
958
- id = _ref6.id,
959
- fields = _ref6.fields;
1658
+ var _ref5 = item.reason,
1659
+ id = _ref5.id,
1660
+ fields = _ref5.fields;
960
1661
  var error = new Map();
961
- Object.entries(fields).forEach(function (item) {
962
- error.set(item[0], item[1].map(function (err) {
963
- return err.message || "".concat(item[0], "\u8F93\u5165\u9519\u8BEF");
1662
+ Object.entries(fields).forEach(function (_ref6) {
1663
+ var _ref7 = _slicedToArray(_ref6, 2),
1664
+ field = _ref7[0],
1665
+ errs = _ref7[1];
1666
+
1667
+ error.set(field, errs.map(function (err) {
1668
+ return err.message || "".concat(field, "\u8F93\u5165\u9519\u8BEF");
964
1669
  }));
965
1670
  });
966
1671
  errors.set(id, error);
@@ -970,24 +1675,24 @@ var DataGrid = /*#__PURE__*/function (_Component) {
970
1675
  });
971
1676
 
972
1677
  if (!flag) {
973
- _context.next = 12;
1678
+ _context4.next = 12;
974
1679
  break;
975
1680
  }
976
1681
 
977
1682
  this.store.setState({
978
1683
  errors: errors
979
1684
  });
980
- return _context.abrupt("return", Promise.reject(failed));
1685
+ return _context4.abrupt("return", Promise.reject(failed));
981
1686
 
982
1687
  case 12:
983
- return _context.abrupt("return", true);
1688
+ return _context4.abrupt("return", true);
984
1689
 
985
1690
  case 13:
986
1691
  case "end":
987
- return _context.stop();
1692
+ return _context4.stop();
988
1693
  }
989
1694
  }
990
- }, _callee, this);
1695
+ }, _callee4, this);
991
1696
  }));
992
1697
 
993
1698
  function validate() {
@@ -999,21 +1704,14 @@ var DataGrid = /*#__PURE__*/function (_Component) {
999
1704
  }, {
1000
1705
  key: "fetch",
1001
1706
  value: function fetch(page) {
1002
- var _this10 = this;
1707
+ var _this12 = this;
1003
1708
 
1004
1709
  var curr = page || 1;
1005
-
1006
- var delay = function delay() {
1007
- if (_this10.isReady) {
1008
- _this10.getDataFromServer();
1009
- } else {
1010
- requestAnimationFrame(delay);
1011
- }
1012
- };
1013
-
1014
1710
  this.setState({
1015
1711
  page: curr
1016
- }, delay);
1712
+ }, function () {
1713
+ _this12.getDataFromServer();
1714
+ });
1017
1715
  }
1018
1716
  }, {
1019
1717
  key: "refresh",
@@ -1025,101 +1723,193 @@ var DataGrid = /*#__PURE__*/function (_Component) {
1025
1723
  value: function ready() {
1026
1724
  return this.isReady;
1027
1725
  }
1726
+ /**
1727
+ * 自行实现stopEditingWhenCellsLoseFocus的效果
1728
+ * 由于AgGrid使用的是原生的focusout事件不是React的合成事件,导致单元格内使用Modal这样的组件会有诸多不便,所以自行实现这个效果
1729
+ */
1730
+
1731
+ }, {
1732
+ key: "focusPreviousCell",
1733
+ value:
1734
+ /**
1735
+ * 在表格失去焦点后,聚焦失去焦点的单元格
1736
+ * @returns
1737
+ */
1738
+ function focusPreviousCell() {
1739
+ if (this.prevFocusedCell === null || this.api.getFocusedCell()) {
1740
+ console.warn('no focused previous cell');
1741
+ return;
1742
+ }
1743
+
1744
+ var column = this.columnApi.getColumn(this.prevFocusedCell.column);
1745
+ var node = this.api.getRowNode(this.prevFocusedCell.row);
1746
+
1747
+ if (node === undefined || column === null || node.rowIndex === null) {
1748
+ this.prevFocusedCell = null;
1749
+ return;
1750
+ }
1751
+
1752
+ this.api.setFocusedCell(node.rowIndex, column);
1753
+
1754
+ if (column.isCellEditable(node)) {
1755
+ this.api.startEditingCell({
1756
+ rowIndex: node.rowIndex,
1757
+ colKey: column.getColId()
1758
+ });
1759
+ }
1760
+ }
1028
1761
  }, {
1029
1762
  key: "render",
1030
1763
  value: function render() {
1031
- var _this11 = this;
1032
-
1033
- var _this$props7 = this.props,
1034
- rowSelection = _this$props7.rowSelection,
1035
- rowKey = _this$props7.rowKey,
1036
- fetch = _this$props7.fetch,
1037
- dataSource = _this$props7.dataSource,
1038
- summary = _this$props7.summary,
1039
- rowActions = _this$props7.rowActions,
1040
- context = _this$props7.context,
1041
- onGridReady = _this$props7.onGridReady,
1042
- pagination = _this$props7.pagination,
1043
- columnTypesProp = _this$props7.columnTypes,
1044
- defaultColDefProp = _this$props7.defaultColDef,
1045
- componentsProp = _this$props7.components,
1046
- columns = _this$props7.columns,
1047
- loadingProp = _this$props7.loading,
1048
- autoLoad = _this$props7.autoLoad,
1049
- sideBarProp = _this$props7.sideBar,
1050
- restProps = _objectWithoutProperties(_this$props7, _excluded4);
1764
+ var _this13 = this,
1765
+ _classNames;
1766
+
1767
+ var _this$props8 = this.props,
1768
+ rowKey = _this$props8.rowKey,
1769
+ fetch = _this$props8.fetch,
1770
+ dataSource = _this$props8.dataSource,
1771
+ rowActions = _this$props8.rowActions,
1772
+ columns = _this$props8.columns,
1773
+ autoLoad = _this$props8.autoLoad,
1774
+ loadingProp = _this$props8.loading,
1775
+ summary = _this$props8.summary,
1776
+ detailCell = _this$props8.detailCell,
1777
+ pagination = _this$props8.pagination,
1778
+ rowSelection = _this$props8.rowSelection,
1779
+ columnTypesProp = _this$props8.columnTypes,
1780
+ defaultColDefProp = _this$props8.defaultColDef,
1781
+ componentsProp = _this$props8.components,
1782
+ sideBarProp = _this$props8.sideBar,
1783
+ detailCellRendererParams = _this$props8.detailCellRendererParams,
1784
+ context = _this$props8.context,
1785
+ showSearch = _this$props8.showSearch,
1786
+ cellDisplayFlex = _this$props8.cellDisplayFlex,
1787
+ restProps = _objectWithoutProperties(_this$props8, _excluded4);
1051
1788
 
1052
1789
  var _this$state2 = this.state,
1053
- colDefs = _this$state2.colDefs,
1054
1790
  enablePagination = _this$state2.pagination,
1055
1791
  page = _this$state2.page,
1056
1792
  pageSize = _this$state2.pageSize,
1057
1793
  total = _this$state2.total,
1058
1794
  loading = _this$state2.loading;
1059
1795
  var mPage = _typeof(pagination) === 'object' ? pagination : {};
1060
- return /*#__PURE__*/React.createElement(GridContext.Provider, {
1796
+ var footer = [];
1797
+ var gridRowSelection;
1798
+
1799
+ if (rowSelection !== undefined) {
1800
+ if (rowSelection.type === 'radio') {
1801
+ gridRowSelection = 'single';
1802
+ } else {
1803
+ gridRowSelection = 'multiple';
1804
+ }
1805
+
1806
+ footer.push( /*#__PURE__*/React.createElement(Selected, {
1807
+ selection: this.selected,
1808
+ onClear: this.handleClearSelected,
1809
+ key: "selection"
1810
+ }));
1811
+ }
1812
+
1813
+ if (showSearch) {
1814
+ footer.push( /*#__PURE__*/React.createElement(Search, _extends({
1815
+ key: "search",
1816
+ ref: this.searchRef
1817
+ }, _typeof(showSearch) === 'object' ? showSearch : {})));
1818
+ }
1819
+
1820
+ if (enablePagination) {
1821
+ footer.push( /*#__PURE__*/React.createElement(Pagination, _extends({
1822
+ key: "pagination",
1823
+ size: "small",
1824
+ showPrevNextJumpers: true,
1825
+ showSizeChanger: true,
1826
+ showQuickJumper: true,
1827
+ showTotal: function showTotal(val) {
1828
+ return "\u5171".concat(val, "\u6761");
1829
+ },
1830
+ defaultCurrent: 1,
1831
+ defaultPageSize: 20,
1832
+ pageSizeOptions: ['10', '20', '50', '100']
1833
+ }, mPage, {
1834
+ pageSize: pageSize,
1835
+ current: page,
1836
+ total: total,
1837
+ onChange: function onChange(curr, limit) {
1838
+ _this13.pagination(curr, limit);
1839
+
1840
+ if (mPage.onChange) {
1841
+ mPage.onChange(curr, limit);
1842
+ }
1843
+ }
1844
+ })));
1845
+ }
1846
+
1847
+ return /*#__PURE__*/React.createElement(GridStoreContext.Provider, {
1061
1848
  value: this.store
1062
1849
  }, /*#__PURE__*/React.createElement("div", {
1063
- className: "ag-theme-lemon ".concat(prefix()),
1850
+ className: classNames('ag-theme-lemon', "".concat(prefix()), (_classNames = {}, _defineProperty(_classNames, prefix('group-rows'), restProps.groupDisplayType === 'groupRows'), _defineProperty(_classNames, prefix('cell-flex'), cellDisplayFlex), _classNames)),
1064
1851
  style: restProps.domLayout === 'autoHeight' ? {
1065
1852
  height: 'auto'
1066
- } : undefined
1853
+ } : undefined,
1854
+ onBlur: function onBlur(e) {
1855
+ if (e.currentTarget.contains(e.relatedTarget)) {
1856
+ return;
1857
+ }
1858
+
1859
+ _this13.handleBlur();
1860
+ },
1861
+ onFocus: this.handleFocus
1067
1862
  }, /*#__PURE__*/React.createElement(AgGridReact, _extends({
1068
1863
  singleClickEdit: true,
1069
1864
  suppressPaginationPanel: true,
1070
1865
  suppressCopyRowsToClipboard: true,
1071
- suppressColumnVirtualisation: true,
1072
- stopEditingWhenCellsLoseFocus: true,
1073
- loadingOverlayComponent: this.LoadingOverlay,
1866
+ suppressDragLeaveHidesColumns: true
1867
+ /** 防止粘贴错误的值到可编辑表格 */
1868
+ ,
1869
+ suppressClipboardPaste: true,
1870
+ enableCellEditingOnBackspace: true,
1871
+ maintainColumnOrder: true,
1872
+ suppressCsvExport: true,
1873
+ suppressRowClickSelection: gridRowSelection === 'multiple',
1074
1874
  noRowsOverlayComponent: this.NoRowsOverlay,
1075
1875
  getMainMenuItems: this.getMainMenuItems,
1076
1876
  rowBuffer: 20,
1077
1877
  rowData: this.emptyRowData,
1078
1878
  sideBar: sideBarProp === true ? this.sideBarDef : sideBarProp,
1079
- pinnedBottomRowData: Array.isArray(summary) ? summary : summary ? [summary] : undefined
1080
- }, restProps, {
1879
+ pinnedBottomRowData: this.getSummaryRowData(summary),
1880
+ masterDetail: detailCell !== undefined
1881
+ }, this.getMemoizedDetailCellParams(detailCell, detailCellRendererParams, restProps.detailRowAutoHeight), restProps, {
1882
+ getRowStyle: this.getRowStyle,
1883
+ stopEditingWhenCellsLoseFocus: false,
1081
1884
  onRowDataUpdated: this.rowDataUpdated,
1082
1885
  onCellValueChanged: this.cellValueChanged,
1083
1886
  onCellEditingStopped: this.cellEditingStop,
1887
+ onCellFocused: this.cellFocused,
1084
1888
  pagination: enablePagination,
1085
1889
  paginationPageSize: pageSize,
1086
- columnDefs: colDefs,
1087
1890
  getRowId: this.getRowId,
1088
1891
  onGridReady: this.init,
1089
1892
  context: context,
1090
- rowSelection: rowSelection !== undefined ? rowSelection.type !== 'radio' ? 'multiple' : 'single' : undefined,
1091
- components: _objectSpread({
1092
- agColumnHeader: HeaderRenderer
1093
- }, componentsProp),
1094
- defaultColDef: _objectSpread(_objectSpread({}, defaultColDef), defaultColDefProp),
1095
- columnTypes: _objectSpread(_objectSpread({}, columnTypes), columnTypesProp)
1096
- })), /*#__PURE__*/React.createElement("div", {
1893
+ rowSelection: gridRowSelection,
1894
+ components: this.getMemoizedComponents(componentsProp),
1895
+ defaultColDef: this.getMemoizedDefaultColDef(defaultColDefProp),
1896
+ columnTypes: this.getMemoizedColumnTypes(columnTypesProp)
1897
+ })), footer.length > 0 && /*#__PURE__*/React.createElement("div", {
1097
1898
  className: prefix('bottom')
1098
- }, /*#__PURE__*/React.createElement("div", null), enablePagination && /*#__PURE__*/React.createElement(Pagination, _extends({
1099
- size: "small",
1100
- showPrevNextJumpers: true,
1101
- showSizeChanger: true,
1102
- showQuickJumper: true,
1103
- showTotal: function showTotal(val) {
1104
- return "\u5171".concat(val, "\u6761");
1105
- },
1106
- defaultCurrent: 1,
1107
- defaultPageSize: 20,
1108
- pageSizeOptions: ['10', '20', '50', '100']
1109
- }, mPage, {
1110
- pageSize: pageSize,
1111
- current: page,
1112
- total: total,
1113
- onChange: function onChange(page, pageSize) {
1114
- _this11.pagination(page, pageSize);
1115
-
1116
- if (mPage.onChange) {
1117
- mPage.onChange(page, pageSize);
1118
- }
1119
- }
1120
- }))), loading && /*#__PURE__*/React.createElement(Spin, {
1899
+ }, footer), (loadingProp !== null && loadingProp !== void 0 ? loadingProp : loading) ? /*#__PURE__*/React.createElement(Spin, {
1121
1900
  className: prefix('spin')
1122
- })));
1901
+ }) : null));
1902
+ }
1903
+ }], [{
1904
+ key: "isSummaryRow",
1905
+ value: function isSummaryRow(_ref8) {
1906
+ var node = _ref8.node;
1907
+
1908
+ if (node && node.data && node.data[DataGrid.SummaryFlag]) {
1909
+ return true;
1910
+ }
1911
+
1912
+ return false;
1123
1913
  }
1124
1914
  }]);
1125
1915
 
@@ -1127,6 +1917,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
1127
1917
  }(Component);
1128
1918
 
1129
1919
  _defineProperty(DataGrid, "defaultProps", {
1920
+ stopEditingWhenCellsLoseFocus: true,
1130
1921
  autoLoad: false,
1131
1922
  localeText: {
1132
1923
  copy: '复制',
@@ -1149,11 +1940,15 @@ _defineProperty(DataGrid, "defaultProps", {
1149
1940
  },
1150
1941
  columnTypes: {},
1151
1942
  defaultColDef: {},
1152
- loading: false
1943
+ components: {}
1153
1944
  });
1154
1945
 
1946
+ _defineProperty(DataGrid, "SummaryFlag", Symbol('summary'));
1947
+
1948
+ _defineProperty(DataGrid, "IndexColId", '$$index');
1949
+
1155
1950
  _defineProperty(DataGrid, "EmptyCol", {
1156
- field: '__empty_column__',
1951
+ colId: '$$empty',
1157
1952
  flex: 1,
1158
1953
  resizable: false,
1159
1954
  suppressMovable: true,