@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/cjs/ConfirmPro/index.d.ts +12 -9
  2. package/dist/cjs/ConfirmPro/index.js +11 -34
  3. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +422 -156
  4. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +12 -1
  5. package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  6. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  7. package/dist/cjs/ag-grid-plus/density.d.ts +25 -0
  8. package/dist/cjs/ag-grid-plus/density.js +52 -0
  9. package/dist/cjs/ag-grid-plus/index.less +36 -0
  10. package/dist/cjs/ag-grid-plus/interface.d.ts +58 -1
  11. package/dist/cjs/ag-grid-plus/interface.js +1 -1
  12. package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +11 -0
  13. package/dist/cjs/ag-grid-plus/queryForm/index.js +62 -10
  14. package/dist/cjs/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  15. package/dist/cjs/ag-grid-plus/queryForm/queryForm.js +63 -26
  16. package/dist/cjs/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  17. package/dist/cjs/ag-grid-plus/queryForm/queryValues.js +61 -0
  18. package/dist/cjs/ag-grid-plus/rowColors.d.ts +12 -0
  19. package/dist/cjs/ag-grid-plus/rowColors.js +58 -0
  20. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  21. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  22. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +108 -76
  23. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  24. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  25. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.js +206 -0
  26. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  27. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +19 -1
  28. package/dist/cjs/ag-grid-plus/setting/index.js +5 -14
  29. package/dist/cjs/ag-grid-plus/settingItem/index.d.ts +11 -1
  30. package/dist/cjs/ag-grid-plus/settingItem/index.js +34 -12
  31. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  32. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.js +87 -0
  33. package/dist/cjs/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  34. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  35. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.js +40 -0
  36. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  37. package/dist/cjs/ag-grid-plus/theme.d.ts +7 -1
  38. package/dist/cjs/ag-grid-plus/theme.js +31 -6
  39. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  40. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.js +128 -0
  41. package/dist/cjs/ag-grid-plus/toolBar/index.d.ts +3 -1
  42. package/dist/cjs/ag-grid-plus/toolBar/index.js +43 -35
  43. package/dist/cjs/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  44. package/dist/cjs/ag-grid-plus/toolBar/leftContent.js +2 -2
  45. package/dist/cjs/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  46. package/dist/cjs/ag-grid-plus/toolBar/overflow.js +48 -0
  47. package/dist/cjs/ag-grid-plus/toolBar/style.js +71 -15
  48. package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
  49. package/dist/cjs/ag-grid-plus/utils/agGridCompat.js +12 -3
  50. package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  51. package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +13 -2
  52. package/dist/cjs/ag-grid-plus/utils/constants.d.ts +3 -2
  53. package/dist/cjs/ag-grid-plus/utils/constants.js +3 -2
  54. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  55. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.js +58 -0
  56. package/dist/cjs/ag-grid-plus/utils/emptyState.d.ts +2 -0
  57. package/dist/cjs/ag-grid-plus/utils/emptyState.js +9 -5
  58. package/dist/cjs/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  59. package/dist/cjs/ag-grid-plus/utils/listKeyboard.js +83 -0
  60. package/dist/cjs/ag-grid-plus/utils/pagination.d.ts +26 -0
  61. package/dist/cjs/ag-grid-plus/utils/pagination.js +69 -0
  62. package/dist/cjs/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  63. package/dist/cjs/ag-grid-plus/utils/queryDispatch.js +17 -0
  64. package/dist/cjs/ag-grid-plus/utils/statusPill.d.ts +25 -0
  65. package/dist/cjs/ag-grid-plus/utils/statusPill.js +196 -0
  66. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  67. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.js +13 -9
  68. package/dist/cjs/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  69. package/dist/cjs/ag-grid-plus/utils/valueFormat.js +73 -0
  70. package/dist/cjs/ag-grid-plus/utils.js +3 -2
  71. package/dist/cjs/array-table/arrayAddBtn.d.ts +1 -0
  72. package/dist/cjs/array-table/arrayAddBtn.js +2 -2
  73. package/dist/cjs/array-table/autoHeight.d.ts +18 -0
  74. package/dist/cjs/array-table/autoHeight.js +30 -0
  75. package/dist/cjs/array-table/batchRemove.d.ts +2 -2
  76. package/dist/cjs/array-table/cellEditorMarker.d.ts +18 -0
  77. package/dist/cjs/array-table/cellEditorMarker.js +92 -0
  78. package/dist/cjs/array-table/errorLocator.d.ts +29 -0
  79. package/dist/cjs/array-table/errorLocator.js +101 -0
  80. package/dist/cjs/array-table/hooks.d.ts +52 -4
  81. package/dist/cjs/array-table/hooks.js +251 -18
  82. package/dist/cjs/array-table/index.d.ts +6 -0
  83. package/dist/cjs/array-table/index.js +167 -23
  84. package/dist/cjs/array-table/interface.d.ts +22 -0
  85. package/dist/cjs/array-table/preview.js +39 -5
  86. package/dist/cjs/array-table/rowFeedback.d.ts +2 -2
  87. package/dist/cjs/array-table/rowFeedback.js +8 -8
  88. package/dist/cjs/array-table/summary.d.ts +25 -0
  89. package/dist/cjs/array-table/summary.js +70 -0
  90. package/dist/cjs/array-table/theme.d.ts +35 -5
  91. package/dist/cjs/array-table/theme.js +49 -12
  92. package/dist/cjs/array-table/title.d.ts +3 -0
  93. package/dist/cjs/array-table/title.js +29 -0
  94. package/dist/cjs/array-table/utils.d.ts +2 -1
  95. package/dist/cjs/array-table/utils.js +94 -23
  96. package/dist/cjs/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  97. package/dist/cjs/dateCellEditor/DateCellEditor.d.ts +5 -0
  98. package/dist/cjs/dateCellEditor/DateCellEditor.js +42 -17
  99. package/dist/cjs/deleteConfirm/index.d.ts +14 -0
  100. package/dist/cjs/deleteConfirm/index.js +73 -12
  101. package/dist/cjs/dialogSelect/index.d.ts +19 -0
  102. package/dist/cjs/dialogSelect/index.js +189 -15
  103. package/dist/cjs/dialogSelect/index.less +18 -0
  104. package/dist/cjs/documentPage/documentPage.d.ts +6 -3
  105. package/dist/cjs/documentPage/documentPage.js +23 -8
  106. package/dist/cjs/documentPage/index.d.ts +2 -0
  107. package/dist/cjs/documentPage/index.js +19 -0
  108. package/dist/cjs/documentPage/leaveGuard.d.ts +31 -0
  109. package/dist/cjs/documentPage/leaveGuard.js +91 -0
  110. package/dist/cjs/draggableModal/index.d.ts +24 -1
  111. package/dist/cjs/draggableModal/index.js +36 -6
  112. package/dist/cjs/fullScreenAlert/index.less +10 -10
  113. package/dist/cjs/index.d.ts +2 -0
  114. package/dist/cjs/index.js +15 -0
  115. package/dist/cjs/readPretty/arrayTable.js +5 -1
  116. package/dist/cjs/scanCollect/ScanFeedbackInput.d.ts +26 -0
  117. package/dist/cjs/scanCollect/ScanFeedbackInput.js +113 -0
  118. package/dist/cjs/scanCollect/index.d.ts +4 -0
  119. package/dist/cjs/scanCollect/index.js +14 -0
  120. package/dist/cjs/scanCollect/scanSound.d.ts +15 -0
  121. package/dist/cjs/scanCollect/scanSound.js +91 -0
  122. package/dist/esm/ConfirmPro/index.d.ts +12 -9
  123. package/dist/esm/ConfirmPro/index.js +11 -34
  124. package/dist/esm/ag-grid-plus/ag-gridPlus.js +423 -156
  125. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +12 -1
  126. package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  127. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  128. package/dist/esm/ag-grid-plus/density.d.ts +25 -0
  129. package/dist/esm/ag-grid-plus/density.js +45 -0
  130. package/dist/esm/ag-grid-plus/index.less +36 -0
  131. package/dist/esm/ag-grid-plus/interface.d.ts +58 -1
  132. package/dist/esm/ag-grid-plus/interface.js +2 -0
  133. package/dist/esm/ag-grid-plus/queryForm/index.d.ts +11 -0
  134. package/dist/esm/ag-grid-plus/queryForm/index.js +62 -10
  135. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  136. package/dist/esm/ag-grid-plus/queryForm/queryForm.js +64 -26
  137. package/dist/esm/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  138. package/dist/esm/ag-grid-plus/queryForm/queryValues.js +54 -0
  139. package/dist/esm/ag-grid-plus/rowColors.d.ts +12 -0
  140. package/dist/esm/ag-grid-plus/rowColors.js +50 -0
  141. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  142. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  143. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +110 -78
  144. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  145. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  146. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.js +198 -0
  147. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  148. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +18 -1
  149. package/dist/esm/ag-grid-plus/setting/index.js +6 -15
  150. package/dist/esm/ag-grid-plus/settingItem/index.d.ts +11 -1
  151. package/dist/esm/ag-grid-plus/settingItem/index.js +35 -13
  152. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  153. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.js +82 -0
  154. package/dist/esm/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  155. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  156. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.js +34 -0
  157. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  158. package/dist/esm/ag-grid-plus/theme.d.ts +7 -1
  159. package/dist/esm/ag-grid-plus/theme.js +31 -6
  160. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  161. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.js +120 -0
  162. package/dist/esm/ag-grid-plus/toolBar/index.d.ts +3 -1
  163. package/dist/esm/ag-grid-plus/toolBar/index.js +43 -35
  164. package/dist/esm/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  165. package/dist/esm/ag-grid-plus/toolBar/leftContent.js +2 -2
  166. package/dist/esm/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  167. package/dist/esm/ag-grid-plus/toolBar/overflow.js +41 -0
  168. package/dist/esm/ag-grid-plus/toolBar/style.js +71 -15
  169. package/dist/esm/ag-grid-plus/types.d.ts +6 -0
  170. package/dist/esm/ag-grid-plus/utils/agGridCompat.js +12 -3
  171. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  172. package/dist/esm/ag-grid-plus/utils/columnProcessors.js +14 -3
  173. package/dist/esm/ag-grid-plus/utils/constants.d.ts +3 -2
  174. package/dist/esm/ag-grid-plus/utils/constants.js +3 -2
  175. package/dist/esm/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  176. package/dist/esm/ag-grid-plus/utils/crossPageSelection.js +52 -0
  177. package/dist/esm/ag-grid-plus/utils/emptyState.d.ts +2 -0
  178. package/dist/esm/ag-grid-plus/utils/emptyState.js +9 -5
  179. package/dist/esm/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  180. package/dist/esm/ag-grid-plus/utils/listKeyboard.js +77 -0
  181. package/dist/esm/ag-grid-plus/utils/pagination.d.ts +26 -0
  182. package/dist/esm/ag-grid-plus/utils/pagination.js +60 -0
  183. package/dist/esm/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  184. package/dist/esm/ag-grid-plus/utils/queryDispatch.js +11 -0
  185. package/dist/esm/ag-grid-plus/utils/statusPill.d.ts +25 -0
  186. package/dist/esm/ag-grid-plus/utils/statusPill.js +192 -0
  187. package/dist/esm/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  188. package/dist/esm/ag-grid-plus/utils/valueEnumColor.js +12 -8
  189. package/dist/esm/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  190. package/dist/esm/ag-grid-plus/utils/valueFormat.js +63 -0
  191. package/dist/esm/ag-grid-plus/utils.js +3 -2
  192. package/dist/esm/array-table/arrayAddBtn.d.ts +1 -0
  193. package/dist/esm/array-table/arrayAddBtn.js +1 -1
  194. package/dist/esm/array-table/autoHeight.d.ts +18 -0
  195. package/dist/esm/array-table/autoHeight.js +25 -0
  196. package/dist/esm/array-table/batchRemove.d.ts +2 -2
  197. package/dist/esm/array-table/cellEditorMarker.d.ts +18 -0
  198. package/dist/esm/array-table/cellEditorMarker.js +84 -0
  199. package/dist/esm/array-table/errorLocator.d.ts +29 -0
  200. package/dist/esm/array-table/errorLocator.js +95 -0
  201. package/dist/esm/array-table/hooks.d.ts +52 -4
  202. package/dist/esm/array-table/hooks.js +251 -17
  203. package/dist/esm/array-table/index.d.ts +6 -0
  204. package/dist/esm/array-table/index.js +170 -25
  205. package/dist/esm/array-table/interface.d.ts +22 -0
  206. package/dist/esm/array-table/preview.js +43 -7
  207. package/dist/esm/array-table/rowFeedback.d.ts +2 -2
  208. package/dist/esm/array-table/rowFeedback.js +8 -8
  209. package/dist/esm/array-table/summary.d.ts +25 -0
  210. package/dist/esm/array-table/summary.js +66 -0
  211. package/dist/esm/array-table/theme.d.ts +35 -5
  212. package/dist/esm/array-table/theme.js +47 -12
  213. package/dist/esm/array-table/title.d.ts +3 -0
  214. package/dist/esm/array-table/title.js +24 -0
  215. package/dist/esm/array-table/utils.d.ts +2 -1
  216. package/dist/esm/array-table/utils.js +93 -22
  217. package/dist/esm/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  218. package/dist/esm/dateCellEditor/DateCellEditor.d.ts +5 -0
  219. package/dist/esm/dateCellEditor/DateCellEditor.js +42 -17
  220. package/dist/esm/deleteConfirm/index.d.ts +14 -0
  221. package/dist/esm/deleteConfirm/index.js +72 -12
  222. package/dist/esm/dialogSelect/index.d.ts +19 -0
  223. package/dist/esm/dialogSelect/index.js +190 -16
  224. package/dist/esm/dialogSelect/index.less +18 -0
  225. package/dist/esm/documentPage/documentPage.d.ts +6 -3
  226. package/dist/esm/documentPage/documentPage.js +23 -8
  227. package/dist/esm/documentPage/index.d.ts +2 -0
  228. package/dist/esm/documentPage/index.js +1 -0
  229. package/dist/esm/documentPage/leaveGuard.d.ts +31 -0
  230. package/dist/esm/documentPage/leaveGuard.js +86 -0
  231. package/dist/esm/draggableModal/index.d.ts +24 -1
  232. package/dist/esm/draggableModal/index.js +35 -5
  233. package/dist/esm/fullScreenAlert/index.less +10 -10
  234. package/dist/esm/index.d.ts +2 -0
  235. package/dist/esm/index.js +1 -0
  236. package/dist/esm/readPretty/arrayTable.js +6 -2
  237. package/dist/esm/scanCollect/ScanFeedbackInput.d.ts +26 -0
  238. package/dist/esm/scanCollect/ScanFeedbackInput.js +107 -0
  239. package/dist/esm/scanCollect/index.d.ts +4 -0
  240. package/dist/esm/scanCollect/index.js +2 -0
  241. package/dist/esm/scanCollect/scanSound.d.ts +15 -0
  242. package/dist/esm/scanCollect/scanSound.js +84 -0
  243. package/package.json +2 -2
