foggy-data-viewer 1.0.1-beta.21 → 1.0.1-beta.23

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 (66) hide show
  1. package/README.md +4 -4
  2. package/dist/__fixtures__/pivot/soaCandidatePivot.d.ts +2 -0
  3. package/dist/__fixtures__/pivot/soaCandidatePivotRaw.d.ts +2 -0
  4. package/dist/api/listPreset.d.ts +49 -0
  5. package/dist/api/viewer.d.ts +1 -0
  6. package/dist/components/DataTable.vue.d.ts +10 -1
  7. package/dist/components/DataTableWithSearch.vue.d.ts +27 -18
  8. package/dist/components/PivotAxisPager.vue.d.ts +14 -0
  9. package/dist/components/PivotEvidencePanel.vue.d.ts +12 -0
  10. package/dist/components/PivotGrid.vue.d.ts +25 -0
  11. package/dist/components/PivotRawViewer.vue.d.ts +31 -0
  12. package/dist/components/PivotViewer.vue.d.ts +31 -0
  13. package/dist/components/list-preset/ListPresetManager.vue.d.ts +100 -0
  14. package/dist/favicon.svg +4 -0
  15. package/dist/index.d.ts +12 -1
  16. package/dist/index.js +6622 -0
  17. package/dist/index.umd +1 -0
  18. package/dist/style.css +1 -0
  19. package/dist/types/index.d.ts +71 -0
  20. package/dist/types/pivot.d.ts +80 -0
  21. package/dist/utils/pivotHeaderTree.d.ts +30 -0
  22. package/dist/utils/pivotViewModelAdapter.d.ts +3 -0
  23. package/package.json +9 -7
  24. package/src/App.vue +0 -472
  25. package/src/api/savedQuery.ts +0 -137
  26. package/src/api/viewer.ts +0 -236
  27. package/src/components/DataTable.test.ts +0 -816
  28. package/src/components/DataTable.vue +0 -1011
  29. package/src/components/DataTableWithSearch.test.ts +0 -1144
  30. package/src/components/DataTableWithSearch.vue +0 -698
  31. package/src/components/DataViewer.vue +0 -311
  32. package/src/components/QueryPanel.test.ts +0 -112
  33. package/src/components/QueryPanel.vue +0 -374
  34. package/src/components/SearchToolbar.test.ts +0 -570
  35. package/src/components/SearchToolbar.vue +0 -434
  36. package/src/components/composables/globalQueryHooks.ts +0 -86
  37. package/src/components/composables/hookRegistry.test.ts +0 -232
  38. package/src/components/composables/hookRegistry.ts +0 -106
  39. package/src/components/composables/index.ts +0 -8
  40. package/src/components/composables/useQueryState.ts +0 -126
  41. package/src/components/composables/useTableQuery.test.ts +0 -557
  42. package/src/components/composables/useTableQuery.ts +0 -206
  43. package/src/components/composables/useTableSelection.test.ts +0 -248
  44. package/src/components/composables/useTableSelection.ts +0 -44
  45. package/src/components/composables/useTableSummary.test.ts +0 -341
  46. package/src/components/composables/useTableSummary.ts +0 -129
  47. package/src/components/filters/BoolFilter.vue +0 -103
  48. package/src/components/filters/DateRangeFilter.vue +0 -194
  49. package/src/components/filters/NumberRangeFilter.vue +0 -160
  50. package/src/components/filters/SelectFilter.vue +0 -576
  51. package/src/components/filters/TextFilter.vue +0 -233
  52. package/src/components/filters/index.ts +0 -5
  53. package/src/components/saved-query/OptionManagerDialog.vue +0 -98
  54. package/src/components/saved-query/QueryListDialog.vue +0 -397
  55. package/src/components/saved-query/SaveQueryDialog.vue +0 -761
  56. package/src/components/saved-query/SavedQueryManager.vue +0 -123
  57. package/src/components/saved-query/index.ts +0 -4
  58. package/src/examples/EnhancedTableExample.vue +0 -136
  59. package/src/examples/GeneratedTableExample.vue +0 -238
  60. package/src/index.ts +0 -110
  61. package/src/main.ts +0 -17
  62. package/src/types/index.ts +0 -412
  63. package/src/utils/README.md +0 -140
  64. package/src/utils/schemaHelper.test.ts +0 -215
  65. package/src/utils/schemaHelper.ts +0 -107
  66. package/src/vite-env.d.ts +0 -12
