@nokecy/qc-ui 1.0.99 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/cjs/ConfirmPro/index.js +1 -1
  2. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +49 -22
  3. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +2 -14
  4. package/dist/cjs/ag-grid-plus/context/useSchemeManager.js +52 -84
  5. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +27 -30
  6. package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +0 -2
  7. package/dist/cjs/ag-grid-plus/shared/storage/localStorageAdapter.js +0 -2
  8. package/dist/cjs/ag-grid-plus/utils/logger.js +1 -2
  9. package/dist/cjs/array-table/index.js +44 -61
  10. package/dist/cjs/components/RegexEditor/visualizer/astToRailroad.js +1 -7
  11. package/dist/cjs/dashboard/dashboard/index.js +0 -1
  12. package/dist/cjs/dashboard/widget/selector/index.js +0 -3
  13. package/dist/cjs/deleteConfirm/index.js +1 -1
  14. package/dist/cjs/formDesigner/FormDesigner.js +1 -3
  15. package/dist/cjs/formDesigner/widgets/SchemaEditorWidget.js +0 -1
  16. package/dist/cjs/generatedListPage/PerformanceMonitor.js +0 -3
  17. package/dist/cjs/generatedListPage/RequestManager.js +9 -11
  18. package/dist/cjs/standardFormDialog/PortalManager.js +2 -10
  19. package/dist/cjs/standardFormDialog/withStandardForm.js +0 -2
  20. package/dist/cjs/toolBar/index.js +1 -1
  21. package/dist/esm/ConfirmPro/index.js +1 -1
  22. package/dist/esm/ag-grid-plus/ag-gridPlus.js +49 -22
  23. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +2 -14
  24. package/dist/esm/ag-grid-plus/context/useSchemeManager.js +52 -84
  25. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +27 -30
  26. package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +0 -2
  27. package/dist/esm/ag-grid-plus/shared/storage/localStorageAdapter.js +0 -2
  28. package/dist/esm/ag-grid-plus/utils/logger.js +1 -2
  29. package/dist/esm/array-table/index.js +44 -61
  30. package/dist/esm/components/RegexEditor/visualizer/astToRailroad.js +1 -7
  31. package/dist/esm/dashboard/dashboard/index.js +0 -1
  32. package/dist/esm/dashboard/widget/selector/index.js +0 -3
  33. package/dist/esm/deleteConfirm/index.js +1 -1
  34. package/dist/esm/formDesigner/FormDesigner.js +1 -3
  35. package/dist/esm/formDesigner/widgets/SchemaEditorWidget.js +0 -1
  36. package/dist/esm/generatedListPage/PerformanceMonitor.js +0 -3
  37. package/dist/esm/generatedListPage/RequestManager.js +9 -11
  38. package/dist/esm/standardFormDialog/PortalManager.js +2 -10
  39. package/dist/esm/standardFormDialog/withStandardForm.js +0 -2
  40. package/dist/esm/toolBar/index.js +1 -1
  41. package/dist/umd/qc-ui.min.js +1 -1
  42. package/package.json +2 -1
@@ -25,8 +25,6 @@ import PreviewArrayTable from "./preview";
25
25
  import { Space } from "antd";
26
26
  import Setting from "../ag-grid-plus/setting";
27
27
  import { GridPlusContext } from "../ag-grid-plus/context/gridContext";
28
- import { useSchemeManager } from "../ag-grid-plus/context/useSchemeManager";
29
- import { LocalStorageSchemeAdapter } from "../ag-grid-plus/shared/storage/localStorageAdapter";
30
28
  import { flatConfigToColumnState, flatConfigToGridState } from "../ag-grid-plus/setting/columnGroupUtils";
31
29
 
32
30
  // 导入 AG-Grid v33 主题
@@ -34,7 +32,14 @@ import { agGridTheme } from "../ag-grid-plus/theme";
34
32
 
35
33
  //@ts-ignore