@@ -1,6 +1,5 @@
1
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "onQueryValuesChange", "emptyState", "accessible", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType", "valueEnumContrast", "dateQueryPrecision"];
1
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "onQueryValuesChange", "autoRememberColumns", "emptyState", "accessible", "enableClickSelection", "rowSelection", "crossPageSelection", "onCrossPageSelectionChange", "defaultValueFormat", "useNativeTreeFilter", "entityType", "valueEnumContrast", "dateQueryPrecision", "headerFilter", "showQuickJumper", "showSizeChanger"];
2
2
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
3
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
5
4
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
5
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
@@ -16,6 +15,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
16
15
  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; }
17
16
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
17
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
19
19
  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; }
20
20
  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; }
21
21
  import { ModuleRegistry } from 'ag-grid-community';
@@ -29,11 +29,18 @@ ModuleRegistry.registerModules([AllEnterpriseModule]);
29
29
 
30
30
  // 导入 AG-Grid v33 主题
31
31
  import { useAgGridTheme } from "./theme";
32
+ import { resolveGridDensity } from "./density";
33
+ import { deriveRowColors } from "./rowColors";
34
+ import { createListKeyHandler } from "./utils/listKeyboard";
35
+ import { createCrossPageSelection } from "./utils/crossPageSelection";
36
+ import { withDefaultValueFormat } from "./utils/valueFormat";
32
37
  import { useTypeInferenceRow } from "./hooks/useTypeInferenceRow";
33
38
  import "./index.less";
34
39
  import FormRender from "./queryForm/index";
35
40
  import ToolBar from "./toolBar/index";
36
41
  import SettingItem from "./settingItem/index";
42
+ import { useAutoColumnMemory } from "./setting/autoColumnMemory";
43
+ import { needsDirectRequest } from "./utils/queryDispatch";
37
44
  import { RedoOutlined, FilterOutlined } from '@ant-design/icons';
38
45
  import { convertFilterModel, dateTimeValueFormatter, dateValueFormatter, flatten, toTree } from "./utils";
39
46
  import { mergeInferredColumnType, processEllipsisColumn, processEnumColumn, renderDefaultCell } from "./utils/columnProcessors";
@@ -45,6 +52,8 @@ import { useRowId } from "./hooks/useRowId";
45
52
  import _, { isArray } from 'lodash';
46
53
  import CustomGroupCellRenderer from "./_utils/customGroupCellRenderer";
47
54
  import NoRowsOverlay from "./shared/NoRowsOverlay";
