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

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