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

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 +1288 -503
  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 +53 -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 +108 -32
  159. package/es/components/DataGrid/utils.d.ts +13 -6
  160. package/es/components/DataGrid/utils.js +115 -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,141 @@ 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
259
528
  }, _this.getPagination());
260
529
  _this.store = new Store({
261
530
  errors: new Map(),
262
- context: props.context
531
+ context: props.context,
532
+ grid: _assertThisInitialized(_this)
263
533
  });
264
534
  var _props$rowSelection = props.rowSelection;
265
535
  _props$rowSelection = _props$rowSelection === void 0 ? {} : _props$rowSelection;
266
536
  var _props$rowSelection$s = _props$rowSelection.selectedRowKeys,
267
537
  selectedRowKeys = _props$rowSelection$s === void 0 ? [] : _props$rowSelection$s;
268
- selectedRowKeys.forEach(function (key) {
269
- _this.selected.set(key, null);
270
- });
538
+ _this.selected = new Selection(selectedRowKeys);
271
539
 
272
540
  _this.syncColRender();
273
541
 
@@ -275,6 +543,88 @@ var DataGrid = /*#__PURE__*/function (_Component) {
275
543
  }
276
544
 
277
545
  _createClass(DataGrid, [{
546
+ key: "setField",
547
+ value: function setField(field) {
548
+ var idx = this.fields.findIndex(function (item) {
549
+ return item.id === field.id;
550
+ });
551
+
552
+ if (idx >= 0) {
553
+ this.fields[idx] = field;
554
+ } else {
555
+ this.fields.push(field);
556
+ }
557
+
558
+ this.updateColumnDefs(this.columnApi.getColumnState());
559
+ }
560
+ }, {
561
+ key: "getField",
562
+ value: function getField(id) {
563
+ return this.fields.find(function (item) {
564
+ return item.id === id;
565
+ });
566
+ }
567
+ }, {
568
+ key: "deleteField",
569
+ value: function deleteField(id) {
570
+ var idx = this.fields.findIndex(function (item) {
571
+ return item.id === id;
572
+ });
573
+
574
+ if (idx >= 0) {
575
+ this.fields.splice(idx, 1);
576
+ this.updateColumnDefs(this.columnApi.getColumnState());
577
+ }
578
+ }
579
+ }, {
580
+ key: "saveFields",
581
+ value: function () {
582
+ var _saveFields = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
583
+ var customColumnPanelStorage;
584
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
585
+ while (1) {
586
+ switch (_context2.prev = _context2.next) {
587
+ case 0:
588
+ customColumnPanelStorage = this.props.customColumnPanelStorage;
589
+
590
+ if (!customColumnPanelStorage) {
591
+ _context2.next = 4;
592
+ break;
593
+ }
594
+
595
+ _context2.next = 4;
596
+ return customColumnPanelStorage.set({
597
+ fields: this.fields,
598
+ columState: this.columnApi.getColumnState()
599
+ });
600
+
601
+ case 4:
602
+ case "end":
603
+ return _context2.stop();
604
+ }
605
+ }
606
+ }, _callee2, this);
607
+ }));
608
+
609
+ function saveFields() {
610
+ return _saveFields.apply(this, arguments);
611
+ }
612
+
613
+ return saveFields;
614
+ }()
615
+ }, {
616
+ key: "resetFields",
617
+ value: function resetFields() {
618
+ this.fields = [];
619
+
620
+ var _this$getColumnDefs = this.getColumnDefs(),
621
+ _this$getColumnDefs2 = _slicedToArray(_this$getColumnDefs, 1),
622
+ defs = _this$getColumnDefs2[0];
623
+
624
+ this.api.setColumnDefs([]);
625
+ this.api.setColumnDefs(defs);
626
+ }
627
+ }, {
278
628
  key: "getPagination",
279
629
  value: function getPagination() {
280
630
  var _this$props3 = this.props,
@@ -310,17 +660,28 @@ var DataGrid = /*#__PURE__*/function (_Component) {
310
660
  }, {
311
661
  key: "componentDidUpdate",
312
662
  value: function componentDidUpdate(prevProps) {
313
- var _prevProps$rowSelecti;
663
+ var _this2 = this,
664
+ _prevProps$rowSelecti;
314
665
 
315
666
  var _this$props4 = this.props,
316
667
  columns = _this$props4.columns,
317
668
  rowSelection = _this$props4.rowSelection,
318
669
  dataSource = _this$props4.dataSource,
319
- context = _this$props4.context,
320
- loading = _this$props4.loading;
670
+ context = _this$props4.context;
321
671
 
322
672
  if (columns !== prevProps.columns) {
323
673
  this.syncColRender();
674
+ this.afterReady(function () {
675
+ _this2.updateColumnDefs(_this2.columnApi.getColumnState());
676
+
677
+ if (_this2.fields.length > 0) {
678
+ _this2.api.refreshCells({
679
+ columns: _this2.fields.map(function (item) {
680
+ return item.id;
681
+ })
682
+ });
683
+ }
684
+ });
324
685
  }
325
686
 
326
687
  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 +697,126 @@ var DataGrid = /*#__PURE__*/function (_Component) {
336
697
  context: context
337
698
  });
338
699
  }
700
+ }
701
+ }, {
702
+ key: "componentWillUnmount",
703
+ value: function componentWillUnmount() {
704
+ this.isReady = false;
705
+ window.removeEventListener('blur', this.handleFocus);
706
+ }
707
+ }, {
708
+ key: "componentDidMount",
709
+ value: function () {
710
+ var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
711
+ var _this$props5, customColumnPanelStorage, autoLoad, state, data;
339
712
 
340
- if (loading !== prevProps.loading) {
341
- this.setState({
342
- loading: loading
343
- });
713
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
714
+ while (1) {
715
+ switch (_context3.prev = _context3.next) {
716
+ case 0:
717
+ window.addEventListener('blur', this.handleFocus);
718
+ _this$props5 = this.props, customColumnPanelStorage = _this$props5.customColumnPanelStorage, autoLoad = _this$props5.autoLoad;
719
+
720
+ if (!customColumnPanelStorage) {
721
+ _context3.next = 18;
722
+ break;
723
+ }
724
+
725
+ this.setState({
726
+ loading: true
727
+ });
728
+ _context3.prev = 4;
729
+ _context3.next = 7;
730
+ return customColumnPanelStorage.get();
731
+
732
+ case 7:
733
+ data = _context3.sent;
734
+
735
+ if (data) {
736
+ this.fields = data.fields;
737
+ state = data.columState;
738
+ }
739
+
740
+ _context3.next = 14;
741
+ break;
742
+
743
+ case 11:
744
+ _context3.prev = 11;
745
+ _context3.t0 = _context3["catch"](4);
746
+ console.log('获取列定制失败', _context3.t0.message);
747
+
748
+ case 14:
749
+ this.setState({
750
+ loading: false
751
+ });
752
+ this.updateColumnDefs(state, true);
753
+ _context3.next = 19;
754
+ break;
755
+
756
+ case 18:
757
+ this.updateColumnDefs();
758
+
759
+ case 19:
760
+ if (this.isClientMode()) {
761
+ this.syncRowData();
762
+ } else if (autoLoad) {
763
+ this.getDataFromServer();
764
+ }
765
+
766
+ case 20:
767
+ case "end":
768
+ return _context3.stop();
769
+ }
770
+ }
771
+ }, _callee3, this, [[4, 11]]);
772
+ }));
773
+
774
+ function componentDidMount() {
775
+ return _componentDidMount.apply(this, arguments);
344
776
  }