55
+ import SkeletonOverlay from "./shared/SkeletonOverlay";
56
+ import { clampPage, formatPaginationTotal, mergeDefaultColDef, resolveInitialPageSize, sliceRowsByPage } from "./utils/pagination";
48
57
  import { DEFAULT_PAGE_SIZE_OPTIONS } from "./utils/constants";
49
58
  import { hasEffectiveFilter, resolveEmptyBranch, resolveEmptyText, resolveNoRowsOverlay } from "./utils/emptyState";
50
59
  import processColumnGroups from "./_utils/processColumnGroups";
@@ -67,6 +76,7 @@ import { getEntityExtensionColumns } from "./utils/entityExtensionColumns";
67
76
  import { message } from 'antd';
68
77
  import { jsx as _jsx } from "react/jsx-runtime";
69
78
  import { jsxs as _jsxs } from "react/jsx-runtime";
79
+ import { Fragment as _Fragment } from "react/jsx-runtime";
70
80
  var getSort = function getSort(columnState) {
71
81
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
72
82
  };
@@ -81,8 +91,7 @@ function useDeepCompareStable(value) {
81
91
  return ref.current;
82
92
  }
83
93
  function AgGridPlus(props) {
84
- var _ref, _rest$cellSelection;
85
- var gridTheme = useAgGridTheme();
94
+ var _currentSchemes, _ref, _currentQueryScheme$q, _rest$cellSelection;
86
95
  var _theme$useToken = theme.useToken(),
87
96
  token = _theme$useToken.token; // 高级筛选入口跟随主题及客户主色。@author nokecy
88
97
  var style = props.style,
@@ -106,17 +115,27 @@ function AgGridPlus(props) {
106
115
  queryDefaultRows = props.queryDefaultRows,
107
116
  onSelectedRowsChange = props.onSelectedRowsChange,
108
117
  onQueryValuesChange = props.onQueryValuesChange,
118
+ _props$autoRememberCo = props.autoRememberColumns,
119
+ autoRememberColumns = _props$autoRememberCo === void 0 ? true : _props$autoRememberCo,
109
120
  emptyState = props.emptyState,
110
121
  _props$accessible = props.accessible,
111
122
  accessible = _props$accessible === void 0 ? true : _props$accessible,
112
123
  enableClickSelection = props.enableClickSelection,
113
124
  propsRowSelection = props.rowSelection,
125
+ _props$crossPageSelec = props.crossPageSelection,
126
+ crossPageSelection = _props$crossPageSelec === void 0 ? false : _props$crossPageSelec,
127
+ onCrossPageSelectionChange = props.onCrossPageSelectionChange,
128
+ _props$defaultValueFo = props.defaultValueFormat,
129
+ defaultValueFormat = _props$defaultValueFo === void 0 ? true : _props$defaultValueFo,
114
130
  _props$useNativeTreeF = props.useNativeTreeFilter,
115
131
  useNativeTreeFilter = _props$useNativeTreeF === void 0 ? false : _props$useNativeTreeF,
116
132
  entityType = props.entityType,
117
133
  _props$valueEnumContr = props.valueEnumContrast,
118
134
  valueEnumContrast = _props$valueEnumContr === void 0 ? false : _props$valueEnumContr,
119
135
  dateQueryPrecision = props.dateQueryPrecision,
136
+ headerFilter = props.headerFilter,
137
+ showQuickJumper = props.showQuickJumper,
138
+ showSizeChanger = props.showSizeChanger,
120
139
  rest = _objectWithoutProperties(props, _excluded);
121
140
  var _useGridPlusColumnSta = useGridPlusColumnState(),
122
141
  onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
@@ -129,7 +148,27 @@ function AgGridPlus(props) {
129
148
  applySchemeToGlobal = _useGridPlusColumnSta.applySchemeToGlobal,
130
149
  resetToGlobal = _useGridPlusColumnSta.resetToGlobal,
131
150
  resetAllUsers = _useGridPlusColumnSta.resetAllUsers,
132
- hostEntityExtensions = _useGridPlusColumnSta.hostEntityExtensions;
151
+ hostEntityExtensions = _useGridPlusColumnSta.hostEntityExtensions,
152
+ density = _useGridPlusColumnSta.density,
153
+ densityOverrides = _useGridPlusColumnSta.densityValues,
154
+ onDensityChange = _useGridPlusColumnSta.onDensityChange;
155
+
156
+ // 密度由 Provider 注入;没注入时保持出厂外观。页面 `theme` 传普通对象时叠加在 token 与密度之上,
157
+ // 传 AG Grid Theme 实例或字符串时仍整体替换(兼容旧用法)。@author nokecy
158
+ var densitySpec = useMemo(function () {
159
+ return resolveGridDensity(density, densityOverrides);
160
+ }, [density, densityOverrides]);
161
+ var pageThemeParams = useMemo(function () {
162
+ var t = rest.theme;
163
+ return t && _typeof(t) === 'object' && typeof t.withParams !== 'function' ? t : undefined;
164
+ }, [rest.theme]);
165
+ var gridTheme = useAgGridTheme({
166
+ density: densitySpec,
167
+ themeParams: pageThemeParams
168
+ });
169
+ var rowColors = useMemo(function () {
170
+ return deriveRowColors(token.colorPrimary, token.colorLink);
171
+ }, [token.colorPrimary, token.colorLink]);
133
172
  var gridRef = useRef(undefined);
134
173
  var apiRef = useRef(undefined);
135
174
  var allColDefsRef = useRef([]);
@@ -151,6 +190,22 @@ function AgGridPlus(props) {
151
190
  }, [props.getRowId, generateUniqueRowId]);
152
191
  var resolveRowIdRef = useRef(resolveRowId);
153
192
  resolveRowIdRef.current = resolveRowId;
193
+
194
+ // 跨页勾选:按行 ID 记住所有已勾选的行,翻页后把当前页命中的行重新勾上 @author nokecy
195
+ var crossPageRef = useRef(crossPageSelection);
196
+ crossPageRef.current = crossPageSelection;
197
+ var crossPage = useMemo(function () {
198
+ return createCrossPageSelection(function (row) {
199
+ return resolveRowIdRef.current({
200
+ data: row,
201
+ level: 0,
202
+ api: apiRef.current,
203
+ context: null
204
+ });
205
+ });
206
+ }, []);
207
+ var onCrossPageChangeRef = useRef(onCrossPageSelectionChange);
208
+ onCrossPageChangeRef.current = onCrossPageSelectionChange;
154
209
  var _useState = useState(false),
155
210
  _useState2 = _slicedToArray(_useState, 2),
156
211
  ready = _useState2[0],
@@ -165,44 +220,69 @@ function AgGridPlus(props) {
165
220
  _useState6 = _slicedToArray(_useState5, 2),
166
221
  loading = _useState6[0],
167
222
  setLoading = _useState6[1];
168
- // 空态四分需要的两个事实:这次请求是不是失败了、用户有没有施加筛选。@author nokecy
169
- var _useState7 = useState(null),
223
+ // 首次请求发出前表里本来就是空的,此时不能显示空态文案,要显示骨架。
224
+ // 用「请求已发出且已结束」反推,而不是只看 loading:loading 在首个请求发出前一直是 false。@author nokecy
225
+ var _useState7 = useState(!!request),
170
226
  _useState8 = _slicedToArray(_useState7, 2),
171
- loadError = _useState8[0],
172
- setLoadError = _useState8[1];
173
- var _useState9 = useState(false),
227
+ firstLoadPending = _useState8[0],
228
+ setFirstLoadPending = _useState8[1];
229
+ var requestStartedRef = useRef(false);
230
+ // 空态四分需要的两个事实:这次请求是不是失败了、用户有没有施加筛选。@author nokecy
231
+ var _useState9 = useState(null),
174
232
  _useState10 = _slicedToArray(_useState9, 2),
175
- filtered = _useState10[0],
176
- setFiltered = _useState10[1];
177
- var _useState11 = useState(),
233
+ loadError = _useState10[0],
234
+ setLoadError = _useState10[1];
235
+ var _useState11 = useState(false),
178
236
  _useState12 = _slicedToArray(_useState11, 2),
179
- columnState = _useState12[0],
180
- setColumnState = _useState12[1];
181
- var _useState13 = useState({}),
237
+ filtered = _useState12[0],
238
+ setFiltered = _useState12[1];
239
+ var _useState13 = useState(),
182
240
  _useState14 = _slicedToArray(_useState13, 2),
183
- columnCellClass = _useState14[0],
184
- setColumnCellClass = _useState14[1];
185
- var _useState15 = useState([]),
241
+ columnState = _useState14[0],
242
+ setColumnState = _useState14[1];
243
+ var _useState15 = useState({}),
186
244
  _useState16 = _slicedToArray(_useState15, 2),
187
- rowData = _useState16[0],
188
- setRowData = _useState16[1];
189
- var _useState17 = useState({}),
245
+ columnCellClass = _useState16[0],
246
+ setColumnCellClass = _useState16[1];
247
+ var _useState17 = useState([]),
190
248
  _useState18 = _slicedToArray(_useState17, 2),
191
- queryFilter = _useState18[0],
192
- setQueryFilter = _useState18[1];
193
- var _useState19 = useState(),
249
+ rowData = _useState18[0],
250
+ setRowData = _useState18[1];
251
+ var _useState19 = useState({}),
194
252
  _useState20 = _slicedToArray(_useState19, 2),
195
- sortColumn = _useState20[0],
196
- setSortColumn = _useState20[1];
253
+ queryFilter = _useState20[0],
254
+ setQueryFilter = _useState20[1];
255
+ var _useState21 = useState(),
256
+ _useState22 = _slicedToArray(_useState21, 2),
257
+ sortColumn = _useState22[0],
258
+ setSortColumn = _useState22[1];
197
259
  // 初始化分页参数,支持外部传入的pageSize
198
- var _useState21 = useState({
199
- pageSize: props.pageSize !== undefined ? props.pageSize : props.hidePagination ? 10000 : 200,
260
+ var _useState23 = useState({
261
+ pageSize: resolveInitialPageSize(props.pageSize, props.hidePagination),
200
262
  current: 1,
201
263
  total: dataSource ? dataSource.length : 0
202
264
  }),
203
- _useState22 = _slicedToArray(_useState21, 2),
204
- pagination = _useState22[0],
205
- setPagination = _useState22[1];
265
+ _useState24 = _slicedToArray(_useState23, 2),
266
+ pagination = _useState24[0],
267
+ setPagination = _useState24[1];
268
+
269
+ // dataSource 本地数据模式:分页器要真正切片,而不是只显示页码。
270
+ // 总数与页码按 dataSource 当场推导,数据增删后页码自动收回末页,无需再同步 state。
271
+ // 树形数据按层级展开,不能按行切片,保持整表。@author nokecy
272
+ var localPaging = !!dataSource && !request && !props.hidePagination && !props.treeData;
273
+ var pageTotal = localPaging ? dataSource.length : pagination.total;
274
+ var pageCurrent = localPaging ? clampPage(pagination.current, pageTotal, pagination.pageSize) : pagination.current;
275
+ // 命令式入口(GridRef)与异步回调读取最新分页,避免闭包拿到旧页码
276
+ var paginationRef = useRef({
277
+ current: pageCurrent,
278
+ pageSize: pagination.pageSize,
279
+ total: pageTotal
280
+ });
281
+ paginationRef.current = {
282
+ current: pageCurrent,
283
+ pageSize: pagination.pageSize,
284
+ total: pageTotal
285
+ };
206
286
 
207
287
  // ============ 方案管理 - 使用集中式 Context ============
208
288
  var _useGridSchemes = useGridSchemes(),
@@ -221,16 +301,22 @@ function AgGridPlus(props) {
221
301
  getColumnSchemes = _useGridSchemes.getColumnSchemes,
222
302
  getQuerySchemes = _useGridSchemes.getQuerySchemes,
223
303
  getCurrentScheme = _useGridSchemes.getCurrentScheme;
224
- var _useState23 = useState([]),
225
- _useState24 = _slicedToArray(_useState23, 2),
226
- queryItemsOrder = _useState24[0],
227
- setQueryItemsOrder = _useState24[1];
304
+ var _useState25 = useState([]),
305
+ _useState26 = _slicedToArray(_useState25, 2),
306
+ queryItemsOrder = _useState26[0],
307
+ setQueryItemsOrder = _useState26[1];
308
+ // 查询区操作句柄:查询方案管理经它读取当前条件值 @author nokecy
309
+ var queryFormApiRef = useRef(null);
310
+ var getQueryValues = useCallback(function () {
311
+ var _queryFormApiRef$curr, _queryFormApiRef$curr2;
312
+ return (_queryFormApiRef$curr = (_queryFormApiRef$curr2 = queryFormApiRef.current) === null || _queryFormApiRef$curr2 === void 0 ? void 0 : _queryFormApiRef$curr2.getValues()) !== null && _queryFormApiRef$curr !== void 0 ? _queryFormApiRef$curr : {};
313
+ }, []);
228
314
 
229
315
  // 高级查询状态
230
- var _useState25 = useState(false),
231
- _useState26 = _slicedToArray(_useState25, 2),
232
- advancedPopoverOpen = _useState26[0],
233
- setAdvancedPopoverOpen = _useState26[1];
316
+ var _useState27 = useState(false),
317
+ _useState28 = _slicedToArray(_useState27, 2),
318
+ advancedPopoverOpen = _useState28[0],
319
+ setAdvancedPopoverOpen = _useState28[1];
234
320
  var createEmptyRuleGroup = function createEmptyRuleGroup() {
235
321
  return {
236
322
  id: uuidv4(),
@@ -238,17 +324,21 @@ function AgGridPlus(props) {
238
324
  children: []
239
325
  };
240
326
  };
241
- var _useState27 = useState(createEmptyRuleGroup),
242
- _useState28 = _slicedToArray(_useState27, 2),
243
- advancedQueryRules = _useState28[0],
244
- setAdvancedQueryRules = _useState28[1];
327
+ var _useState29 = useState(createEmptyRuleGroup),
328
+ _useState30 = _slicedToArray(_useState29, 2),
329
+ advancedQueryRules = _useState30[0],
330
+ setAdvancedQueryRules = _useState30[1];
331
+ // 查询区回调可能还是旧渲染里的闭包,「重置」要在同一次点击里让它读到已清空的高级条件,所以另放一份 ref。
332
+ var advancedRulesRef = useRef(advancedQueryRules);
333
+ advancedRulesRef.current = advancedQueryRules;
245
334
  useImperativeHandle(propsGridRef, function () {
246
335
  return gridRef.current;
247
336
  });
248
337
 
249
338
  //默认列属性
339
+ var pageDefaultColDef = useDeepCompareStable(rest.defaultColDef);
250
340
  var defaultColDef = useMemo(function () {
251
- return {
341
+ var builtIn = {
252
342
  resizable: true,
253
343
  sortable: true,
254
344
  // suppressHeaderFilterButton: true,
@@ -261,7 +351,11 @@ function AgGridPlus(props) {
261
351
  '<span data-ref="eFilterButton" class="ag-header-icon ag-header-cell-filter-button"></span>' + '<div data-ref="eLabel" class="ag-header-cell-label" role="presentation">' + '<span data-ref="eText" class="ag-header-cell-text" role="columnheader"></span>' + '<span data-ref="eFilter" class="ag-header-icon ag-filter-icon"></span>' + '<span data-ref="eSortOrder" class="ag-header-icon ag-sort-order"></span>' + '<span data-ref="eSortDesc" class="ag-header-icon ag-sort-descending-icon"></span>' + '<span data-ref="eSortAsc" class="ag-header-icon ag-sort-ascending-icon"></span>' + '<span data-ref="eSortNone" class="ag-header-icon ag-sort-none-icon"></span>' + '</div>' + '</div>'
262
352
  }
263
353
  };
264
- }, []);
354
+ // 页面传入的 defaultColDef 与内置合并(页面优先),headerFilter=false 全局收起列头筛选按钮
355
+ return mergeDefaultColDef(builtIn, pageDefaultColDef, {
356
+ headerFilter: headerFilter
357
+ });
358
+ }, [pageDefaultColDef, headerFilter]);
265
359
  var columnTypes = useMemo(function () {
266
360
  return {
267
361
  bool: {
@@ -304,6 +398,11 @@ function AgGridPlus(props) {
304
398
  setRowData(dataSource || propRowData || []);
305
399
  }, [dataSource, propRowData]);
306
400
 
401
+ // 首次请求结束(成功或失败)后不再算「首次加载」
402
+ useEffect(function () {
403
+ if (!loading && requestStartedRef.current && firstLoadPending) setFirstLoadPending(false);
404
+ }, [loading, firstLoadPending]);
405
+
307
406
  //外部loading
308
407
  useEffect(function () {
309
408
  loadingProps !== undefined && setLoading(loadingProps);
@@ -326,7 +425,9 @@ function AgGridPlus(props) {
326
425
 
327
426
  // 辅助函数: 处理单个列配置
328
427
  var processColumnConfig = function processColumnConfig(col, data) {
428
+ var _col;
329
429
  var dataType = getDataType(data, col.field || '', col.valueEnum);
430
+ if (defaultValueFormat) col = withDefaultValueFormat(col, (dataType === null || dataType === void 0 ? void 0 : dataType.type) === 'number' && dataType.calculateType !== false);
330
431
  if (col.valueEnum && Array.isArray(col.valueEnum)) {
331
432
  // 枚举列渲染只走一处实现,见 columnProcessors.processEnumColumn
332
433
  // (命中上色、未命中交给 col.enumFallbackRenderer,都没配则回原始码)
@@ -336,7 +437,7 @@ function AgGridPlus(props) {
336
437
  return mergeInferredColumnType(col, dataType);
337
438
  }
338
439
  //@ts-ignore
339
- if (col !== null && col !== void 0 && col.ellipsis) {
440
+ if ((_col = col) !== null && _col !== void 0 && _col.ellipsis) {
340
441
  return processEllipsisColumn(mergeInferredColumnType(col, dataType));
341
442
  }
342
443
  if (col.cellRenderer) {
@@ -438,7 +539,7 @@ function AgGridPlus(props) {
438
539
  });
439
540
  }
440
541
  return cols;
441
- }, [React.Children.count(children), props.columnDefs, extensibleColumns, gridKey, entityType, hostEntityExtensions, typeInferenceRow, valueEnumContrast ? token.colorBgContainer : undefined]);
542
+ }, [React.Children.count(children), props.columnDefs, extensibleColumns, gridKey, entityType, hostEntityExtensions, typeInferenceRow, defaultValueFormat, valueEnumContrast ? token.colorBgContainer : undefined]);
442
543
 
443
544
  // 方案派生依赖本轮源码列,避免读取尚未更新的 ref 快照。@author nokecy
444
545
  /**
@@ -464,12 +565,46 @@ function AgGridPlus(props) {
464
565
  var currentColumnSchemes = schemeDataFlow.columnSchemes,
465
566
  currentColumnScheme = schemeDataFlow.currentColumnScheme,
466
567
  currentQuerySchemes = schemeDataFlow.querySchemes,
467
- currentQueryScheme = schemeDataFlow.currentQueryScheme,
568
+ resolvedQueryScheme = schemeDataFlow.currentQueryScheme,
468
569
  derivedColumnDefs = schemeDataFlow.derivedColumnDefs,
469
570
  derivedColumnState = schemeDataFlow.derivedColumnState,
470
571
  isUsingGlobalFallback = schemeDataFlow.isUsingGlobalFallback,
471
572
  isUsingGlobalQueryFallback = schemeDataFlow.isUsingGlobalQueryFallback;
472
573
 
574
+ // 「重置」取消当前应用的查询方案:默认/全局方案是按回退规则算出来的,只清存储的 ID 仍会被回退算回来,
575
+ // 所以本页内另用一个标记压住它;用户重新选方案(ID 变为非空)时解除。
576
+ var _useState31 = useState(false),
577
+ _useState32 = _slicedToArray(_useState31, 2),
578
+ querySchemeDismissed = _useState32[0],
579
+ setQuerySchemeDismissed = _useState32[1];
580
+ var currentQueryScheme = querySchemeDismissed ? undefined : resolvedQueryScheme;
581
+ var storedQuerySchemeId = currentSchemes === null || currentSchemes === void 0 || (_currentSchemes = currentSchemes[gridKey || '']) === null || _currentSchemes === void 0 ? void 0 : _currentSchemes.querySchemeId;
582
+ useEffect(function () {
583
+ if (storedQuerySchemeId) setQuerySchemeDismissed(false);
584
+ }, [storedQuerySchemeId]);
585
+ var resetQueryScheme = useCallback(function () {
586
+ var _setCurrentQuerySchem, _setCurrentQuerySchem2;
587
+ setQuerySchemeDismissed(true);
588
+ // 重置要恢复全量,高级搜索条件一并清空,否则提交时仍会优先走高级条件。
589
+ var empty = createEmptyRuleGroup();
590
+ advancedRulesRef.current = empty;
591
+ setAdvancedQueryRules(empty);
592
+ // 存储里清成 null 后,再次选择同一方案才会是一次真实变化;下次进入页面仍按默认方案规则回退。
593
+ if (gridKey) setCurrentQueryScheme === null || setCurrentQueryScheme === void 0 || (_setCurrentQuerySchem = setCurrentQueryScheme(gridKey, null)) === null || _setCurrentQuerySchem === void 0 || (_setCurrentQuerySchem2 = _setCurrentQuerySchem.catch) === null || _setCurrentQuerySchem2 === void 0 || _setCurrentQuerySchem2.call(_setCurrentQuerySchem, function () {});
594
+ }, [gridKey, setCurrentQueryScheme]);
595
+
596
+ // 表头上拖拽列宽、列序后自动记忆(DESIGN.md §7.5)
597
+ useAutoColumnMemory({
598
+ enabled: autoRememberColumns,
599
+ gridKey: gridKey,
600
+ ready: ready,
601
+ api: ready ? apiRef.current : undefined,
602
+ originalColumnDefs: allColDefs,
603
+ currentScheme: currentColumnScheme,
604
+ saveColumnScheme: saveColumnScheme,
605
+ setCurrentColumnScheme: setCurrentColumnScheme
606
+ });
607
+
473
608
  /**
474
609
  * 【P0 + P1 优化】使用派生状态应用方案(单向数据流)
475
610
  *
@@ -514,13 +649,6 @@ function AgGridPlus(props) {
514
649
  });
515
650
  });
516
651
  });
517
- }).then(function () {
518
- if (cancelled || !apiRef.current) return;
519
-
520
- // 3. 应用过滤器(在列状态稳定后执行)
521
- if (currentColumnScheme !== null && currentColumnScheme !== void 0 && currentColumnScheme.filterModel) {
522
- apiRef.current.setFilterModel(currentColumnScheme.filterModel);
523
- }
524
652
  }).catch(function (error) {
525
653
  if (!cancelled) {
526
654
  console.error('[AgGridPlus] 应用方案失败:', error);
@@ -601,6 +729,7 @@ function AgGridPlus(props) {
601
729
  var onRequest = useCallback(function (queryFilter) {
602
730
  if (!requestRef.current) return;
603
731
  setLoading(true);
732
+ requestStartedRef.current = true;
604
733
  logger.debug('开始请求数据', {
605
734
  queryFilter: queryFilter,
606
735
  pagination: pagination
@@ -656,7 +785,7 @@ function AgGridPlus(props) {
656
785
  // 场景:用户执行操作(如审核)后刷新列表,选中行的数据已变化
657
786
  // 需要从新数据中找到对应的行,同步更新业务层的选中状态
658
787
  // 支持两种回调方式:onSelectedRowsChange 和 onSelectionChanged
659
- if (apiRef.current) {
788
+ if (apiRef.current && !crossPageRef.current) {
660
789
  // 使用 requestAnimationFrame 确保 AG-Grid 数据更新完成
661
790
  requestAnimationFrame(function () {
662
791
  if (!apiRef.current) return;
@@ -768,6 +897,16 @@ function AgGridPlus(props) {
768
897
  stableSortColumn: stableSortColumn
769
898
  };
770
899
  if (ready && formInitialized && requestRef.current) {
900
+ // 外部 params 变化意味着换了一批数据,停在原页码会落到别人的第 N 页甚至空页。
901
+ // 先回第 1 页,由页码变化再触发请求,避免先带着旧页码发一次。
902
+ if (changedDeps.includes('stableGridParams') && pagination.current !== 1) {
903
+ setPagination(function (prev) {
904
+ return _objectSpread(_objectSpread({}, prev), {}, {
905
+ current: 1
906
+ });
907
+ });
908
+ return;
909
+ }
771
910
  logger.debug('useEffect 触发数据请求', {
772
911
  ready: ready,
773
912
  formInitialized: formInitialized,
@@ -812,10 +951,54 @@ function AgGridPlus(props) {
812
951
  }
813
952
  }, [onRequest, stableQueryFilter]);
814
953
 
954
+ // 查询区、高级查询的回调可能是旧渲染里捕获的闭包(实测在第 2 页点「重置」时拿到的是第 1 页),
955
+ // 所以发请求、判断页码一律走 ref,永远读最新一次渲染。
956
+ var onRequestRef = useRef(onRequest);
957
+ onRequestRef.current = onRequest;
958
+
959
+ /**
960
+ * 提交一组查询条件:非第 1 页时只回第 1 页,请求由页码变化触发(此处再发会带着旧页码多发一次);
961
+ * 已在第 1 页则直接发。
962
+ */
963
+ // 条件变了由「条件变化」effect 请求一次,这里不能再发;只有条件没变(重新取数)才直接发,见 needsDirectRequest。
964
+ var appliedFilterRef = useRef(stableQueryFilter);
965
+ appliedFilterRef.current = stableQueryFilter;
966
+ var submitQuery = useCallback(function (filter) {
967
+ var previous = appliedFilterRef.current;
968
+ setQueryFilter(filter);
969
+ if (paginationRef.current.current !== 1) {
970
+ setPagination(function (prev) {
971
+ return _objectSpread(_objectSpread({}, prev), {}, {
972
+ current: 1
973
+ });
974
+ });
975
+ return;
976
+ }
977
+ if (needsDirectRequest(previous, filter, 1)) onRequestRef.current(filter);
978
+ }, []);
979
+ var goToPage = useCallback(function (page) {
980
+ var _paginationRef$curren = paginationRef.current,
981
+ pageSize = _paginationRef$curren.pageSize,
982
+ total = _paginationRef$curren.total;
983
+ var target = clampPage(page, total, pageSize);
984
+ setPagination(function (prev) {
985
+ return prev.current === target ? prev : _objectSpread(_objectSpread({}, prev), {}, {
986
+ current: target
987
+ });
988
+ });
989
+ }, []);
990
+ var resetPage = useCallback(function () {
991
+ return goToPage(1);
992
+ }, [goToPage]);
993
+ var getPagination = useCallback(function () {
994
+ return _objectSpread({}, paginationRef.current);
995
+ }, []);
996
+
815
997
  // 空态四分:加载失败 / 无权限 / 筛选无结果 / 无数据,各说各的,失败那支还给出「重试」。
816
998
  // 以前四种情况共用一句「没有找到数据,试试调整筛选条件吧!」,接口挂了也这么说,
817
999
  // 用户按提示去调筛选,越调越没有。@author nokecy
818
1000
  var noRowsOverlayParams = useMemo(function () {
1001
+ var _loadError$getRemoteS;
819
1002
  return {
820
1003
  branch: resolveEmptyBranch({
821
1004
  hasError: !!loadError,
@@ -827,7 +1010,8 @@ function AgGridPlus(props) {
827
1010
  accessible: accessible,
828
1011
  filtered: filtered,
829
1012
  override: overlayNoRowsTemplateText,
830
- texts: emptyState
1013
+ texts: emptyState,
1014
+ reason: loadError === null || loadError === void 0 || (_loadError$getRemoteS = loadError.getRemoteServiceError()) === null || _loadError$getRemoteS === void 0 ? void 0 : _loadError$getRemoteS.message
831
1015
  }),
832
1016
  onRetry: onRefresh
833
1017
  };
@@ -836,11 +1020,16 @@ function AgGridPlus(props) {
836
1020
  var noRowsOverlay = useMemo(function () {
837
1021
  return resolveNoRowsOverlay(NoRowsOverlay, noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams);
838
1022
  }, [noRowsOverlayParams, rest.noRowsOverlayComponent, rest.noRowsOverlayComponentParams]);
839
- useEffect(function () {
840
- gridRef.current = {
841
- onRefresh: onRefresh
1023
+
1024
+ // 渲染期就位,保证首次提交时 useImperativeHandle 已能拿到实例(原先放在 effect 里,首个提交拿到 undefined)
1025
+ gridRef.current = useMemo(function () {
1026
+ return {
1027
+ onRefresh: onRefresh,
1028
+ goToPage: goToPage,
1029
+ resetPage: resetPage,
1030
+ getPagination: getPagination
842
1031
  };
843
- }, [onRefresh]);
1032
+ }, [onRefresh, goToPage, resetPage, getPagination]);
844
1033
  var onRowChanged = useCallback(function (e) {
845
1034
  if (props.onSelectionChanged) {
846
1035
  props.onSelectionChanged(e);
@@ -860,7 +1049,37 @@ function AgGridPlus(props) {
860
1049
  onErrorRef.current = props.onError;
861
1050
  requestRef.current = request;
862
1051
  }, [onSelectedRowsChange, props.onRowSelected, props.onError, request]);
1052
+
1053
+ // 跨页模式下对外通知:行集合是所有页的并集,另给「不在当前页的数量」和清除入口
1054
+ var emitCrossPage = useCallback(function () {
1055
+ var _onSelectedRowsChange, _onCrossPageChangeRef, _apiRef$current$getSe, _apiRef$current4;
1056
+ var rows = crossPage.rows();
1057
+ (_onSelectedRowsChange = onSelectedRowsChangeRef.current) === null || _onSelectedRowsChange === void 0 || _onSelectedRowsChange.call(onSelectedRowsChangeRef, rows);
1058
+ (_onCrossPageChangeRef = onCrossPageChangeRef.current) === null || _onCrossPageChangeRef === void 0 || _onCrossPageChangeRef.call(onCrossPageChangeRef, {
1059
+ rows: rows,
1060
+ count: rows.length,
1061
+ outsideCurrentPage: Math.max(0, rows.length - ((_apiRef$current$getSe = (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 ? void 0 : _apiRef$current4.getSelectedNodes().length) !== null && _apiRef$current$getSe !== void 0 ? _apiRef$current$getSe : 0)),
1062
+ clear: function clear() {
1063
+ var _apiRef$current5;
1064
+ crossPage.clear();
1065
+ (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.deselectAll();
1066
+ emitCrossPageRef.current();
1067
+ }
1068
+ });
1069
+ }, [crossPage]);
1070
+ var emitCrossPageRef = useRef(emitCrossPage);
1071
+ emitCrossPageRef.current = emitCrossPage;
863
1072
  var onRowSelected = useCallback(function (e) {
1073
+ if (crossPageRef.current) {
1074
+ var _onRowSelectedCallbac;
1075
+ // 换页时 AG Grid 因数据替换触发的取消勾选不是用户操作,不能改写记录
1076
+ if (!crossPage.isRestoring() && e.source !== 'rowDataChanged') {
1077
+ crossPage.track(e.node);
1078
+ emitCrossPageRef.current();
1079
+ }
1080
+ (_onRowSelectedCallbac = onRowSelectedCallbackRef.current) === null || _onRowSelectedCallbac === void 0 || _onRowSelectedCallbac.call(onRowSelectedCallbackRef, e);
1081
+ return;
1082
+ }
864
1083
  // 处理选中行数据回调
865
1084
  if (onSelectedRowsChangeRef.current && apiRef.current) {
866
1085
  // 获取所有选中的行
@@ -905,18 +1124,18 @@ function AgGridPlus(props) {
905
1124
  });
906
1125
  }
907
1126
  if (!allColDefs || displayedData.length === 0) {
908
- var _apiRef$current4;
909
- (_apiRef$current4 = apiRef.current) === null || _apiRef$current4 === void 0 || _apiRef$current4.setGridOption('pinnedBottomRowData', undefined);
1127
+ var _apiRef$current6;
1128
+ (_apiRef$current6 = apiRef.current) === null || _apiRef$current6 === void 0 || _apiRef$current6.setGridOption('pinnedBottomRowData', undefined);
910
1129
  return;
911
1130
  }
912
1131
  var calcColFields = getCalculationColumns(allColDefs);
913
1132
  if (calcColFields.length > 0) {
914
- var _apiRef$current5;
1133
+ var _apiRef$current7;
915
1134
  var calculatedValues = computeAggregationRow(calcColFields, displayedData);
916
- (_apiRef$current5 = apiRef.current) === null || _apiRef$current5 === void 0 || _apiRef$current5.setGridOption('pinnedBottomRowData', calculatedValues);
1135
+ (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 || _apiRef$current7.setGridOption('pinnedBottomRowData', calculatedValues);
917
1136
  } else {
918
- var _apiRef$current6;
919
- (_apiRef$current6 = apiRef.current) === null || _apiRef$current6 === void 0 || _apiRef$current6.setGridOption('pinnedBottomRowData', undefined);
1137
+ var _apiRef$current8;
1138
+ (_apiRef$current8 = apiRef.current) === null || _apiRef$current8 === void 0 || _apiRef$current8.setGridOption('pinnedBottomRowData', undefined);
920
1139
  }
921
1140
  }, [allColDefs, props.pinnedBottomRowData]);
922
1141
  var onFilterChanged = function onFilterChanged(event) {
@@ -1026,13 +1245,31 @@ function AgGridPlus(props) {
1026
1245
  if (props.treeData && !useNativeTreeFilter) {
1027
1246
  return flatten(toTree(rowData, treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id", treeParentName !== null && treeParentName !== void 0 ? treeParentName : "parentId"), treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id");
1028
1247
  }
1029
- return rowData;
1030
- }, [rowData, props.treeData, treeKeyName, treeParentName, useNativeTreeFilter]);
1248
+ return localPaging ? sliceRowsByPage(rowData, pageCurrent, pagination.pageSize) : rowData;
1249
+ }, [rowData, props.treeData, treeKeyName, treeParentName, useNativeTreeFilter, localPaging, pageCurrent, pagination.pageSize]);
1250
+
1251
+ // 跨页勾选:新一页数据进入网格后,把记录里命中的行重新勾上。
1252
+ // 子组件(AgGridReact)的 effect 先于本 effect 执行,此时新行已在网格里;再补一帧兜底慢一拍的情况。
1253
+ useEffect(function () {
1254
+ if (!crossPageRef.current || !apiRef.current) return;
1255
+ var restore = function restore() {
1256
+ if (apiRef.current && !apiRef.current.isDestroyed() && crossPage.restore(apiRef.current)) emitCrossPageRef.current();
1257
+ };
1258
+ restore();
1259
+ var raf = requestAnimationFrame(restore);
1260
+ return function () {
1261
+ return cancelAnimationFrame(raf);
1262
+ };
1263
+ }, [rowDataMemo, crossPage]);
1264
+
1265
+ // 加载态:首次请求发出前也算加载中;表里没有行时用骨架,有行时只给顶部加载条、不盖住数据
1266
+ var busy = loading || firstLoadPending;
1267
+ var showSkeleton = busy && rowData.length === 0;
1031
1268
  var actionDom = toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter, allColDefsRef.current), queryFilter, {
1032
- current: pagination.current,
1033
- skipCount: pagination.current == 1 ? 0 : (pagination.current - 1) * pagination.pageSize,
1269
+ current: pageCurrent,
1270
+ skipCount: pageCurrent == 1 ? 0 : (pageCurrent - 1) * pagination.pageSize,
1034
1271
  maxResultCount: pagination.pageSize,
1035
- page: pagination.current,
1272
+ page: pageCurrent,
1036
1273
  pageSize: pagination.pageSize
1037
1274
  });
1038
1275
  var autoGroupColumnDef = useMemo(function () {
@@ -1071,6 +1308,23 @@ function AgGridPlus(props) {
1071
1308
  _iterator.f();
1072
1309
  }
1073
1310
  Object.assign(gridPassthroughProps, selectionOptions.eventHandlers);
1311
+ // 普通对象的 theme 已叠加进 gridTheme,不能再原样透传把它整体盖掉
1312
+ if (pageThemeParams) delete gridPassthroughProps.theme;
1313
+
1314
+ // 列表键盘模型(§7.9):Alt+A、Alt+Shift+↑↓、Ctrl/⌘+←→、Esc。捕获阶段处理,命中后不再交给 AG Grid
1315
+ var listKeyHandler = useMemo(function () {
1316
+ return createListKeyHandler({
1317
+ getApi: function getApi() {
1318
+ return apiRef.current;
1319
+ },
1320
+ onPage: props.hidePagination ? undefined : function (delta) {
1321
+ return goToPage(paginationRef.current.current + delta);
1322
+ }
1323
+ });
1324
+ }, [goToPage, props.hidePagination]);
1325
+ var onTableKeyDownCapture = useCallback(function (e) {
1326
+ if (listKeyHandler(e.nativeEvent)) e.stopPropagation();
1327
+ }, [listKeyHandler]);
1074
1328
 
1075
1329
  // 传给 AG-Grid 的列定义:qc-ui 专属列属性收进 colDef.context,内部通过 getQcColDefProp 读取
1076
1330
  var agColumnDefs = useMemo(function () {
@@ -1083,7 +1337,8 @@ function AgGridPlus(props) {
1083
1337
  return {
1084
1338
  queryFormItems: queryFormItems,
1085
1339
  currentQueryOrder: currentQueryScheme ? extractItemsOrder(currentQueryScheme) : queryItemsOrder,
1086
- updateQueryOrder: setQueryItemsOrder
1340
+ updateQueryOrder: setQueryItemsOrder,
1341
+ getQueryValues: getQueryValues
1087
1342
  };
1088
1343
  }, [queryFormItems, currentQueryScheme, queryItemsOrder]);
1089
1344
 
@@ -1125,7 +1380,10 @@ function AgGridPlus(props) {
1125
1380
  isUsingGlobalFallback: isUsingGlobalFallback,
1126
1381
  isUsingGlobalQueryFallback: isUsingGlobalQueryFallback,
1127
1382
  // ========== 实体扩展字段配置 @author nokecy ==========
1128
- hostEntityExtensions: hostEntityExtensions
1383
+ hostEntityExtensions: hostEntityExtensions,
1384
+ // ========== 密度:列设置里的密度入口读取 @author nokecy ==========
1385
+ density: density,
1386
+ onDensityChange: onDensityChange
1129
1387
  };
1130
1388
  }, [extensibleColumns, gridPlusColumnState,
1131
1389
  // ref.current 作依赖无效(变更不触发重渲染);依赖数据源 allColDefs,initialColumnDefs 随其首次计算填充 @author nokecy
@@ -1137,13 +1395,13 @@ function AgGridPlus(props) {
1137
1395
  // 全局方案回退状态依赖 @author nokecy
1138
1396
  isUsingGlobalFallback, isUsingGlobalQueryFallback,
1139
1397
  // 实体扩展字段配置依赖 @author nokecy
1140
- hostEntityExtensions]);
1398
+ hostEntityExtensions, density, onDensityChange]);
1141
1399
  return /*#__PURE__*/_jsx(GridPlusContext.Provider, {
1142
1400
  value: gridPlusContextValue,
1143
1401
  children: /*#__PURE__*/_jsx(QueryFormContext.Provider, {
1144
1402
  value: queryFormContextValue,
1145
1403
  children: /*#__PURE__*/_jsx(Spin, {
1146
- spinning: loading,
1404
+ spinning: false,
1147
1405
  classNames: {
1148
1406
  root: "grid-spin"
1149
1407
  },
@@ -1163,34 +1421,23 @@ function AgGridPlus(props) {
1163
1421
  defaultExpand: defaultSearchExpand,
1164
1422
  gridApi: apiRef.current,
1165
1423
  onValuesChange: onQueryValuesChange,
1424
+ scheme: currentQueryScheme ? {
1425
+ id: currentQueryScheme.id,
1426
+ name: currentQueryScheme.name,
1427
+ values: (_currentQueryScheme$q = currentQueryScheme.queryConfig) === null || _currentQueryScheme$q === void 0 ? void 0 : _currentQueryScheme$q.defaultValues
1428
+ } : undefined,
1429
+ apiRef: queryFormApiRef,
1430
+ onResetScheme: resetQueryScheme,
1166
1431
  onQuery: function onQuery(formValues) {
1167
1432
  // 优先使用高级搜索:如果存在高级搜索条件,忽略简单查询
1168
- if (advancedQueryRules.children.length > 0) {
1169
- var filter = {
1433
+ if (advancedRulesRef.current.children.length > 0) {
1434
+ submitQuery({
1170
1435
  __advancedMode__: true,
1171
- __rules__: advancedQueryRules
1172
- };
1173
- setQueryFilter(filter);
1174
- if (pagination.current !== 1) {
1175
- setPagination(function (prev) {
1176
- return _objectSpread(_objectSpread({}, prev), {}, {
1177
- current: 1
1178
- });
1179
- });
1180
- }
1181
- onRequest && onRequest(filter);
1182
- return;
1183
- }
1184
- setQueryFilter(_objectSpread({}, formValues));
1185
- // 始终使用传入的 formValues 发起请求
1186
- if (pagination.current !== 1) {
1187
- setPagination(function (prev) {
1188
- return _objectSpread(_objectSpread({}, prev), {}, {
1189
- current: 1
1190
- });
1436
+ __rules__: advancedRulesRef.current
1191
1437
  });
1438
+ return;
1192
1439
  }
1193
- onRequest && onRequest(formValues);
1440
+ submitQuery(_objectSpread({}, formValues));
1194
1441
  },
1195
1442
  onInit: function onInit(defaultValues) {
1196
1443
  // 【修复】先设置 queryFilter,再标记表单已初始化
@@ -1218,18 +1465,32 @@ function AgGridPlus(props) {
1218
1465
  },
1219
1466
  children: [/*#__PURE__*/_jsxs("div", {
1220
1467
  className: "qc-table-container",
1221
- style: _objectSpread({
1468
+ "aria-busy": busy || undefined,
1469
+ onKeyDownCapture: onTableKeyDownCapture,
1470
+ style: _objectSpread(_objectSpread({
1222
1471
  display: "flex",
1223
1472
  flexDirection: "column",
1224
1473
  height: "100%"
1225
- }, style),
1226
- children: [hideTool ? null : /*#__PURE__*/_jsx(ToolBar, {
1474
+ }, rowColors ? {
1475
+ '--qc-row-selected-hover-bg': rowColors.selectedHover
1476
+ } : {}), style),
1477
+ children: [busy && !showSkeleton ? /*#__PURE__*/_jsx("div", {
1478
+ className: "qc-grid-busy-bar",
1479
+ role: "progressbar",
1480
+ "aria-label": "\u6B63\u5728\u52A0\u8F7D",
1481
+ children: /*#__PURE__*/_jsx("span", {
1482
+ style: {
1483
+ background: token.colorPrimary
1484
+ }
1485
+ })
1486
+ }) : null, hideTool ? null : /*#__PURE__*/_jsx(ToolBar, {
1227
1487
  title: headerTitle,
1228
1488
  actions: actionDom,
1229
1489
  settings: [/*#__PURE__*/_jsx(SettingItem, {
1490
+ title: "\u5237\u65B0",
1230
1491
  onClick: onRefresh,
1231
1492
  icon: /*#__PURE__*/_jsx(RedoOutlined, {})
1232
- }), /*#__PURE__*/_jsx(Setting, {
1493
+ }, "refresh"), /*#__PURE__*/_jsx(Setting, {
1233
1494
  gridKey: gridKey,
1234
1495
  gridApi: apiRef.current,
1235
1496
  onSaveColumnState: onColumnStateChanged
@@ -1257,8 +1518,7 @@ function AgGridPlus(props) {
1257
1518
  size: "small",
1258
1519
  onClick: function onClick() {
1259
1520
  setAdvancedQueryRules(createEmptyRuleGroup());
1260
- setQueryFilter({});
1261
- onRequest && onRequest({});
1521
+ submitQuery({});
1262
1522
  setAdvancedPopoverOpen(false);
1263
1523
  },
1264
1524
  style: {
@@ -1269,19 +1529,10 @@ function AgGridPlus(props) {
1269
1529
  size: "small",
1270
1530
  type: "primary",
1271
1531
  onClick: function onClick() {
1272
- var filter = {
1532
+ submitQuery({
1273
1533
  __advancedMode__: true,
1274
1534
  __rules__: advancedQueryRules
1275
- };
1276
- setQueryFilter(filter);
1277
- if (pagination.current !== 1) {
1278
- setPagination(function (prev) {
1279
- return _objectSpread(_objectSpread({}, prev), {}, {
1280
- current: 1
1281
- });
1282
- });
1283
- }
1284
- onRequest && onRequest(filter);
1535
+ });
1285
1536
  setAdvancedPopoverOpen(false);
1286
1537
  },
1287
1538
  children: "\u67E5\u8BE2"
@@ -1302,20 +1553,20 @@ function AgGridPlus(props) {
1302
1553
  count: advancedQueryRules.children.length,
1303
1554
  size: "small",
1304
1555
  offset: [-2, 2],
1305
- children: /*#__PURE__*/_jsx("div", {
1306
- style: {
1307
- margin: "0 4px",
1308
- color: advancedQueryRules.children.length > 0 ? token.colorPrimary : token.colorText,
1309
- fontSize: 16,
1310
- cursor: "pointer"
1311
- },
1312
- children: /*#__PURE__*/_jsx(FilterOutlined, {})
1556
+ children: /*#__PURE__*/_jsx(SettingItem, {
1557
+ title: "\u9AD8\u7EA7\u641C\u7D22",
1558
+ icon: /*#__PURE__*/_jsx(FilterOutlined, {}),
1559
+ active: advancedQueryRules.children.length > 0,
1560
+ "aria-haspopup": "dialog"
1313
1561
  })
1314
1562
  })
1315
1563
  }, "advanced-search-setting") : null].filter(Boolean)
1316
- }), /*#__PURE__*/_jsx(AgGridReact, _objectSpread(_objectSpread({
1564
+ }), /*#__PURE__*/_jsx(AgGridReact, _objectSpread(_objectSpread(_objectSpread({
1317
1565
  theme: gridTheme
1318
- }, gridPassthroughProps), {}, {
1566
+ }, densitySpec ? {
1567
+ rowHeight: densitySpec.rowHeight,
1568
+ headerHeight: densitySpec.headerHeight
1569
+ } : {}), gridPassthroughProps), {}, {
1319
1570
  localeText: localeText,
1320
1571
  gridOptions: {
1321
1572
  enableCellTextSelection: true,
@@ -1324,10 +1575,14 @@ function AgGridPlus(props) {
1324
1575
  },
1325
1576
  noRowsOverlayComponent: noRowsOverlay.component,
1326
1577
  noRowsOverlayComponentParams: noRowsOverlay.params
1327
- // 加载中不显示空态:外层 Spin 已经在转,再叠一句「暂无数据」会让用户
1328
- // 以为真的没数据(冒烟截图里这两者确实同时出现过)。@author nokecy
1578
+ // 加载中不显示空态:再叠一句「暂无数据」会让用户以为真的没数据。
1579
+ // 首次请求发出前(firstLoadPending)同样不显示。@author nokecy
1580
+ ,
1581
+ suppressNoRowsOverlay: busy
1582
+ // 表里没有行时用骨架占住表体,表头保持可见
1329
1583
  ,
1330
- suppressNoRowsOverlay: loading,
1584
+ loading: showSkeleton,
1585
+ loadingOverlayComponent: SkeletonOverlay,
1331
1586
  cellSelection: (_rest$cellSelection = rest.cellSelection) !== null && _rest$cellSelection !== void 0 ? _rest$cellSelection : selectionOptions.cellSelection,
1332
1587
  autoGroupColumnDef: selectionOptions.autoGroupColumnDef
1333
1588
  // 【兼容】原生树形数据配置:只有 useNativeTreeFilter=true 时才启用
@@ -1358,8 +1613,8 @@ function AgGridPlus(props) {
1358
1613
  },
1359
1614
  onDragStopped: function onDragStopped(e) {
1360
1615
  if (apiRef.current) {
1361
- var _apiRef$current7;
1362
- var _columnState = (_apiRef$current7 = apiRef.current) === null || _apiRef$current7 === void 0 ? void 0 : _apiRef$current7.getColumnState();
1616
+ var _apiRef$current9;
1617
+ var _columnState = (_apiRef$current9 = apiRef.current) === null || _apiRef$current9 === void 0 ? void 0 : _apiRef$current9.getColumnState();
1363
1618
  setColumnState(_columnState);
1364
1619
 
1365
1620
  // onColumnStateChanged && onColumnStateChanged(columnState)
@@ -1382,31 +1637,43 @@ function AgGridPlus(props) {
1382
1637
  style: {
1383
1638
  marginTop: 12,
1384
1639
  display: "flex",
1385
- justifyContent: "flex-end"
1640
+ justifyContent: "space-between",
1641
+ alignItems: "center"
1386
1642
  },
1387
- children: !props.hidePagination && /*#__PURE__*/_jsx(Pagination, {
1388
- pageSize: pagination.pageSize,
1389
- current: pagination.current,
1390
- total: pagination.total,
1391
- onChange: function onChange(page, pageSize) {
1392
- setPagination(_objectSpread(_objectSpread({}, pagination), {}, {
1393
- pageSize: pageSize,
1394
- current: page
1395
- }));
1396
- },
1397
- onShowSizeChange: function onShowSizeChange(current, size) {
1398
- setPagination(_objectSpread(_objectSpread({}, pagination), {}, {
1399
- pageSize: size,
1400
- current: current
1401
- }));
1402
- },
1403
- size: "small",
1404
- showTotal: function showTotal(total, range) {
1405
- return "\u7B2C ".concat(range[0], "-").concat(range[1], " \u6761/\u603B\u5171 ").concat(total, " \u6761");
1406
- },
1407
- pageSizeOptions: props.pageSizeOptions || DEFAULT_PAGE_SIZE_OPTIONS,
1408
- hideOnSinglePage: false,
1409
- showQuickJumper: false
1643
+ children: !props.hidePagination && /*#__PURE__*/_jsxs(_Fragment, {
1644
+ children: [/*#__PURE__*/_jsx("span", {
1645
+ className: "qc-grid-total",
1646
+ style: {
1647
+ color: token.colorTextSecondary,
1648
+ fontSize: token.fontSizeSM
1649
+ },
1650
+ children: formatPaginationTotal(pageTotal, pageCurrent, pagination.pageSize)
1651
+ }), /*#__PURE__*/_jsx(Pagination, {
1652
+ pageSize: pagination.pageSize,
1653
+ current: pageCurrent,
1654
+ total: pageTotal,
1655
+ onChange: function onChange(page, pageSize) {
1656
+ setPagination(function (prev) {
1657
+ return _objectSpread(_objectSpread({}, prev), {}, {
1658
+ pageSize: pageSize,
1659
+ current: page
1660
+ });
1661
+ });
1662
+ },
1663
+ onShowSizeChange: function onShowSizeChange(current, size) {
1664
+ setPagination(function (prev) {
1665
+ return _objectSpread(_objectSpread({}, prev), {}, {
1666
+ pageSize: size,
1667
+ current: current
1668
+ });
1669
+ });
1670
+ },
1671
+ size: "small",
1672
+ pageSizeOptions: props.pageSizeOptions || DEFAULT_PAGE_SIZE_OPTIONS,
1673
+ hideOnSinglePage: false,
1674
+ showSizeChanger: showSizeChanger,
1675
+ showQuickJumper: showQuickJumper !== null && showQuickJumper !== void 0 ? showQuickJumper : false
1676
+ })]
1410
1677
  })
1411
1678
  })]
1412
1679
  })]