@nokecy/qc-ui 1.0.71 → 1.0.73

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.
@@ -65,6 +65,11 @@ interface GridProps extends AgGridReactProps {
65
65
  * 默认使用 LocalStorage,可传入自定义适配器实现服务端存储
66
66
  */
67
67
  querySchemeStorageAdapter?: QueryStorageAdapter;
68
+ /**
69
+ * 查询方案管理器(可选)
70
+ * 如果不提供,组件会根据 gridKey 自动从全局方案管理器创建
71
+ */
72
+ querySchemeManager?: any;
68
73
  /**
69
74
  * 是否启用列配置方案功能
70
75
  * 默认值: true (自动启用)
@@ -75,6 +80,11 @@ interface GridProps extends AgGridReactProps {
75
80
  * 默认使用 LocalStorage,可传入自定义适配器实现服务端存储
76
81
  */
77
82
  columnSchemeStorageAdapter?: ColumnStorageAdapter;
83
+ /**
84
+ * 列配置方案管理器(可选)
85
+ * 如果不提供,组件会根据 gridKey 自动从全局方案管理器创建
86
+ */
87
+ columnSchemeManager?: any;
78
88
  /**
79
89
  * 错误处理回调函数
80
90
  * 当组件发生错误时调用,可用于自定义错误处理逻辑
@@ -19,6 +19,16 @@ export declare class SchemeSyncManager {
19
19
  private autoSaveTimer?;
20
20
  private backgroundSyncTimer?;
21
21
  constructor(config: SyncConfig, events?: SyncManagerEvents);
22
+ /**
23
+ * 获取方案的完整 API URL (GET请求)
24
+ * @private
25
+ */
26
+ private getGetApiUrl;
27
+ /**
28
+ * 同步方案的完整 API URL (PUT请求)
29
+ * @private
30
+ */
31
+ private getSyncApiUrl;
22
32
  /**
23
33
  * 初始化:从服务器加载所有数据
24
34
  */
@@ -19,6 +19,8 @@ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e
19
19
  * 默认配置
20
20
  */
21
21
  var DEFAULT_CONFIG = {
22
+ getApiPath: '/api/v1/ag-grid-plus/schemes',
23
+ syncApiPath: '/api/v1/ag-grid-plus/schemes',
22
24
  autoSaveDelay: 3000,
23
25
  backgroundSyncInterval: 300000,
24
26
  // 5分钟
@@ -66,7 +68,7 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
66
68
  type: 'application/json'
67
69
  });
68
70
  if (navigator.sendBeacon) {
69
- navigator.sendBeacon("".concat(_this.config.apiBaseUrl, "/api/v1/ag-grid-plus/schemes"), blob);
71
+ navigator.sendBeacon(_this.getSyncApiUrl(), blob);
70
72
  }
71
73
  }
72
74
  });
@@ -89,9 +91,29 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
89
91
  }
90
92
 
91
93
  /**
92
- * 初始化:从服务器加载所有数据
94
+ * 获取方案的完整 API URL (GET请求)
95
+ * @private
93
96
  */