345
- }
777
+
778
+ return componentDidMount;
779
+ }()
346
780
  }, {
347
781
  key: "syncColRender",
348
782
  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();
783
+ var _this$props$columns = this.props.columns,
784
+ columns = _this$props$columns === void 0 ? [] : _this$props$columns;
357
785
  var descriptor = Object.create(null);
358
786
 
359
787
  var traverse = function traverse(cols) {
360
788
  cols.forEach(function (item) {
361
- columnRenderMethods.forEach(function (path) {
362
- _this2.colRenderer.set(item, path);
363
- });
364
789
  var rules = get(item, ['editable', 'rules']);
365
790
 
366
791
  if (rules !== undefined) {
367
792
  var id = getColField(item);
368
793
 
369
794
  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
795
+ var path = id.split('.');
796
+ var node = {};
797
+
798
+ for (var i = path.length - 1; i >= 0; i -= 1) {
799
+ node = _defineProperty({}, path[i], i === path.length - 1 ? rules.map(function (rule) {
800
+ var validator = rule.validator,
801
+ restRule = _objectWithoutProperties(rule, _excluded);
802
+
803
+ return _objectSpread(_objectSpread({}, restRule), {}, {
804
+ asyncValidator: validator ? function (mRule, value, _, record) {
805
+ return validator(mRule, value, record);
806
+ } : undefined,
807
+ validator: undefined
808
+ });
809
+ }) : {
810
+ type: 'object',
811
+ fields: node
379
812
  });
380
- });
813
+ }
814
+
815
+ Object.assign(descriptor, node);
381
816
  }
382
817
  }
383
818
 
384
- if (!isColumnType(item)) {
819
+ if (!isColumn(item)) {
385
820
  traverse(item.children);
386
821
  }
387
822
  });
@@ -400,261 +835,459 @@ var DataGrid = /*#__PURE__*/function (_Component) {
400
835
  value: function syncSelection() {
401
836
  var _this3 = this;
402
837
 
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;
838
+ this.afterReady(function () {
839
+ var _this3$props$rowSelec = _this3.props.rowSelection;
840
+ _this3$props$rowSelec = _this3$props$rowSelec === void 0 ? {} : _this3$props$rowSelec;
841
+ var selectedRowKeys = _this3$props$rowSelec.selectedRowKeys;
406
842
 
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);
843
+ if (selectedRowKeys !== undefined && !_this3.selected.isSameKeys(selectedRowKeys)) {
844
+ var newSelected = new Map();
411
845
 
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);
846
+ _this3.selected.forEach(function (id) {
847
+ var node = _this3.api.getRowNode(id);
848
+
849
+ if (node !== undefined) {
850
+ node.setSelected(false, false, true);
851
+ }
852
+ });
418
853
 
419
- var node = _this3.api.getRowNode(id);
854
+ selectedRowKeys.forEach(function (id) {
855
+ var node = _this3.api.getRowNode(id);
420
856
 
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
- }
857
+ var data;
858
+
859
+ if (node !== undefined) {
860
+ node.setSelected(true, false, true);
861
+ data = node.data;
862
+ }
863
+
864
+ newSelected.set(id, data || _this3.selected.get(id) || null);
865
+ });
866
+
867
+ _this3.selected.clone(newSelected);
868
+
869
+ _this3.api.dispatchEvent({
870
+ type: 'selectionChanged'
871
+ });
872
+ }
873
+ });
430
874
  }
