@nokecy/qc-ui 1.0.93 → 1.0.94

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 (75) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +24 -18
  2. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +6 -0
  3. package/dist/cjs/ag-grid-plus/index.d.ts +2 -4
  4. package/dist/cjs/ag-grid-plus/index.js +18 -79
  5. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +134 -117
  6. package/dist/cjs/ag-grid-plus/querySchemes/types.d.ts +2 -0
  7. package/dist/cjs/ag-grid-plus/schemes/index.d.ts +7 -0
  8. package/dist/cjs/ag-grid-plus/schemes/index.js +40 -0
  9. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.d.ts +10 -0
  10. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.js +34 -0
  11. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +17 -2
  12. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +27 -7
  13. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +122 -0
  14. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +476 -0
  15. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +139 -0
  16. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +746 -0
  17. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +29 -0
  18. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.js +45 -0
  19. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +154 -270
  20. package/dist/cjs/ag-grid-plus/storage/index.d.ts +10 -5
  21. package/dist/cjs/ag-grid-plus/storage/index.js +0 -44
  22. package/dist/cjs/array-table/index.js +5 -3
  23. package/dist/cjs/draggableModal/index.d.ts +1 -1
  24. package/dist/cjs/draggableModal/index.js +23 -93
  25. package/dist/cjs/draggableModal/style.less +0 -73
  26. package/dist/cjs/index.d.ts +2 -3
  27. package/dist/cjs/index.js +8 -80
  28. package/dist/esm/ag-grid-plus/ag-gridPlus.js +24 -18
  29. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +6 -0
  30. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts +1 -1
  31. package/dist/esm/ag-grid-plus/index.d.ts +2 -4
  32. package/dist/esm/ag-grid-plus/index.js +5 -3
  33. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +135 -118
  34. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts +2 -0
  35. package/dist/esm/ag-grid-plus/schemes/index.d.ts +7 -0
  36. package/dist/esm/ag-grid-plus/schemes/index.js +5 -0
  37. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.d.ts +10 -0
  38. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.js +28 -0
  39. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +17 -2
  40. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +29 -7
  41. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +122 -0
  42. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +471 -0
  43. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +139 -0
  44. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +746 -0
  45. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +29 -0
  46. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.js +40 -0
  47. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +156 -272
  48. package/dist/esm/ag-grid-plus/storage/index.d.ts +10 -5
  49. package/dist/esm/ag-grid-plus/storage/index.js +13 -5
  50. package/dist/esm/array-table/index.js +6 -2
  51. package/dist/esm/draggableModal/index.d.ts +1 -1
  52. package/dist/esm/draggableModal/index.js +24 -93
  53. package/dist/esm/draggableModal/style.less +0 -73
  54. package/dist/esm/index.d.ts +2 -3
  55. package/dist/esm/index.js +10 -7
  56. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  57. package/dist/umd/qc-ui.min.css +1 -1
  58. package/dist/umd/qc-ui.min.js +1 -1
  59. package/package.json +1 -1
  60. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +0 -76
  61. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.js +0 -276
  62. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +0 -141
  63. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +0 -902
  64. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.d.ts +0 -106
  65. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.js +0 -364
  66. package/dist/cjs/ag-grid-plus/storage/types.d.ts +0 -150
  67. package/dist/cjs/ag-grid-plus/storage/types.js +0 -5
  68. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +0 -76
  69. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.js +0 -273
  70. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +0 -141
  71. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +0 -896
  72. package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts +0 -106
  73. package/dist/esm/ag-grid-plus/storage/globalSyncManager.js +0 -350
  74. package/dist/esm/ag-grid-plus/storage/types.d.ts +0 -150
  75. package/dist/esm/ag-grid-plus/storage/types.js +0 -1
@@ -18,6 +18,7 @@ var _antd = require("antd");
18
18
  var _setting = _interopRequireDefault(require("../ag-grid-plus/setting"));
19
19
  var _useGridPlusColumnState = require("../ag-grid-plus/hooks/useGridPlusColumnState");
20
20
  var _useColumnSchemes = require("../ag-grid-plus/schemes/hooks/useColumnSchemes");
21
+ var _theme = require("../ag-grid-plus/theme");
21
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -32,7 +33,7 @@ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructur
32
33
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
34
  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; }
34
35
  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; } }
35
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
36
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // 导入 AG-Grid v33 主题
36
37
  //@ts-ignore
