@agile-team/mach-report 2.4.0 → 2.5.0
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.
- package/README.md +31 -2
- package/dist/ReportPreview-CBKLI--k.js +2188 -0
- package/dist/ReportPreview-ClM8h0pM.cjs +6 -0
- package/dist/{plugin-DRnvIbdP.js → plugin-DDLcFWlk.js} +1 -1
- package/dist/{plugin-BkK2mm_p.cjs → plugin-DMPLDpBY.cjs} +1 -1
- package/dist/style.css +1 -1
- package/dist/vue/async.d.cts +95 -0
- package/dist/vue/async.d.ts +95 -0
- package/dist/vue/index.d.cts +139 -1
- package/dist/vue/index.d.ts +139 -1
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +36 -34
- package/dist/xlsx.cjs +1 -1
- package/dist/xlsx.js +1 -1
- package/package.json +1 -1
- package/dist/ReportPreview-CL9J9MEE.js +0 -1907
- package/dist/ReportPreview-DJvv3h8m.cjs +0 -6
package/dist/vue/index.d.ts
CHANGED
|
@@ -48,6 +48,19 @@ showPdfWindow: {
|
|
|
48
48
|
type: BooleanConstructor;
|
|
49
49
|
default: undefined;
|
|
50
50
|
};
|
|
51
|
+
showSettings: {
|
|
52
|
+
type: BooleanConstructor;
|
|
53
|
+
default: undefined;
|
|
54
|
+
};
|
|
55
|
+
toolbar: {
|
|
56
|
+
type: PropType<MachReportToolbarOptions>;
|
|
57
|
+
default: undefined;
|
|
58
|
+
};
|
|
59
|
+
/** 保留表头的零行业务结果;不改变计划和导出内容。 */
|
|
60
|
+
emptyState: {
|
|
61
|
+
type: PropType<boolean | ReportEmptyState>;
|
|
62
|
+
default: boolean;
|
|
63
|
+
};
|
|
51
64
|
/** 页间距(px);不传走配置中心 */
|
|
52
65
|
gapPx: {
|
|
53
66
|
type: NumberConstructor;
|
|
@@ -111,6 +124,7 @@ loaded: (pageCount: number) => any;
|
|
|
111
124
|
warning: (message: string) => any;
|
|
112
125
|
"cell-edit": (edit: ReportCellEdit_2) => any;
|
|
113
126
|
"template-import": (result: ExcelImportResult) => any;
|
|
127
|
+
"preferences-change": (preferences: Readonly<ReportPreviewPreferences>) => any;
|
|
114
128
|
}, string, PublicProps, Readonly<ExtractPropTypes< {
|
|
115
129
|
reportId: {
|
|
116
130
|
type: PropType<string | string[] | null>;
|
|
@@ -141,6 +155,19 @@ showPdfWindow: {
|
|
|
141
155
|
type: BooleanConstructor;
|
|
142
156
|
default: undefined;
|
|
143
157
|
};
|
|
158
|
+
showSettings: {
|
|
159
|
+
type: BooleanConstructor;
|
|
160
|
+
default: undefined;
|
|
161
|
+
};
|
|
162
|
+
toolbar: {
|
|
163
|
+
type: PropType<MachReportToolbarOptions>;
|
|
164
|
+
default: undefined;
|
|
165
|
+
};
|
|
166
|
+
/** 保留表头的零行业务结果;不改变计划和导出内容。 */
|
|
167
|
+
emptyState: {
|
|
168
|
+
type: PropType<boolean | ReportEmptyState>;
|
|
169
|
+
default: boolean;
|
|
170
|
+
};
|
|
144
171
|
/** 页间距(px);不传走配置中心 */
|
|
145
172
|
gapPx: {
|
|
146
173
|
type: NumberConstructor;
|
|
@@ -192,6 +219,7 @@ onLoaded?: ((pageCount: number) => any) | undefined;
|
|
|
192
219
|
onWarning?: ((message: string) => any) | undefined;
|
|
193
220
|
"onCell-edit"?: ((edit: ReportCellEdit_2) => any) | undefined;
|
|
194
221
|
"onTemplate-import"?: ((result: ExcelImportResult) => any) | undefined;
|
|
222
|
+
"onPreferences-change"?: ((preferences: Readonly<ReportPreviewPreferences>) => any) | undefined;
|
|
195
223
|
}>, {
|
|
196
224
|
editable: boolean | ReportEditingOptions;
|
|
197
225
|
height: string;
|
|
@@ -202,10 +230,13 @@ debug: boolean;
|
|
|
202
230
|
showExport: boolean;
|
|
203
231
|
showPrint: boolean;
|
|
204
232
|
showPdfWindow: boolean;
|
|
233
|
+
showSettings: boolean;
|
|
205
234
|
showParams: boolean;
|
|
235
|
+
toolbar: MachReportToolbarOptions;
|
|
206
236
|
messages: Partial<MachReportMessages>;
|
|
207
237
|
excelImport: boolean | ExcelImportOptions;
|
|
208
238
|
autoLoad: boolean;
|
|
239
|
+
emptyState: boolean | ReportEmptyState;
|
|
209
240
|
preset: string;
|
|
210
241
|
paramDefs: ReportParamDef[] | undefined;
|
|
211
242
|
fetcher: PlanFetcher | null;
|
|
@@ -234,6 +265,12 @@ declare type __VLS_Props = {
|
|
|
234
265
|
};
|
|
235
266
|
thumbsVisible: boolean;
|
|
236
267
|
showImport?: boolean;
|
|
268
|
+
showSearch?: boolean;
|
|
269
|
+
showThumbnails?: boolean;
|
|
270
|
+
showZoom?: boolean;
|
|
271
|
+
exportFormats?: readonly ReportExportFormat[];
|
|
272
|
+
showSettings?: boolean;
|
|
273
|
+
settingsOpen?: boolean;
|
|
237
274
|
busy?: boolean;
|
|
238
275
|
};
|
|
239
276
|
|
|
@@ -248,6 +285,7 @@ declare type __VLS_Props_2 = {
|
|
|
248
285
|
declare function __VLS_template(): {
|
|
249
286
|
attrs: Partial<{}>;
|
|
250
287
|
slots: {
|
|
288
|
+
settings?(_: {}): any;
|
|
251
289
|
default?(_: {}): any;
|
|
252
290
|
};
|
|
253
291
|
refs: {
|
|
@@ -944,6 +982,9 @@ export declare interface MachReportDefaults {
|
|
|
944
982
|
showExport?: boolean;
|
|
945
983
|
showPrint?: boolean;
|
|
946
984
|
showPdfWindow?: boolean;
|
|
985
|
+
/** 设置入口默认显示;可在其中按需启用阅读及输出工具。 */
|
|
986
|
+
showSettings?: boolean;
|
|
987
|
+
toolbar?: MachReportToolbarOptions;
|
|
947
988
|
/** 参数面板显隐(有参数定义且未显式关闭时显示;缺省 true) */
|
|
948
989
|
showParams?: boolean;
|
|
949
990
|
/** 页间距 px */
|
|
@@ -1054,6 +1095,20 @@ export declare interface MachReportMessages {
|
|
|
1054
1095
|
editInvalidNumber?: string;
|
|
1055
1096
|
editInvalidBoolean?: string;
|
|
1056
1097
|
editConflict?: string;
|
|
1098
|
+
settings?: string;
|
|
1099
|
+
settingsDisplay?: string;
|
|
1100
|
+
settingsExport?: string;
|
|
1101
|
+
settingsData?: string;
|
|
1102
|
+
settingsUnavailable?: string;
|
|
1103
|
+
settingsReset?: string;
|
|
1104
|
+
settingsClose?: string;
|
|
1105
|
+
search?: string;
|
|
1106
|
+
zoom?: string;
|
|
1107
|
+
settingsLocal?: string;
|
|
1108
|
+
editingLocal?: string;
|
|
1109
|
+
editingSaved?: string;
|
|
1110
|
+
importLocal?: string;
|
|
1111
|
+
emptyDescription?: string;
|
|
1057
1112
|
}
|
|
1058
1113
|
|
|
1059
1114
|
/**
|
|
@@ -1121,6 +1176,18 @@ export declare const MachReportPreview: {
|
|
|
1121
1176
|
type: BooleanConstructor;
|
|
1122
1177
|
default: undefined;
|
|
1123
1178
|
};
|
|
1179
|
+
showSettings: {
|
|
1180
|
+
type: BooleanConstructor;
|
|
1181
|
+
default: undefined;
|
|
1182
|
+
};
|
|
1183
|
+
toolbar: {
|
|
1184
|
+
type: PropType<MachReportToolbarOptions>;
|
|
1185
|
+
default: undefined;
|
|
1186
|
+
};
|
|
1187
|
+
emptyState: {
|
|
1188
|
+
type: PropType<boolean | ReportEmptyState>;
|
|
1189
|
+
default: boolean;
|
|
1190
|
+
};
|
|
1124
1191
|
gapPx: {
|
|
1125
1192
|
type: NumberConstructor;
|
|
1126
1193
|
default: undefined;
|
|
@@ -1166,6 +1233,7 @@ export declare const MachReportPreview: {
|
|
|
1166
1233
|
onWarning?: ((message: string) => any) | undefined;
|
|
1167
1234
|
"onCell-edit"?: ((edit: ReportCellEdit_2) => any) | undefined;
|
|
1168
1235
|
"onTemplate-import"?: ((result: ExcelImportResult_2) => any) | undefined;
|
|
1236
|
+
"onPreferences-change"?: ((preferences: Readonly<ReportPreviewPreferences>) => any) | undefined;
|
|
1169
1237
|
}>, {
|
|
1170
1238
|
reload: () => Promise<void>;
|
|
1171
1239
|
print: () => Promise<void>;
|
|
@@ -1189,6 +1257,7 @@ export declare const MachReportPreview: {
|
|
|
1189
1257
|
warning: (message: string) => any;
|
|
1190
1258
|
"cell-edit": (edit: ReportCellEdit_2) => any;
|
|
1191
1259
|
"template-import": (result: ExcelImportResult_2) => any;
|
|
1260
|
+
"preferences-change": (preferences: Readonly<ReportPreviewPreferences>) => any;
|
|
1192
1261
|
}, PublicProps, {
|
|
1193
1262
|
editable: boolean | ReportEditingOptions;
|
|
1194
1263
|
height: string;
|
|
@@ -1199,10 +1268,13 @@ export declare const MachReportPreview: {
|
|
|
1199
1268
|
showExport: boolean;
|
|
1200
1269
|
showPrint: boolean;
|
|
1201
1270
|
showPdfWindow: boolean;
|
|
1271
|
+
showSettings: boolean;
|
|
1202
1272
|
showParams: boolean;
|
|
1273
|
+
toolbar: MachReportToolbarOptions;
|
|
1203
1274
|
messages: Partial<MachReportMessages>;
|
|
1204
1275
|
excelImport: boolean | ExcelImportOptions_2;
|
|
1205
1276
|
autoLoad: boolean;
|
|
1277
|
+
emptyState: boolean | ReportEmptyState;
|
|
1206
1278
|
preset: string;
|
|
1207
1279
|
paramDefs: ReportParamDef[] | undefined;
|
|
1208
1280
|
fetcher: PlanFetcher | null;
|
|
@@ -1247,6 +1319,18 @@ export declare const MachReportPreview: {
|
|
|
1247
1319
|
type: BooleanConstructor;
|
|
1248
1320
|
default: undefined;
|
|
1249
1321
|
};
|
|
1322
|
+
showSettings: {
|
|
1323
|
+
type: BooleanConstructor;
|
|
1324
|
+
default: undefined;
|
|
1325
|
+
};
|
|
1326
|
+
toolbar: {
|
|
1327
|
+
type: PropType<MachReportToolbarOptions>;
|
|
1328
|
+
default: undefined;
|
|
1329
|
+
};
|
|
1330
|
+
emptyState: {
|
|
1331
|
+
type: PropType<boolean | ReportEmptyState>;
|
|
1332
|
+
default: boolean;
|
|
1333
|
+
};
|
|
1250
1334
|
gapPx: {
|
|
1251
1335
|
type: NumberConstructor;
|
|
1252
1336
|
default: undefined;
|
|
@@ -1292,6 +1376,7 @@ export declare const MachReportPreview: {
|
|
|
1292
1376
|
onWarning?: ((message: string) => any) | undefined;
|
|
1293
1377
|
"onCell-edit"?: ((edit: ReportCellEdit_2) => any) | undefined;
|
|
1294
1378
|
"onTemplate-import"?: ((result: ExcelImportResult_2) => any) | undefined;
|
|
1379
|
+
"onPreferences-change"?: ((preferences: Readonly<ReportPreviewPreferences>) => any) | undefined;
|
|
1295
1380
|
}>, {
|
|
1296
1381
|
reload: () => Promise<void>;
|
|
1297
1382
|
print: () => Promise<void>;
|
|
@@ -1316,10 +1401,13 @@ export declare const MachReportPreview: {
|
|
|
1316
1401
|
showExport: boolean;
|
|
1317
1402
|
showPrint: boolean;
|
|
1318
1403
|
showPdfWindow: boolean;
|
|
1404
|
+
showSettings: boolean;
|
|
1319
1405
|
showParams: boolean;
|
|
1406
|
+
toolbar: MachReportToolbarOptions;
|
|
1320
1407
|
messages: Partial<MachReportMessages>;
|
|
1321
1408
|
excelImport: boolean | ExcelImportOptions_2;
|
|
1322
1409
|
autoLoad: boolean;
|
|
1410
|
+
emptyState: boolean | ReportEmptyState;
|
|
1323
1411
|
preset: string;
|
|
1324
1412
|
paramDefs: ReportParamDef[] | undefined;
|
|
1325
1413
|
fetcher: PlanFetcher | null;
|
|
@@ -1356,6 +1444,18 @@ showPdfWindow: {
|
|
|
1356
1444
|
type: BooleanConstructor;
|
|
1357
1445
|
default: undefined;
|
|
1358
1446
|
};
|
|
1447
|
+
showSettings: {
|
|
1448
|
+
type: BooleanConstructor;
|
|
1449
|
+
default: undefined;
|
|
1450
|
+
};
|
|
1451
|
+
toolbar: {
|
|
1452
|
+
type: PropType<MachReportToolbarOptions>;
|
|
1453
|
+
default: undefined;
|
|
1454
|
+
};
|
|
1455
|
+
emptyState: {
|
|
1456
|
+
type: PropType<boolean | ReportEmptyState>;
|
|
1457
|
+
default: boolean;
|
|
1458
|
+
};
|
|
1359
1459
|
gapPx: {
|
|
1360
1460
|
type: NumberConstructor;
|
|
1361
1461
|
default: undefined;
|
|
@@ -1401,6 +1501,7 @@ onLoaded?: ((pageCount: number) => any) | undefined;
|
|
|
1401
1501
|
onWarning?: ((message: string) => any) | undefined;
|
|
1402
1502
|
"onCell-edit"?: ((edit: ReportCellEdit_2) => any) | undefined;
|
|
1403
1503
|
"onTemplate-import"?: ((result: ExcelImportResult_2) => any) | undefined;
|
|
1504
|
+
"onPreferences-change"?: ((preferences: Readonly<ReportPreviewPreferences>) => any) | undefined;
|
|
1404
1505
|
}>, {
|
|
1405
1506
|
reload: () => Promise<void>;
|
|
1406
1507
|
print: () => Promise<void>;
|
|
@@ -1424,6 +1525,7 @@ loaded: (pageCount: number) => any;
|
|
|
1424
1525
|
warning: (message: string) => any;
|
|
1425
1526
|
"cell-edit": (edit: ReportCellEdit_2) => any;
|
|
1426
1527
|
"template-import": (result: ExcelImportResult_2) => any;
|
|
1528
|
+
"preferences-change": (preferences: Readonly<ReportPreviewPreferences>) => any;
|
|
1427
1529
|
}, string, {
|
|
1428
1530
|
editable: boolean | ReportEditingOptions;
|
|
1429
1531
|
height: string;
|
|
@@ -1434,15 +1536,19 @@ debug: boolean;
|
|
|
1434
1536
|
showExport: boolean;
|
|
1435
1537
|
showPrint: boolean;
|
|
1436
1538
|
showPdfWindow: boolean;
|
|
1539
|
+
showSettings: boolean;
|
|
1437
1540
|
showParams: boolean;
|
|
1541
|
+
toolbar: MachReportToolbarOptions;
|
|
1438
1542
|
messages: Partial<MachReportMessages>;
|
|
1439
1543
|
excelImport: boolean | ExcelImportOptions_2;
|
|
1440
1544
|
autoLoad: boolean;
|
|
1545
|
+
emptyState: boolean | ReportEmptyState;
|
|
1441
1546
|
preset: string;
|
|
1442
1547
|
paramDefs: ReportParamDef[] | undefined;
|
|
1443
1548
|
fetcher: PlanFetcher | null;
|
|
1444
1549
|
}, {}, string, {}, { [K in keyof GlobalComponents]: GlobalComponents[K] }, { [K in keyof GlobalDirectives]: GlobalDirectives[K] }, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
|
|
1445
1550
|
$slots: {
|
|
1551
|
+
settings?(_: {}): any;
|
|
1446
1552
|
default?(_: {}): any;
|
|
1447
1553
|
};
|
|
1448
1554
|
});
|
|
@@ -1494,6 +1600,18 @@ export declare interface MachReportTheme {
|
|
|
1494
1600
|
btnActiveBg: string;
|
|
1495
1601
|
}
|
|
1496
1602
|
|
|
1603
|
+
export declare interface MachReportToolbarOptions {
|
|
1604
|
+
search?: boolean;
|
|
1605
|
+
thumbnails?: boolean;
|
|
1606
|
+
zoom?: boolean;
|
|
1607
|
+
/** 编辑能力由 editable 授权;此项仅设置初始交互偏好,默认 true(兼容旧行为)。 */
|
|
1608
|
+
editing?: boolean;
|
|
1609
|
+
/** 导入能力由 excelImport 授权;此项仅设置初始交互偏好,默认 true。 */
|
|
1610
|
+
excelImport?: boolean;
|
|
1611
|
+
/** 未传时显示全部已有出口;空数组表示不提供导出工具。 */
|
|
1612
|
+
exportFormats?: ReportExportFormat[];
|
|
1613
|
+
}
|
|
1614
|
+
|
|
1497
1615
|
export declare function normalizeReportIds(reportId: ReportIdInput): string[];
|
|
1498
1616
|
|
|
1499
1617
|
declare function openPdfWindow(): void;
|
|
@@ -1712,6 +1830,10 @@ declare interface RenderPlan {
|
|
|
1712
1830
|
pages: PlanPage[];
|
|
1713
1831
|
}
|
|
1714
1832
|
|
|
1833
|
+
export declare const REPORT_EXPORT_FORMATS: readonly ReportExportFormat[];
|
|
1834
|
+
|
|
1835
|
+
export declare const REPORT_PREVIEW_TOOLS: readonly ["search", "thumbnails", "zoom", ...ReportExportFormat[], "print", "pdfWindow", "editing", "import"];
|
|
1836
|
+
|
|
1715
1837
|
/** 预览中的物理坐标;合并单元格使用左上角坐标。 */
|
|
1716
1838
|
declare interface ReportCellAddress {
|
|
1717
1839
|
pageIndex: number;
|
|
@@ -1806,6 +1928,15 @@ export declare interface ReportEditOperation {
|
|
|
1806
1928
|
signal: AbortSignal;
|
|
1807
1929
|
}
|
|
1808
1930
|
|
|
1931
|
+
/** 报表含表头但业务行为空时,由接入方明确声明;组件不推测业务数据。 */
|
|
1932
|
+
export declare interface ReportEmptyState {
|
|
1933
|
+
title?: string;
|
|
1934
|
+
description?: string;
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
/** 输出能力仍由宿主授权;工具偏好只决定当前预览实例的可见与启用状态。 */
|
|
1938
|
+
export declare type ReportExportFormat = "html" | "pdf" | "xlsx" | "png" | "word";
|
|
1939
|
+
|
|
1809
1940
|
/** 保持 Promise<RenderPlan> 契约;元数据为可选,旧业务 fetcher 无需改造。 */
|
|
1810
1941
|
declare interface ReportFetcher {
|
|
1811
1942
|
(input: ReportFetchInput): Promise<RenderPlan>;
|
|
@@ -1889,6 +2020,10 @@ onQuery?: (() => any) | undefined;
|
|
|
1889
2020
|
|
|
1890
2021
|
export declare const ReportPreview: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
1891
2022
|
|
|
2023
|
+
export declare type ReportPreviewPreferences = Record<ReportPreviewTool, boolean>;
|
|
2024
|
+
|
|
2025
|
+
export declare type ReportPreviewTool = typeof REPORT_PREVIEW_TOOLS[number];
|
|
2026
|
+
|
|
1892
2027
|
declare type ReportRegistry = Record<string, ReportDefinition>;
|
|
1893
2028
|
|
|
1894
2029
|
declare interface ReportTemplate {
|
|
@@ -1925,6 +2060,7 @@ goto: (page: number) => any;
|
|
|
1925
2060
|
"search-toggle": () => any;
|
|
1926
2061
|
"thumbs-toggle": () => any;
|
|
1927
2062
|
"import-excel": () => any;
|
|
2063
|
+
"settings-toggle": () => any;
|
|
1928
2064
|
}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
1929
2065
|
onPrint?: (() => any) | undefined;
|
|
1930
2066
|
onExport?: ((format: "html" | "png" | "pdf" | "xlsx" | "word") => any) | undefined;
|
|
@@ -1936,13 +2072,14 @@ onGoto?: ((page: number) => any) | undefined;
|
|
|
1936
2072
|
"onSearch-toggle"?: (() => any) | undefined;
|
|
1937
2073
|
"onThumbs-toggle"?: (() => any) | undefined;
|
|
1938
2074
|
"onImport-excel"?: (() => any) | undefined;
|
|
2075
|
+
"onSettings-toggle"?: (() => any) | undefined;
|
|
1939
2076
|
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
|
|
1940
2077
|
searchInputRef: HTMLInputElement;
|
|
1941
2078
|
}, HTMLDivElement>;
|
|
1942
2079
|
|
|
1943
2080
|
export declare function resolveConfig(config: MachReportConfig | null | undefined, presetName?: string): ResolvedConfig;
|
|
1944
2081
|
|
|
1945
|
-
export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "showParams" | "gapPx">> & {
|
|
2082
|
+
export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "showSettings" | "showParams" | "gapPx">> & {
|
|
1946
2083
|
pdfFontUrl: string;
|
|
1947
2084
|
theme: MachReportTheme;
|
|
1948
2085
|
messages: MachReportMessages;
|
|
@@ -1951,6 +2088,7 @@ export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExpo
|
|
|
1951
2088
|
xlsx: XlsxRenderOptions;
|
|
1952
2089
|
editable: boolean | ReportEditingOptions;
|
|
1953
2090
|
excelImport: boolean | ExcelImportOptions;
|
|
2091
|
+
toolbar: MachReportToolbarOptions;
|
|
1954
2092
|
};
|
|
1955
2093
|
|
|
1956
2094
|
declare interface RichParagraph {
|
package/dist/vue-async.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-DMPLDpBY.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-ClM8h0pM.cjs")).then(e=>e.ReportPreview$1)}const t={install(e,o={}){r.machReportPlugin.install(e,o)}};exports.MachReportPreview=r.MachReportPreview;exports.default=t;exports.machReportAsyncPlugin=t;exports.preloadMachReport=i;
|
package/dist/vue-async.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { m as o } from "./plugin-
|
|
2
|
-
import { M as l } from "./plugin-
|
|
1
|
+
import { m as o } from "./plugin-DDLcFWlk.js";
|
|
2
|
+
import { M as l } from "./plugin-DDLcFWlk.js";
|
|
3
3
|
function a() {
|
|
4
|
-
return import("./ReportPreview-
|
|
4
|
+
return import("./ReportPreview-CBKLI--k.js").then((t) => t.w);
|
|
5
5
|
}
|
|
6
6
|
const n = {
|
|
7
7
|
install(t, r = {}) {
|
package/dist/vue.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@agile-team/mach-report"),e=require("./ReportPreview-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@agile-team/mach-report"),e=require("./ReportPreview-ClM8h0pM.cjs"),c=require("./plugin-DMPLDpBY.cjs"),u=require("vue");function p(o){const r=s.createReportSource(o),i=async n=>{if(n.reportIds.length===0)throw new e.PlanLoadError("缺少报表 ID");for(const t of n.reportIds)if(!Object.prototype.hasOwnProperty.call(o,t)||!o[t])throw new e.PlanLoadError(`本地模板 ${t} 不存在`);return r(n)};return i.getParamDefs=r.getParamDefs,i}const R=Object.freeze({loading:!1,hasPlan:!1,pageCount:0,currentPage:1,exporting:null,printing:!1,canExport:!1,canPrint:!1,error:null,pdfFont:Object.freeze({status:"unchecked",fontUrl:""})});function P(){const o=u.shallowRef(null),r=()=>o.value?.state??R,i=Object.freeze({get loading(){return r().loading},get hasPlan(){return r().hasPlan},get pageCount(){return r().pageCount},get currentPage(){return r().currentPage},get exporting(){return r().exporting},get printing(){return r().printing},get canExport(){return r().canExport},get canPrint(){return r().canPrint},get error(){return r().error},get pdfFont(){return r().pdfFont},get editing(){return r().editing??!1},get saving(){return r().saving??!1},get importing(){return r().importing??!1},get dirty(){return r().dirty??!1}});function n(){if(!o.value)throw new e.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return o.value}return{ref(t){const a=t;o.value=a&&typeof a.reload=="function"&&typeof a.print=="function"&&typeof a.exportAs=="function"&&typeof a.openPdfWindow=="function"&&typeof a.gotoPage=="function"&&typeof a.setParams=="function"?a:null},ready:u.computed(()=>o.value!==null),state:i,async checkPdfFont(){const t=n();return t.checkPdfFont?t.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},async reload(){await n().reload()},async print(){await n().print()},async exportAs(t){await n().exportAs(t)},openPdfWindow(){n().openPdfWindow()},gotoPage(t){n().gotoPage(t)},async setParams(t,a){await n().setParams(t,a)},async importExcel(t,a){const l=n();if(!l.importExcel)throw new e.MachReportError("config","旧自定义控制器未提供 Excel 导入");return l.importExcel(t,a)},getPlan(){return n().getPlan?.()??null},getChanges(){return n().getChanges?.()??[]}}}function E(){return u.inject(c.MACH_REPORT_CONTROLLER_KEY,null)}exports.DEFAULT_MESSAGES=e.DEFAULT_MESSAGES;exports.DEFAULT_THEME=e.DEFAULT_THEME;exports.MachReportError=e.MachReportError;exports.PlanLoadError=e.PlanLoadError;exports.REPORT_EXPORT_FORMATS=e.REPORT_EXPORT_FORMATS;exports.REPORT_PREVIEW_TOOLS=e.REPORT_PREVIEW_TOOLS;exports.ReportParamPanel=e.ReportParamPanel;exports.ReportPreview=e.ReportPreview;exports.ReportToolbar=e.ReportToolbar;exports.SILENT_LOGGER=e.SILENT_LOGGER;exports.buildPrintDocument=e.buildPrintDocument;exports.buildWordHtml=e.buildWordHtml;exports.createDefaultPdfExporter=e.createDefaultPdfExporter;exports.createFetchRequest=e.createFetchRequest;exports.defineMachReportConfig=e.defineMachReportConfig;exports.defineMachReportPreset=e.defineMachReportPreset;exports.joinReportIds=e.joinReportIds;exports.normalizeReportIds=e.normalizeReportIds;exports.printPlans=e.printPlans;exports.provideMachReportConfig=e.provideMachReportConfig;exports.resolveConfig=e.resolveConfig;exports.themeToCssVars=e.themeToCssVars;exports.toErrorDetail=e.toErrorDetail;exports.useMachReportConfig=e.useMachReportConfig;exports.usePageWindow=e.usePageWindow;exports.usePrintExport=e.usePrintExport;exports.useZoom=e.useZoom;exports.MACH_REPORT_CONFIG_KEY=c.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=c.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=c.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=c.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=c.MachReportPreview;exports.machReportPlugin=c.machReportPlugin;exports.createLocalFetcher=p;exports.useMachReport=P;exports.useReportPreview=E;Object.keys(s).forEach(o=>{o!=="default"&&!Object.prototype.hasOwnProperty.call(exports,o)&&Object.defineProperty(exports,o,{enumerable:!0,get:()=>s[o]})});
|
package/dist/vue.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createReportSource as u } from "@agile-team/mach-report";
|
|
2
2
|
export * from "@agile-team/mach-report";
|
|
3
|
-
import { P as i, M as c } from "./ReportPreview-
|
|
4
|
-
import { D as
|
|
5
|
-
import { a as f } from "./plugin-
|
|
6
|
-
import { b as
|
|
3
|
+
import { P as i, M as c } from "./ReportPreview-CBKLI--k.js";
|
|
4
|
+
import { D as y, a as C, R as M, b as v, c as F, d as A, e as D, S, f as b, g as L, h as I, i as j, j as H, k as W, l as k, n as Y, p as z, m as G, r as K, t as U, o as N, u as q, q as V, s as X, v as Z } from "./ReportPreview-CBKLI--k.js";
|
|
5
|
+
import { a as f } from "./plugin-DDLcFWlk.js";
|
|
6
|
+
import { b as B, c as J, d as Q, M as ee, m as te } from "./plugin-DDLcFWlk.js";
|
|
7
7
|
import { shallowRef as l, computed as p, inject as g } from "vue";
|
|
8
8
|
function h(o) {
|
|
9
9
|
const e = u(o), a = async (r) => {
|
|
@@ -119,42 +119,44 @@ function w() {
|
|
|
119
119
|
}
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function T() {
|
|
123
123
|
return g(f, null);
|
|
124
124
|
}
|
|
125
125
|
export {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
y as DEFAULT_MESSAGES,
|
|
127
|
+
C as DEFAULT_THEME,
|
|
128
|
+
B as MACH_REPORT_CONFIG_KEY,
|
|
129
129
|
f as MACH_REPORT_CONTROLLER_KEY,
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
J as MACH_REPORT_FETCHER_KEY,
|
|
131
|
+
Q as MACH_REPORT_PDF_EXPORTER_KEY,
|
|
132
132
|
c as MachReportError,
|
|
133
|
-
|
|
133
|
+
ee as MachReportPreview,
|
|
134
134
|
i as PlanLoadError,
|
|
135
|
-
|
|
136
|
-
v as
|
|
137
|
-
F as
|
|
138
|
-
A as
|
|
139
|
-
D as
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
135
|
+
M as REPORT_EXPORT_FORMATS,
|
|
136
|
+
v as REPORT_PREVIEW_TOOLS,
|
|
137
|
+
F as ReportParamPanel,
|
|
138
|
+
A as ReportPreview,
|
|
139
|
+
D as ReportToolbar,
|
|
140
|
+
S as SILENT_LOGGER,
|
|
141
|
+
b as buildPrintDocument,
|
|
142
|
+
L as buildWordHtml,
|
|
143
|
+
I as createDefaultPdfExporter,
|
|
144
|
+
j as createFetchRequest,
|
|
143
145
|
h as createLocalFetcher,
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
146
|
+
H as defineMachReportConfig,
|
|
147
|
+
W as defineMachReportPreset,
|
|
148
|
+
k as joinReportIds,
|
|
149
|
+
te as machReportPlugin,
|
|
150
|
+
Y as normalizeReportIds,
|
|
151
|
+
z as printPlans,
|
|
152
|
+
G as provideMachReportConfig,
|
|
153
|
+
K as resolveConfig,
|
|
154
|
+
U as themeToCssVars,
|
|
155
|
+
N as toErrorDetail,
|
|
154
156
|
w as useMachReport,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
q as useMachReportConfig,
|
|
158
|
+
V as usePageWindow,
|
|
159
|
+
X as usePrintExport,
|
|
160
|
+
T as useReportPreview,
|
|
161
|
+
Z as useZoom
|
|
160
162
|
};
|
package/dist/xlsx.cjs
CHANGED
|
@@ -26,5 +26,5 @@ use chrome, FireFox or Internet Explorer 11`)}var r=s("safe-buffer"),t=s("random
|
|
|
26
26
|
`)):z=m.stylize("[Circular]","special")),A(j)){if(R&&E.match(/^\d+$/))return z;(j=JSON.stringify(""+E)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(j=j.substr(1,j.length-2),j=m.stylize(j,"name")):(j=j.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),j=m.stylize(j,"string"))}return j+": "+z}function u(m){return Array.isArray(m)}function p(m){return typeof m=="boolean"}function d(m){return m===null}function w(m){return typeof m=="number"}function S(m){return typeof m=="string"}function A(m){return m===void 0}function N(m){return L(m)&&U(m)==="[object RegExp]"}function L(m){return typeof m=="object"&&m!==null}function I(m){return L(m)&&U(m)==="[object Date]"}function P(m){return L(m)&&(U(m)==="[object Error]"||m instanceof Error)}function D(m){return typeof m=="function"}function U(m){return Object.prototype.toString.call(m)}function B(m){return m<10?"0"+m.toString(10):m.toString(10)}_.debuglog=function(m){if(A(r)&&(r=h.env.NODE_DEBUG||""),m=m.toUpperCase(),!t[m])if(new RegExp("\\b"+m+"\\b","i").test(r)){var b=h.pid;t[m]=function(){var g=_.format.apply(_,arguments);console.error("%s %d: %s",m,b,g)}}else t[m]=function(){};return t[m]},_.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},_.isArray=u,_.isBoolean=p,_.isNull=d,_.isNullOrUndefined=function(m){return m==null},_.isNumber=w,_.isString=S,_.isSymbol=function(m){return typeof m=="symbol"},_.isUndefined=A,_.isRegExp=N,_.isObject=L,_.isDate=I,_.isError=P,_.isFunction=D,_.isPrimitive=function(m){return m===null||typeof m=="boolean"||typeof m=="number"||typeof m=="string"||typeof m=="symbol"||m===void 0},_.isBuffer=s("./support/isBuffer");var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function C(){var m=new Date,b=[B(m.getHours()),B(m.getMinutes()),B(m.getSeconds())].join(":");return[m.getDate(),k[m.getMonth()],b].join(" ")}function v(m,b){return Object.prototype.hasOwnProperty.call(m,b)}_.log=function(){console.log("%s - %s",C(),_.format.apply(_,arguments))},_.inherits=s("inherits"),_._extend=function(m,b){if(!b||!L(b))return m;for(var g=Object.keys(b),y=g.length;y--;)m[g[y]]=b[g[y]];return m}}).call(this)}).call(this,s("_process"),typeof Kt.commonjsGlobal<"u"?Kt.commonjsGlobal:typeof self<"u"?self:typeof window<"u"?window:{})},{"./support/isBuffer":526,_process:467,inherits:525}],528:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),Object.defineProperty(_,"v1",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(_,"v3",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(_,"v4",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(_,"v5",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(_,"NIL",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(_,"version",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(_,"validate",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(_,"stringify",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(_,"parse",{enumerable:!0,get:function(){return i.default}});var h=f(s("./v1.js")),o=f(s("./v3.js")),a=f(s("./v4.js")),r=f(s("./v5.js")),t=f(s("./nil.js")),e=f(s("./version.js")),l=f(s("./validate.js")),n=f(s("./stringify.js")),i=f(s("./parse.js"));function f(c){return c&&c.__esModule?c:{default:c}}},{"./nil.js":530,"./parse.js":531,"./stringify.js":535,"./v1.js":536,"./v3.js":537,"./v4.js":539,"./v5.js":540,"./validate.js":541,"./version.js":542}],529:[function(s,x,_){function h(i){return 14+(i+64>>>9<<4)+1}function o(i,f){const c=(65535&i)+(65535&f);return(i>>16)+(f>>16)+(c>>16)<<16|65535&c}function a(i,f,c,u,p,d){return o((w=o(o(f,i),o(u,d)))<<(S=p)|w>>>32-S,c);var w,S}function r(i,f,c,u,p,d,w){return a(f&c|~f&u,i,f,p,d,w)}function t(i,f,c,u,p,d,w){return a(f&u|c&~u,i,f,p,d,w)}function e(i,f,c,u,p,d,w){return a(f^c^u,i,f,p,d,w)}function l(i,f,c,u,p,d,w){return a(c^(f|~u),i,f,p,d,w)}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var n=function(i){if(typeof i=="string"){const f=unescape(encodeURIComponent(i));i=new Uint8Array(f.length);for(let c=0;c<f.length;++c)i[c]=f.charCodeAt(c)}return(function(f){const c=[],u=32*f.length;for(let p=0;p<u;p+=8){const d=f[p>>5]>>>p%32&255,w=parseInt("0123456789abcdef".charAt(d>>>4&15)+"0123456789abcdef".charAt(15&d),16);c.push(w)}return c})((function(f,c){f[c>>5]|=128<<c%32,f[h(c)-1]=c;let u=1732584193,p=-271733879,d=-1732584194,w=271733878;for(let S=0;S<f.length;S+=16){const A=u,N=p,L=d,I=w;u=r(u,p,d,w,f[S],7,-680876936),w=r(w,u,p,d,f[S+1],12,-389564586),d=r(d,w,u,p,f[S+2],17,606105819),p=r(p,d,w,u,f[S+3],22,-1044525330),u=r(u,p,d,w,f[S+4],7,-176418897),w=r(w,u,p,d,f[S+5],12,1200080426),d=r(d,w,u,p,f[S+6],17,-1473231341),p=r(p,d,w,u,f[S+7],22,-45705983),u=r(u,p,d,w,f[S+8],7,1770035416),w=r(w,u,p,d,f[S+9],12,-1958414417),d=r(d,w,u,p,f[S+10],17,-42063),p=r(p,d,w,u,f[S+11],22,-1990404162),u=r(u,p,d,w,f[S+12],7,1804603682),w=r(w,u,p,d,f[S+13],12,-40341101),d=r(d,w,u,p,f[S+14],17,-1502002290),p=r(p,d,w,u,f[S+15],22,1236535329),u=t(u,p,d,w,f[S+1],5,-165796510),w=t(w,u,p,d,f[S+6],9,-1069501632),d=t(d,w,u,p,f[S+11],14,643717713),p=t(p,d,w,u,f[S],20,-373897302),u=t(u,p,d,w,f[S+5],5,-701558691),w=t(w,u,p,d,f[S+10],9,38016083),d=t(d,w,u,p,f[S+15],14,-660478335),p=t(p,d,w,u,f[S+4],20,-405537848),u=t(u,p,d,w,f[S+9],5,568446438),w=t(w,u,p,d,f[S+14],9,-1019803690),d=t(d,w,u,p,f[S+3],14,-187363961),p=t(p,d,w,u,f[S+8],20,1163531501),u=t(u,p,d,w,f[S+13],5,-1444681467),w=t(w,u,p,d,f[S+2],9,-51403784),d=t(d,w,u,p,f[S+7],14,1735328473),p=t(p,d,w,u,f[S+12],20,-1926607734),u=e(u,p,d,w,f[S+5],4,-378558),w=e(w,u,p,d,f[S+8],11,-2022574463),d=e(d,w,u,p,f[S+11],16,1839030562),p=e(p,d,w,u,f[S+14],23,-35309556),u=e(u,p,d,w,f[S+1],4,-1530992060),w=e(w,u,p,d,f[S+4],11,1272893353),d=e(d,w,u,p,f[S+7],16,-155497632),p=e(p,d,w,u,f[S+10],23,-1094730640),u=e(u,p,d,w,f[S+13],4,681279174),w=e(w,u,p,d,f[S],11,-358537222),d=e(d,w,u,p,f[S+3],16,-722521979),p=e(p,d,w,u,f[S+6],23,76029189),u=e(u,p,d,w,f[S+9],4,-640364487),w=e(w,u,p,d,f[S+12],11,-421815835),d=e(d,w,u,p,f[S+15],16,530742520),p=e(p,d,w,u,f[S+2],23,-995338651),u=l(u,p,d,w,f[S],6,-198630844),w=l(w,u,p,d,f[S+7],10,1126891415),d=l(d,w,u,p,f[S+14],15,-1416354905),p=l(p,d,w,u,f[S+5],21,-57434055),u=l(u,p,d,w,f[S+12],6,1700485571),w=l(w,u,p,d,f[S+3],10,-1894986606),d=l(d,w,u,p,f[S+10],15,-1051523),p=l(p,d,w,u,f[S+1],21,-2054922799),u=l(u,p,d,w,f[S+8],6,1873313359),w=l(w,u,p,d,f[S+15],10,-30611744),d=l(d,w,u,p,f[S+6],15,-1560198380),p=l(p,d,w,u,f[S+13],21,1309151649),u=l(u,p,d,w,f[S+4],6,-145523070),w=l(w,u,p,d,f[S+11],10,-1120210379),d=l(d,w,u,p,f[S+2],15,718787259),p=l(p,d,w,u,f[S+9],21,-343485551),u=o(u,A),p=o(p,N),d=o(d,L),w=o(w,I)}return[u,p,d,w]})((function(f){if(f.length===0)return[];const c=8*f.length,u=new Uint32Array(h(c));for(let p=0;p<c;p+=8)u[p>>5]|=(255&f[p/8])<<p%32;return u})(i),8*i.length))};_.default=n},{}],530:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0,_.default="00000000-0000-0000-0000-000000000000"},{}],531:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h,o=(h=s("./validate.js"))&&h.__esModule?h:{default:h},a=function(r){if(!(0,o.default)(r))throw TypeError("Invalid UUID");let t;const e=new Uint8Array(16);return e[0]=(t=parseInt(r.slice(0,8),16))>>>24,e[1]=t>>>16&255,e[2]=t>>>8&255,e[3]=255&t,e[4]=(t=parseInt(r.slice(9,13),16))>>>8,e[5]=255&t,e[6]=(t=parseInt(r.slice(14,18),16))>>>8,e[7]=255&t,e[8]=(t=parseInt(r.slice(19,23),16))>>>8,e[9]=255&t,e[10]=(t=parseInt(r.slice(24,36),16))/1099511627776&255,e[11]=t/4294967296&255,e[12]=t>>>24&255,e[13]=t>>>16&255,e[14]=t>>>8&255,e[15]=255&t,e};_.default=a},{"./validate.js":541}],532:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0,_.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},{}],533:[function(s,x,_){let h;Object.defineProperty(_,"__esModule",{value:!0}),_.default=function(){if(!h&&(h=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!h))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return h(o)};const o=new Uint8Array(16)},{}],534:[function(s,x,_){function h(r,t,e,l){switch(r){case 0:return t&e^~t&l;case 1:return t^e^l;case 2:return t&e^t&l^e&l;case 3:return t^e^l}}function o(r,t){return r<<t|r>>>32-t}Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var a=function(r){const t=[1518500249,1859775393,2400959708,3395469782],e=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof r=="string"){const f=unescape(encodeURIComponent(r));r=[];for(let c=0;c<f.length;++c)r.push(f.charCodeAt(c))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);const l=r.length/4+2,n=Math.ceil(l/16),i=new Array(n);for(let f=0;f<n;++f){const c=new Uint32Array(16);for(let u=0;u<16;++u)c[u]=r[64*f+4*u]<<24|r[64*f+4*u+1]<<16|r[64*f+4*u+2]<<8|r[64*f+4*u+3];i[f]=c}i[n-1][14]=8*(r.length-1)/Math.pow(2,32),i[n-1][14]=Math.floor(i[n-1][14]),i[n-1][15]=8*(r.length-1)&4294967295;for(let f=0;f<n;++f){const c=new Uint32Array(80);for(let A=0;A<16;++A)c[A]=i[f][A];for(let A=16;A<80;++A)c[A]=o(c[A-3]^c[A-8]^c[A-14]^c[A-16],1);let u=e[0],p=e[1],d=e[2],w=e[3],S=e[4];for(let A=0;A<80;++A){const N=Math.floor(A/20),L=o(u,5)+h(N,p,d,w)+S+t[N]+c[A]>>>0;S=w,w=d,d=o(p,30)>>>0,p=u,u=L}e[0]=e[0]+u>>>0,e[1]=e[1]+p>>>0,e[2]=e[2]+d>>>0,e[3]=e[3]+w>>>0,e[4]=e[4]+S>>>0}return[e[0]>>24&255,e[0]>>16&255,e[0]>>8&255,255&e[0],e[1]>>24&255,e[1]>>16&255,e[1]>>8&255,255&e[1],e[2]>>24&255,e[2]>>16&255,e[2]>>8&255,255&e[2],e[3]>>24&255,e[3]>>16&255,e[3]>>8&255,255&e[3],e[4]>>24&255,e[4]>>16&255,e[4]>>8&255,255&e[4]]};_.default=a},{}],535:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h,o=(h=s("./validate.js"))&&h.__esModule?h:{default:h};const a=[];for(let t=0;t<256;++t)a.push((t+256).toString(16).substr(1));var r=function(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;const l=(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase();if(!(0,o.default)(l))throw TypeError("Stringified UUID is invalid");return l};_.default=r},{"./validate.js":541}],536:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h=a(s("./rng.js")),o=a(s("./stringify.js"));function a(i){return i&&i.__esModule?i:{default:i}}let r,t,e=0,l=0;var n=function(i,f,c){let u=f&&c||0;const p=f||new Array(16);let d=(i=i||{}).node||r,w=i.clockseq!==void 0?i.clockseq:t;if(d==null||w==null){const P=i.random||(i.rng||h.default)();d==null&&(d=r=[1|P[0],P[1],P[2],P[3],P[4],P[5]]),w==null&&(w=t=16383&(P[6]<<8|P[7]))}let S=i.msecs!==void 0?i.msecs:Date.now(),A=i.nsecs!==void 0?i.nsecs:l+1;const N=S-e+(A-l)/1e4;if(N<0&&i.clockseq===void 0&&(w=w+1&16383),(N<0||S>e)&&i.nsecs===void 0&&(A=0),A>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");e=S,l=A,t=w,S+=122192928e5;const L=(1e4*(268435455&S)+A)%4294967296;p[u++]=L>>>24&255,p[u++]=L>>>16&255,p[u++]=L>>>8&255,p[u++]=255&L;const I=S/4294967296*1e4&268435455;p[u++]=I>>>8&255,p[u++]=255&I,p[u++]=I>>>24&15|16,p[u++]=I>>>16&255,p[u++]=w>>>8|128,p[u++]=255&w;for(let P=0;P<6;++P)p[u+P]=d[P];return f||(0,o.default)(p)};_.default=n},{"./rng.js":533,"./stringify.js":535}],537:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h=a(s("./v35.js")),o=a(s("./md5.js"));function a(t){return t&&t.__esModule?t:{default:t}}var r=(0,h.default)("v3",48,o.default);_.default=r},{"./md5.js":529,"./v35.js":538}],538:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=function(e,l,n){function i(f,c,u,p){if(typeof f=="string"&&(f=(function(w){w=unescape(encodeURIComponent(w));const S=[];for(let A=0;A<w.length;++A)S.push(w.charCodeAt(A));return S})(f)),typeof c=="string"&&(c=(0,o.default)(c)),c.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let d=new Uint8Array(16+f.length);if(d.set(c),d.set(f,c.length),d=n(d),d[6]=15&d[6]|l,d[8]=63&d[8]|128,u){p=p||0;for(let w=0;w<16;++w)u[p+w]=d[w];return u}return(0,h.default)(d)}try{i.name=e}catch{}return i.DNS=r,i.URL=t,i},_.URL=_.DNS=void 0;var h=a(s("./stringify.js")),o=a(s("./parse.js"));function a(e){return e&&e.__esModule?e:{default:e}}const r="6ba7b810-9dad-11d1-80b4-00c04fd430c8";_.DNS=r;const t="6ba7b811-9dad-11d1-80b4-00c04fd430c8";_.URL=t},{"./parse.js":531,"./stringify.js":535}],539:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h=a(s("./rng.js")),o=a(s("./stringify.js"));function a(t){return t&&t.__esModule?t:{default:t}}var r=function(t,e,l){const n=(t=t||{}).random||(t.rng||h.default)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){l=l||0;for(let i=0;i<16;++i)e[l+i]=n[i];return e}return(0,o.default)(n)};_.default=r},{"./rng.js":533,"./stringify.js":535}],540:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h=a(s("./v35.js")),o=a(s("./sha1.js"));function a(t){return t&&t.__esModule?t:{default:t}}var r=(0,h.default)("v5",80,o.default);_.default=r},{"./sha1.js":534,"./v35.js":538}],541:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h,o=(h=s("./regex.js"))&&h.__esModule?h:{default:h},a=function(r){return typeof r=="string"&&o.default.test(r)};_.default=a},{"./regex.js":532}],542:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.default=void 0;var h,o=(h=s("./validate.js"))&&h.__esModule?h:{default:h},a=function(r){if(!(0,o.default)(r))throw TypeError("Invalid UUID");return parseInt(r.substr(14,1),16)};_.default=a},{"./validate.js":541}],543:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.CHAR=`
|
|
27
27
|
\r --�𐀀-`,_.S=` \r
|
|
28
28
|
`,_.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",_.NAME_CHAR="-"+_.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.CHAR_RE=new RegExp("^["+_.CHAR+"]$","u"),_.S_RE=new RegExp("^["+_.S+"]+$","u"),_.NAME_START_CHAR_RE=new RegExp("^["+_.NAME_START_CHAR+"]$","u"),_.NAME_CHAR_RE=new RegExp("^["+_.NAME_CHAR+"]$","u"),_.NAME_RE=new RegExp("^["+_.NAME_START_CHAR+"]["+_.NAME_CHAR+"]*$","u"),_.NMTOKEN_RE=new RegExp("^["+_.NAME_CHAR+"]+$","u");function h(o){return o>=65&&o<=90||o>=97&&o<=122||o===58||o===95||o===8204||o===8205||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}_.S_LIST=[32,10,13,9],_.isChar=function(o){return o>=32&&o<=55295||o===10||o===13||o===9||o>=57344&&o<=65533||o>=65536&&o<=1114111},_.isS=function(o){return o===32||o===10||o===13||o===9},_.isNameStartChar=h,_.isNameChar=function(o){return h(o)||o>=48&&o<=57||o===45||o===46||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}],544:[function(s,x,_){Object.defineProperty(_,"__esModule",{value:!0}),_.CHAR="--�𐀀-",_.RESTRICTED_CHAR="-\b\v\f---",_.S=` \r
|
|
29
|
-
`,_.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",_.NAME_CHAR="-"+_.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.CHAR_RE=new RegExp("^["+_.CHAR+"]$","u"),_.RESTRICTED_CHAR_RE=new RegExp("^["+_.RESTRICTED_CHAR+"]$","u"),_.S_RE=new RegExp("^["+_.S+"]+$","u"),_.NAME_START_CHAR_RE=new RegExp("^["+_.NAME_START_CHAR+"]$","u"),_.NAME_CHAR_RE=new RegExp("^["+_.NAME_CHAR+"]$","u"),_.NAME_RE=new RegExp("^["+_.NAME_START_CHAR+"]["+_.NAME_CHAR+"]*$","u"),_.NMTOKEN_RE=new RegExp("^["+_.NAME_CHAR+"]+$","u");function h(o){return o>=65&&o<=90||o>=97&&o<=122||o===58||o===95||o===8204||o===8205||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}_.S_LIST=[32,10,13,9],_.isChar=function(o){return o>=1&&o<=55295||o>=57344&&o<=65533||o>=65536&&o<=1114111},_.isRestrictedChar=function(o){return o>=1&&o<=8||o===11||o===12||o>=14&&o<=31||o>=127&&o<=132||o>=134&&o<=159},_.isCharAndNotRestricted=function(o){return o===9||o===10||o===13||o>31&&o<127||o===133||o>159&&o<=55295||o>=57344&&o<=65533||o>=65536&&o<=1114111},_.isS=function(o){return o===32||o===10||o===13||o===9},_.isNameStartChar=h,_.isNameChar=function(o){return h(o)||o>=48&&o<=57||o===45||o===46||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}],545:[function(s,x,_){function h(o){return o>=65&&o<=90||o===95||o>=97&&o<=122||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8204&&o<=8205||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}Object.defineProperty(_,"__esModule",{value:!0}),_.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",_.NC_NAME_CHAR="-"+_.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.NC_NAME_START_CHAR_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]$","u"),_.NC_NAME_CHAR_RE=new RegExp("^["+_.NC_NAME_CHAR+"]$","u"),_.NC_NAME_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]["+_.NC_NAME_CHAR+"]*$","u"),_.isNCNameStartChar=h,_.isNCNameChar=function(o){return h(o)||o===45||o===46||o>=48&&o<=57||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}]},{},[15])(15)}))})(Ze)),Ze.exports}var yr=gr();const fr=Kt.getDefaultExportFromCjs(yr),cr=25.4/96;function vr(Z){return(Z<1?Z*12:Z*7+5)*cr}function hr(Z){const K=Z/cr;return K<12?K/12:(K-5)/7}const dr=72/25.4,wr=32767,_r=253;function Ve(Z,K){if(typeof Z!="string")return;if(Z.length>wr)throw new Error(`Excel 单元格 ${K} 最多支持 32767 个字符,无法无损导出;内容未裁剪`);let s=0;for(let x=0;x<Z.length;x++)if(Z.charCodeAt(x)===10&&++s>_r)throw new Error(`Excel 单元格 ${K} 最多支持 253 个换行,无法无损导出;内容未改写`)}function Ie(Z){if(!Z)return;const K=Z.replace("#","");return/^[0-9a-fA-F]{6}$/.test(K)?`FF${K.toUpperCase()}`:void 0}function pr(Z,K={}){Z.font={name:K.fontFamily,bold:K.bold===!0,italic:K.italic===!0,underline:K.underline===!0,size:Je.resolveFontSize(K).fontSizePt,color:Ie(K.color)?{argb:Ie(K.color)}:void 0}}const We={a3:{width:297,height:420,code:8},a4:{width:210,height:297,code:9},a5:{width:148,height:210,code:11}};function xr(Z,K,s,x){if(K&&K!=="auto")return We[K].code;const _=Math.min(Z.pageWidthMm,Z.pageHeightMm),h=Math.max(Z.pageWidthMm,Z.pageHeightMm),o=Object.values(We).find(a=>Math.abs(_-a.width)<=1&&Math.abs(h-a.height)<=1);return o?o.code:(x.push(`page ${s+1}: 自定义纸张 ${Z.pageWidthMm}×${Z.pageHeightMm}mm 无对应 Excel 纸型,打印设置回退 A4;可显式配置 paperSize`),We.a4.code)}function Sr(Z,K,s,x){const _=typeof K.text=="string"?K.text:"";if(s!=="raw"||!Object.prototype.hasOwnProperty.call(K,"value")){Ve(_,Z.address),Z.value=_;return}const h=K.value;if(h===null||typeof h=="string"||typeof h=="boolean"||typeof h=="number"&&Number.isFinite(h)){Ve(h,Z.address),Z.value=h,
|
|
29
|
+
`,_.NAME_START_CHAR=":A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ-⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",_.NAME_CHAR="-"+_.NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.CHAR_RE=new RegExp("^["+_.CHAR+"]$","u"),_.RESTRICTED_CHAR_RE=new RegExp("^["+_.RESTRICTED_CHAR+"]$","u"),_.S_RE=new RegExp("^["+_.S+"]+$","u"),_.NAME_START_CHAR_RE=new RegExp("^["+_.NAME_START_CHAR+"]$","u"),_.NAME_CHAR_RE=new RegExp("^["+_.NAME_CHAR+"]$","u"),_.NAME_RE=new RegExp("^["+_.NAME_START_CHAR+"]["+_.NAME_CHAR+"]*$","u"),_.NMTOKEN_RE=new RegExp("^["+_.NAME_CHAR+"]+$","u");function h(o){return o>=65&&o<=90||o>=97&&o<=122||o===58||o===95||o===8204||o===8205||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}_.S_LIST=[32,10,13,9],_.isChar=function(o){return o>=1&&o<=55295||o>=57344&&o<=65533||o>=65536&&o<=1114111},_.isRestrictedChar=function(o){return o>=1&&o<=8||o===11||o===12||o>=14&&o<=31||o>=127&&o<=132||o>=134&&o<=159},_.isCharAndNotRestricted=function(o){return o===9||o===10||o===13||o>31&&o<127||o===133||o>159&&o<=55295||o>=57344&&o<=65533||o>=65536&&o<=1114111},_.isS=function(o){return o===32||o===10||o===13||o===9},_.isNameStartChar=h,_.isNameChar=function(o){return h(o)||o>=48&&o<=57||o===45||o===46||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}],545:[function(s,x,_){function h(o){return o>=65&&o<=90||o===95||o>=97&&o<=122||o>=192&&o<=214||o>=216&&o<=246||o>=248&&o<=767||o>=880&&o<=893||o>=895&&o<=8191||o>=8204&&o<=8205||o>=8304&&o<=8591||o>=11264&&o<=12271||o>=12289&&o<=55295||o>=63744&&o<=64975||o>=65008&&o<=65533||o>=65536&&o<=983039}Object.defineProperty(_,"__esModule",{value:!0}),_.NC_NAME_START_CHAR="A-Z_a-zÀ-ÖØ-öø-˿Ͱ-ͽͿ--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-",_.NC_NAME_CHAR="-"+_.NC_NAME_START_CHAR+".0-9·̀-ͯ‿-⁀",_.NC_NAME_START_CHAR_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]$","u"),_.NC_NAME_CHAR_RE=new RegExp("^["+_.NC_NAME_CHAR+"]$","u"),_.NC_NAME_RE=new RegExp("^["+_.NC_NAME_START_CHAR+"]["+_.NC_NAME_CHAR+"]*$","u"),_.isNCNameStartChar=h,_.isNCNameChar=function(o){return h(o)||o===45||o===46||o>=48&&o<=57||o===183||o>=768&&o<=879||o>=8255&&o<=8256}},{}]},{},[15])(15)}))})(Ze)),Ze.exports}var yr=gr();const fr=Kt.getDefaultExportFromCjs(yr),cr=25.4/96;function vr(Z){return(Z<1?Z*12:Z*7+5)*cr}function hr(Z){const K=Z/cr;return K<12?K/12:(K-5)/7}const dr=72/25.4,wr=32767,_r=253;function Ve(Z,K){if(typeof Z!="string")return;if(Z.length>wr)throw new Error(`Excel 单元格 ${K} 最多支持 32767 个字符,无法无损导出;内容未裁剪`);let s=0;for(let x=0;x<Z.length;x++)if(Z.charCodeAt(x)===10&&++s>_r)throw new Error(`Excel 单元格 ${K} 最多支持 253 个换行,无法无损导出;内容未改写`)}function Ie(Z){if(!Z)return;const K=Z.replace("#","");return/^[0-9a-fA-F]{6}$/.test(K)?`FF${K.toUpperCase()}`:void 0}function pr(Z,K={}){Z.font={name:K.fontFamily,bold:K.bold===!0,italic:K.italic===!0,underline:K.underline===!0,size:Je.resolveFontSize(K).fontSizePt,color:Ie(K.color)?{argb:Ie(K.color)}:void 0}}const We={a3:{width:297,height:420,code:8},a4:{width:210,height:297,code:9},a5:{width:148,height:210,code:11}};function xr(Z,K,s,x){if(K&&K!=="auto")return We[K].code;const _=Math.min(Z.pageWidthMm,Z.pageHeightMm),h=Math.max(Z.pageWidthMm,Z.pageHeightMm),o=Object.values(We).find(a=>Math.abs(_-a.width)<=1&&Math.abs(h-a.height)<=1);return o?o.code:(x.push(`page ${s+1}: 自定义纸张 ${Z.pageWidthMm}×${Z.pageHeightMm}mm 无对应 Excel 纸型,打印设置回退 A4;可显式配置 paperSize`),We.a4.code)}function Sr(Z,K,s,x){const _=typeof K.text=="string"?K.text:"";if(s!=="raw"||!Object.prototype.hasOwnProperty.call(K,"value")){Ve(_,Z.address),Z.value=_;return}const h=K.value;if(h===null||typeof h=="string"||typeof h=="boolean"||typeof h=="number"&&Number.isFinite(h)){Ve(h,Z.address),Z.value=h,K.numberFormat&&(Z.numFmt=K.numberFormat);return}Ve(_,Z.address),Z.value=_,x.push(`原始单元格值无效,已保留显示文本:${Z.address}`)}function kr(Z){const s=Z.components.filter(x=>x.table!==void 0)[0]?.table;if(!(!s||typeof s.id!="string"||!s.id.trim()||!Array.isArray(s.columnKeys)||!s.columnKeys.length)){for(const x of Z.components){if(x.table){if(!x.grid||x.table.id!==s.id)return;continue}if(x.grid||x.kind!=="text"||x.richParagraphs?.length&&!x.text&&!x.lines?.length)return}return{id:s.id,title:s.title,wide:s.layout==="wide"||Z.layout==="wide"}}}function Er(Z,K){const s=new Set;for(const[x,_]of Z.pages.entries())if(!K[x])for(const h of _.components)typeof h.table?.id=="string"&&s.add(h.table.id);return s}function Qe(Z){return Z.layout==="wide"||Z.components.some(K=>K.table?.layout==="wide")}function Mr(Z,K,s){const x=[],_=Z.pages.map(kr),h=Er(Z,_);for(const[o,a]of Z.pages.entries()){const r=_[o],t=r&&!h.has(r.id),e=K==="pages"||!t?void 0:r;if(K==="continuous"&&!e)throw new Error(`page ${o+1}: continuous Excel 需要完整、单一的逻辑表来源;自由布局请使用 sheetMode: 'pages'`);const l=e!==void 0&&(K==="continuous"||e.wide);!l&&K!=="pages"&&Qe(a)&&s.push(`page ${o+1}: 混合或缺少逻辑表来源,已保留独立 Sheet,未猜测合并内容`);const n=x[x.length-1];l&&n?.continuous&&n.tableId===e.id?n.pages.push({page:a,index:o}):x.push({pages:[{page:a,index:o}],continuous:l,...l?{tableId:e.id,title:e.title}:{}})}return x}function nr(Z,K,s){return!Z||Z.length===K.length&&Z.every((x,_)=>s(x,K[_]))}function Cr(Z,K,s,x){const _=Z.table,h=K.columns.map(r=>r.size),o=nr(x.keys,_.columnKeys,(r,t)=>r===t),a=nr(x.widths,h,(r,t)=>Math.abs(r-t)<=.001);if(_.columnKeys.length!==h.length||!o||!a)throw new Error(`page ${s+1}: 连续 Excel 逻辑表 ${_.id} 的列结构或列宽不一致`);if(x.keys??=_.columnKeys,x.widths??=h,_.role==="header"){if(_.rowIndex!==-1)throw new Error(`page ${s+1}: 连续 Excel 表头 rowIndex 必须为 -1`);x.headerSeen=!0}else{if(!["body","group-header","subtotal","grand-total"].includes(_.role)||_.rowIndex!==x.expectedRow)throw new Error(`page ${s+1}: 连续 Excel 逻辑行来源不连续或重复(期望 ${x.expectedRow})`);x.expectedRow+=K.rows.length}if(K.cells.some(r=>r.cell.children?.length))throw new Error(`page ${s+1}: 连续 Excel 暂不支持嵌套组件;请使用独立 Sheet 导出并检查告警`)}function Tr(Z,K){const s={expectedRow:0,headerSeen:!1};for(const{page:x,index:_}of Z.pages)for(const h of x.components){const o=K.get(h);h.table&&o&&Cr(h,o,_,s)}if(!s.headerSeen)throw new Error("连续 Excel 逻辑表缺少明确表头来源")}function Ar(Z,K,s){let x=(Z?.replace(/[\\/*?:[\]]/g," ").replace(/\s+/g," ").trim()||`Sheet${K+1}`).slice(0,31).replace(/^'+|'+$/g,"").trim()||`Sheet${K+1}`;x.toLowerCase()==="history"&&(x+=" 报表");let _=x,h=1;for(;s.has(_.toLowerCase());){const o=` (${++h})`;_=x.slice(0,31-o.length)+o}return s.add(_.toLowerCase()),_}function Rr(Z){const K=new Set;function s(x,_,h,o){return x<=_?x:(K.has(h)||(Z.push(o),K.add(h)),_)}return{column:x=>s(x,255,"column","Excel 单列宽度上限为 255 字符,超宽列已收敛至 255;单元格值完整保留,显示范围可能受限"),row:x=>s(x,409,"row","Excel 行高上限为 409pt,超高行已收敛至 409pt;单元格值完整保留,显示范围可能受限")}}function jr(Z){const K=Z.pages.flatMap(({page:h,index:o})=>h.components.map(a=>({comp:a,pageIndex:o}))),s=new Map;let x=1,_=0;for(const{comp:h}of K)if(h.grid){const o=Je.resolveGridLayout(h.grid,h.widthMm,h.heightMm);s.set(h,o),x=Math.max(x,o.columns.length)}else h.kind==="text"&&(_=Math.max(_,h.widthMm));if(x>16384)throw new Error("Excel 最多支持 16384 列,无法无损导出此报表");return{components:K,grids:s,columnCount:x,textWidthMm:_}}function Or(Z,K,s){const{page:x,index:_}=Z.pages[0],h=K!==void 0&&K!=="auto";return(Z.continuous||Qe(x))&&!h?{}:{pageSetup:{paperSize:xr(x,K,_,s),orientation:x.pageWidthMm>x.pageHeightMm?"landscape":"portrait",fitToPage:!0,...Z.continuous?{fitToWidth:1,fitToHeight:0}:{}}}}function Ir(Z){const K=Ie(Z.borderColor??Z.lineColor),s={style:"thin",...K?{color:{argb:K}}:{}};return{...Z.borderTop!==!1?{top:s}:{},...Z.borderLeft!==!1?{left:s}:{},...Z.borderBottom!==!1?{bottom:s}:{},...Z.borderRight!==!1?{right:s}:{}}}function Nr(Z,K){Z.alignment={horizontal:K.align??"left",vertical:K.verticalAlign??"middle",wrapText:!0};const s=Ie(K.backgroundColor);s&&(Z.fill={type:"pattern",pattern:"solid",fgColor:{argb:s}}),Z.border=Ir(K),pr(Z,K)}function Pr(Z,K,s){for(const[x,_]of K.columns.entries()){const h=Z.sheet.getColumn(x+1),o=Z.limits.column(hr(_.size));(h.width==null||h.width<o)&&(h.width=o)}for(const[x,_]of K.rows.entries()){const h=Z.sheet.getRow(s+x),o=Z.limits.row(_.size*dr);(h.height==null||h.height<o)&&(h.height=o)}}function Br(Z,K,s,x){const _=Math.max(1,Math.min(K.cell.colSpan??1,s.columns.length-K.ci)),h=Math.max(1,Math.min(K.cell.rowSpan??1,s.rows.length-K.ri));(_>1||h>1)&&Z.mergeCells(x+K.ri,K.ci+1,x+K.ri+h-1,K.ci+_)}function Dr(Z,K,s,x,_){if(x+s.rows.length-1>1048576)throw new Error("Excel 最多支持 1048576 行,无法无损导出此报表");Pr(Z,s,x);for(const h of s.cells){const o=Z.sheet.getCell(x+h.ri,h.ci+1);Sr(o,h.cell,Z.valueMode,Z.warnings),h.cell.children?.length&&Z.warnings.push(`page ${_+1} ${K.nid??K.kind} cell ${h.ri+1}:${h.ci+1}: 嵌套组件内容暂不支持 xlsx 导出,已跳过`),Nr(o,Je.mergeComponentStyles(K.style,h.cell.style)),Br(Z.sheet,h,s,x)}return x+s.rows.length}function Fr(Z,K,s,x,_){const h=Array.isArray(K.lines)&&K.lines.length>0?K.lines.join(`
|
|
30
30
|
`):K.text??"";if(K.richParagraphs?.length){const t=h.length===0?"富文本内容暂不支持 xlsx 导出,已跳过":"富文本按已有文本回退导出,内联样式未保留";Z.warnings.push(`page ${_+1} ${K.nid??K.kind}: ${t}`)}const o=Z.sheet.getRow(s),a=o.getCell(1);Ve(h,a.address),a.value=h,a.alignment={horizontal:K.style?.align??"left",vertical:K.style?.verticalAlign??"middle",wrapText:!0};const r=Ie(K.style?.backgroundColor);return r&&(a.fill={type:"pattern",pattern:"solid",fgColor:{argb:r}}),pr(a,K.style),x>1&&Z.sheet.mergeCells(s,1,s,x),o.height=Z.limits.row(K.heightMm*dr),s+1}function Lr(Z,K,s){const x=K+s-1;Z.views=[{state:"frozen",ySplit:x,xSplit:0}],Z.pageSetup.printTitlesRow=`1:${x}`}function zr(Z,K,s){!K.grids.size&&K.textWidthMm>0&&(Z.sheet.getColumn(1).width=Z.limits.column(hr(K.textWidthMm)));let x=1,_=!1;for(const{comp:h,pageIndex:o}of K.components){const a=s&&h.table?.role==="header";if(a&&_)continue;if(x>1048576)throw new Error("Excel 最多支持 1048576 行,无法无损导出此报表");const r=K.grids.get(h);r?(a&&(Lr(Z.sheet,x,r.rows.length),_=!0),x=Dr(Z,h,r,x,o)):h.kind==="text"?x=Fr(Z,h,x,K.columnCount,o):Z.warnings.push(`page ${o+1} ${h.nid??h.kind}: 组件类型 ${h.kind} 暂不支持 xlsx 导出,已跳过`)}}function Ur(Z){if(Z.valueMode!==void 0&&Z.valueMode!=="text"&&Z.valueMode!=="raw")throw new Error("xlsx valueMode 必须是 text 或 raw");if(Z.paperSize!==void 0&&Z.paperSize!=="auto"&&!Object.prototype.hasOwnProperty.call(We,Z.paperSize))throw new Error("xlsx paperSize 必须是 auto、a3、a4 或 a5");if(Z.sheetMode!==void 0&&!["auto","pages","continuous"].includes(Z.sheetMode))throw new Error("xlsx sheetMode 必须是 auto、pages 或 continuous")}async function $r(Z,K={}){Ur(K);const s=new fr.Workbook,x=[],_=Rr(x),h=Mr(Z,K.sheetMode,x),o=new Set;for(const[r,t]of h.entries()){const e=jr(t);t.continuous&&Tr(t,e.grids);const l=t.pages[0].page,n=K.sheetName?.(r)??Ar(t.title,r,o);o.add(n.toLowerCase());const i=s.addWorksheet(n,Or(t,K.paperSize,x)),f=K.valueMode??(Qe(l)||t.continuous?"raw":"text");zr({sheet:i,warnings:x,limits:_,valueMode:f},e,t.continuous)}const a=await s.xlsx.writeBuffer();return{workbook:s,buffer:a,warnings:x}}function Ge(Z){let K="";for(let s=Z;s>0;s=Math.floor((s-1)/26))K=String.fromCharCode(65+(s-1)%26)+K;return K}function qe(Z){return`${Ge(Z.left)}${Z.top}:${Ge(Z.right)}${Z.bottom}`}function ir(Z){let K=0;for(const s of Z.toUpperCase())K=K*26+s.charCodeAt(0)-64;return K}function Ne(Z){if(typeof Z!="string")throw new Error("Excel 范围应为 A1:B20 格式的字符串");const K=/^\$?([A-Z]{1,3})\$?([1-9]\d{0,6})(?::\$?([A-Z]{1,3})\$?([1-9]\d{0,6}))?$/i.exec(Z.trim());if(!K)throw new Error(`Excel 范围无效:${Z}`);const s={left:ir(K[1]),top:Number(K[2]),right:ir(K[3]??K[1]),bottom:Number(K[4]??K[2])};if(s.right<s.left||s.bottom<s.top||s.right>16384||s.bottom>1048576)throw new Error(`Excel 范围超出边界或顺序无效:${Z}`);return s}function Hr(Z,K){if(K!==void 0)return Ne(K);const s=Z.model.rows??[];if(!s.length)return{top:1,left:1,bottom:1,right:1};const x={top:1/0,left:1/0,bottom:1,right:1};for(const _ of s)x.top=Math.min(x.top,_.number),x.bottom=Math.max(x.bottom,_.number),x.left=Math.min(x.left,_.min||1),x.right=Math.max(x.right,_.max||1);return x}function Vr(Z,K,s){const x=Z.bottom-Z.top+1,_=Z.right-Z.left+1;if(x>K.limits.maxRows||_>K.limits.maxColumns||x*_>s)throw new Error(`Excel 范围 ${qe(Z)} 超过导入行、列或单元格上限;请用 sheets/range 缩小范围`);return x*_}function Wr(Z,K){return Z.top<=K.bottom&&Z.bottom>=K.top&&Z.left<=K.right&&Z.right>=K.left}function qr(Z,K){const s=[];for(const x of Z.model.merges){const _=Ne(x);if(Wr(K,_)){if(_.left<K.left||_.right>K.right||_.top<K.top||_.bottom>K.bottom)throw new Error(`${Z.name}: 范围 ${qe(K)} 截断合并单元格 ${x},请包含完整合并区域`);s.push(_)}}return s}function Xr(Z,K){const s=new Map;for(const _ of K)s.set(_.top,Math.max(s.get(_.top)??_.top,_.bottom));const x=[];for(let _=Z.top;_<=Z.bottom;){let h=s.get(_)??_;for(let o=_;o<=h;o++)h=Math.max(h,s.get(o)??o);x.push({top:_,bottom:h}),_=h+1}return x}function Zr(Z,K,s,x){const _=[];let h,o=0;for(const a of Z){const r=a.bottom-a.top+1;if(r>200)throw new Error("合并单元格跨越超过 200 行,无法安全分段;请先缩小或拆分该合并区域");let t=0;for(let l=a.top;l<=a.bottom;l++)t+=x(l);if(t>s&&Number.isFinite(s))throw new Error("合并区域或单行高度超过标准纸张可用高度;请使用 wide 或调整原模板行高");const e=h?a.bottom-h.top+1:r;h&&(e>K||o+t>s)&&(_.push(h),h=void 0,o=0),h?h.bottom=a.bottom:h={...a},o+=t}return h&&_.push(h),_}function Kr(Z){const K=new Map,s=new Set;for(const x of Z){K.set(`${x.top}:${x.left}`,x);for(let _=x.top;_<=x.bottom;_++)for(let h=x.left;h<=x.right;h++)(_!==x.top||h!==x.left)&&s.add(`${_}:${h}`)}return{masters:K,covered:s}}function He(Z,K){return new RegExp(`\\b${K}\\s*=\\s*["']([^"']*)["']`,"i").exec(Z)?.[1]}function sr(Z,K){const s=Ne(Z);if(s.bottom>K.limits.maxRows||s.right>K.limits.maxColumns)throw new Error(`Excel 源文件坐标 ${Z} 超过加载行列上限;请先裁剪工作簿或显式提高 limits`)}function Gr(Z,K,s){const x=/^<(?:\w+:)?(\w+)\b/.exec(Z)?.[1];if(x==="c"){const _=He(Z,"r");if(_&&sr(_,K),++s.cells>1e6)throw new Error("Excel 源文件超过 100 万个单元格的加载上限,请先裁剪工作簿")}else if(x==="row"){if(++s.rows>1e6)throw new Error("Excel 源文件超过 100 万行的加载上限,请先裁剪工作簿");const _=He(Z,"r");if(_&&(!/^\d+$/.test(_)||Number(_)<1||Number(_)>K.limits.maxRows))throw new Error("Excel 源文件行坐标超过加载上限,请先裁剪工作簿或提高 limits.maxRows")}else if(x==="mergeCell"){const _=He(Z,"ref");if(!_)throw new Error("Excel 合并单元格缺少范围");sr(_,K);const h=Ne(_),o=(h.bottom-h.top+1)*(h.right-h.left+1);if(s.mergedCells+=o,h.bottom-h.top+1>200||s.mergedCells>1e6)throw new Error("Excel 合并区域超过安全加载上限,请先拆分合并区域")}else if(x==="dimension"){const _=He(Z,"ref");_&&Ne(_)}}function Yr(Z,K,s,x,_){let h="";return(o,a=!1)=>{if(h+=o,/<!DOCTYPE|<!ENTITY/i.test(h))throw new Error("Excel XML 不允许外部实体或 DTD");const r=/<[^>]*>/g;let t,e=0;for(;t=r.exec(h);){if(s&&Gr(t[0],Z,K),x&&/^<(?:\w+:)?xf\b/.test(t[0])&&++K.styles>131072)throw new Error("Excel 样式数量超过安全加载上限");if(_&&/^<(?:\w+:)?si\b/.test(t[0])&&++K.strings>1e6)throw new Error("Excel 共享字符串数量超过安全加载上限");e=r.lastIndex}const l=h.lastIndexOf("<");if(h=l>=e?h.slice(l):"",h.length>65536)throw new Error("Excel XML 标签长度异常");if(a&&h)throw new Error("Excel XML 标签不完整")}}function Jr(Z,K){const s=Z.slice(K.start,K.start+K.compressed),x=new Blob([s.buffer]).stream();if(K.method===0)return x;try{return x.pipeThrough(new DecompressionStream("deflate-raw"))}catch{throw new Error("当前环境不支持安全 Excel 解压;请使用支持 DecompressionStream deflate-raw 的现代浏览器或 Node.js 22+")}}async function Qr(Z,K,s){let x=0;const _={cells:0,rows:0,mergedCells:0,styles:0,strings:0};if(K.filter(o=>/^xl\/worksheets\/[^/]+\.xml$/i.test(o.name)).length>s.limits.maxSheets)throw new Error("Excel 工作表数量超过导入上限");for(const o of K){const a=Jr(Z,o).getReader(),r=/^xl\/worksheets\/[^/]+\.xml$/i.test(o.name),t=/\.xml$/i.test(o.name)?Yr(s,_,r,o.name==="xl/styles.xml",o.name==="xl/sharedStrings.xml"):void 0,e=t?new TextDecoder("utf-8",{fatal:!0}):void 0;try{for(;;){const l=await a.read();if(l.done)break;if(x+=l.value.byteLength,x>s.limits.maxUncompressedBytes)throw new Error("Excel 实际解压内容超过导入大小上限");t&&e&&t(e.decode(l.value,{stream:!0}))}t&&e&&t(e.decode(),!0)}finally{await a.cancel().catch(()=>{}),a.releaseLock()}}}const tn=101010256,en=33639248,rn=67324752;async function nn(Z,K){if(Z instanceof Uint8Array){if(Z.byteLength>K)throw new Error("Excel 文件超过导入大小上限");return new Uint8Array(Z)}if(Z instanceof ArrayBuffer){if(Z.byteLength>K)throw new Error("Excel 文件超过导入大小上限");return new Uint8Array(Z.slice(0))}if(typeof Blob<"u"&&Z instanceof Blob){if(Z.size>K)throw new Error("Excel 文件超过导入大小上限");return new Uint8Array(await Z.arrayBuffer())}throw new Error("Excel 导入需要 ArrayBuffer、Uint8Array 或 Blob")}function sn(Z){const K=Math.max(0,Z.byteLength-65557);for(let s=Z.byteLength-22;s>=K;s--)if(Z.getUint32(s,!0)===tn&&s+22+Z.getUint16(s+20,!0)===Z.byteLength)return s;throw new Error("Excel 文件不是完整的 .xlsx ZIP 文件")}function on(Z,K){const s=Z.getUint16(K+10,!0),x=Z.getUint32(K+16,!0),_=Z.getUint32(K+12,!0);if(Z.getUint16(K+4,!0)+Z.getUint16(K+6,!0)||Z.getUint16(K+8,!0)!==s||s===65535||x===4294967295||_===4294967295)throw new Error("不支持分卷或 ZIP64 Excel 文件");if(s<1||s>2048||x+_!==K)throw new Error("Excel ZIP 目录无效或条目过多");return{start:x,size:_,entries:s}}function an(Z,K,s,x,_){if(s+46>x||K.getUint32(s,!0)!==en)throw new Error("Excel ZIP 条目无效");const h=K.getUint16(s+8,!0),o=K.getUint16(s+10,!0),a=K.getUint16(s+28,!0),r=s+46+a+K.getUint16(s+30,!0)+K.getUint16(s+32,!0),t=K.getUint32(s+42,!0),e=K.getUint32(s+20,!0),l=K.getUint32(s+24,!0);if(r>x||t+30>Z.length||h&1||![0,8].includes(o))throw new Error("Excel ZIP 包含无效、加密或不支持的条目");if(l===4294967295||e===4294967295||K.getUint32(t,!0)!==rn)throw new Error("Excel ZIP 本地条目无效");const n=t+30+K.getUint16(t+26,!0)+K.getUint16(t+28,!0);if(n+e>_||K.getUint16(t+8,!0)!==o||K.getUint16(t+6,!0)!==h)throw new Error("Excel ZIP 数据边界或压缩方式无效");const i=new TextDecoder().decode(Z.subarray(s+46,s+46+a));if(i.includes("\\")||i.split("/").includes("..")||i.startsWith("/"))throw new Error("Excel ZIP 包含不安全路径");return{name:i,next:r,size:l,start:n,compressed:e,method:o}}function ln(Z,K){/^xl\/(charts|media|drawings)\//.test(Z)&&K.add("Excel 中的图表、图片与绘图对象暂不导入,仅保留单元格版式"),/^xl\/pivot/.test(Z)&&K.add("Excel 透视表仅导入已保存的单元格结果,不提供交互或重算"),/^xl\/externalLinks\//.test(Z)&&K.add("Excel 外部链接不会访问或刷新,仅使用文件内已保存的结果"),/vbaProject|activeX|embeddings/i.test(Z)&&K.add("Excel 宏、控件与嵌入对象不会执行或导入")}async function un(Z,K,s){const x=await nn(Z,K.limits.maxFileBytes),_=new DataView(x.buffer,x.byteOffset,x.byteLength);if(x.length<22)throw new Error("Excel 文件为空或格式无效;仅支持 .xlsx");const h=on(_,sn(_));let o=h.start,a=0;const r=new Set,t=[];for(let e=0;e<h.entries;e++){const l=an(x,_,o,h.start+h.size,h.start);if(r.has(l.name))throw new Error("Excel ZIP 条目名称重复");if(r.add(l.name),a+=l.size,a>K.limits.maxUncompressedBytes)throw new Error("Excel 解压后内容超过导入大小上限");ln(l.name,s),t.push(l),o=l.next}if(o!==h.start+h.size||!r.has("xl/workbook.xml")||!r.has("[Content_Types].xml"))throw new Error("文件不是受支持的 .xlsx 工作簿");return await Qr(x,t,K),x}const fn=864e5;function je(Z,K=2){return String(Z).padStart(K,"0")}function cn(Z,K,s){const x=[],_=K.replace(/"([^"]*)"|\\(.)/g,(a,r,t)=>(x.push(r??t??""),`${x.length-1}`)).replace(/\[\$[^\]]*\]/g,"");if(/\[|ddd|mmm|AM\/PM/i.test(_))return s(),Z.toISOString().replace("T"," ").replace(/\.000Z$/,"");let h=!1;return _.replace(/yyyy|yy|mm|m|dd|d|hh|h|ss|s/gi,(a,r)=>{const t=a.toLowerCase();if(t.startsWith("y"))return t.length===2?je(Z.getUTCFullYear()%100):String(Z.getUTCFullYear());if(t.startsWith("d"))return je(Z.getUTCDate(),t.length);if(t.startsWith("h"))return h=!0,je(Z.getUTCHours(),t.length);if(t.startsWith("s"))return je(Z.getUTCSeconds(),t.length);const e=h||/^\s*:\s*s/i.test(_.slice(r+a.length));return je(e?Z.getUTCMinutes():Z.getUTCMonth()+1,t.length)}).replace(/\uE000(\d+)\uE000/g,(a,r)=>x[Number(r)]??"")}function hn(Z,K,s){if(Z==null)return{text:"",value:null};if(Z instanceof Date)return Number.isFinite(Z.getTime())?{text:cn(Z,K||"yyyy-mm-dd",s),value:Z.getTime()/fn+25569}:(s(),{text:"",value:null});if(typeof Z=="number")return Number.isFinite(Z)?{text:br.formatExcelNumber(Z,K,s),value:Z}:(s(),{text:String(Z),value:null});if(typeof Z=="boolean")return{text:Z?"TRUE":"FALSE",value:Z};if(typeof Z=="string")return{text:Z,value:Z};if("error"in Z)return{text:Z.error,value:Z.error};if("richText"in Z){const x=Z.richText.map(_=>_.text).join("");return{text:x,value:x}}return"text"in Z?{text:String(Z.text),value:String(Z.text)}:(s(),{text:"",value:null})}function dn(Z,K){const s=(K??"").replace(/"[^"]*"|\\.|\[[^\]]*\]/g,"");return typeof Z=="number"||Z===null&&/[0#?]/.test(s)?"number":typeof Z=="boolean"?"boolean":"text"}function pn(Z,K,s,x,_){let h;try{h=K.formula}catch{_.add(`${x}: 部分共享公式无法展开,仅保留缓存结果`)}Object.assign(Z,{editable:!1,...h?{formula:h}:{}}),_.add(`${x}: 公式使用 Excel 已保存的计算结果并保持只读;修改其他单元格不会自动重算公式`),s==null&&_.add(`${x}: 存在没有缓存结果的公式,显示为空;请先在 Excel 中计算并保存`)}function mn(Z,K,s,x){const _=Z.numFmt,h=()=>x.add(`${s}: 存在无法完整还原的自定义数字或日期格式,已保留原值和 numberFormat`),o=Z.value,a=o&&typeof o=="object"&&("formula"in o||"sharedFormula"in o),r=a?Z.result:o,t=hn(r,_,h),e={...t,editable:!0,..._?{numberFormat:_}:{}};return e.valueType=dn(t.value,_),r instanceof Date&&(Object.assign(e,{editable:!1}),x.add(`${s}: 日期单元格保留 Excel 日期序列与格式,目前在预览中保持只读`),K&&x.add(`${s}: 1904 日期系统已统一转换为 1900 日期系统,保留相同日历日期`)),a&&pn(e,Z,r,s,x),o&&typeof o=="object"&&"richText"in o&&x.add(`${s}: 单元格内混合字体已合并为纯文本,保留单元格级样式`),typeof e.text=="string"&&/\{\{[^}]+\}\}/.test(e.text)&&x.add(`${s}: {{字段}} 占位符按原文导入;动态业务数据需显式绑定,不会自动推断接口字段`),e}const or=["FFFFFF","000000","E7E6E6","44546A","4472C4","ED7D31","A5A5A5","FFC000","5B9BD5","70AD47","0563C1","954F72"],bn=["000000","FFFFFF","FF0000","00FF00","0000FF","FFFF00","FF00FF","00FFFF"],gn={hair:.25,dotted:.5,dashed:.5,thin:.5,medium:1,thick:1.5,double:1};function yn(Z){const K=Z.model,s=/<(?:\w+:)?clrScheme\b[^>]*>([\s\S]*?)<\/(?:\w+:)?clrScheme>/.exec(K.themes?.theme1??"");if(!s)return or;const x=[...s[1].matchAll(/<(?:\w+:)?(?:srgbClr|sysClr)\b[^>]*(?:val|lastClr)="([A-Fa-f0-9]{6})"[^>]*\/?\s*>/g)].map(_=>_[1].toUpperCase());return x.length<12?or:[x[1],x[0],x[3],x[2],...x.slice(4,12)]}function Ke(Z,K=0){return`#${[0,2,4].map(s=>{const x=Number.parseInt(Z.slice(s,s+2),16),_=K<0?x*(1+K):x*(1-K)+255*K;return Math.max(0,Math.min(255,Math.round(_))).toString(16).padStart(2,"0")}).join("").toUpperCase()}`}function Oe(Z,K){if(!Z)return;const s=Z.argb;if(s&&/^[A-Fa-f\d]{6,8}$/.test(s))return Ke(s.slice(-6),Z.tint);if(Z.theme!==void 0)return Ke(K[Z.theme]??"000000",Z.tint);if(Z.indexed!==void 0&&Z.indexed<16)return Ke(bn[Z.indexed%8],Z.tint)}function vn(Z,K,s,x){const _=[K.top,K.right,K.bottom,K.left],h=_.map(a=>!!a?.style);[Z.borderTop,Z.borderRight,Z.borderBottom,Z.borderLeft]=h;const o=_.filter(a=>a?.style);o.length&&(Z.borderColor=Oe(o[0]?.color,s)??"#000000",Z.lineWidthPt=gn[o[0].style]??.5,o.some(a=>a.style!=="thin"&&a.style!=="medium"&&a.style!=="thick")&&x(),o.some(a=>Oe(a.color,s)!==Oe(o[0].color,s)||a.style!==o[0].style)&&x(),K.diagonal?.style&&x())}function wn(Z,K,s){const x=K.horizontal;x&&["left","center","right","justify"].includes(x)?Z.align=x:x&&s(),K.vertical&&(Z.verticalAlign=K.vertical==="distributed"||K.vertical==="justify"?"middle":K.vertical),(K.textRotation||K.shrinkToFit||K.indent||K.readingOrder)&&s()}function _n(Z,K,s,x){const _=Z.style,h=_.font??{},o={align:"left",verticalAlign:"bottom",fontFamily:h.name||"Calibri",fontSize:h.size||11};h.bold!==void 0&&(o.bold=h.bold),h.italic!==void 0&&(o.italic=h.italic),h.underline!==void 0&&(o.underline=!!h.underline);const a=Oe(h.color,K);a&&(o.color=a);const r=_.fill;if(r?.type==="pattern"&&r.pattern==="solid"){const t=Oe(r.fgColor,K);t&&(o.backgroundColor=t)}else r&&!(r.type==="pattern"&&r.pattern==="none")&&x.add(`${s}: 渐变或图案填充暂不支持,保留单元格内容`);return _.border&&vn(o,_.border,K,()=>x.add(`${s}: 多种边线颜色、虚线、双线或对角线按单元格统一实线近似呈现`)),_.alignment&&wn(o,_.alignment,()=>x.add(`${s}: 部分旋转、缩进、收缩或分散对齐样式暂不支持`)),(h.strike||h.vertAlign)&&x.add(`${s}: 删除线、上标或下标暂不支持`),o}function xn(Z,K,s,x=1){const _=new WeakMap;return h=>{let o=_.get(h.style);if(!o){const t=_n(h,Z,K,s);t.fontSize=(t.fontSize??11)*x,o=h.alignment?.horizontal?{left:t,center:t,right:t}:{left:t,center:{...t,align:"center"},right:{...t,align:"right"}},_.set(h.style,o)}const a=h.value,r=a&&typeof a=="object"&&("formula"in a||"sharedFormula"in a)?h.result:a;return typeof r=="boolean"?o.center:typeof r=="number"||r instanceof Date?o.right:o.left}}const Ye={maxFileBytes:20*1024*1024,maxUncompressedBytes:64*1024*1024,maxCells:25e4,maxRows:1e5,maxColumns:2048,maxSheets:32},ar={...Ye,maxCells:1e6,maxRows:1048576,maxColumns:16384};function Sn(Z){const K=Z.layout??"wide";if(!["wide","a3","a4"].includes(K))throw new Error("Excel 导入 layout 仅支持 wide、a3、a4");if(Z.landscape!==void 0&&typeof Z.landscape!="boolean")throw new Error("landscape 应为布尔值");const s=Z.maxRowsPerPage??80;if(!Number.isInteger(s)||s<1||s>200)throw new Error("maxRowsPerPage 应为 1 到 200 的整数");const x={...Ye};for(const _ of Object.keys(Ye)){const h=Z.limits?.[_];if(h!==void 0){if(!Number.isInteger(h)||h<1||h>ar[_])throw new Error(`${_} 应为 1 到 ${ar[_]} 的整数`);x[_]=h}}return{layout:K,landscape:Z.landscape??!0,maxRowsPerPage:s,limits:x}}class kn{constructor(){this.messages=new Set,this.overflow=!1}add(K){this.messages.size<200?this.messages.add(K):this.messages.has(K)||(this.overflow=!0)}result(){return[...this.messages,...this.overflow?["其余导入告警已合并;请缩小范围进一步检查"]:[]]}}const En=25.4/72;function Mn(Z,K){if(K.sheets===void 0)return Z.worksheets.filter(x=>x.state==="visible");if(!Array.isArray(K.sheets)||K.sheets.length===0)throw new Error("sheets 应为非空的工作表名称或一基位置数组");const s=[];for(const x of K.sheets){const _=typeof x=="string"?Z.getWorksheet(x):Number.isInteger(x)&&x>0?Z.worksheets[x-1]:void 0;if(!_)throw new Error(`Excel 工作表不存在:${String(x)}`);if(s.includes(_))throw new Error(`Excel 工作表选择重复:${_.name}`);s.push(_)}return s}function Cn(Z,K){if(typeof Z.range=="string")return Z.range;if(Z.range!==void 0){if(Z.range===null||typeof Z.range!="object"||Array.isArray(Z.range))throw new Error("range 应为 A1 范围或以工作表名为键的范围对象");return Object.prototype.hasOwnProperty.call(Z.range,K)?Z.range[K]:void 0}}function lr(Z,K,s){if(!Number.isFinite(Z)||Z<0||Z>s)throw new Error(`${K} 无效或超过尺寸上限`);return Math.max(.01,Z)}function Tn(Z,K,s,x){const _=[];for(let f=K.left;f<=K.right;f++){const c=Z.getColumn(f);c.hidden&&x.add(`${Z.name}: 隐藏行列按隐藏尺寸保留;需要编辑时请先在 Excel 中取消隐藏`);const u=c.width??Z.properties.defaultColWidth??8.43;_.push(lr(c.hidden||u===0?.01:vr(u),"Excel 列宽",2e3))}const h=_.reduce((f,c)=>f+c,0),o=s.layout==="wide",a=s.layout==="a3"?[297,420]:[210,297],r=o?h:a[s.landscape?1:0],t=o?297:a[s.landscape?0:1],e=o?0:10,l=r-2*e,n=o?1:l/h;!o&&n<.5&&x.add(`${Z.name}: 标准纸张列宽压缩较大;完整宽表建议使用 layout: 'wide'`);const i=f=>{const c=Z.getRow(f);return c.hidden&&x.add(`${Z.name}: 隐藏行列按隐藏尺寸保留;需要编辑时请先在 Excel 中取消隐藏`),lr(c.hidden?.01:(c.height??Z.properties.defaultRowHeight??15)*En*n,"Excel 行高",1e3)};return{width:l,pageWidth:r,pageHeight:t,margin:e,scale:n,columns:_.map(f=>f*n),rowHeight:i}}function An(Z,K){const{sheet:s,range:x,merges:_,style:h,date1904:o,warnings:a}=Z,r=[];for(let t=K.top;t<=K.bottom;t++){const e=[];for(let l=x.left;l<=x.right;l++){const n=`${t}:${l}`;if(_.covered.has(n))continue;const i=s.getCell(t,l),f=mn(i,o,s.name,a);s.sheetProtection?.sheet===!0&&i.protection?.locked!==!1&&(f.editable=!1),f.style=h(i);const u=_.masters.get(n);u&&(f.colSpan=u.right-u.left+1,f.rowSpan=u.bottom-u.top+1),e.push(f)}r.push(e)}return r}function ur(Z,K,s,x){const{geometry:_,range:h,sheet:o,options:a}=Z,r=Array.from({length:K.bottom-K.top+1},(t,e)=>_.rowHeight(K.top+e));return{kind:"rect",leftMm:_.margin,topMm:s,widthMm:_.width,heightMm:r.reduce((t,e)=>t+e,0),nid:`xlsx:${Z.tableId}:${K.top}`,grid:{cells:An(Z,K),colWidthsMm:_.columns,rowHeightsMm:r,paddingMm:.25*_.scale},table:{id:Z.tableId,role:x?"header":"body",rowIndex:x?-1:K.top-Z.headerBottom-1,columnKeys:Array.from({length:h.right-h.left+1},(t,e)=>Ge(h.left+e)),title:o.name,layout:a.layout==="wide"?"wide":"page"},meta:{xlsxSheet:o.name,xlsxRange:qe({...h,top:K.top,bottom:K.bottom})}}}function Rn(Z,K){const{geometry:s,options:x,range:_,headerBottom:h}=Z,o=[];let a=s.margin;if(K.top===_.top){const t=ur(Z,{top:K.top,bottom:h},a,!0);o.push(t),a+=t.heightMm}const r=Math.max(K.top,h+1);return r<=K.bottom&&o.push(ur(Z,{top:r,bottom:K.bottom},a,!1)),{widthMm:s.pageWidth,heightMm:s.pageHeight,layout:x.layout==="wide"?"wide":"page",marginTopMm:s.margin,marginBottomMm:s.margin,marginLeftMm:s.margin,marginRightMm:s.margin,components:o}}function jn(Z,K){const s=Z;Z.state!=="visible"&&K.add(`${Z.name}: 已按显式选择导入隐藏工作表`),Z.sheetProtection?.sheet===!0&&K.add(`${Z.name}: 已保留启用的工作表保护,锁定单元格在预览中保持只读`),s.conditionalFormattings?.length&&K.add(`${Z.name}: 条件格式规则暂不执行,仅使用已保存的基础单元格样式`),Z.autoFilter&&K.add(`${Z.name}: Excel 筛选下拉与排序操作不导入,完整保留选区单元格`),Object.keys(s.dataValidations?.model??{}).length&&K.add(`${Z.name}: Excel 数据验证与下拉输入规则不导入;业务校验应由宿主配置`)}function On(Z,K,s,x,_,h){jn(Z,_);const o=qr(Z,K),a=Xr(K,o),r=Tn(Z,K,x,_),t=K.right-K.left+1,e=Math.max(1,Math.min(x.maxRowsPerPage,Math.floor(1e4/t)));if(a.some(i=>(i.bottom-i.top+1)*t>Math.max(1e4,t)))throw new Error(`${Z.name}: 跨行合并区域超过单段单元格预算,请缩小范围或拆分合并区域`);const l=Zr(a,e,x.layout==="wide"?1/0:r.pageHeight-r.margin*2,r.rowHeight),n={sheet:Z,range:K,geometry:r,options:x,warnings:_,merges:Kr(o),style:xn(yn(s),Z.name,_,r.scale),date1904:s.properties.date1904===!0,tableId:`xlsx:${h}:${Z.name}`,headerBottom:a[0].bottom};return l.map(i=>Rn(n,i))}async function In(Z,K={}){const s=Sn(K),x=new kn,_=await un(Z,s,x),h=new fr.Workbook;try{await h.xlsx.load(_)}catch{throw new Error("Excel 文件解析失败;请确认它是未加密且完整的 .xlsx 文件")}if(h.worksheets.length>s.limits.maxSheets)throw new Error("Excel 工作表数量超过导入上限");const o=Mn(h,K);if(!o.length)throw new Error("Excel 中没有可导入的可见工作表;可通过 sheets 显式选择隐藏工作表");const a={schemaVersion:mr.RENDER_PLAN_SCHEMA_VERSION,pages:[]},r=[];let t=s.limits.maxCells;for(const e of o){const l=Hr(e,Cn(K,e.name));t-=Vr(l,s,t);const n=h.worksheets.indexOf(e)+1,i=On(e,l,h,s,x,n);r.push({name:e.name,index:n,range:qe(l),rowCount:l.bottom-l.top+1,columnCount:l.right-l.left+1,pageStart:a.pages.length,pageCount:i.length}),a.pages.push(...i)}return{template:a,warnings:x.result(),sheets:r}}exports.importExcelTemplate=In;exports.renderPlanToXlsx=$r;
|
package/dist/xlsx.js
CHANGED
|
@@ -22622,7 +22622,7 @@ function Mr(Z, K, s, x) {
|
|
|
22622
22622
|
}
|
|
22623
22623
|
const h = K.value;
|
|
22624
22624
|
if (h === null || typeof h == "string" || typeof h == "boolean" || typeof h == "number" && Number.isFinite(h)) {
|
|
22625
|
-
Ve(h, Z.address), Z.value = h,
|
|
22625
|
+
Ve(h, Z.address), Z.value = h, K.numberFormat && (Z.numFmt = K.numberFormat);
|
|
22626
22626
|
return;
|
|
22627
22627
|
}
|
|
22628
22628
|
Ve(_, Z.address), Z.value = _, x.push(`原始单元格值无效,已保留显示文本:${Z.address}`);
|