431
875
  }, {
432
876
  key: "syncRowData",
433
877
  value: function syncRowData() {
878
+ var _this4 = this;
879
+
434
880
  var dataSource = this.props.dataSource;
435
881
 
436
882
  if (dataSource !== undefined && dataSource !== this.dataSource) {
883
+ this.updateRowData(dataSource);
884
+ var _this$state = this.state,
885
+ page = _this$state.page,
886
+ pageSize = _this$state.pageSize;
887
+ var totalPages = Math.ceil(dataSource.length / pageSize) || 1;
888
+ var newPage = page > totalPages ? totalPages : page;
437
889
  this.setState({
438
- total: dataSource.length
890
+ total: dataSource.length,
891
+ page: newPage
892
+ }, function () {
893
+ if (newPage !== page && _this4.isClientMode()) {
894
+ _this4.api.paginationGoToPage(newPage - 1);
895
+ }
439
896
  });
440
- this.updateRowData(dataSource);
441
897
  }
442
898
  }
443
899
  }, {
444
- key: "getColumDefs",
445
- value: function getColumDefs() {
446
- var _this4 = this;
900
+ key: "updateColumnDefs",
901
+ value: function updateColumnDefs(state) {
902
+ var _this5 = this;
903
+
904
+ var allState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
905
+ this.afterReady(function () {
906
+ var _this5$getColumnDefs = _this5.getColumnDefs(),
907
+ _this5$getColumnDefs2 = _slicedToArray(_this5$getColumnDefs, 2),
908
+ defs = _this5$getColumnDefs2[0],
909
+ leafColIds = _this5$getColumnDefs2[1];
910
+
911
+ _this5.api.setColumnDefs(defs);
912
+
913
+ if (state) {
914
+ var newState = _toConsumableArray(state);
915
+
916
+ leafColIds.forEach(function (colId, index) {
917
+ if (!colId) {
918
+ return;
919
+ }
920
+
921
+ var idx = state.findIndex(function (item) {
922
+ return item.colId === colId;
923
+ });
924
+
925
+ if (idx < 0) {
926
+ newState.splice(index, 0, {
927
+ colId: colId
928
+ });
929
+ }
930
+ });
931
+ /**
932
+ * 初始化的时候,需要使用存储的columnState,不仅仅是顺序,其他情况由于在defs里已经有列的状态控制了
933
+ */
934
+
935
+ _this5.columnApi.applyColumnState({
936
+ state: allState ? newState : newState.map(function (item) {
937
+ return {
938
+ colId: item.colId
939
+ };
940
+ }),
941
+ applyOrder: true
942
+ });
943
+ }
944
+ });
945
+ }
946
+ }, {
947
+ key: "getFullColumnDef",
948
+ value: function getFullColumnDef(col) {
949
+ if (col.type === undefined) {
950
+ return _objectSpread({}, col);
951
+ }
447
952
 
448
953
  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;
954
+ mColumnTypes = _this$props6.columnTypes,
955
+ mDefaultColDef = _this$props6.defaultColDef;
956
+ var colTypes = this.getMemoizedColumnTypes(mColumnTypes);
957
+ var result = {};
958
+ var types;
959
+
960
+ if (typeof col.type === 'string') {
961
+ types = [col.type];
962
+ } else {
963
+ types = col.type;
964
+ }
965
+
966
+ types.forEach(function (type) {
967
+ var colType = colTypes[type];
968
+
969
+ if (colType !== undefined) {
970
+ Object.assign(result, colType);
971
+ }
972
+ });
973
+ Object.assign(result, mDefaultColDef);
974
+ return _objectSpread(_objectSpread({}, result), col);
975
+ }
976
+ }, {
977
+ key: "getColumnDefs",
978
+ value: function getColumnDefs() {
979
+ var _this6 = this;
980
+
981
+ var _this$props7 = this.props,
982
+ _this$props7$columns = _this$props7.columns,
983
+ columns = _this$props7$columns === void 0 ? [] : _this$props7$columns,
984
+ rowActions = _this$props7.rowActions,
985
+ rowSelection = _this$props7.rowSelection;
986
+ var leafColIds = [];
452
987
 
453
988
  var map = function map(cols) {
454
989
  return cols.map(function (item) {
455
- var field = getColField(item);
456
-
457
- if (isColumnType(item)) {
458
- var _title = item.title,
459
- key = item.key,
990
+ if (isColumn(item)) {
991
+ var title = item.title,
460
992
  dataIndex = item.dataIndex,
461
- align = item.align,
462
- type = item.type,
463
- fixed = item.fixed,
464
993
  render = item.render,
465
994
  _item$ellipsis = item.ellipsis,
466
995
  ellipsis = _item$ellipsis === void 0 ? true : _item$ellipsis,
467
- cellRenderer = item.cellRenderer,
468
- cellRendererParams = item.cellRendererParams,
469
- className = item.className,
470
996
  sorter = item.sorter,
471
997
  editable = item.editable,
472
- _rest = _objectWithoutProperties(item, _excluded2);
998
+ className = item.className,
999
+ colDef = _objectWithoutProperties(item, _excluded2);
473
1000
 
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
1001
+ var opts = colDef;
1002
+ var field = getColField(item);
483
1003
 
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
1004
+ if (field !== undefined) {
1005
+ opts.field = getColField(item);
1006
+ }
491
1007
 
1008
+ var def = _this6.getFullColumnDef(opts);
1009
+ /** 部分列由于使用type 可能存在colId以及field都不存在, maintainColumnOrder下updateColumnDefs有问题,故从merge后的def中提取field或者colId */
492
1010
 
493
- if (align === 'right') {
494
- if (!_opts.type) {
495
- _opts.type = [];
496
- }
497
1011
 
498
- if (!Array.isArray(_opts.type)) {
499
- _opts.type = [_opts.type];
500
- }
1012
+ opts.colId = def.colId || def.field; // className
501
1013
 
502
- _opts.type = [].concat(_toConsumableArray(_opts.type), ['rightAligned']);
1014
+ if (className) {
1015
+ opts.cellClass = className;
1016
+ } // title
1017
+
1018
+
1019
+ if (_typeof(title) === 'object' || typeof title === 'function') {
1020
+ opts.headerComponentParams = _objectSpread(_objectSpread({}, opts.headerComponentParams), {}, {
1021
+ title: title
1022
+ });
1023
+ } else if (title !== undefined) {
1024
+ opts.headerName = title.toString();
503
1025
  } // render
504
1026
 
505
1027
 
506
- if (!_opts.cellRenderer && render) {
507
- _opts.cellRenderer = CellRenderer;
508
- _opts.cellRendererParams = _objectSpread(_objectSpread({}, _opts.cellRendererParams), {}, {
509
- render: _this4.colRenderer.toRef(field, 'render')
1028
+ if (render !== undefined) {
1029
+ opts.cellRenderer = CellRenderer;
1030
+ opts.cellRendererParams = _objectSpread(_objectSpread({}, opts.cellRendererParams), {}, {
1031
+ render: render
510
1032
  });
511
1033
  } // ellipsis
512
1034
 
513
1035
 
514
- if (!ellipsis) {
515
- _opts.wrapText = true;
516
- _opts.autoHeight = true;
517
- } // sorter
518
-
1036
+ if (ellipsis === false) {
1037
+ opts.wrapText = true;
1038
+ opts.autoHeight = true;
1039
+ } // sortable
519
1040
 
520
- if (sorter) {
521
- _opts.sortable = true;
522
1041
 
1042
+ if (sorter !== undefined) {
523
1043
  if (typeof sorter === 'function') {
524
- _opts.comparator = function (_1, _2, nodeA, nodeB) {
1044
+ opts.sortable = true;
1045
+
1046
+ opts.comparator = function (valA, valB, nodeA, nodeB) {
525
1047
  return sorter(nodeA.data, nodeB.data);
526
1048
  };
1049
+ } else {
1050
+ opts.sortable = sorter;
527
1051
  }
528
- } else {
529
- _opts.sortable = false;
530
1052
  } // editable
531
1053
 
532
1054
 
533
1055
  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
- });
1056
+ var renderer = editable.renderer,
1057
+ valueSetter = editable.valueSetter,
1058
+ enable = editable.enable;
1059
+
1060
+ opts.editable = function (mParams) {
1061
+ if (DataGrid.isSummaryRow({
1062
+ node: mParams.node
1063
+ })) {
1064
+ return false;
1065
+ }
542
1066
 
543
- if (_opts.cellRenderer === undefined) {
544
- _opts.cellRenderer = CellRenderer;
545
- }
1067
+ if (enable !== undefined) {
1068
+ return enable(mParams);
1069
+ }
546
1070
 
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;
1071
+ return true;
1072
+ };
552
1073
 
553
- if (field) {
554
- set(data, field, newValue);
555
- }
1074
+ opts.cellClassRules = _objectSpread(_objectSpread({}, opts.cellClassRules), {}, _defineProperty({}, prefix('editor-cell'), function (mParams) {
1075
+ if (mParams.node.isRowPinned()) {
1076
+ return false;
1077
+ }
556
1078
 
557
- var result = valueSetter(mParams.newValue, mParams.data);
558
- Object.assign(data, result);
559
- return true;
560
- };
561
- }
1079
+ if (enable !== undefined) {
1080
+ return enable(mParams);
1081
+ }
562
1082
 
563
- switch (_type) {
564
- case 'text':
565
- _opts.cellEditor = TextEditor;
566
- _opts.cellEditorParams = params;
567
- break;
1083
+ return true;
1084
+ }));
1085
+ /** 由于ag-grid注册事件使用的是js原生事件,不在React事件流内,会产生很多问题,所以默认关闭所有Enter导致关闭编辑,由组件内部自行实现回车 */
568
1086
 
569
- case 'number':
570
- _opts.cellEditor = NumberEditor;
571
- _opts.cellEditorParams = params;
572
- break;
1087
+ opts.suppressKeyboardEvent = function (keyParmas) {
1088
+ if (item.suppressKeyboardEvent !== undefined && item.suppressKeyboardEvent(keyParmas)) {
1089
+ return true;
1090
+ }
573
1091
 
574
- case 'date':
575
- _opts.cellEditor = DateEditor;
576
- _opts.cellEditorParams = params;
1092
+ if (keyParmas.editing && keyParmas.event.key === 'Enter') {
1093
+ return true;
1094
+ }
577
1095
 
578
- _opts.suppressKeyboardEvent = function (_ref2) {
579
- var editing = _ref2.editing,
580
- event = _ref2.event;
1096
+ return false;
1097
+ };
581
1098
 
582
- if (editing && event.key === 'Enter') {
583
- return true;
584
- }
1099
+ opts.cellRenderer = CellRenderer;
585
1100
 
586
- return false;
587
- };
1101
+ if (def.cellRenderer && render === undefined) {
1102
+ opts.cellRendererParams = _objectSpread(_objectSpread({}, opts.cellRendererParams), {}, {
1103
+ render: function render(val, idx, data, params) {
1104
+ return def.cellRenderer(params);
1105
+ }
1106
+ });
1107
+ }
588
1108
 
589
- break;
1109
+ opts.valueSetter = function (mParams) {
1110
+ var colField = mParams.colDef.field,
1111
+ data = mParams.data,
1112
+ newValue = mParams.newValue,
1113
+ oldValue = mParams.oldValue;
590
1114
 
591
- case 'select':
592
- _opts.cellEditor = SelectEditor;
593
- _opts.cellEditorParams = params;
1115
+ if (!colField || newValue === oldValue) {
1116
+ return false;
1117
+ }
594
1118
 
595
- _opts.suppressKeyboardEvent = function (_ref3) {
596
- var editing = _ref3.editing,
597
- event = _ref3.event;
1119
+ if (valueSetter !== undefined) {
1120
+ var _result = valueSetter(newValue, data);
598
1121
 
599
- if (editing && event.key === 'Enter') {
600
- return true;
601
- }
1122
+ set(data, colField, newValue);
1123
+ Object.assign(data, _result);
1124
+ } else if (newValue instanceof RowEditorData) {
1125
+ Object.assign(data, newValue.getValue());
1126
+ } else {
1127
+ set(data, colField, newValue);
1128
+ }
602
1129
 
603
- return false;
1130
+ return true;
1131
+ };
1132
+
1133
+ if (typeof renderer === 'function') {
1134
+ opts.cellEditorSelector = function (editorParams) {
1135
+ var result = renderer(editorParams);
1136
+ return {
1137
+ component: result.component || result.type,
1138
+ params: result.params
604
1139
  };
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:
1140
+ };
1141
+ } else {
1142
+ opts.cellEditor = renderer.component || renderer.type;
1143
+ opts.cellEditorParams = renderer.params;
617
1144
  }
618
1145
  } else {
619
- _opts.editable = editable;
1146
+ opts.editable = editable;
620
1147
  }
621
1148
 
622
- return _objectSpread(_objectSpread({}, _opts), _rest);
623
- }
1149
+ leafColIds.push(opts.colId);
1150
+ return opts;
1151
+ } else {
1152
+ var _title = item.title,
1153
+ _item$children = item.children,
1154
+ children = _item$children === void 0 ? [] : _item$children,
1155
+ rest = _objectWithoutProperties(item, _excluded3);
624
1156
 
625
- var title = item.title,
626
- _item$children = item.children,
627
- children = _item$children === void 0 ? [] : _item$children,
628
- rest = _objectWithoutProperties(item, _excluded3);
1157
+ var _opts = {
1158
+ children: map(children)
1159
+ };
629
1160
 
630
- var opts = {
631
- children: map(children)
632
- };
1161
+ if (_typeof(_title) === 'object' || typeof _title === 'function') {
1162
+ _opts.headerGroupComponentParams = _objectSpread(_objectSpread({}, _opts.headerGroupComponentParams), {}, {
1163
+ title: _title
1164
+ });
1165
+ _opts.headerGroupComponent = HeaderRenderer;
1166
+ } else if (_title !== undefined) {
1167
+ _opts.headerName = _title.toString();
1168
+ }
633
1169
 
634
- if (title !== undefined) {
635
- opts.headerName = title.toString();
1170
+ return _objectSpread(_objectSpread({}, _opts), rest);
636
1171
  }
637
-
638
- return _objectSpread(_objectSpread({}, opts), rest);
639
1172
  });
640
1173
  };
641
1174
 
642
1175
  var result = map(columns);
643
- var rowSelection = this.props.rowSelection;
1176
+ this.fields.forEach(function (field) {
1177
+ var expression = field.expression.replace(/\$\{([^{}]+)\}/g, function (match, p1) {
1178
+ if (p1) {
1179
+ return p1;
1180
+ }
644
1181
 
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
1182
+ return match;
652
1183
  });
1184
+ leafColIds.push(field.id);
1185
+ var code = parse(expression).compile();
1186
+ result.push({
1187
+ colId: field.id,
1188
+ headerName: field.name,
1189
+ spanHeaderHeight: true,
1190
+ sortable: false,
1191
+ type: 'rightAligned',
1192
+ valueGetter: function valueGetter(params) {
1193
+ var api = params.api,
1194
+ node = params.node,
1195
+ columnApi = params.columnApi;
1196
+
1197
+ if (node !== null && node.data !== undefined) {
1198
+ if (DataGrid.isSummaryRow({
1199
+ node: node
1200
+ }) && field.summaryType === 1) {
1201
+ var summary = _this6.getFieldsSummary(_this6.dataSource, _this6.fields);
1202
+
1203
+ return get(summary, field.id);
1204
+ }
1205
+
1206
+ var scope = {
1207
+ get: function get(key) {
1208
+ var col = columnApi.getColumn(key);
1209
+
1210
+ if (col === null) {
1211
+ return NaN;
1212
+ }
1213
+
1214
+ var colDef = col.getColDef();
1215
+ var value = api.getValue(key, node);
1216
+
1217
+ if (typeof colDef.valueFormatter === 'function') {
1218
+ value = colDef.valueFormatter(_objectSpread(_objectSpread({}, params), {}, {
1219
+ value: value
1220
+ }));
1221
+ }
1222
+
1223
+ return value;
1224
+ },
1225
+ set: function set() {},
1226
+ has: function has(key) {
1227
+ return columnApi.getColumn(key) !== null;
1228
+ },
1229
+ keys: function keys() {
1230
+ var currentColumns = columnApi.getColumns();
1231
+
1232
+ if (currentColumns === null) {
1233
+ return [];
1234
+ }
1235
+
1236
+ return currentColumns.map(function (col) {
1237
+ var def = col.getColDef();
1238
+ return def.field || def.colId;
1239
+ });
1240
+ }
1241
+ };
1242
+
1243
+ try {
1244
+ return code.evaluate(scope);
1245
+ } catch (err) {
1246
+ console.warn('DataGrid field evaluate', err);
1247
+ return null;
1248
+ }
1249
+ }
1250
+
1251
+ return null;
1252
+ }
1253
+ });
1254
+ });
1255
+
1256
+ if (rowSelection !== undefined) {
1257
+ var checkboxSelection = rowSelection.checkboxSelection;
1258
+
1259
+ if (checkboxSelection === undefined) {
1260
+ checkboxSelection = rowSelection.type !== 'radio' ? true : false;
1261
+ }
1262
+
1263
+ if (checkboxSelection) {
1264
+ leafColIds.unshift('$$selection');
1265
+ result.unshift({
1266
+ width: 32,
1267
+ colId: '$$selection',
1268
+ checkboxSelection: checkboxSelection,
1269
+ showDisabledCheckboxes: true,
1270
+ headerCheckboxSelection: rowSelection.type !== 'radio',
1271
+ spanHeaderHeight: true,
1272
+ resizable: false,
1273
+ sortable: false,
1274
+ suppressAutoSize: true,
1275
+ suppressMovable: true,
1276
+ suppressMenu: true,
1277
+ lockPinned: true,
1278
+ lockVisible: true,
1279
+ suppressColumnsToolPanel: true,
1280
+ cellClass: prefix('cell-selection'),
1281
+ headerClass: prefix('cell-selection'),
1282
+ pinned: rowSelection.fixed
1283
+ });
1284
+ }
653
1285
  }
654
1286
 
655
1287
  if (rowActions !== undefined) {
1288
+ leafColIds.push('$$actions');
656
1289
  result.push({
657
- colId: '__actions__',
1290
+ colId: '$$actions',
658
1291
  pinned: 'right',
659
1292
  cellRenderer: CellRenderer,
660
1293
  width: 1,
@@ -670,12 +1303,12 @@ var DataGrid = /*#__PURE__*/function (_Component) {
670
1303
  headerClass: prefix('operator-cell'),
671
1304
  cellRendererParams: {
672
1305
  render: function render(_, data) {
673
- var rowActions = _this4.props.rowActions;
1306
+ var actions = _this6.props.rowActions;
674
1307
 
675
- if (rowActions !== undefined) {
1308
+ if (actions !== undefined) {
676
1309
  return /*#__PURE__*/React.createElement(Actions, {
677
1310
  data: data,
678
- actions: rowActions
1311
+ actions: actions
679
1312
  });
680
1313
  }
681
1314
 
@@ -685,7 +1318,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
685
1318
  });
686
1319
  }
687
1320
 
688
- return result;
1321
+ return [result, leafColIds];
689
1322
  }
690
1323
  }, {
691
1324
  key: "isClientMode",
@@ -709,156 +1342,222 @@ var DataGrid = /*#__PURE__*/function (_Component) {
709
1342
  this.readyQueue.push(cb);
710
1343
  }
711
1344
  }
1345
+ }, {
1346
+ key: "isPreserveSelected",
1347
+ value: function isPreserveSelected() {
1348
+ var rowSelection = this.props.rowSelection;
1349
+
1350
+ if (rowSelection === undefined) {
1351
+ return false;
1352
+ }
1353
+
1354
+ if (rowSelection.preserveSelectedRowKeys === undefined) {
1355
+ return !this.isClientMode();
1356
+ }
1357
+
1358
+ return rowSelection.preserveSelectedRowKeys;
1359
+ }
712
1360
  }, {
713
1361
  key: "updateRowData",
714
1362
  value: function updateRowData() {
715
- var _this5 = this;
1363
+ var _this7 = this;
716
1364
 
717
1365
  var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
718
1366
  this.afterReady(function () {
719
- _this5.dataSource = data;
1367
+ _this7.dataSource = data;
720
1368
 
721
- _this5.api.setRowData(data);
1369
+ _this7.api.setRowData(data);
722
1370
 
723
- _this5.api.forEachNode(function (node) {
724
- if (node.id && _this5.selected.has(node.id)) {
725
- node.setSelected(true, false, true);
726
- }
727
- });
1371
+ if (_this7.isPreserveSelected()) {
1372
+ _this7.api.forEachNode(function (node) {
1373
+ if (node.id && _this7.selected.has(node.id)) {
1374
+ var rowData = _this7.selected.get(node.id);
728
1375
 
729
- _this5.api.dispatchEvent({
730
- type: 'selectionChanged'
731
- });
1376
+ if (node.data !== undefined && rowData !== node.data) {
1377
+ _this7.selected.set(node.id, node.data);
1378
+ }
1379
+
1380
+ if (!node.isSelected()) {
1381
+ node.setSelected(true, false, true);
1382
+ }
1383
+ }
1384
+ });
1385
+ } else {
1386
+ var keys = new Map(data.map(function (item) {
1387
+ return [_this7.getRowId({
1388
+ data: item
1389
+ }), item];
1390
+ }));
1391
+
1392
+ _this7.selected.forEach(function (id) {
1393
+ if (!keys.has(id)) {
1394
+ _this7.selected.delete(id);
1395
+ } else {
1396
+ var node = _this7.api.getRowNode(id);
1397
+
1398
+ if (node !== undefined) {
1399
+ if (node.data !== undefined && _this7.selected.get(id) !== node.data) {
1400
+ _this7.selected.set(id, node.data);
1401
+ }
1402
+
1403
+ if (!node.isSelected()) {
1404
+ node.setSelected(true, false, true);
1405
+ }
1406
+ }
1407
+ }
1408
+ });
1409
+ }
1410
+
1411
+ if (_this7.selected.isDirty()) {
1412
+ _this7.api.dispatchEvent({
1413
+ type: 'selectionChanged'
1414
+ });
1415
+ }
732
1416
  });
733
1417
  }
734
1418
  }, {
735
- key: "getDataFromServer",
736
- value: function getDataFromServer() {
737
- var _this6 = this;
1419
+ key: "getSummaryRowData",
1420
+ value: function getSummaryRowData() {
1421
+ var result = [];
738
1422
 
739
- var fetch = this.props.fetch;
1423
+ for (var _len = arguments.length, summaries = new Array(_len), _key = 0; _key < _len; _key++) {
1424
+ summaries[_key] = arguments[_key];
1425
+ }
740
1426
 
741
- if (typeof fetch === 'function') {
742
- if (this.requestId < Number.MAX_SAFE_INTEGER) {
743
- this.requestId += 1;
1427
+ summaries.forEach(function (summary) {
1428
+ if (Array.isArray(summary)) {
1429
+ result.push.apply(result, _toConsumableArray(summary));
1430
+ } else if (summary) {
1431
+ result.push(summary);
744
1432
  }
1433
+ });
745
1434
 
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
- });
1435
+ if (result.length <= 0) {
1436
+ return;
1437
+ }
769
1438
 
770
- if (id !== _this6.requestId) {
771
- return;
772
- }
1439
+ return result.map(function (item) {
1440
+ return _objectSpread(_objectSpread({}, item), {}, _defineProperty({}, DataGrid.SummaryFlag, true));
1441
+ });
1442
+ }
1443
+ }, {
1444
+ key: "getDataFromServer",
1445
+ value: function getDataFromServer() {
1446
+ var _this8 = this;
773
1447
 
774
- if (res.total !== undefined) {
775
- _this6.setState({
776
- page: page,
777
- pageSize: pageSize,
778
- total: res.total
1448
+ this.afterReady(function () {
1449
+ var _this8$props = _this8.props,
1450
+ fetch = _this8$props.fetch,
1451
+ onLoading = _this8$props.onLoading,
1452
+ onLoad = _this8$props.onLoad;
1453
+
1454
+ var loadingChange = function loadingChange(flag) {
1455
+ if (onLoading) {
1456
+ onLoading(flag);
1457
+ } else {
1458
+ _this8.setState({
1459
+ loading: flag
779
1460
  });
780
1461
  }
1462
+ };
781
1463
 
782
- var _this6$props = _this6.props,
783
- summary = _this6$props.summary,
784
- onLoad = _this6$props.onLoad;
785
- var pinned = [];
1464
+ if (typeof fetch === 'function') {
1465
+ if (_this8.requestId < Number.MAX_SAFE_INTEGER) {
1466
+ _this8.requestId += 1;
1467
+ }
786
1468
 
787
- if (summary !== undefined) {
788
- if (Array.isArray(summary)) {
789
- pinned = summary;
790
- } else {
791
- pinned.push(summary);
1469
+ var _this8$state = _this8.state,
1470
+ page = _this8$state.page,
1471
+ pageSize = _this8$state.pageSize;
1472
+
1473
+ var columnState = _this8.columnApi.getColumnState();
1474
+
1475
+ var id = _this8.requestId;
1476
+ loadingChange(true);
1477
+ fetch({
1478
+ current: page,
1479
+ pageSize: pageSize,
1480
+ sort: columnState.filter(function (item) {
1481
+ return item.sort !== undefined && item.sort !== null;
1482
+ }).map(function (item) {
1483
+ return {
1484
+ field: item.colId,
1485
+ order: item.sort
1486
+ };
1487
+ })
1488
+ }).then(function (res) {
1489
+ if (id !== _this8.requestId) {
1490
+ return;
792
1491
  }
793
- }
794
1492
 
795
- if (res.summary !== undefined && res.summary !== null) {
796
- pinned.push(res.summary);
797
- } // 重置滚动条
1493
+ loadingChange(false);
798
1494
 
1495
+ if (res.total !== undefined) {
1496
+ _this8.setState({
1497
+ page: page,
1498
+ pageSize: pageSize,
1499
+ total: res.total
1500
+ });
1501
+ }
799
1502
 
800
- var bean = _this6.api.__getContext().getBean('ctrlsService');
1503
+ var summary = _this8.props.summary;
801
1504
 
802
- bean.getGridBodyCtrl().getScrollFeature().scrollToTop();
1505
+ _this8.updateRowData(res.data);
803
1506
 
804
- _this6.api.setPinnedBottomRowData(pinned);
1507
+ _this8.api.setPinnedBottomRowData(_this8.getSummaryRowData(summary, res.summary));
805
1508
 
806
- _this6.updateRowData(res.data);
1509
+ if (res.data.length > 0) {
1510
+ _this8.api.ensureIndexVisible(0);
1511
+ }
807
1512
 
808
- if (onLoad) {
809
- onLoad(res.extra);
810
- }
811
- }).catch(function () {
812
- _this6.setState({
813
- loading: false
1513
+ if (onLoad) {
1514
+ onLoad(res.extra);
1515
+ }
1516
+
1517
+ _this8.store.setState({
1518
+ fetchError: undefined
1519
+ });
1520
+ }).catch(function (err) {
1521
+ _this8.store.setState({
1522
+ fetchError: err
1523
+ });
1524
+
1525
+ loadingChange(false);
1526
+ /** 如果当前是在第一页说明根本没有数据,会误杀其他情况,但不重要 */
1527
+
1528
+ _this8.setState(function (prev) {
1529
+ return {
1530
+ total: prev.page === 1 ? 0 : prev.total
1531
+ };
1532
+ });
1533
+
1534
+ _this8.updateRowData([]);
1535
+
1536
+ _this8.api.setPinnedBottomRowData([]);
814
1537
  });
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
- }
1538
+ }
1539
+ });
827
1540
  }
828
1541
  }, {
829
1542
  key: "pagination",
830
1543
  value: function pagination(page, pageSize) {
831
- var _this7 = this;
1544
+ var _this9 = this;
832
1545
 
833
1546
  this.setState({
834
1547
  page: page,
835
1548
  pageSize: pageSize
836
1549
  }, function () {
837
- if (_this7.isClientMode()) {
1550
+ if (_this9.isClientMode()) {
838
1551
  withSyncRender(function () {
839
- _this7.api.paginationGoToPage(page - 1);
1552
+ _this9.api.paginationGoToPage(page - 1);
840
1553
 
841
- _this7.api.paginationSetPageSize(pageSize);
1554
+ _this9.api.paginationSetPageSize(pageSize);
842
1555
  });
843
1556
  } else {
844
- _this7.getDataFromServer();
1557
+ _this9.getDataFromServer();
845
1558
  }
846
1559
  });
847
1560
  }
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
1561
  }, {
863
1562
  key: "getMainMenuItems",
864
1563
  value: function getMainMenuItems(params) {
@@ -871,7 +1570,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
871
1570
  }, {
872
1571
  key: "validateRecord",
873
1572
  value: function validateRecord(record) {
874
- var _this8 = this;
1573
+ var _this10 = this;
875
1574
 
876
1575
  if (this.validator === null) {
877
1576
  return;
@@ -881,7 +1580,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
881
1580
  data: record
882
1581
  });
883
1582
  return this.validator.validate(record).then(function () {
884
- var errors = new Map(_this8.store.getState().errors);
1583
+ var errors = new Map(_this10.store.getState().errors);
885
1584
  var error = errors.get(rowId);
886
1585
 
887
1586
  if (error === undefined) {
@@ -890,12 +1589,12 @@ var DataGrid = /*#__PURE__*/function (_Component) {
890
1589
 
891
1590
  errors.delete(rowId);
892
1591
 
893
- _this8.store.setState({
1592
+ _this10.store.setState({
894
1593
  errors: errors
895
1594
  });
896
- }).catch(function (_ref4) {
897
- var fields = _ref4.fields;
898
- var errors = new Map(_this8.store.getState().errors);
1595
+ }).catch(function (_ref3) {
1596
+ var fields = _ref3.fields;
1597
+ var errors = new Map(_this10.store.getState().errors);
899
1598
  var error = new Map();
900
1599
  Object.entries(fields).forEach(function (item) {
901
1600
  error.set(item[0], item[1].map(function (err) {
@@ -904,7 +1603,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
904
1603
  });
905
1604
  errors.set(rowId, error);
906
1605
 
907
- _this8.store.setState({
1606
+ _this10.store.setState({
908
1607
  errors: errors
909
1608
  });
910
1609
  });
@@ -912,13 +1611,13 @@ var DataGrid = /*#__PURE__*/function (_Component) {
912
1611
  }, {
913
1612
  key: "validate",
914
1613
  value: function () {
915
- var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
916
- var _this9 = this;
1614
+ var _validate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
1615
+ var _this11 = this;
917
1616
 
918
1617
  var promises, result, flag, errors, failed;
919
- return _regeneratorRuntime().wrap(function _callee$(_context) {
1618
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
920
1619
  while (1) {
921
- switch (_context.prev = _context.next) {
1620
+ switch (_context4.prev = _context4.next) {
922
1621
  case 0:
923
1622
  promises = [];
924
1623
  this.api.forEachNode(function (rowNode) {
@@ -928,15 +1627,15 @@ var DataGrid = /*#__PURE__*/function (_Component) {
928
1627
  return;
929
1628
  }
930
1629
 
931
- var rowId = _this9.getRowId({
1630
+ var rowId = _this11.getRowId({
932
1631
  data: record
933
1632
  });
934
1633
 
935
- if (_this9.validator === null) {
1634
+ if (_this11.validator === null) {
936
1635
  promises.push(Promise.resolve(true));
937
1636
  } else {
938
- promises.push(_this9.validator.validate(record).catch(function (_ref5) {
939
- var fields = _ref5.fields;
1637
+ promises.push(_this11.validator.validate(record).catch(function (_ref4) {
1638
+ var fields = _ref4.fields;
940
1639
  return Promise.reject({
941
1640
  id: rowId,
942
1641
  fields: fields
@@ -944,23 +1643,27 @@ var DataGrid = /*#__PURE__*/function (_Component) {
944
1643
  }));
945
1644
  }
946
1645
  });
947
- _context.next = 4;
1646
+ _context4.next = 4;
948
1647
  return Promise.allSettled(promises);
949
1648
 
950
1649
  case 4:
951
- result = _context.sent;
1650
+ result = _context4.sent;
952
1651
  flag = false;
953
1652
  errors = new Map();
954
1653
  failed = [];
955
1654
  result.forEach(function (item) {
956
1655
  if (item.status === 'rejected') {
957
- var _ref6 = item.reason,
958
- id = _ref6.id,
959
- fields = _ref6.fields;
1656
+ var _ref5 = item.reason,
1657
+ id = _ref5.id,
1658
+ fields = _ref5.fields;
960
1659
  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");
1660
+ Object.entries(fields).forEach(function (_ref6) {
1661
+ var _ref7 = _slicedToArray(_ref6, 2),
1662
+ field = _ref7[0],
1663
+ errs = _ref7[1];
1664
+
1665
+ error.set(field, errs.map(function (err) {
1666
+ return err.message || "".concat(field, "\u8F93\u5165\u9519\u8BEF");
964
1667
  }));
965
1668
  });
966
1669
  errors.set(id, error);
@@ -970,24 +1673,24 @@ var DataGrid = /*#__PURE__*/function (_Component) {
970
1673
  });
971
1674
 
972
1675
  if (!flag) {
973
- _context.next = 12;
1676
+ _context4.next = 12;
974
1677
  break;
975
1678
  }
976
1679
 
977
1680
  this.store.setState({
978
1681
  errors: errors
979
1682
  });
980
- return _context.abrupt("return", Promise.reject(failed));
1683
+ return _context4.abrupt("return", Promise.reject(failed));
981
1684
 
982
1685
  case 12:
983
- return _context.abrupt("return", true);
1686
+ return _context4.abrupt("return", true);
984
1687
 
985
1688
  case 13:
986
1689
  case "end":
987
- return _context.stop();
1690
+ return _context4.stop();
988
1691
  }
989
1692
  }
990
- }, _callee, this);
1693
+ }, _callee4, this);
991
1694
  }));
992
1695
 
993
1696
  function validate() {
@@ -999,21 +1702,14 @@ var DataGrid = /*#__PURE__*/function (_Component) {
999
1702
  }, {
1000
1703
  key: "fetch",
1001
1704
  value: function fetch(page) {
1002
- var _this10 = this;
1705
+ var _this12 = this;
1003
1706
 
1004
1707
  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
1708
  this.setState({
1015
1709
  page: curr
1016
- }, delay);
1710
+ }, function () {
1711
+ _this12.getDataFromServer();
1712
+ });
1017
1713
  }
1018
1714
  }, {
1019
1715
  key: "refresh",
@@ -1025,101 +1721,185 @@ var DataGrid = /*#__PURE__*/function (_Component) {
1025
1721
  value: function ready() {
1026
1722
  return this.isReady;
1027
1723
  }
1724
+ /**
1725
+ * 自行实现stopEditingWhenCellsLoseFocus的效果
1726
+ * 由于AgGrid使用的是原生的focusout事件不是React的合成事件,导致单元格内使用Modal这样的组件会有诸多不便,所以自行实现这个效果
1727
+ */
1728
+
1729
+ }, {
1730
+ key: "focusPreviousCell",
1731
+ value:
1732
+ /**
1733
+ * 在表格失去焦点后,聚焦失去焦点的单元格
1734
+ * @returns
1735
+ */
1736
+ function focusPreviousCell() {
1737
+ if (this.prevFocusedCell === null || this.api.getFocusedCell()) {
1738
+ console.warn('no focused previous cell');
1739
+ return;
1740
+ }
1741
+
1742
+ var column = this.columnApi.getColumn(this.prevFocusedCell.column);
1743
+ var node = this.api.getRowNode(this.prevFocusedCell.row);
1744
+
1745
+ if (node === undefined || column === null || node.rowIndex === null) {
1746
+ this.prevFocusedCell = null;
1747
+ return;
1748
+ }
1749
+
1750
+ this.api.setFocusedCell(node.rowIndex, column);
1751
+
1752
+ if (column.isCellEditable(node)) {
1753
+ this.api.startEditingCell({
1754
+ rowIndex: node.rowIndex,
1755
+ colKey: column.getColId()
1756
+ });
1757
+ }
1758
+ }
1028
1759
  }, {
1029
1760
  key: "render",
1030
1761
  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);
1762
+ var _this13 = this,
1763
+ _classNames;
1764
+
1765
+ var _this$props8 = this.props,
1766
+ rowKey = _this$props8.rowKey,
1767
+ fetch = _this$props8.fetch,
1768
+ dataSource = _this$props8.dataSource,
1769
+ rowActions = _this$props8.rowActions,
1770
+ columns = _this$props8.columns,
1771
+ autoLoad = _this$props8.autoLoad,
1772
+ loadingProp = _this$props8.loading,
1773
+ summary = _this$props8.summary,
1774
+ detailCell = _this$props8.detailCell,
1775
+ pagination = _this$props8.pagination,
1776
+ rowSelection = _this$props8.rowSelection,
1777
+ columnTypesProp = _this$props8.columnTypes,
1778
+ defaultColDefProp = _this$props8.defaultColDef,
1779
+ componentsProp = _this$props8.components,
1780
+ sideBarProp = _this$props8.sideBar,
1781
+ detailCellRendererParams = _this$props8.detailCellRendererParams,
1782
+ context = _this$props8.context,
1783
+ showSearch = _this$props8.showSearch,
1784
+ cellDisplayFlex = _this$props8.cellDisplayFlex,
1785
+ restProps = _objectWithoutProperties(_this$props8, _excluded4);
1051
1786
 
1052
1787
  var _this$state2 = this.state,
1053
- colDefs = _this$state2.colDefs,
1054
1788
  enablePagination = _this$state2.pagination,
1055
1789
  page = _this$state2.page,
1056
1790
  pageSize = _this$state2.pageSize,
1057
1791
  total = _this$state2.total,
1058
1792
  loading = _this$state2.loading;
1059
1793
  var mPage = _typeof(pagination) === 'object' ? pagination : {};
1060
- return /*#__PURE__*/React.createElement(GridContext.Provider, {
1794
+ var footer = [];
1795
+
1796
+ if (rowSelection !== undefined) {
1797
+ footer.push( /*#__PURE__*/React.createElement(Selected, {
1798
+ selection: this.selected,
1799
+ onClear: this.handleClearSelected,
1800
+ key: "selection"
1801
+ }));
1802
+ }
1803
+
1804
+ if (showSearch) {
1805
+ footer.push( /*#__PURE__*/React.createElement(Search, _extends({
1806
+ key: "search",
1807
+ ref: this.searchRef
1808
+ }, _typeof(showSearch) === 'object' ? showSearch : {})));
1809
+ }
1810
+
1811
+ if (enablePagination) {
1812
+ footer.push( /*#__PURE__*/React.createElement(Pagination, _extends({
1813
+ key: "pagination",
1814
+ size: "small",
1815
+ showPrevNextJumpers: true,
1816
+ showSizeChanger: true,
1817
+ showQuickJumper: true,
1818
+ showTotal: function showTotal(val) {
1819
+ return "\u5171".concat(val, "\u6761");
1820
+ },
1821
+ defaultCurrent: 1,
1822
+ defaultPageSize: 20,
1823
+ pageSizeOptions: ['10', '20', '50', '100']
1824
+ }, mPage, {
1825
+ pageSize: pageSize,
1826
+ current: page,
1827
+ total: total,
1828
+ onChange: function onChange(curr, limit) {
1829
+ _this13.pagination(curr, limit);
1830
+
1831
+ if (mPage.onChange) {
1832
+ mPage.onChange(curr, limit);
1833
+ }
1834
+ }
1835
+ })));
1836
+ }
1837
+
1838
+ return /*#__PURE__*/React.createElement(GridStoreContext.Provider, {
1061
1839
  value: this.store
1062
1840
  }, /*#__PURE__*/React.createElement("div", {
1063
- className: "ag-theme-lemon ".concat(prefix()),
1841
+ className: classNames('ag-theme-lemon', "".concat(prefix()), (_classNames = {}, _defineProperty(_classNames, prefix('group-rows'), restProps.groupDisplayType === 'groupRows'), _defineProperty(_classNames, prefix('cell-flex'), cellDisplayFlex), _classNames)),
1064
1842
  style: restProps.domLayout === 'autoHeight' ? {
1065
1843
  height: 'auto'
1066
- } : undefined
1844
+ } : undefined,
1845
+ onBlur: function onBlur(e) {
1846
+ if (e.currentTarget.contains(e.relatedTarget)) {
1847
+ return;
1848
+ }
1849
+
1850
+ _this13.handleBlur();
1851
+ },
1852
+ onFocus: this.handleFocus
1067
1853
  }, /*#__PURE__*/React.createElement(AgGridReact, _extends({
1068
1854
  singleClickEdit: true,
1069
1855
  suppressPaginationPanel: true,
1070
1856
  suppressCopyRowsToClipboard: true,
1071
- suppressColumnVirtualisation: true,
1072
- stopEditingWhenCellsLoseFocus: true,
1073
- loadingOverlayComponent: this.LoadingOverlay,
1857
+ suppressDragLeaveHidesColumns: true
1858
+ /** 防止粘贴错误的值到可编辑表格 */
1859
+ ,
1860
+ suppressClipboardPaste: true,
1861
+ enableCellEditingOnBackspace: true,
1862
+ maintainColumnOrder: true,
1863
+ suppressCsvExport: true,
1074
1864
  noRowsOverlayComponent: this.NoRowsOverlay,
1075
1865
  getMainMenuItems: this.getMainMenuItems,
1076
1866
  rowBuffer: 20,
1077
1867
  rowData: this.emptyRowData,
1078
1868
  sideBar: sideBarProp === true ? this.sideBarDef : sideBarProp,
1079
- pinnedBottomRowData: Array.isArray(summary) ? summary : summary ? [summary] : undefined
1080
- }, restProps, {
1869
+ pinnedBottomRowData: this.getSummaryRowData(summary),
1870
+ masterDetail: detailCell !== undefined
1871
+ }, this.getMemoizedDetailCellParams(detailCell, detailCellRendererParams, restProps.detailRowAutoHeight), restProps, {
1872
+ getRowStyle: this.getRowStyle,
1873
+ stopEditingWhenCellsLoseFocus: false,
1081
1874
  onRowDataUpdated: this.rowDataUpdated,
1082
1875
  onCellValueChanged: this.cellValueChanged,
1083
1876
  onCellEditingStopped: this.cellEditingStop,
1877
+ onCellFocused: this.cellFocused,
1084
1878
  pagination: enablePagination,
1085
1879
  paginationPageSize: pageSize,
1086
- columnDefs: colDefs,
1087
1880
  getRowId: this.getRowId,
1088
1881
  onGridReady: this.init,
1089
1882
  context: context,
1090
1883
  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", {
1884
+ components: this.getMemoizedComponents(componentsProp),
1885
+ defaultColDef: this.getMemoizedDefaultColDef(defaultColDefProp),
1886
+ columnTypes: this.getMemoizedColumnTypes(columnTypesProp)
1887
+ })), footer.length > 0 && /*#__PURE__*/React.createElement("div", {
1097
1888
  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, {
1889
+ }, footer), (loadingProp !== null && loadingProp !== void 0 ? loadingProp : loading) ? /*#__PURE__*/React.createElement(Spin, {
1121
1890
  className: prefix('spin')
1122
- })));
1891
+ }) : null));
1892
+ }
1893
+ }], [{
1894
+ key: "isSummaryRow",
1895
+ value: function isSummaryRow(_ref8) {
1896
+ var node = _ref8.node;
1897
+
1898
+ if (node && node.data && node.data[DataGrid.SummaryFlag]) {
1899
+ return true;
1900
+ }
1901
+
1902
+ return false;
1123
1903
  }
1124
1904
  }]);
1125
1905
 
@@ -1127,6 +1907,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
1127
1907
  }(Component);
1128
1908
 
1129
1909
  _defineProperty(DataGrid, "defaultProps", {
1910
+ stopEditingWhenCellsLoseFocus: true,
1130
1911
  autoLoad: false,
1131
1912
  localeText: {
1132
1913
  copy: '复制',
@@ -1149,11 +1930,15 @@ _defineProperty(DataGrid, "defaultProps", {
1149
1930
  },
1150
1931
  columnTypes: {},
1151
1932
  defaultColDef: {},
1152
- loading: false
1933
+ components: {}
1153
1934
  });
1154
1935
 
1936
+ _defineProperty(DataGrid, "SummaryFlag", Symbol('summary'));
1937
+
1938
+ _defineProperty(DataGrid, "IndexColId", '$$index');
1939
+
1155
1940
  _defineProperty(DataGrid, "EmptyCol", {
1156
- field: '__empty_column__',
1941
+ colId: '$$empty',
1157
1942
  flex: 1,
1158
1943
  resizable: false,
1159
1944
  suppressMovable: true,