37
38
  var ArrayTable = (0, _react2.observer)(function (props) {
38
39
  var height = props.height;
@@ -174,6 +175,7 @@ var ArrayTable = (0, _react2.observer)(function (props) {
174
175
  minHeight: 0
175
176
  }
176
177
  }, /*#__PURE__*/_react.default.createElement(_agGridReact.AgGridReact, {
178
+ theme: _theme.agGridTheme,
177
179
  onGridReady: function onGridReady(params) {
178
180
  params.api.hidePopupMenu();
179
181
  apiRef.current = params.api;
@@ -188,7 +190,8 @@ var ArrayTable = (0, _react2.observer)(function (props) {
188
190
  suppressCopyRowsToClipboard: true,
189
191
  suppressCopySingleCellRanges: true,
190
192
  enterNavigatesVertically: true,
191
- enterNavigatesVerticallyAfterEdit: true
193
+ enterNavigatesVerticallyAfterEdit: true,
194
+ columnHoverHighlight: true
192
195
  },
193
196
  onCellKeyDown: handleCellKeyDown,
194
197
  onCellClicked: function onCellClicked(event) {
@@ -215,7 +218,6 @@ var ArrayTable = (0, _react2.observer)(function (props) {
215
218
  suppressClipboardPaste: true,
216
219
  preventDefaultOnContextMenu: true,
217
220
  enableCellTextSelection: true,
218
- className: "ag-theme-alpine",
219
221
  defaultColDef: {
220
222
  resizable: true,
221
223
  headerComponentParams: {
@@ -2,7 +2,7 @@ import { ModalProps } from 'antd/lib/modal';
2
2
  import React from 'react';
3
3
  import "./style.less";
4
4
  /**
5
- * 可拖拽Modal - 支持拖拽、全屏切换和缩放
5
+ * 可拖拽Modal - 支持拖拽和调整大小
6
6
  * @param props
7
7
  * @returns
8
8
  */
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
- var _icons = require("@ant-design/icons");
9
8
  var _antd = require("antd");
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _reactDraggable = _interopRequireDefault(require("react-draggable"));
@@ -24,7 +23,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
24
23
  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; } }
25
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
25
  /**
27
- * 可拖拽Modal - 支持拖拽、全屏切换和缩放
26
+ * 可拖拽Modal - 支持拖拽和调整大小
28
27
  * @param props
29
28
  * @returns
30
29
  */
@@ -43,38 +42,30 @@ var DraggableModal = function DraggableModal(props) {
43
42
  bounds = _useState4[0],
44
43
  setBounds = _useState4[1];
45
44
  var draggleRef = (0, _react.useRef)(null);
45
+
46
+ // 调整大小相关状态
46
47
  var _useState5 = (0, _react.useState)(false),
47
48
  _useState6 = _slicedToArray(_useState5, 2),
48
- fullScreen = _useState6[0],
49
- setFullScreen = _useState6[1];
50
- var _useState7 = (0, _react.useState)('normal'),
49
+ isResizing = _useState6[0],
50
+ setIsResizing = _useState6[1];
51
+ var _useState7 = (0, _react.useState)(''),
51
52
  _useState8 = _slicedToArray(_useState7, 2),
52
- zoom = _useState8[0],
53
- setZoom = _useState8[1];
54
-
55
- // 调整大小相关状态
56
- var _useState9 = (0, _react.useState)(false),
57
- _useState10 = _slicedToArray(_useState9, 2),
58
- isResizing = _useState10[0],
59
- setIsResizing = _useState10[1];
60
- var _useState11 = (0, _react.useState)(''),
61
- _useState12 = _slicedToArray(_useState11, 2),
62
- resizeDirection = _useState12[0],
63
- setResizeDirection = _useState12[1];
64
- var _useState13 = (0, _react.useState)({
53
+ resizeDirection = _useState8[0],
54
+ setResizeDirection = _useState8[1];
55
+ var _useState9 = (0, _react.useState)({
65
56
  width: 0,
66
57
  height: 0
67
58
  }),
68
- _useState14 = _slicedToArray(_useState13, 2),
69
- modalSize = _useState14[0],
70
- setModalSize = _useState14[1];
71
- var _useState15 = (0, _react.useState)({
59
+ _useState10 = _slicedToArray(_useState9, 2),
60
+ modalSize = _useState10[0],
61
+ setModalSize = _useState10[1];
62
+ var _useState11 = (0, _react.useState)({
72
63
  x: 0,
73
64
  y: 0
74
65
  }),
75
- _useState16 = _slicedToArray(_useState15, 2),
76
- modalPosition = _useState16[0],
77
- setModalPosition = _useState16[1];
66
+ _useState12 = _slicedToArray(_useState11, 2),
67
+ modalPosition = _useState12[0],
68
+ setModalPosition = _useState12[1];
78
69
 
79
70
  // 解构 props,分离出 wrapClassName
80
71
  var propsWrapClassName = props.wrapClassName,
@@ -96,30 +87,12 @@ var DraggableModal = function DraggableModal(props) {
96
87
  bottom: clientHeight - (targetRect.bottom - uiData.y)
97
88
  });
98
89
  };
99
- var toggleFullScreen = function toggleFullScreen() {
100
- setFullScreen(!fullScreen);
101
- };
102
- var handleZoomIn = function handleZoomIn() {
103
- if (zoom === 'small') {
104
- setZoom('normal');
105
- } else if (zoom === 'normal') {
106
- setZoom('large');
107
- }
108
- };
109
- var handleZoomOut = function handleZoomOut() {
110
- if (zoom === 'large') {
111
- setZoom('normal');
112
- } else if (zoom === 'normal') {
113
- setZoom('small');
114
- }
115
- };
116
90
 
117
91
  // 拖动调整大小的处理函数
118
92
  var handleResizeMouseDown = function handleResizeMouseDown(e, direction) {
119
93
  var _draggleRef$current2;
120
94
  e.preventDefault();
121
95
  e.stopPropagation();
122
- if (fullScreen) return;
123
96
 
124
97
  // 查找.ant-modal,它在draggleRef的父级
125
98
  var modal = (_draggleRef$current2 = draggleRef.current) === null || _draggleRef$current2 === void 0 ? void 0 : _draggleRef$current2.closest('.ant-modal');
@@ -206,10 +179,8 @@ var DraggableModal = function DraggableModal(props) {
206
179
  };
207
180
 
208
181
  // 合并类名
209
- var zoomClass = !fullScreen && zoom !== 'normal' ? "modal-wrap-zoom-".concat(zoom) : '';
210
- var fullScreenClass = fullScreen ? 'modal-wrap-fullscreen' : '';
211
182
  var resizingClass = isResizing ? 'modal-wrap-resizing' : '';
212
- var mergedWrapClassName = [propsWrapClassName, fullScreenClass, zoomClass, resizingClass].filter(Boolean).join(' ');
183
+ var mergedWrapClassName = [propsWrapClassName, resizingClass].filter(Boolean).join(' ');
213
184
  return /*#__PURE__*/_react.default.createElement(_antd.Modal, _extends({
214
185
  maskClosable: false,
215
186
  width: width
@@ -218,63 +189,22 @@ var DraggableModal = function DraggableModal(props) {
218
189
  title: /*#__PURE__*/_react.default.createElement("div", {
219
190
  style: {
220
191
  width: '100%',
221
- cursor: fullScreen ? 'default' : 'move'
192
+ cursor: 'move'
222
193
  },
223
194
  onMouseOver: function onMouseOver() {
224
- if (!fullScreen && disabled) {
195
+ if (disabled) {
225
196
  setDisabled(false);
226
197
  }
227
198
  },
228
199
  onMouseOut: function onMouseOut() {
229
- if (!fullScreen) {
230
- setDisabled(true);
231
- }
200
+ setDisabled(true);
232
201
  },
233
202
  onFocus: function onFocus() {},
234
203
  onBlur: function onBlur() {}
235
- }, props.title, !fullScreen && zoom !== 'large' && /*#__PURE__*/_react.default.createElement("button", {
236
- type: "button",
237
- className: "ant-modal-close",
238
- style: {
239
- right: 106
240
- },
241
- onClick: function onClick(e) {
242
- e.stopPropagation();
243
- handleZoomIn();
244
- },
245
- title: "\u653E\u5927"
246
- }, /*#__PURE__*/_react.default.createElement("span", {
247
- className: "ant-modal-close-x"
248
- }, /*#__PURE__*/_react.default.createElement(_icons.ZoomInOutlined, null))), !fullScreen && zoom !== 'small' && /*#__PURE__*/_react.default.createElement("button", {
249
- type: "button",
250
- className: "ant-modal-close",
251
- style: {
252
- right: 74
253
- },
254
- onClick: function onClick(e) {
255
- e.stopPropagation();
256
- handleZoomOut();
257
- },
258
- title: "\u7F29\u5C0F"
259
- }, /*#__PURE__*/_react.default.createElement("span", {
260
- className: "ant-modal-close-x"
261
- }, /*#__PURE__*/_react.default.createElement(_icons.ZoomOutOutlined, null))), /*#__PURE__*/_react.default.createElement("button", {
262
- type: "button",
263
- className: "ant-modal-close",
264
- style: {
265
- right: 42
266
- },
267
- onClick: function onClick(e) {
268
- e.stopPropagation();
269
- toggleFullScreen();
270
- },
271
- title: fullScreen ? '退出全屏' : '全屏'
272
- }, /*#__PURE__*/_react.default.createElement("span", {
273
- className: "ant-modal-close-x"
274
- }, fullScreen ? /*#__PURE__*/_react.default.createElement(_icons.ShrinkOutlined, null) : /*#__PURE__*/_react.default.createElement(_icons.ArrowsAltOutlined, null)))),
204
+ }, props.title),
275
205
  modalRender: function modalRender(modal) {
276
206
  return /*#__PURE__*/_react.default.createElement(_reactDraggable.default, {
277
- disabled: disabled || fullScreen,
207
+ disabled: disabled,
278
208
  bounds: bounds,
279
209
  nodeRef: draggleRef,
280
210
  onStart: function onStart(event, uiData) {
@@ -294,7 +224,7 @@ var DraggableModal = function DraggableModal(props) {
294
224
  height: '100%',
295
225
  width: '100%'
296
226
  }
297
- }, modal, !fullScreen && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
227
+ }, modal, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
298
228
  className: "resize-handle resize-handle-e",
299
229
  onMouseDown: function onMouseDown(e) {
300
230
  return handleResizeMouseDown(e, 'e');
@@ -1,77 +1,4 @@
1
1
  :global {
2
- .modal-wrap-fullscreen {
3
- .ant-modal {
4
- top: 0 !important;
5
- margin: 0 !important;
6
- width: 100vw !important;
7
- max-width: 100vw !important;
8
- height: 100vh !important;
9
- max-height: 100vh !important;
10
- padding: 0 !important;
11
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
12
- }
13
-
14
- .ant-modal-content {
15
- height: 100vh;
16
- border-radius: 0;
17
- display: flex;
18
- flex-direction: column;
19
- }
20
-
21
- .ant-modal-body {
22
- flex: 1;
23
- overflow-y: auto;
24
- padding: 24px;
25
- }
26
-
27
- .ant-modal-header {
28
- flex-shrink: 0;
29
- }
30
-
31
- .ant-modal-footer {
32
- flex-shrink: 0;
33
- }
34
- }
35
-
36
- .modal-wrap-zoom-large {
37
- .ant-modal {
38
- width: 90vw !important;
39
- max-width: 90vw !important;
40
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
41
- }
42
-
43
- .ant-modal-content {
44
- max-height: 85vh;
45
- transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
46
- }
47
-
48
- .ant-modal-body {
49
- max-height: calc(85vh - 110px);
50
- overflow-y: auto;
51
- transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
52
- }
53
- }
54
-
55
- .modal-wrap-zoom-small {
56
- .ant-modal {
57
- width: 50vw !important;
58
- max-width: 50vw !important;
59
- min-width: 400px !important;
60
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
61
- }
62
-
63
- .ant-modal-content {
64
- max-height: 50vh;
65
- transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
66
- }
67
-
68
- .ant-modal-body {
69
- max-height: calc(50vh - 110px);
70
- overflow-y: auto;
71
- transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
72
- }
73
- }
74
-
75
2
  .modal-wrap-resizing {
76
3
  .ant-modal {
77
4
  width: var(--modal-width) !important;
@@ -1,4 +1,4 @@
1
- import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlusColumnState, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
1
+ import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlusColumnState, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, useRemoteStorage, mergeRemoteStorageConfig, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH } from "./ag-grid-plus";
2
2
  import ArrayTable from "./array-table";
3
3
  import ArrayTableIndex from "./array-table-index";
4
4
  import { ColumnPresets } from "./array-table/columnHelper";
@@ -21,7 +21,7 @@ import { StandardFormDialog, withStandardForm, FieldCreators, createSelectField,
21
21
  import DeleteConfirm from "./deleteConfirm";
22
22
  import { RuleBuilder } from "./RuleBuilder";
23
23
  import { RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram } from "./components/RegexEditor";
24
- export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, ColumnPresets, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, useGridPlusColumnState, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm, RuleBuilder, RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager, };
24
+ export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, ColumnPresets, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, useGridPlusColumnState, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm, RuleBuilder, RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, useRemoteStorage, mergeRemoteStorageConfig, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, };
25
25
  export type * from "./generatedListPage";
26
26
  export type * from "./standardFormDialog";
27
27
  export type * from "./deleteConfirm";
@@ -30,5 +30,4 @@ export type * from "./fullScreenAlert";
30
30
  export type * from "./RuleBuilder";
31
31
  export type { ColumnConfig } from "./array-table/columnHelper";
32
32
  export type { ColumnScheme, SchemeManagerConfig, StorageAdapter, SchemeValidationResult, UseColumnSchemesReturn, SchemeSelectorProps, SchemeManagerProps, GridPlusContextValue, } from "./ag-grid-plus";
33
- export type { SyncConfig, SyncManagerEvents, SyncStatus, SchemeConflict, } from "./ag-grid-plus";
34
33
  export type { ParseResult as RegexParseResult, ValidationResult as RegexValidationResult, RegexError, ComplexityMetrics, ASTNode, AstRegExp, RegexTemplate, TestResult as RegexTestResult, CodeMirrorWrapperProps, RegexEditorProps, RegexFlags, MatchResult, RegexTesterProps, FlagsSelectorProps, MatchItemProps, RegexRailroadDiagramProps, } from "./components/RegexEditor";
package/dist/cjs/index.js CHANGED
@@ -261,12 +261,6 @@ Object.defineProperty(exports, "defaultStorageAdapter", {
261
261
  return _agGridPlus.defaultStorageAdapter;
262
262
  }
263
263
  });
264
- Object.defineProperty(exports, "destroyGlobalSchemeSync", {
265
- enumerable: true,
266
- get: function get() {
267
- return _agGridPlus.destroyGlobalSchemeSync;
268
- }
269
- });
270
264
  Object.defineProperty(exports, "flattenTreeDeep", {
271
265
  enumerable: true,
272
266
  get: function get() {
@@ -279,58 +273,10 @@ Object.defineProperty(exports, "generateUniqueName", {
279
273
  return _agGridPlus.generateUniqueName;
280
274
  }
281
275
  });
282
- Object.defineProperty(exports, "getGlobalAdapterFactory", {
283
- enumerable: true,
284
- get: function get() {
285
- return _agGridPlus.getGlobalAdapterFactory;
286
- }
287
- });
288
- Object.defineProperty(exports, "getGlobalSyncManager", {
289
- enumerable: true,
290
- get: function get() {
291
- return _agGridPlus.getGlobalSyncManager;
292
- }
293
- });
294
- Object.defineProperty(exports, "getGlobalSyncStatus", {
295
- enumerable: true,
296
- get: function get() {
297
- return _agGridPlus.getGlobalSyncStatus;
298
- }
299
- });
300
- Object.defineProperty(exports, "getUnsyncedGrids", {
301
- enumerable: true,
302
- get: function get() {
303
- return _agGridPlus.getUnsyncedGrids;
304
- }
305
- });
306
- Object.defineProperty(exports, "hasUnsyncedData", {
307
- enumerable: true,
308
- get: function get() {
309
- return _agGridPlus.hasUnsyncedData;
310
- }
311
- });
312
- Object.defineProperty(exports, "initializeGlobalSchemeSync", {
313
- enumerable: true,
314
- get: function get() {
315
- return _agGridPlus.initializeGlobalSchemeSync;
316
- }
317
- });
318
- Object.defineProperty(exports, "isGlobalSyncInitialized", {
276
+ Object.defineProperty(exports, "mergeRemoteStorageConfig", {
319
277
  enumerable: true,
320
278
  get: function get() {
321
- return _agGridPlus.isGlobalSyncInitialized;
322
- }
323
- });
324
- Object.defineProperty(exports, "setToken", {
325
- enumerable: true,
326
- get: function get() {
327
- return _agGridPlus.setToken;
328
- }
329
- });
330
- Object.defineProperty(exports, "syncAllSchemes", {
331
- enumerable: true,
332
- get: function get() {
333
- return _agGridPlus.syncAllSchemes;
279
+ return _agGridPlus.mergeRemoteStorageConfig;
334
280
  }
335
281
  });
336
282
  Object.defineProperty(exports, "useColumnSchemes", {
@@ -339,30 +285,6 @@ Object.defineProperty(exports, "useColumnSchemes", {
339
285
  return _agGridPlus.useColumnSchemes;
340
286
  }
341
287
  });
342
- Object.defineProperty(exports, "useGlobalColumnAdapter", {
343
- enumerable: true,
344
- get: function get() {
345
- return _agGridPlus.useGlobalColumnAdapter;
346
- }
347
- });
348
- Object.defineProperty(exports, "useGlobalColumnSchemeManager", {
349
- enumerable: true,
350
- get: function get() {
351
- return _agGridPlus.useGlobalColumnSchemeManager;
352
- }
353
- });
354
- Object.defineProperty(exports, "useGlobalQueryAdapter", {
355
- enumerable: true,
356
- get: function get() {
357
- return _agGridPlus.useGlobalQueryAdapter;
358
- }
359
- });
360
- Object.defineProperty(exports, "useGlobalQuerySchemeManager", {
361
- enumerable: true,
362
- get: function get() {
363
- return _agGridPlus.useGlobalQuerySchemeManager;
364
- }
365
- });
366
288
  Object.defineProperty(exports, "useGridPlusColumnState", {
367
289
  enumerable: true,
368
290
  get: function get() {
@@ -375,6 +297,12 @@ Object.defineProperty(exports, "useRegexValidation", {
375
297
  return _RegexEditor.useRegexValidation;
376
298
  }
377
299
  });
300
+ Object.defineProperty(exports, "useRemoteStorage", {
301
+ enumerable: true,
302
+ get: function get() {
303
+ return _agGridPlus.useRemoteStorage;
304
+ }
305
+ });
378
306
  Object.defineProperty(exports, "useTemplateManager", {
379
307
  enumerable: true,
380
308
  get: function get() {
@@ -44,7 +44,6 @@ import { localeText } from "./locale";
44
44
  import { GridPlusContext } from "./context/gridContext";
45
45
  import { useQuerySchemes, useQueryOrderManager } from "./querySchemes";
46
46
  import { useColumnSchemes } from "./schemes";
47
- import { useGlobalColumnAdapter, useGlobalQueryAdapter, isGlobalSyncInitialized } from "./storage/globalSyncManager";
48
47
  import { createSafeHtmlTemplate } from "./utils/sanitize";
49
48
  import { GridPlusError, ErrorType, ErrorSeverity } from "./errors";
50
49
  import { logger } from "./utils/logger";
@@ -54,7 +53,7 @@ var getSort = function getSort(columnState) {
54
53
  return columnState ? "".concat(columnState.colId, " ").concat(columnState.sort) : "";
55
54
  };
56
55
  function AgGridPlus(props) {
57
- var _columnSchemeManager$2, _querySchemeManager$c;
56
+ var _columnSchemeManager$2, _querySchemeManager$c, _querySchemeManager$c3;
58
57
  var style = props.style,
59
58
  loadingProps = props.loading,
60
59
  gridParams = props.params,
@@ -141,15 +140,10 @@ function AgGridPlus(props) {
141
140
  queryItemsOrder = _useState18[0],
142
141
  setQueryItemsOrder = _useState18[1];
143
142
 
144
- // 尝试获取全局适配器(如果已初始化)
145
- var globalQueryAdapter = isGlobalSyncInitialized() ? useGlobalQueryAdapter() : undefined;
146
- var globalColumnAdapter = isGlobalSyncInitialized() ? useGlobalColumnAdapter() : undefined;
147
-
148
143
  // 自动创建查询方案管理器(如果未通过 props 提供)
149
144
  var autoQuerySchemeManager = enableQuerySchemes && gridKey && !propsQuerySchemeManager ? useQuerySchemes({
150
145
  gridId: gridKey,
151
- // 优先使用全局适配器,否则使用 props 传入的适配器
152
- storageAdapter: globalQueryAdapter || querySchemeStorageAdapter,
146
+ storageAdapter: querySchemeStorageAdapter,
153
147
  onSchemeChange: function onSchemeChange(scheme) {
154
148
  if (scheme) {
155
149
  setQueryItemsOrder(scheme.itemsOrder);
@@ -164,8 +158,7 @@ function AgGridPlus(props) {
164
158
  // 自动创建列配置方案管理器(如果未通过 props 提供)
165
159
  var autoColumnSchemeManager = enableColumnSchemes && gridKey && !propsColumnSchemeManager ? useColumnSchemes({
166
160
  gridId: gridKey,
167
- // 优先使用全局适配器,否则使用 props 传入的适配器
168
- storageAdapter: globalColumnAdapter || columnSchemeStorageAdapter,
161
+ storageAdapter: columnSchemeStorageAdapter,
169
162
  enableAutoSave: true,
170
163
  onSchemeChange: function onSchemeChange(scheme) {
171
164
  console.log('[AgGridPlus] onSchemeChange 被调用:', {
@@ -769,10 +762,10 @@ function AgGridPlus(props) {
769
762
  displayedRows.push(node.data);
770
763
  });
771
764
 
772
- // 获取行ID的方法,优先使用外部传入的getRowId,否则默认使用id字段
765
+ // 获取行ID的方法,优先使用外部传入的getRowId,否则使用默认方法(id > _id > 行索引)
773
766
  var getRowIdMethod = props.getRowId || function (params) {
774
- var _params$data, _params$data2;
775
- return ((_params$data = params.data) === null || _params$data === void 0 ? void 0 : _params$data.id) || ((_params$data2 = params.data) === null || _params$data2 === void 0 ? void 0 : _params$data2._id);
767
+ var _ref2, _params$data$id, _params$data, _params$data2, _params$node$rowIndex, _params$node;
768
+ return (_ref2 = (_params$data$id = (_params$data = params.data) === null || _params$data === void 0 ? void 0 : _params$data.id) !== null && _params$data$id !== void 0 ? _params$data$id : (_params$data2 = params.data) === null || _params$data2 === void 0 ? void 0 : _params$data2._id) !== null && _ref2 !== void 0 ? _ref2 : "row-".concat((_params$node$rowIndex = (_params$node = params.node) === null || _params$node === void 0 ? void 0 : _params$node.rowIndex) !== null && _params$node$rowIndex !== void 0 ? _params$node$rowIndex : 0);
776
769
  };
777
770
 
778
771
  // 只保留既被选中又在当前显示的行
@@ -985,6 +978,18 @@ function AgGridPlus(props) {
985
978
  // 使用顺序管理器处理排序
986
979
  var _useQueryOrderManager = useQueryOrderManager(queryFormItems, (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c = querySchemeManager.currentScheme) === null || _querySchemeManager$c === void 0 ? void 0 : _querySchemeManager$c.itemsOrder) || queryItemsOrder),
987
980
  orderedFormItems = _useQueryOrderManager.orderedFormItems;
981
+
982
+ // 根据方案的隐藏字段过滤表单项
983
+ var visibleFormItems = useMemo(function () {
984
+ var _querySchemeManager$c2;
985
+ var hiddenFields = (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c2 = querySchemeManager.currentScheme) === null || _querySchemeManager$c2 === void 0 ? void 0 : _querySchemeManager$c2.hiddenFields) || [];
986
+ if (hiddenFields.length === 0) {
987
+ return orderedFormItems;
988
+ }
989
+ return orderedFormItems.filter(function (item) {
990
+ return !hiddenFields.includes(item.field);
991
+ });
992
+ }, [orderedFormItems, querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c3 = querySchemeManager.currentScheme) === null || _querySchemeManager$c3 === void 0 ? void 0 : _querySchemeManager$c3.hiddenFields]);
988
993
  useEffect(function () {
989
994
  calculateSum();
990
995
  }, [calculateSum]);
@@ -1005,7 +1010,7 @@ function AgGridPlus(props) {
1005
1010
 
1006
1011
  // 准备 GridPlusContext 的值
1007
1012
  var gridPlusContextValue = useMemo(function () {
1008
- var _querySchemeManager$c2;
1013
+ var _querySchemeManager$c4;
1009
1014
  return {
1010
1015
  extensibleColumns: extensibleColumns,
1011
1016
  columnState: gridPlusColumnState,
@@ -1017,7 +1022,7 @@ function AgGridPlus(props) {
1017
1022
  resetAll: resetAll,
1018
1023
  schemeManager: columnSchemeManager,
1019
1024
  querySchemeManager: querySchemeManager,
1020
- currentQueryOrder: (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c2 = querySchemeManager.currentScheme) === null || _querySchemeManager$c2 === void 0 ? void 0 : _querySchemeManager$c2.itemsOrder) || queryItemsOrder,
1025
+ currentQueryOrder: (querySchemeManager === null || querySchemeManager === void 0 || (_querySchemeManager$c4 = querySchemeManager.currentScheme) === null || _querySchemeManager$c4 === void 0 ? void 0 : _querySchemeManager$c4.itemsOrder) || queryItemsOrder,
1021
1026
  updateQueryOrder: setQueryItemsOrder,
1022
1027
  queryFormItems: queryFormItems
1023
1028
  };
@@ -1038,7 +1043,7 @@ function AgGridPlus(props) {
1038
1043
  height: "100%"
1039
1044
  }
1040
1045
  }, search == false ? null : /*#__PURE__*/React.createElement(FormRender, {
1041
- colDefs: flattenColumnState(orderedFormItems),
1046
+ colDefs: flattenColumnState(visibleFormItems),
1042
1047
  defaultRows: queryDefaultRows,
1043
1048
  columnStates: columnState || [],
1044
1049
  defaultExpand: defaultSearchExpand,
@@ -1113,8 +1118,9 @@ function AgGridPlus(props) {
1113
1118
  onGridReady: onGridReady,
1114
1119
  defaultColDef: defaultColDef,
1115
1120
  getRowId: props.getRowId || function (params) {
1116
- var _params$data3, _params$data4;
1117
- return ((_params$data3 = params.data) === null || _params$data3 === void 0 ? void 0 : _params$data3.id) || ((_params$data4 = params.data) === null || _params$data4 === void 0 ? void 0 : _params$data4._id);
1121
+ var _ref3, _params$data$id2, _params$data3, _params$data4;
1122
+ // 优先使用 id,其次 _id,最后使用 JSON 字符串作为备用
1123
+ return (_ref3 = (_params$data$id2 = (_params$data3 = params.data) === null || _params$data3 === void 0 ? void 0 : _params$data3.id) !== null && _params$data$id2 !== void 0 ? _params$data$id2 : (_params$data4 = params.data) === null || _params$data4 === void 0 ? void 0 : _params$data4._id) !== null && _ref3 !== void 0 ? _ref3 : JSON.stringify(params.data);
1118
1124
  },
1119
1125
  onSortChanged: function onSortChanged(event) {
1120
1126
  sortChanged(event.api);
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import type { UseColumnSchemesReturn } from "../schemes/types";
3
3
  import type { UseQuerySchemesReturn } from "../querySchemes/types";
4
+ import type { RemoteStorageConfig } from "../schemes/storage/remoteStorageAdapter";
4
5
  export interface GridPlusContextValue {
5
6
  /**
6
7
  * 扩展列,允许运行时动态添加,用于展示用户自定义的列
@@ -57,5 +58,10 @@ export interface GridPlusContextValue {
57
58
  * 查询表单项列表(用于查询方案管理器)
58
59
  */
59
60
  queryFormItems?: any[];
61
+ /**
62
+ * 全局 RemoteStorage 配置(可选)
63
+ * 当提供时,所有 StorageAdapter 会自动合并这些配置
64
+ */
65
+ remoteStorageConfig?: Partial<RemoteStorageConfig>;
60
66
  }
61
67
  export declare const GridPlusContext: React.Context<GridPlusContextValue>;
@@ -31,6 +31,6 @@ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBo
31
31
  * 重置错误状态,重新渲染组件
32
32
  */
33
33
  handleRetry: () => void;
34
- render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
34
+ render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
35
35
  }
36
36
  export {};
@@ -4,8 +4,6 @@ import { GridPlusContext } from "./context/gridContext";
4
4
  import { useGridPlusColumnState } from "./hooks/useGridPlusColumnState";
5
5
  export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
6
6
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
7
- export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
8
- export type { ColumnScheme, SchemeManagerConfig, StorageAdapter, SchemeValidationResult, UseColumnSchemesReturn, SchemeSelectorProps, SchemeManagerProps } from "./schemes";
7
+ export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, RemoteStorageAdapter, PriorityStorageAdapter, useRemoteStorage, mergeRemoteStorageConfig, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
8
+ export type { ColumnScheme, SchemeManagerConfig, StorageAdapter, SchemeValidationResult, UseColumnSchemesReturn, SchemeSelectorProps, SchemeManagerProps, LocalStorageConfig, RemoteStorageConfig, PriorityStorageConfig } from "./schemes";
9
9
  export type { GridPlusContextValue } from "./context/gridContext";
10
- export { initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./storage";
11
- export type { SyncConfig, SyncManagerEvents, SyncStatus, SchemeConflict } from "./storage";
@@ -6,6 +6,8 @@ export { AgGridPlus, AgGridColumn, GridPlusContext, useGridPlusColumnState };
6
6
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
7
7
 
8
8
  // 导出列配置方案管理功能
9
- export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
10
- // 导出全局方案同步管理功能
11
- export { initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./storage";
9
+ export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, RemoteStorageAdapter, PriorityStorageAdapter, useRemoteStorage, mergeRemoteStorageConfig, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
10
+
11
+ // 注意: 全局方案同步管理功能已废弃
12
+ // 相关导出已移除,请使用 RemoteStorageAdapter 替代
13
+ // 迁移指南: docs/ag-grid-plus/storage-migration-guide.md