94
97
  _createClass(SchemeSyncManager, [{
98
+ key: "getGetApiUrl",
99
+ value: function getGetApiUrl() {
100
+ return "".concat(this.config.apiBaseUrl).concat(this.config.getApiPath);
101
+ }
102
+
103
+ /**
104
+ * 同步方案的完整 API URL (PUT请求)
105
+ * @private
106
+ */
107
+ }, {
108
+ key: "getSyncApiUrl",
109
+ value: function getSyncApiUrl() {
110
+ return "".concat(this.config.apiBaseUrl).concat(this.config.syncApiPath);
111
+ }
112
+
113
+ /**
114
+ * 初始化:从服务器加载所有数据
115
+ */
116
+ }, {
95
117
  key: "initialize",
96
118
  value: (function () {
97
119
  var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
@@ -108,7 +130,7 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
108
130
  case 3:
109
131
  _context.prev = 3;
110
132
  _context.next = 6;
111
- return this.fetchWithRetry("".concat(this.config.apiBaseUrl, "/api/v1/ag-grid-plus/schemes"), {
133
+ return this.fetchWithRetry(this.getGetApiUrl(), {
112
134
  method: 'GET',
113
135
  headers: {
114
136
  'Content-Type': 'application/json'
@@ -388,7 +410,7 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
388
410
 
389
411
  // 发送同步请求
390
412
  _context2.next = 19;
391
- return this.fetchWithRetry("".concat(this.config.apiBaseUrl, "/api/v1/ag-grid-plus/schemes"), {
413
+ return this.fetchWithRetry(this.getSyncApiUrl(), {
392
414
  method: 'PUT',
393
415
  headers: {
394
416
  'Content-Type': 'application/json'
@@ -72,3 +72,29 @@ export declare function useGlobalColumnAdapter(): import("./MemoryStorageAdapter
72
72
  * 简化组件中的使用
73
73
  */
74
74
  export declare function useGlobalQueryAdapter(): import("./MemoryStorageAdapter").QueryMemoryStorageAdapter;
75
+ /**
76
+ * React Hook: 使用全局列方案管理器
77
+ * 自动创建并管理指定 gridId 的列方案管理器
78
+ *
79
+ * @param gridId 表格唯一标识
80
+ * @param options 可选配置
81
+ * @returns 列方案管理器实例
82
+ */
83
+ export declare function useGlobalColumnSchemeManager(gridId: string, options?: {
84
+ enableAutoSave?: boolean;
85
+ onSchemeChange?: (scheme: any) => void;
86
+ onSchemeSave?: (scheme: any) => void;
87
+ }): any;
88
+ /**
89
+ * React Hook: 使用全局查询方案管理器
90
+ * 自动创建并管理指定 gridId 的查询方案管理器
91
+ *
92
+ * @param gridId 表格唯一标识
93
+ * @param options 可选配置
94
+ * @returns 查询方案管理器实例
95
+ */
96
+ export declare function useGlobalQuerySchemeManager(gridId: string, options?: {
97
+ enableAutoSave?: boolean;
98
+ onSchemeChange?: (scheme: any) => void;
99
+ onSchemeSave?: (scheme: any) => void;
100
+ }): any;
@@ -272,4 +272,50 @@ export function useGlobalColumnAdapter() {
272
272
  export function useGlobalQueryAdapter() {
273
273
  var factory = getGlobalAdapterFactory();
274
274
  return factory.getQueryAdapter();
275
+ }
276
+
277
+ /**
278
+ * React Hook: 使用全局列方案管理器
279
+ * 自动创建并管理指定 gridId 的列方案管理器
280
+ *
281
+ * @param gridId 表格唯一标识
282
+ * @param options 可选配置
283
+ * @returns 列方案管理器实例
284
+ */
285
+ export function useGlobalColumnSchemeManager(gridId, options) {
286
+ var _options$enableAutoSa;
287
+ // 动态导入 useSchemeManager Hook
288
+ var _require = require("../shared/hooks/useSchemeManager"),
289
+ useSchemeManager = _require.useSchemeManager;
290
+ var columnAdapter = useGlobalColumnAdapter();
291
+ return useSchemeManager({
292
+ gridId: gridId,
293
+ storageAdapter: columnAdapter,
294
+ enableAutoSave: (_options$enableAutoSa = options === null || options === void 0 ? void 0 : options.enableAutoSave) !== null && _options$enableAutoSa !== void 0 ? _options$enableAutoSa : true,
295
+ onSchemeChange: options === null || options === void 0 ? void 0 : options.onSchemeChange,
296
+ onSchemeSave: options === null || options === void 0 ? void 0 : options.onSchemeSave
297
+ });
298
+ }
299
+
300
+ /**
301
+ * React Hook: 使用全局查询方案管理器
302
+ * 自动创建并管理指定 gridId 的查询方案管理器
303
+ *
304
+ * @param gridId 表格唯一标识
305
+ * @param options 可选配置
306
+ * @returns 查询方案管理器实例
307
+ */
308
+ export function useGlobalQuerySchemeManager(gridId, options) {
309
+ var _options$enableAutoSa2;
310
+ // 动态导入 useSchemeManager Hook
311
+ var _require2 = require("../shared/hooks/useSchemeManager"),
312
+ useSchemeManager = _require2.useSchemeManager;
313
+ var queryAdapter = useGlobalQueryAdapter();
314
+ return useSchemeManager({
315
+ gridId: gridId,
316
+ storageAdapter: queryAdapter,
317
+ enableAutoSave: (_options$enableAutoSa2 = options === null || options === void 0 ? void 0 : options.enableAutoSave) !== null && _options$enableAutoSa2 !== void 0 ? _options$enableAutoSa2 : true,
318
+ onSchemeChange: options === null || options === void 0 ? void 0 : options.onSchemeChange,
319
+ onSchemeSave: options === null || options === void 0 ? void 0 : options.onSchemeSave
320
+ });
275
321
  }
@@ -71,6 +71,25 @@ export interface ConflictData {
71
71
  /** 冲突原因 */
72
72
  reason: string;
73
73
  }
74
+ /**
75
+ * 方案冲突(别名)
76
+ */
77
+ export type SchemeConflict = ConflictData;
78
+ /**
79
+ * 同步状态信息
80
+ */
81
+ export interface SyncStatus {
82
+ /** 是否已初始化 */
83
+ initialized: boolean;
84
+ /** 是否正在同步 */
85
+ syncing: boolean;
86
+ /** 最后同步时间 */
87
+ lastSyncTime: number;
88
+ /** 是否有未同步数据 */
89
+ hasDirtyData: boolean;
90
+ /** 有未同步数据的表格ID列表 */
91
+ dirtyGrids: string[];
92
+ }
74
93
  /**
75
94
  * 脏数据标记类型
76
95
  */
@@ -81,6 +100,18 @@ export type DirtyType = 'column' | 'query' | 'current';
81
100
  export interface SyncConfig {
82
101
  /** API 基础路径 */
83
102
  apiBaseUrl: string;
103
+ /**
104
+ * 获取方案API路径(可选)
105
+ * 默认值: '/api/v1/ag-grid-plus/schemes'
106
+ * 用于GET请求,获取所有方案数据
107
+ */
108
+ getApiPath?: string;
109
+ /**
110
+ * 同步方案API路径(可选)
111
+ * 默认值: '/api/v1/ag-grid-plus/schemes'
112
+ * 用于PUT请求,同步保存方案数据
113
+ */
114
+ syncApiPath?: string;
84
115
  /** 自动保存延迟(毫秒),默认 3000 */
85
116
  autoSaveDelay?: number;
86
117
  /** 后台同步间隔(毫秒),默认 300000 (5分钟) */
@@ -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 } from "./ag-grid-plus";
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, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } 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, };
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, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager, };
25
25
  export type * from "./generatedListPage";
26
26
  export type * from "./standardFormDialog";
27
27
  export type * from "./deleteConfirm";
@@ -30,4 +30,5 @@ 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";
33
34
  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/esm/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlusColumnState,
2
2
  // 列配置方案管理
3
- useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH } from "./ag-grid-plus";
3
+ useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH,
4
+ // 全局方案同步管理
5
+ initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
4
6
  import ArrayTable from "./array-table";
5
7
  import ArrayTableIndex from "./array-table-index";
6
8
  import { ColumnPresets } from "./array-table/columnHelper";
@@ -25,10 +27,14 @@ import { RuleBuilder } from "./RuleBuilder";
25
27
  import { RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram } from "./components/RegexEditor";
26
28
  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,
27
29
  // 列配置方案管理
28
- useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH };
30
+ useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH,
31
+ // 全局方案同步管理
32
+ initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager };
29
33
 
30
34
  // 导出类型定义
31
35
 
32
36
  // 列配置方案管理类型
33
37
 
38
+ // 全局方案同步管理类型
39
+
34
40
  // RegexEditor 类型定义 - 使用命名导出避免冲突
@@ -32,7 +32,7 @@ export declare const createSelectField: (title: string, options: Array<{
32
32
  required?: boolean | undefined;
33
33
  placeholder?: string | undefined;
34
34
  gridSpan?: number | undefined;
35
- mode?: "multiple" | "tags" | undefined;
35
+ mode?: "tags" | "multiple" | undefined;
36
36
  } | undefined) => any;
37
37
  /**
38
38
  * 快速创建常用字段的工具函数集合
@@ -173,7 +173,7 @@ export declare const createSelectField: (title: string, options: {
173
173
  export declare const createCascaderField: (title: string, options: any[], config?: {
174
174
  required?: boolean | undefined;
175
175
  changeOnSelect?: boolean | undefined;
176
- expandTrigger?: "hover" | "click" | undefined;
176
+ expandTrigger?: "click" | "hover" | undefined;
177
177
  placeholder?: string | undefined;
178
178
  }) => {
179
179
  type: string;
@@ -187,7 +187,7 @@ export declare const createCascaderField: (title: string, options: any[], config
187
187
  };
188
188
  options: any[];
189
189
  changeOnSelect: boolean;
190
- expandTrigger: "hover" | "click";
190
+ expandTrigger: "click" | "hover";
191
191
  };
192
192
  };
193
193
  export default withStandardForm;