@bsg-export/types 1.0.6

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.
@@ -0,0 +1,168 @@
1
+ /**
2
+ * belobog-stellar-grid 严格类型定义
3
+ *
4
+ * 为 WASM 导出 API 提供类型安全的接口声明,
5
+ * 替代 wasm-bindgen 自动生成的 `any` 类型。
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /** 导出格式枚举 */
10
+ export declare enum ExportFormat {
11
+ /** CSV 格式(默认) */
12
+ Csv = 0,
13
+ /** Excel XLSX 格式 */
14
+ Xlsx = 1
15
+ }
16
+ /** 进度回调函数,接收 0-100 的进度值 */
17
+ export type ProgressCallback = (progress: number) => void;
18
+ /** 列配置(支持嵌套子列形成多级表头) */
19
+ export interface Column {
20
+ /** 表头标题文本 */
21
+ title: string;
22
+ /**
23
+ * 数据字段 key,对应数据对象中的属性名。
24
+ * 叶子列(无 children)必须提供 key。
25
+ */
26
+ key?: string;
27
+ /** 子列配置,用于形成嵌套多级表头(自动生成合并单元格) */
28
+ children?: Column[];
29
+ }
30
+ /** 合并单元格配置 */
31
+ export interface MergeCellValue {
32
+ /** 单元格显示值 */
33
+ value: string | number | boolean | null;
34
+ /** 列合并数(默认 1) */
35
+ colSpan?: number;
36
+ /** 行合并数(默认 1) */
37
+ rowSpan?: number;
38
+ }
39
+ /** 单元格值类型 */
40
+ export type CellValue = string | number | boolean | null | undefined;
41
+ /** 支持合并的单元格值 */
42
+ export type MergeableCellValue = CellValue | MergeCellValue;
43
+ /**
44
+ * 数据行类型
45
+ *
46
+ * - 二维数组模式:`CellValue[]`
47
+ * - 对象数组模式:`Record<string, MergeableCellValue>`
48
+ */
49
+ export type DataRow = CellValue[] | Record<string, MergeableCellValue>;
50
+ /** 树形数据行(含可选子节点) */
51
+ export type TreeDataRow<TChildrenKey extends string = 'children'> = Record<string, MergeableCellValue> & {
52
+ [K in TChildrenKey]?: TreeDataRow<TChildrenKey>[];
53
+ };
54
+ /** `export_data()` 的配置选项 */
55
+ export interface ExportDataOptions {
56
+ /** 列配置数组(对象数组模式必需,二维数组模式不需要) */
57
+ columns?: Column[];
58
+ /** 导出文件名(默认 'export.csv') */
59
+ filename?: string;
60
+ /** 导出格式(默认 ExportFormat.Csv) */
61
+ format?: ExportFormat;
62
+ /** 进度回调函数 */
63
+ progressCallback?: ProgressCallback;
64
+ /**
65
+ * 树形模式:指定需要缩进的列的 key。
66
+ * 需配合 `childrenKey` 使用。
67
+ */
68
+ indentColumn?: string;
69
+ /**
70
+ * 传入此参数启用树形数据模式。
71
+ * 指定子节点字段名(如 'children'、'subCategories')。
72
+ */
73
+ childrenKey?: string;
74
+ /** 是否添加 UTF-8 BOM 头(仅 CSV 有效,解决 Excel 中文乱码) */
75
+ withBom?: boolean;
76
+ }
77
+ /** 多工作表同步导出的 Sheet 配置 */
78
+ export interface SheetConfig {
79
+ /** 要导出的 HTML 表格元素的 ID */
80
+ tableId: string;
81
+ /** 工作表名称(默认使用 tableId) */
82
+ sheetName?: string;
83
+ /** 是否排除隐藏行/列(默认 false) */
84
+ excludeHidden?: boolean;
85
+ }
86
+ /** 多工作表分批异步导出的 Sheet 配置 */
87
+ export interface BatchSheetConfig extends SheetConfig {
88
+ /**
89
+ * 可选的数据表格体 ID(用于分离表头和数据)。
90
+ * 注意:此 ID 应指向不在 tableId 所指表格内部的独立 `<tbody>` 元素。
91
+ */
92
+ tbodyId?: string;
93
+ }
94
+ /**
95
+ * 从 JavaScript 数组直接导出为文件(不依赖 DOM)
96
+ *
97
+ * @param data - 二维数组 `CellValue[][]` 或对象数组 `Record<string, MergeableCellValue>[]`
98
+ * @param options - 配置选项
99
+ * @throws 导出失败时抛出错误
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * // 二维数组
104
+ * export_data([['姓名', '年龄'], ['张三', 28]]);
105
+ *
106
+ * // 对象数组 + 列配置
107
+ * export_data(
108
+ * [{ name: '张三', age: 28 }],
109
+ * { columns: [{ title: '姓名', key: 'name' }], format: ExportFormat.Xlsx }
110
+ * );
111
+ * ```
112
+ */
113
+ export declare function export_data(data: DataRow[], options?: ExportDataOptions): void;
114
+ /**
115
+ * 导出 HTML 表格为 CSV 或 Excel 文件
116
+ *
117
+ * @param tableId - 要导出的 HTML 表格元素的 ID
118
+ * @param filename - 导出文件名(默认 'table.csv')
119
+ * @param format - 导出格式(默认 Csv)
120
+ * @param excludeHidden - 是否排除隐藏行/列(默认 false)
121
+ * @param progressCallback - 进度回调函数
122
+ * @param withBom - 是否添加 UTF-8 BOM(仅 CSV 有效)
123
+ * @param strictProgressCallback - 回调失败是否中断导出(默认 false)
124
+ * @throws 导出失败时抛出错误
125
+ */
126
+ export declare function export_table(tableId: string, filename?: string | null, format?: ExportFormat | null, excludeHidden?: boolean | null, progressCallback?: ProgressCallback | null, withBom?: boolean | null, strictProgressCallback?: boolean | null): void;
127
+ /**
128
+ * 多工作表导出为 Excel 文件(同步)
129
+ *
130
+ * @param sheets - Sheet 配置数组
131
+ * @param filename - 导出文件名(默认 'table_export.xlsx')
132
+ * @param progressCallback - 进度回调函数
133
+ * @throws 导出失败时抛出错误
134
+ */
135
+ export declare function export_tables_xlsx(sheets: SheetConfig[], filename?: string | null, progressCallback?: ProgressCallback | null): void;
136
+ /**
137
+ * 分批异步导出 HTML 表格为 CSV 文件
138
+ *
139
+ * @param tableId - 要导出的 HTML 表格元素的 ID
140
+ * @param tbodyId - 可选的独立 tbody ID
141
+ * @param filename - 导出文件名(默认 'table_export.csv')
142
+ * @param batchSize - 每批处理行数(默认 1000)
143
+ * @param excludeHidden - 是否排除隐藏行/列
144
+ * @param progressCallback - 进度回调函数
145
+ * @param withBom - 是否添加 UTF-8 BOM
146
+ */
147
+ export declare function export_table_to_csv_batch(tableId: string, tbodyId?: string | null, filename?: string | null, batchSize?: number | null, excludeHidden?: boolean | null, progressCallback?: ProgressCallback | null, withBom?: boolean | null): Promise<void>;
148
+ /**
149
+ * 分批异步导出 HTML 表格为 XLSX 文件
150
+ *
151
+ * @param tableId - 要导出的 HTML 表格元素的 ID
152
+ * @param tbodyId - 可选的独立 tbody ID
153
+ * @param filename - 导出文件名(默认 'table_export.xlsx')
154
+ * @param batchSize - 每批处理行数(默认 1000)
155
+ * @param excludeHidden - 是否排除隐藏行/列
156
+ * @param progressCallback - 进度回调函数
157
+ */
158
+ export declare function export_table_to_xlsx_batch(tableId: string, tbodyId?: string | null, filename?: string | null, batchSize?: number | null, excludeHidden?: boolean | null, progressCallback?: ProgressCallback | null): Promise<void>;
159
+ /**
160
+ * 多工作表分批异步导出为 XLSX 文件
161
+ *
162
+ * @param sheets - Sheet 配置数组
163
+ * @param filename - 导出文件名(默认 'table_export.xlsx')
164
+ * @param batchSize - 每批处理行数(默认 1000)
165
+ * @param progressCallback - 进度回调函数
166
+ */
167
+ export declare function export_tables_to_xlsx_batch(sheets: BatchSheetConfig[], filename?: string | null, batchSize?: number | null, progressCallback?: ProgressCallback | null): Promise<void>;
168
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@bsg-export/types",
3
+ "version": "1.0.6",
4
+ "description": "belobog-stellar-grid 的严格 TypeScript 类型定义",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "typecheck": "tsc --noEmit"
20
+ },
21
+ "keywords": [
22
+ "belobog",
23
+ "stellar-grid",
24
+ "types",
25
+ "typescript"
26
+ ],
27
+ "author": "Kurisu <makise_kurisuu@outlook.jp>",
28
+ "license": "MIT OR Apache-2.0",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://github.com/kurisu994/belobog-stellar-grid",
32
+ "directory": "packages/types"
33
+ },
34
+ "devDependencies": {
35
+ "typescript": "^5.7.0"
36
+ }
37
+ }