36
34
  var ArrayTableInner = observer(function (props) {
37
- var height = props.height;
35
+ var height = props.height,
36
+ gridKey = props.gridKey;
37
+
38
+ // 【新增】运行时验证 gridKey
39
+ if (!gridKey) {
40
+ console.error('[ArrayTable] gridKey 是必需的属性,用于方案管理和状态持久化');
41
+ throw new Error('[ArrayTable] gridKey 属性是必需的。请在 x-component-props 中提供 gridKey');
42
+ }
38
43
  var _useState = useState(false),
39
44
  _useState2 = _slicedToArray(_useState, 2),
40
45
  isAdd = _useState2[0],
@@ -67,10 +72,12 @@ var ArrayTableInner = observer(function (props) {
67
72
  var _useRowDrag = useRowDrag(field),
68
73
  handleRowDragMove = _useRowDrag.handleRowDragMove;
69
74
 
70
- // 从 Context 获取方案管理相关的状态和方法
71
- var _useContext = useContext(GridPlusContext),
72
- currentSchemes = _useContext.currentSchemes,
73
- columnSchemes = _useContext.columnSchemes;
75
+ // 直接使用 Context 获取方案管理状态
76
+ // ArrayTable 外层已经提供了完整的 GridPlusContext.Provider
77
+ var context = useContext(GridPlusContext);
78
+ var _ref = context || {},
79
+ currentSchemes = _ref.currentSchemes,
80
+ columnSchemes = _ref.columnSchemes;
74
81
 
75
82
  // 获取当前表格的激活方案
76
83
  var currentScheme = useMemo(function () {
@@ -111,17 +118,8 @@ var ArrayTableInner = observer(function (props) {
111
118
  firstCol: (_currentScheme$column = currentScheme.columnConfig[0]) === null || _currentScheme$column === void 0 ? void 0 : _currentScheme$column.field,
112
119
  updatedAt: currentScheme.updatedAt
113
120
  });
114
- console.log('[ArrayTable] 方案恢复检查:', {
115
- schemeId: currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id,
116
- schemeName: currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.name,
117
- configHash: configHash,
118
- lastHash: lastAppliedRef.current.configHash,
119
- shouldApply: configHash !== lastAppliedRef.current.configHash
120
- });
121
-
122
121
  // 【关键】检查配置是否真正变化,避免重复应用
123
122
  if (configHash === lastAppliedRef.current.configHash) {
124
- console.log('[ArrayTable] 配置未变化,跳过应用');
125
123
  return;
126
124
  }
127
125
 
@@ -137,12 +135,9 @@ var ArrayTableInner = observer(function (props) {
137
135
  state: columnState,
138
136
  applyOrder: true // 强制应用列顺序
139
137
  });
140
- console.log('[ArrayTable] 方案已成功应用');
141
-
142
138
  // 如果方案中包含过滤器配置,也一并应用
143
139
  if (currentScheme.filterModel) {
144
140
  gridApiState.setFilterModel(currentScheme.filterModel);
145
- console.log('[ArrayTable] 过滤器已应用');
146
141
  }
147
142
 
148
143
  // 记录本次应用的配置哈希
@@ -155,19 +150,14 @@ var ArrayTableInner = observer(function (props) {
155
150
  // 使用 requestAnimationFrame 延迟应用
156
151
  var rafId = requestAnimationFrame(function () {
157
152
  try {
158
- console.log('[ArrayTable] 正在应用方案:', currentScheme.name);
159
-
160
153
  // 【关键检测】检查是否包含分组配置
161
154
  var hasGroups = currentScheme.columnConfig.some(function (item) {
162
155
  return item.type === 'group';
163
156
  });
164
- console.log('[ArrayTable] 是否包含分组:', hasGroups);
165
-
166
157
  // 【条件更新】只有在包含分组时才更新 columnDefs
167
158
  // 原因:array-table 的列是动态生成的,无分组时不应该覆盖动态列定义
168
159
  if (hasGroups) {
169
160
  var gridColumnDefs = flatConfigToGridState(currentScheme.columnConfig);
170
- console.log('[ArrayTable] 检测到分组,更新 columnDefs');
171
161
  gridApiState.setGridOption('columnDefs', gridColumnDefs);
172
162
 
173
163
  // 等待 columnDefs 更新完成后再应用列状态
@@ -180,7 +170,7 @@ var ArrayTableInner = observer(function (props) {
180
170
  }, 100);
181
171
  } else {
182
172
  // 无分组时,直接应用列状态即可
183
- console.log('[ArrayTable] 无分组,仅应用列状态');
173
+
184
174
  applyColumnStateAndFilter();
185
175
  }
186
176
  } catch (error) {
@@ -307,8 +297,8 @@ var ArrayTableInner = observer(function (props) {
307
297
  ' <span data-ref="eSortAsc" class="ag-header-icon ag-sort-ascending-icon"></span>' + ' <span data-ref="eSortDesc" class="ag-header-icon ag-sort-descending-icon"></span>' + ' <span data-ref="eSortNone" class="ag-header-icon ag-sort-none-icon"></span>' + " </div>" + "</div>"
308
298
  }
309
299
  },
310
- getRowId: function getRowId(_ref) {
311
- var data = _ref.data;
300
+ getRowId: function getRowId(_ref2) {
301
+ var data = _ref2.data;
312
302
  return data._id || data.id;
313
303
  }
314
304
  // rowDragEntireRow={true}
@@ -342,43 +332,36 @@ var ArrayTableInner = observer(function (props) {
342
332
  ArrayTableInner.displayName = "ArrayTableInner";
343
333
 
344
334
  /**
345
- * ArrayTable 组件 - 带 GridPlusContext Provider 包装
335
+ * ArrayTable 组件
336
+ *
337
+ * 注意:需要在外部使用 GridPlusContext.Provider 包裹以提供方案管理功能
346
338
  *
347
- * 提供完整的列方案管理功能支持
339
+ * @example
340
+ * ```tsx
341
+ * const adapter = useMemo(() => new LocalStorageSchemeAdapter({
342
+ * storageKey: `array-table-schemes-${gridKey}`
343
+ * }), [gridKey]);
344
+ *
345
+ * const schemeManager = useSchemeManager({ adapter, autoLoad: true });
346
+ *
347
+ * const contextValue = useMemo(() => ({
348
+ * extensibleColumns: [],
349
+ * columnState: undefined,
350
+ * onSaveColumnState: () => {},
351
+ * applyToGlobal: () => {},
352
+ * resetCurrent: () => {},
353
+ * resetAll: () => {},
354
+ * queryFormItems: [],
355
+ * ...schemeManager
356
+ * }), [schemeManager]);
357
+ *
358
+ * <GridPlusContext.Provider value={contextValue}>
359
+ * <ArrayTable gridKey="my-table" height={400} />
360
+ * </GridPlusContext.Provider>
361
+ * ```
348
362
  */
349
363
  //@ts-ignore
350
- var ArrayTable = observer(function (props) {
351
- // 创建 LocalStorage 适配器实例 (使用 useMemo 避免重复创建)
352
- var adapter = useMemo(function () {
353
- return new LocalStorageSchemeAdapter({
354
- storageKey: "array-table-schemes-".concat(props.gridKey || 'default'),
355
- enableDebugLog: false
356
- });
357
- }, [props.gridKey]);
358
-
359
- // 初始化方案管理器
360
- var schemeManager = useSchemeManager({
361
- adapter: adapter,
362
- autoLoad: true,
363
- showErrorMessage: true
364
- });
365
-
366
- // 构建 Context Value
367
- var contextValue = useMemo(function () {
368
- return _objectSpread({
369
- extensibleColumns: [],
370
- columnState: undefined,
371
- onSaveColumnState: function onSaveColumnState() {},
372
- applyToGlobal: function applyToGlobal() {},
373
- resetCurrent: function resetCurrent() {},
374
- resetAll: function resetAll() {},
375
- queryFormItems: []
376
- }, schemeManager);
377
- }, [schemeManager]);
378
- return /*#__PURE__*/React.createElement(GridPlusContext.Provider, {
379
- value: contextValue
380
- }, /*#__PURE__*/React.createElement(ArrayTableInner, props));
381
- });
364
+ var ArrayTable = ArrayTableInner;
382
365
  ArrayTable.displayName = "ArrayTable";
383
366
  ArrayTable.Column = function () {
384
367
  return /*#__PURE__*/React.createElement(Fragment, null);
@@ -17,13 +17,7 @@ export function convertASTToRailroad(ast) {
17
17
  }
18
18
 
19
19
  // 调试日志
20
- if (ast.type === 'Alternative' || ast.type === 'CharacterClass') {
21
- console.log("\u5904\u7406 ".concat(ast.type, " \u8282\u70B9:"), {
22
- type: ast.type,
23
- expressions: ast.expressions,
24
- isArray: Array.isArray(ast.expressions)
25
- });
26
- }
20
+ if (ast.type === 'Alternative' || ast.type === 'CharacterClass') {}
27
21
  switch (ast.type) {
28
22
  case 'RegExp':
29
23
  // 正则表达式根节点,提取 body
@@ -335,7 +335,6 @@ var Dashboard = /*#__PURE__*/forwardRef(function (props, ref) {
335
335
  var res = formatLayout(currentLayout);
336
336
  copy(JSON.stringify(res));
337
337
  message.success('已复制布局数据到剪切板');
338
- console.log('currentLayout', res);
339
338
  }, [currentLayout]);
340
339
 
341
340
  //默认存储
@@ -103,13 +103,10 @@ var WidgetSelector = function WidgetSelector(props) {
103
103
  finData[key].visible = false;
104
104
  }
105
105
  });
106
- console.log('finData', finData);
107
106
  //已添加次数
108
107
  currentLayout.forEach(function (item) {
109
108
  var _finData$key;
110
109
  var key = item.i.split('-')[0];
111
- console.log('item.i', item.i);
112
- console.log('finData[key]', finData[key]);
113
110
  finData[key].length = finData[key].length ? ((_finData$key = finData[key]) === null || _finData$key === void 0 ? void 0 : _finData$key.length) + 1 : 1;
114
111
  });
115
112
  return finData;
@@ -44,7 +44,7 @@ var DeleteConfirm = function DeleteConfirm(props) {
44
44
  reject();
45
45
  });
46
46
  }).catch(function () {
47
- return console.log('Oops errors!');
47
+ return void 0;
48
48
  });
49
49
  },
50
50
  onCancel: function onCancel() {}
@@ -55,9 +55,7 @@ var FormDesigner = function FormDesigner(props) {
55
55
  var getComponents = function getComponents() {
56
56
  var components = {};
57
57
  businessComponents.map(function (x) {
58
- if (!x.Behavior) {
59
- console.log(x);
60
- }
58
+ if (!x.Behavior) {}
61
59
  components[x.Behavior[0].name] = x;
62
60
  });
63
61
  return components;
@@ -5,7 +5,6 @@ import { MonacoInput } from '@nokecy/designable-react-settings-form';
5
5
  // import MonacoEditor from 'react-monaco-editor';
6
6
 
7
7
  export var SchemaEditorWidget = function SchemaEditorWidget(props) {
8
- console.log(JSON.stringify(transformToSchema(props.tree), null, 2));
9
8
  return /*#__PURE__*/React.createElement(MonacoInput, _extends({}, props, {
10
9
  value: JSON.stringify(transformToSchema(props.tree), null, 2),
11
10
  onChange: function onChange(value) {
@@ -201,9 +201,6 @@ export var PerformanceDevTools = function PerformanceDevTools(_ref2) {
201
201
  }
202
202
  var handleShowReport = function handleShowReport() {
203
203
  var report = onGetReport();
204
- console.group("\uD83D\uDE80 Performance Report: ".concat(componentName));
205
- console.table(report);
206
- console.groupEnd();
207
204
  setShowDetails(!showDetails);
208
205
  };
209
206
  var getPerformanceColor = function getPerformanceColor(value, thresholds) {
@@ -203,32 +203,30 @@ export var RequestManager = /*#__PURE__*/function () {
203
203
  case 0:
204
204
  key = this.generateCacheKey(params); // 1. 检查缓存
205
205
  if (!this.options.enableCache) {
206
- _context3.next = 6;
206
+ _context3.next = 5;
207
207
  break;
208
208
  }
209
209
  cachedData = this.getFromCache(key);
210
210
  if (!(cachedData !== null)) {
211
- _context3.next = 6;
211
+ _context3.next = 5;
212
212
  break;
213
213
  }
214
- console.debug('[RequestManager] Cache hit:', key);
215
214
  return _context3.abrupt("return", cachedData);
216
- case 6:
215
+ case 5:
217
216
  if (!this.options.enableDedup) {
218
- _context3.next = 11;
217
+ _context3.next = 9;
219
218
  break;
220
219
  }
221
220
  pending = this.pendingRequests.get(key);
222
221
  if (!pending) {
223
- _context3.next = 11;
222
+ _context3.next = 9;
224
223
  break;
225
224
  }
226
- console.debug('[RequestManager] Dedup request:', key);
227
225
  return _context3.abrupt("return", pending.promise);
228
- case 11:
229
- _context3.next = 13;
226
+ case 9:
227
+ _context3.next = 11;
230
228
  return this.waitForSlot();
231
- case 13:
229
+ case 11:
232
230
  // 4. 创建新请求
233
231
  abortController = new AbortController();
234
232
  this.activeRequests++;
@@ -282,7 +280,7 @@ export var RequestManager = /*#__PURE__*/function () {
282
280
  key: key
283
281
  });
284
282
  return _context3.abrupt("return", promise);
285
- case 18:
283
+ case 16:
286
284
  case "end":
287
285
  return _context3.stop();
288
286
  }
@@ -68,7 +68,6 @@ var PortalManager = /*#__PURE__*/function () {
68
68
  lastAccessedAt: now,
69
69
  isOpen: true
70
70
  });
71
- console.debug("[PortalManager] Registered portal: ".concat(id));
72
71
  }
73
72
 
74
73
  /**
@@ -95,7 +94,6 @@ var PortalManager = /*#__PURE__*/function () {
95
94
  if (portal) {
96
95
  portal.isOpen = false;
97
96
  portal.lastAccessedAt = Date.now();
98
- console.debug("[PortalManager] Marked portal as closed: ".concat(id));
99
97
  }
100
98
  }
101
99
 
@@ -106,9 +104,7 @@ var PortalManager = /*#__PURE__*/function () {
106
104
  }, {
107
105
  key: "unregister",
108
106
  value: function unregister(id) {
109
- if (this.portals.delete(id)) {
110
- console.debug("[PortalManager] Unregistered portal: ".concat(id));
111
- }
107
+ if (this.portals.delete(id)) {}
112
108
  }
113
109
 
114
110
  /**
@@ -170,12 +166,9 @@ var PortalManager = /*#__PURE__*/function () {
170
166
  if (shouldClean) {
171
167
  _this.portals.delete(id);
172
168
  cleanedCount++;
173
- console.debug("[PortalManager] Cleaned up portal: ".concat(id));
174
169
  }
175
170
  });
176
- if (cleanedCount > 0) {
177
- console.info("[PortalManager] Cleanup completed: removed ".concat(cleanedCount, " portals"));
178
- }
171
+ if (cleanedCount > 0) {}
179
172
  }
180
173
 
181
174
  /**
@@ -210,7 +203,6 @@ var PortalManager = /*#__PURE__*/function () {
210
203
  key: "clear",
211
204
  value: function clear() {
212
205
  this.portals.clear();
213
- console.info('[PortalManager] All portals cleared');
214
206
  }
215
207
 
216
208
  /**
@@ -78,7 +78,6 @@ export var withStandardForm = function withStandardForm(config) {
78
78
  // 使用外部传入的schema配置
79
79
  finalFormConfig = externalSchema.form;
80
80
  finalFormSchema = externalSchema.schema;
81
- console.log("\u2705 withStandardForm: ".concat(formId, " \u4F7F\u7528\u5916\u90E8Schema\u914D\u7F6E"));
82
81
  } else {
83
82
  // 构建表单 Schema(向后兼容)
84
83
  finalFormSchema = {
@@ -130,7 +129,6 @@ export var withStandardForm = function withStandardForm(config) {
130
129
  maxColumns: 2
131
130
  }
132
131
  };
133
- console.log("\u2705 withStandardForm: ".concat(formId, " \u4F7F\u7528\u5185\u90E8\u6784\u5EFASchema"));
134
132
  }
135
133
 
136
134
  // 创建自定义的 useSchemaField hook
@@ -17,7 +17,7 @@ var ToolBar = function ToolBar(props) {
17
17
  style: style,
18
18
  offsetBottom: 2,
19
19
  onChange: function onChange(affixed) {
20
- return console.log(affixed);
20
+ return void 0;
21
21
  },
22
22
  target: getTargetContainer
23
23
  }, /*#__PURE__*/React.createElement("div", {