package/README.md CHANGED
@@ -237,11 +237,11 @@ npm test
237
237
  # 测试覆盖率
238
238
  npm run test:coverage
239
239
 
240
- # 构建库
241
- npm run build:lib
242
-
243
- # 构建应用
240
+ # 构建发布包(库产物 + 类型声明 + 入口校验)
244
241
  npm run build
242
+
243
+ # 构建内嵌应用静态资源
244
+ npm run build:app
245
245
  ```
246
246
 
247
247
  ## 测试
@@ -0,0 +1,2 @@
1
+ import type { PivotViewModel } from '@/types/pivot';
2
+ export declare const soaCandidatePivotFixture: PivotViewModel;
@@ -0,0 +1,2 @@
1
+ import type { PivotRawPayload } from '@/types/pivot';
2
+ export declare const soaCandidatePivotRawFixture: PivotRawPayload;
@@ -0,0 +1,49 @@
1
+ import type { ColumnViewSetting, ListPresetDef, ListPresetVisibility, QueryConditionPreset } from '@/types';
2
+ export interface ListPresetScope {
3
+ userId: string;
4
+ model: string;
5
+ businessKey?: string;
6
+ }
7
+ export interface SaveListPresetRequest {
8
+ title: string;
9
+ description?: string;
10
+ columns: string[];
11
+ columnSettings?: ColumnViewSetting[];
12
+ query?: QueryConditionPreset;
13
+ pageSize?: number;
14
+ visibility?: ListPresetVisibility;
15
+ isDefault?: boolean;
16
+ }
17
+ export type UpdateListPresetRequest = Partial<SaveListPresetRequest>;
18
+ /**
19
+ * 查询当前用户在指定 model/businessKey 下的自定义列表方案。
20
+ */
21
+ export declare function listPresets(scope: ListPresetScope): Promise<ListPresetDef[]>;
22
+ /**
23
+ * 查询当前用户在指定 model/businessKey 下的默认自定义列表。
24
+ */
25
+ export declare function getDefaultListPreset(scope: ListPresetScope): Promise<ListPresetDef | null>;
26
+ /**
27
+ * 保存新的自定义列表方案。
28
+ */
29
+ export declare function createListPreset(scope: ListPresetScope, request: SaveListPresetRequest): Promise<ListPresetDef>;
30
+ /**
31
+ * 获取单个自定义列表详情。
32
+ */
33
+ export declare function getListPreset(userId: string, presetId: string): Promise<ListPresetDef>;
34
+ /**
35
+ * 更新自定义列表方案。
36
+ */
37
+ export declare function updateListPreset(userId: string, presetId: string, request: UpdateListPresetRequest): Promise<ListPresetDef>;
38
+ /**
39
+ * 删除自定义列表方案。
40
+ */
41
+ export declare function deleteListPreset(userId: string, presetId: string): Promise<void>;
42
+ /**
43
+ * 将某个自定义列表设为默认方案。
44
+ */
45
+ export declare function setDefaultListPreset(userId: string, presetId: string): Promise<ListPresetDef>;
46
+ /**
47
+ * 清除当前 model/businessKey 下的默认方案。
48
+ */
49
+ export declare function clearDefaultListPreset(scope: ListPresetScope): Promise<void>;
@@ -4,6 +4,7 @@ import type { QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, FilterO
4
4
  */
5
5
  export interface QueryPayload {
6
6
  columns: string[];
7
+ extData?: Record<string, unknown>;
7
8
  slice: Array<{
8
9
  field: string;
9
10
  op: string;
@@ -1,5 +1,5 @@
1
1
  import type { VxeGridInstance } from 'vxe-table';
2
- import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, CellCopyConfig } from '@/types';
2
+ import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, CellCopyConfig, MemberQueryRequest, MemberQueryResponse, TableDensity } from '@/types';
3
3
  /**
4
4
  * DataTable 组件属性
5
5
  *
@@ -32,14 +32,22 @@ interface Props {
32
32
  serverSummary?: Record<string, unknown> | null;
33
33
  /** 过滤选项加载器(用于维度列) */
34
34
  filterOptionsLoader?: (columnName: string) => Promise<FilterOption[]>;
35
+ /** 远程维度成员加载器(优先于 filterOptionsLoader) */
36
+ filterMemberLoader?: (request: MemberQueryRequest) => Promise<MemberQueryResponse>;
37
+ /** QM 模型名称(远程成员加载所需) */
38
+ qmModel?: string;
35
39
  /** 自定义过滤器组件映射 */
36
40
  customFilterComponents?: Record<string, unknown>;
37
41
  /** 普通单元格悬浮复制配置 */
38
42
  cellCopy?: CellCopyConfig;
43
+ /** 表格视觉密度 */
44
+ density?: TableDensity;
39
45
  }
40
46
  type __VLS_Slots = {
41
47
  /** 表格上方工具栏 */
42
48
  toolbar?: () => unknown;
49
+ /** 表格上方右侧工具栏,显示在分页器之前 */
50
+ 'toolbar-right'?: () => unknown;
43
51
  /** 表格下方区域 */
44
52
  footer?: () => unknown;
45
53
  /** 空数据提示 */
@@ -96,6 +104,7 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
96
104
  pageSize: number;
97
105
  showFilters: boolean;
98
106
  showPager: boolean;
107
+ density: TableDensity;
99
108
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
100
109
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
101
110
  export default _default;
@@ -1,4 +1,4 @@
1
- import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode } from '@/types';
1
+ import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode, ListViewState, ListPresetConfig, TableDensity } from '@/types';
2
2
  import type { QueryPanelExpose, QuerySchema } from './QueryPanel.vue';
3
3
  /**
4
4
  * DataTableWithSearch 组件
@@ -38,6 +38,8 @@ interface Props {
38
38
  cellCopy?: CellCopyConfig;
39
39
  /** 内置查询入口模式;设置后优先于 showQueryPanel/showFilters */
40
40
  queryMode?: QueryMode;
41
+ /** 表格视觉密度 */
42
+ density?: TableDensity;
41
43
  /** 搜索工具栏可搜索字段 */
42
44
  searchableFields?: string[];
43
45
  /** 搜索工具栏布局 */
@@ -58,6 +60,8 @@ interface Props {
58
60
  filterMemberLoader?: (request: MemberQueryRequest) => Promise<MemberQueryResponse>;
59
61
  /** 启用保存查询功能 */
60
62
  enableSavedQuery?: boolean;
63
+ /** 自定义列表配置 */
64
+ listPreset?: boolean | ListPresetConfig;
61
65
  }
62
66
  interface SearchToolbarExpose {
63
67
  clearFilters: () => void;
@@ -73,21 +77,30 @@ interface DataTableExpose {
73
77
  }
74
78
  declare function searchQueryPanel(): void;
75
79
  declare function resetQueryPanel(): void;
76
- declare var __VLS_28: {}, __VLS_30: {}, __VLS_32: {}, __VLS_34: {
80
+ declare function getListViewState(): ListViewState;
81
+ declare function applyListViewState(state: ListViewState, options?: {
82
+ reload?: boolean;
83
+ }): void;
84
+ declare function resetListViewState(options?: {
85
+ reload?: boolean;
86
+ }): void;
87
+ declare var __VLS_28: {}, __VLS_33: {}, __VLS_38: {}, __VLS_40: {}, __VLS_42: {
77
88
  row: Record<string, unknown>;
78
89
  column: EnhancedColumnSchema;
79
90
  value: unknown;
80
- }, __VLS_37: string, __VLS_38: any;
91
+ }, __VLS_45: string, __VLS_46: any;
81
92
  type __VLS_Slots = {} & {
82
- [K in NonNullable<typeof __VLS_37>]?: (props: typeof __VLS_38) => any;
93
+ [K in NonNullable<typeof __VLS_45>]?: (props: typeof __VLS_46) => any;
83
94
  } & {
84
95
  toolbar?: (props: typeof __VLS_28) => any;
85
96
  } & {
86
- footer?: (props: typeof __VLS_30) => any;
97
+ 'toolbar-right'?: (props: typeof __VLS_33) => any;
87
98
  } & {
88
- empty?: (props: typeof __VLS_32) => any;
99
+ footer?: (props: typeof __VLS_38) => any;
89
100
  } & {
90
- 'row-actions'?: (props: typeof __VLS_34) => any;
101
+ empty?: (props: typeof __VLS_40) => any;
102
+ } & {
103
+ 'row-actions'?: (props: typeof __VLS_42) => any;
91
104
  };
92
105
  declare const __VLS_component: import("vue").DefineComponent<Props, {
93
106
  /** 获取 SearchToolbar 实例 */
@@ -140,18 +153,14 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
140
153
  clearSelection: () => void;
141
154
  /** 获取 useTableQuery 实例(高级用法) */
142
155
  getQuery: () => import("./composables/useTableQuery").UseTableQueryReturn;
156
+ /** 获取当前列表视图状态(用于保存自定义列表) */
157
+ getListViewState: typeof getListViewState;
158
+ /** 应用列表视图状态(用于加载自定义列表) */
159
+ applyListViewState: typeof applyListViewState;
160
+ /** 重置列表视图状态 */
161
+ resetListViewState: typeof resetListViewState;
143
162
  /** 获取当前查询状态(用于保存查询) */
144
- getQueryState: () => {
145
- columns: string[];
146
- slice: {
147
- field: string;
148
- op: string;
149
- value?: unknown;
150
- link?: 1 | 2;
151
- children?: /*elided*/ any[];
152
- }[];
153
- orderBy: OrderRequestDef[];
154
- };
163
+ getQueryState: typeof getListViewState;
155
164
  /** 应用查询状态(用于加载保存的查询) */
156
165
  applyQueryState: (state: {
157
166
  columns: string[];
@@ -0,0 +1,14 @@
1
+ import type { PivotAxisField, PivotAxisPage } from '@/types';
2
+ interface Props {
3
+ rowAxes?: PivotAxisField[];
4
+ columnAxes?: PivotAxisField[];
5
+ rowPages?: PivotAxisPage[];
6
+ columnPages?: PivotAxisPage[];
7
+ }
8
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
9
+ rowAxes: PivotAxisField[];
10
+ columnAxes: PivotAxisField[];
11
+ rowPages: PivotAxisPage[];
12
+ columnPages: PivotAxisPage[];
13
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
14
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import type { PivotAxisField } from '@/types';
2
+ interface Props {
3
+ evidence?: Record<string, unknown>;
4
+ rowAxes?: PivotAxisField[];
5
+ columnAxes?: PivotAxisField[];
6
+ }
7
+ declare const _default: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
8
+ rowAxes: PivotAxisField[];
9
+ columnAxes: PivotAxisField[];
10
+ evidence: Record<string, unknown>;
11
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
12
+ export default _default;
@@ -0,0 +1,25 @@
1
+ import type { PivotViewModel } from '@/types';
2
+ interface Props {
3
+ viewModel: PivotViewModel;
4
+ loading?: boolean;
5
+ height?: string | number;
6
+ emptyText?: string;
7
+ emptyCellText?: string;
8
+ }
9
+ declare var __VLS_5: {};
10
+ type __VLS_Slots = {} & {
11
+ empty?: (props: typeof __VLS_5) => any;
12
+ };
13
+ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
14
+ loading: boolean;
15
+ height: string | number;
16
+ emptyText: string;
17
+ emptyCellText: string;
18
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,31 @@
1
+ import type { PivotRawPayload } from '@/types';
2
+ interface Props {
3
+ rawPayload: PivotRawPayload;
4
+ loading?: boolean;
5
+ error?: string | null;
6
+ height?: string | number;
7
+ emptyText?: string;
8
+ emptyCellText?: string;
9
+ showAxisPager?: boolean;
10
+ showEvidence?: boolean;
11
+ }
12
+ declare var __VLS_5: {};
13
+ type __VLS_Slots = {} & {
14
+ empty?: (props: typeof __VLS_5) => any;
15
+ };
16
+ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
17
+ error: string | null;
18
+ loading: boolean;
19
+ height: string | number;
20
+ emptyText: string;
21
+ emptyCellText: string;
22
+ showAxisPager: boolean;
23
+ showEvidence: boolean;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
26
+ export default _default;
27
+ type __VLS_WithSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,31 @@
1
+ import type { PivotViewModel } from '@/types';
2
+ interface Props {
3
+ viewModel: PivotViewModel;
4
+ loading?: boolean;
5
+ error?: string | null;
6
+ height?: string | number;
7
+ emptyText?: string;
8
+ emptyCellText?: string;
9
+ showAxisPager?: boolean;
10
+ showEvidence?: boolean;
11
+ }
12
+ declare var __VLS_7: {};
13
+ type __VLS_Slots = {} & {
14
+ empty?: (props: typeof __VLS_7) => any;
15
+ };
16
+ declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
17
+ error: string | null;
18
+ loading: boolean;
19
+ height: string | number;
20
+ emptyText: string;
21
+ emptyCellText: string;
22
+ showAxisPager: boolean;
23
+ showEvidence: boolean;
24
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
26
+ export default _default;
27
+ type __VLS_WithSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,100 @@
1
+ import type { EnhancedColumnSchema, ListPresetConfig, ListPresetDef, ListPresetVisibility, ListViewState } from '@/types';
2
+ interface Props {
3
+ config: ListPresetConfig;
4
+ getState: () => ListViewState;
5
+ applyState: (state: ListViewState) => void;
6
+ reload?: () => void | Promise<void>;
7
+ availableColumns?: EnhancedColumnSchema[];
8
+ }
9
+ declare const form: import("vue").Ref<{
10
+ title: string;
11
+ description: string;
12
+ visibility: ListPresetVisibility;
13
+ isDefault: boolean;
14
+ saveQueryConditions: boolean;
15
+ }, {
16
+ title: string;
17
+ description: string;
18
+ visibility: ListPresetVisibility;
19
+ isDefault: boolean;
20
+ saveQueryConditions: boolean;
21
+ } | {
22
+ title: string;
23
+ description: string;
24
+ visibility: ListPresetVisibility;
25
+ isDefault: boolean;
26
+ saveQueryConditions: boolean;
27
+ }>;
28
+ declare function openDialog(): void;
29
+ declare function syncColumnDraftFromState(): void;
30
+ declare function loadPresets(): Promise<void>;
31
+ declare function applyPreset(preset: ListPresetDef): Promise<void>;
32
+ declare function startEditPreset(preset: ListPresetDef): void;
33
+ declare function cancelEdit(): void;
34
+ declare function saveCurrentPreset(): Promise<void>;
35
+ declare function overwritePreset(preset: ListPresetDef): Promise<void>;
36
+ declare const _default: import("vue").DefineComponent<Props, {
37
+ applyPreset: typeof applyPreset;
38
+ cancelEdit: typeof cancelEdit;
39
+ loadPresets: typeof loadPresets;
40
+ openDialog: typeof openDialog;
41
+ overwritePreset: typeof overwritePreset;
42
+ saveCurrentPreset: typeof saveCurrentPreset;
43
+ startEditPreset: typeof startEditPreset;
44
+ setDraft: (draft: Partial<typeof form.value>) => void;
45
+ getDraft: () => {
46
+ title: string;
47
+ description: string;
48
+ visibility: ListPresetVisibility;
49
+ isDefault: boolean;
50
+ saveQueryConditions: boolean;
51
+ };
52
+ getPresets: () => {
53
+ id: string;
54
+ model: string;
55
+ businessKey?: string;
56
+ title: string;
57
+ description?: string;
58
+ columns: string[];
59
+ columnSettings?: {
60
+ name: string;
61
+ visible: boolean;
62
+ width?: number;
63
+ minWidth?: number;
64
+ fixed?: "left" | "right";
65
+ order: number;
66
+ }[];
67
+ query: {
68
+ slice: {
69
+ field: string;
70
+ op: string;
71
+ value?: unknown;
72
+ link?: 1 | 2;
73
+ children?: /*elided*/ any[];
74
+ }[];
75
+ orderBy: {
76
+ field: string;
77
+ order: "asc" | "desc";
78
+ }[];
79
+ };
80
+ pageSize?: number;
81
+ visibility: ListPresetVisibility;
82
+ ownerId: string;
83
+ ownerDeptId?: string;
84
+ ownerTenantId?: string;
85
+ isDefault?: boolean;
86
+ version: 1;
87
+ createdAt: string;
88
+ updatedAt: string;
89
+ }[];
90
+ getColumnDraft: () => {
91
+ name: string;
92
+ title?: string;
93
+ visible: boolean;
94
+ width?: number;
95
+ minWidth?: number;
96
+ fixed?: "left" | "right";
97
+ }[];
98
+ syncColumnDraftFromState: typeof syncColumnDraftFromState;
99
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
100
+ export default _default;
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
2
+ <rect width="32" height="32" rx="4" fill="#409eff"/>
3
+ <path d="M8 10h16v2H8zm0 5h12v2H8zm0 5h14v2H8z" fill="white"/>
4
+ </svg>
package/dist/index.d.ts CHANGED
@@ -6,13 +6,24 @@ export { default as DataViewer } from './components/DataViewer.vue';
6
6
  export { default as SearchToolbar } from './components/SearchToolbar.vue';
7
7
  export { default as DataTableWithSearch } from './components/DataTableWithSearch.vue';
8
8
  export { default as QueryPanel } from './components/QueryPanel.vue';
9
+ export { default as PivotViewer } from './components/PivotViewer.vue';
10
+ export { default as PivotRawViewer } from './components/PivotRawViewer.vue';
11
+ export { default as PivotGrid } from './components/PivotGrid.vue';
12
+ export { default as PivotAxisPager } from './components/PivotAxisPager.vue';
13
+ export { default as PivotEvidencePanel } from './components/PivotEvidencePanel.vue';
14
+ export { default as ListPresetManager } from './components/list-preset/ListPresetManager.vue';
9
15
  export type { QueryFieldSchema, QueryPanelLayoutSchema, QueryPanelExpose, QuerySchema } from './components/QueryPanel.vue';
10
16
  export * from './components/filters';
11
17
  export * from './components/saved-query';
12
18
  export * from './components/composables';
13
19
  export { buildTableColumns, calculateColumnWidth } from './utils/schemaHelper';
20
+ export { buildPivotGridColumns, flattenPivotLeafNodes, validatePivotHeaderTree } from './utils/pivotHeaderTree';
21
+ export { buildPivotCellField, toPivotViewModel } from './utils/pivotViewModelAdapter';
22
+ export type { BuildPivotGridColumnsOptions, PivotGridColumn, PivotHeaderValidationResult } from './utils/pivotHeaderTree';
14
23
  export { createQuery, fetchQueryMeta, fetchQueryData, fetchFilterOptions, fetchQmSchema, fetchQueryDataDirect, fetchFrontendMeta, fetchMemberOptions } from './api/viewer';
15
24
  export type { QueryPayload, CreateQueryRequest, CreateQueryResponse } from './api/viewer';
16
25
  export { saveQuery, listSavedQueries, getSavedQuery, updateSavedQuery, deleteSavedQuery, applySavedQuery } from './api/savedQuery';
17
26
  export type { SavedQueryDef, SaveQueryRequest, QueryVisibility } from './api/savedQuery';
18
- export type { ColumnSchema, EnhancedColumnSchema, TableConfig, TableSchema, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataResult, FetchDataFn, DictItem, PaginationState, SortState, QueryHooks, QueryHookContext, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, MaybePromise, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';
27
+ export { listPresets, getDefaultListPreset, createListPreset, getListPreset, updateListPreset, deleteListPreset, setDefaultListPreset, clearDefaultListPreset } from './api/listPreset';
28
+ export type { ListPresetScope, SaveListPresetRequest, UpdateListPresetRequest } from './api/listPreset';
29
+ export type { ColumnSchema, EnhancedColumnSchema, TableConfig, TableSchema, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataResult, FetchDataFn, DictItem, PaginationState, SortState, QueryHooks, QueryHookContext, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, MaybePromise, PivotAxisField, PivotAxisPage, PivotAxisPageScope, PivotAxisRole, PivotHeaderNode, PivotHeaderRole, PivotMetric, PivotRawAxisMember, PivotRawCell, PivotRawPayload, PivotShape, PivotViewMode, PivotViewModel, ListPresetVisibility, ListPresetPlacement, ListPresetConfig, ColumnViewSetting, QueryConditionPreset, ListViewState, ListPresetDef, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';