@agile-team/mach-report 2.3.1 → 2.4.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 +42 -5
- package/dist/ReportPreview-CL9J9MEE.js +1907 -0
- package/dist/ReportPreview-DJvv3h8m.cjs +6 -0
- package/dist/grid-geometry-BNIvw52m.cjs +1 -0
- package/dist/{grid-geometry-Dw7BlENr.js → grid-geometry-C8hGoe9o.js} +10 -10
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +74 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.js +946 -782
- package/dist/number-format-BA_KwrZe.js +55 -0
- package/dist/number-format-CZ2T_5kF.cjs +1 -0
- package/dist/pdf.cjs +47 -47
- package/dist/pdf.d.cts +6 -0
- package/dist/pdf.d.ts +6 -0
- package/dist/pdf.js +2134 -2117
- package/dist/{plugin-2lqgTX26.cjs → plugin-BkK2mm_p.cjs} +1 -1
- package/dist/{plugin-5R00MJQs.js → plugin-DRnvIbdP.js} +1 -1
- package/dist/render-plan-CCTL4F9v.cjs +1 -0
- package/dist/{render-plan-I9AHvQv7.js → render-plan-CXBWRog4.js} +12 -7
- package/dist/style.css +1 -1
- package/dist/vue/async.d.cts +598 -1
- package/dist/vue/async.d.ts +598 -1
- package/dist/vue/index.d.cts +820 -10
- package/dist/vue/index.d.ts +820 -10
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +96 -73
- package/dist/xlsx.cjs +24 -24
- package/dist/xlsx.d.cts +209 -0
- package/dist/xlsx.d.ts +209 -0
- package/dist/xlsx.js +9805 -9284
- package/package.json +1 -1
- package/dist/ReportPreview-B-mwUSk9.cjs +0 -6
- package/dist/ReportPreview-DKjr4cwO.js +0 -1688
- package/dist/defaults-D4o0NCLo.js +0 -9
- package/dist/defaults-DOO1yHwx.cjs +0 -1
- package/dist/grid-geometry-bkciiZ4Q.cjs +0 -1
- package/dist/render-plan-CfJ3wf1l.cjs +0 -1
package/dist/xlsx.d.cts
CHANGED
|
@@ -341,6 +341,29 @@ declare interface Column {
|
|
|
341
341
|
defn: any; //todo
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
+
/**
|
|
345
|
+
* 列值格式化(声明式、JSON 可序列化)。
|
|
346
|
+
* 在 paginate 的 cellText 出口统一消费:格式化发生在进 RenderPlan 之前,
|
|
347
|
+
* 三后端(DOM/Canvas/PDF)零改动。
|
|
348
|
+
*
|
|
349
|
+
* 语义约定(v0.9 固化):
|
|
350
|
+
* - number.digits 显式给出 → 精确保留(12.5 + digits:2 → "12.50")
|
|
351
|
+
* - number.thousands 默认 false(千分位显式开启)
|
|
352
|
+
* - date 字符串按"本地时区的日历日"解析(YYYY-MM-DD / YYYY/MM/DD 直取年月日,
|
|
353
|
+
* 不经 Date 字符串构造——后者按 UTC 零点,负时区环境会少一天)
|
|
354
|
+
*/
|
|
355
|
+
declare type ColumnFormat = {
|
|
356
|
+
kind: "number";
|
|
357
|
+
thousands?: boolean;
|
|
358
|
+
digits?: number;
|
|
359
|
+
} | {
|
|
360
|
+
kind: "percent";
|
|
361
|
+
digits?: number;
|
|
362
|
+
} | {
|
|
363
|
+
kind: "date";
|
|
364
|
+
pattern?: string;
|
|
365
|
+
};
|
|
366
|
+
|
|
344
367
|
declare interface Comment_2 {
|
|
345
368
|
texts?: RichText[];
|
|
346
369
|
margins?: Partial<CommentMargins>;
|
|
@@ -540,6 +563,55 @@ declare enum ErrorValue {
|
|
|
540
563
|
Num = '#NUM!',
|
|
541
564
|
}
|
|
542
565
|
|
|
566
|
+
export declare interface ExcelImportedSheet {
|
|
567
|
+
name: string;
|
|
568
|
+
/** Original, one-based workbook position. */
|
|
569
|
+
index: number;
|
|
570
|
+
range: string;
|
|
571
|
+
rowCount: number;
|
|
572
|
+
columnCount: number;
|
|
573
|
+
/** Zero-based index into template.pages. */
|
|
574
|
+
pageStart: number;
|
|
575
|
+
pageCount: number;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/** Limits apply to the selected rectangular ranges, including their empty cells. */
|
|
579
|
+
export declare interface ExcelImportLimits {
|
|
580
|
+
/** Compressed input, default 20 MiB. */
|
|
581
|
+
maxFileBytes?: number;
|
|
582
|
+
/** Declared ZIP uncompressed total, default 64 MiB. */
|
|
583
|
+
maxUncompressedBytes?: number;
|
|
584
|
+
/** Total selected cells across sheets, default 250,000; hard ceiling 1,000,000. */
|
|
585
|
+
maxCells?: number;
|
|
586
|
+
/** Rows per selected sheet, default 100,000; hard ceiling 1,048,576. */
|
|
587
|
+
maxRows?: number;
|
|
588
|
+
/** Columns per selected sheet, default 2,048; hard ceiling 16,384. */
|
|
589
|
+
maxColumns?: number;
|
|
590
|
+
/** Workbook sheets, default 32. */
|
|
591
|
+
maxSheets?: number;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export declare interface ExcelImportOptions {
|
|
595
|
+
/** Sheet names or one-based workbook positions. Default: all visible sheets. */
|
|
596
|
+
sheets?: Array<string | number>;
|
|
597
|
+
/** A1 range for every sheet, or ranges keyed by exact sheet name. */
|
|
598
|
+
range?: string | Record<string, string>;
|
|
599
|
+
/** Wide preserves natural column widths. A3/A4 scale the complete width to paper. */
|
|
600
|
+
layout?: "wide" | "a3" | "a4";
|
|
601
|
+
/** Only applies to A3/A4; default landscape. */
|
|
602
|
+
landscape?: boolean;
|
|
603
|
+
/** Vertical preview segment limit, default 80, maximum 200. Merges remain intact. */
|
|
604
|
+
maxRowsPerPage?: number;
|
|
605
|
+
/** Optional resource limits; hard ceilings prevent unbounded allocations. */
|
|
606
|
+
limits?: ExcelImportLimits;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
export declare interface ExcelImportResult {
|
|
610
|
+
template: ReportTemplate;
|
|
611
|
+
warnings: string[];
|
|
612
|
+
sheets: ExcelImportedSheet[];
|
|
613
|
+
}
|
|
614
|
+
|
|
543
615
|
declare namespace ExcelJS {
|
|
544
616
|
export {
|
|
545
617
|
Buffer_2 as Buffer,
|
|
@@ -790,6 +862,12 @@ declare interface GridCell {
|
|
|
790
862
|
value?: string | number | boolean | null;
|
|
791
863
|
/** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
|
|
792
864
|
numberFormat?: string;
|
|
865
|
+
/** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
|
|
866
|
+
valueType?: "text" | "number" | "boolean";
|
|
867
|
+
/** 单元格级编辑控制;预览仍需显式开启 editing。 */
|
|
868
|
+
editable?: boolean;
|
|
869
|
+
/** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
|
|
870
|
+
formula?: string;
|
|
793
871
|
children?: PlanComponent[];
|
|
794
872
|
colSpan?: number;
|
|
795
873
|
rowSpan?: number;
|
|
@@ -879,6 +957,12 @@ declare interface ImageRange {
|
|
|
879
957
|
br: Anchor;
|
|
880
958
|
}
|
|
881
959
|
|
|
960
|
+
/**
|
|
961
|
+
* Import saved .xlsx cell values and common styles as a reusable JSON report template.
|
|
962
|
+
* No formulas, macros, links, database calls or scripts are evaluated. The workbook is not modified.
|
|
963
|
+
*/
|
|
964
|
+
export declare function importExcelTemplate(input: ArrayBuffer | Uint8Array | Blob, options?: ExcelImportOptions): Promise<ExcelImportResult>;
|
|
965
|
+
|
|
882
966
|
declare interface JSZipGeneratorOptions {
|
|
883
967
|
/**
|
|
884
968
|
* @default DEFLATE
|
|
@@ -892,6 +976,82 @@ declare interface JSZipGeneratorOptions {
|
|
|
892
976
|
};
|
|
893
977
|
}
|
|
894
978
|
|
|
979
|
+
/** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
|
|
980
|
+
declare type ListAlignment = NonNullable<ComponentStyle["align"]> | "auto";
|
|
981
|
+
|
|
982
|
+
declare interface ListColumn {
|
|
983
|
+
header: string;
|
|
984
|
+
field: string;
|
|
985
|
+
widthMm: number;
|
|
986
|
+
style?: ComponentStyle;
|
|
987
|
+
/** 内容对齐,优先于 style.align;数值字符串不会自动判为数字。 */
|
|
988
|
+
align?: ListAlignment;
|
|
989
|
+
/** 独立的表头对齐,不改变内容对齐。 */
|
|
990
|
+
headerAlign?: ComponentStyle["align"];
|
|
991
|
+
/** 独立的表头样式,优先于列表级表头样式。 */
|
|
992
|
+
headerStyle?: ComponentStyle;
|
|
993
|
+
/** 值格式化(声明式):千分位/小数位、百分比、日期 pattern */
|
|
994
|
+
format?: ColumnFormat;
|
|
995
|
+
/** 条件格式规则(声明式,命中合并进单元格样式;如负数红字) */
|
|
996
|
+
rules?: StyleRule[];
|
|
997
|
+
/** 内容列编辑控制;仍需由预览显式开启 editing,不影响表头/小计只读规则。 */
|
|
998
|
+
editable?: boolean;
|
|
999
|
+
/** 空值列或特殊数据类型可显式声明编辑输入类型。 */
|
|
1000
|
+
valueType?: GridCell["valueType"];
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
declare interface ListComponent {
|
|
1004
|
+
kind: "list";
|
|
1005
|
+
id?: string;
|
|
1006
|
+
/** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
|
|
1007
|
+
layout?: "page" | "wide";
|
|
1008
|
+
/** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
|
|
1009
|
+
title?: string;
|
|
1010
|
+
leftMm: number;
|
|
1011
|
+
topMm: number;
|
|
1012
|
+
widthMm: number;
|
|
1013
|
+
dataset: string;
|
|
1014
|
+
columns: ListColumn[];
|
|
1015
|
+
fontSizePt?: number;
|
|
1016
|
+
headerBold?: boolean;
|
|
1017
|
+
rowHeightMm?: number;
|
|
1018
|
+
paddingMm?: number;
|
|
1019
|
+
headerEveryPage?: boolean;
|
|
1020
|
+
headerBackgroundColor?: string;
|
|
1021
|
+
/** 内容默认对齐,列配置可覆盖;低层模板缺省仍为 left。 */
|
|
1022
|
+
align?: ListAlignment;
|
|
1023
|
+
/** 表头默认对齐,列配置可覆盖。 */
|
|
1024
|
+
headerAlign?: ComponentStyle["align"];
|
|
1025
|
+
headerStyle?: ComponentStyle;
|
|
1026
|
+
border?: boolean;
|
|
1027
|
+
/** 分组小计(组头/组尾小计/组头防孤行) */
|
|
1028
|
+
groupBy?: ListGroupBy;
|
|
1029
|
+
/** 末尾总合计行(依赖 groupBy.subtotal 或显式 fields) */
|
|
1030
|
+
grandTotal?: ListGrandTotal;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
declare type ListGrandTotal = boolean | {
|
|
1034
|
+
label?: string;
|
|
1035
|
+
style?: ComponentStyle;
|
|
1036
|
+
/** 合计列(缺省沿用 groupBy.subtotal) */
|
|
1037
|
+
fields?: string[];
|
|
1038
|
+
};
|
|
1039
|
+
|
|
1040
|
+
/** 分组小计配置(声明式,见 ListComponent.groupBy) */
|
|
1041
|
+
declare interface ListGroupBy {
|
|
1042
|
+
/** 分组字段(值变化即切组) */
|
|
1043
|
+
field: string;
|
|
1044
|
+
/** 组头文案模板,{value} 占位(默认 "{value}") */
|
|
1045
|
+
headerTemplate?: string;
|
|
1046
|
+
headerStyle?: ComponentStyle;
|
|
1047
|
+
/** 需要小计的列字段(组尾输出合计行;数值列求和,其余输出首值/留空) */
|
|
1048
|
+
subtotal?: string[];
|
|
1049
|
+
subtotalStyle?: ComponentStyle;
|
|
1050
|
+
subtotalLabel?: string;
|
|
1051
|
+
/** 组头防孤行(默认 true:页尾放不下"组头+首行"时整体换页) */
|
|
1052
|
+
keepWithNext?: boolean;
|
|
1053
|
+
}
|
|
1054
|
+
|
|
895
1055
|
declare interface Location_2 {
|
|
896
1056
|
top: number;
|
|
897
1057
|
left: number;
|
|
@@ -1216,6 +1376,30 @@ declare interface RenderPlan {
|
|
|
1216
1376
|
|
|
1217
1377
|
export declare function renderPlanToXlsx(plan: RenderPlan, options?: XlsxRenderOptions): Promise<XlsxRenderResult>;
|
|
1218
1378
|
|
|
1379
|
+
/** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
|
|
1380
|
+
declare interface ReportParamDef {
|
|
1381
|
+
/** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
|
|
1382
|
+
field: string;
|
|
1383
|
+
/** 显示名(缺省用 field) */
|
|
1384
|
+
label?: string;
|
|
1385
|
+
type?: "text" | "number" | "date" | "select";
|
|
1386
|
+
/** select 选项 */
|
|
1387
|
+
options?: Array<{
|
|
1388
|
+
label: string;
|
|
1389
|
+
value: string;
|
|
1390
|
+
}>;
|
|
1391
|
+
defaultValue?: string;
|
|
1392
|
+
required?: boolean;
|
|
1393
|
+
placeholder?: string;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
declare interface ReportTemplate {
|
|
1397
|
+
schemaVersion?: string;
|
|
1398
|
+
/** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
|
|
1399
|
+
params?: ReportParamDef[];
|
|
1400
|
+
pages: TemplatePage[];
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1219
1403
|
declare interface RichParagraph {
|
|
1220
1404
|
segments: RichSegment[];
|
|
1221
1405
|
align?: ComponentStyle["align"];
|
|
@@ -1491,6 +1675,17 @@ declare interface Style {
|
|
|
1491
1675
|
fill: Fill;
|
|
1492
1676
|
}
|
|
1493
1677
|
|
|
1678
|
+
/** 条件格式规则求值(声明式,见 ListColumn.rules) */
|
|
1679
|
+
declare interface StyleRule {
|
|
1680
|
+
when: {
|
|
1681
|
+
field: string;
|
|
1682
|
+
op: ">" | ">=" | "<" | "<=" | "==" | "!=";
|
|
1683
|
+
value: number | string;
|
|
1684
|
+
};
|
|
1685
|
+
/** 命中时合并进单元格样式(color/bold/backgroundColor 等) */
|
|
1686
|
+
style: Record<string, unknown>;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1494
1689
|
declare interface Table extends Required<TableProperties> {
|
|
1495
1690
|
/**
|
|
1496
1691
|
* Commit changes
|
|
@@ -1613,6 +1808,20 @@ declare interface TableStyleProperties {
|
|
|
1613
1808
|
showColumnStripes?: boolean;
|
|
1614
1809
|
}
|
|
1615
1810
|
|
|
1811
|
+
declare type TemplateComponent = PlanComponent | ListComponent;
|
|
1812
|
+
|
|
1813
|
+
declare interface TemplatePage {
|
|
1814
|
+
widthMm: number;
|
|
1815
|
+
heightMm: number;
|
|
1816
|
+
/** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
|
|
1817
|
+
layout?: "page" | "wide";
|
|
1818
|
+
marginTopMm?: number;
|
|
1819
|
+
marginBottomMm?: number;
|
|
1820
|
+
marginLeftMm?: number;
|
|
1821
|
+
marginRightMm?: number;
|
|
1822
|
+
components: TemplateComponent[];
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1616
1825
|
declare interface TimePeriodRuleType extends ConditionalFormattingBaseRule {
|
|
1617
1826
|
type: 'timePeriod';
|
|
1618
1827
|
timePeriod?: TimePeriodTypes;
|
package/dist/xlsx.d.ts
CHANGED
|
@@ -341,6 +341,29 @@ declare interface Column {
|
|
|
341
341
|
defn: any; //todo
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
+
/**
|
|
345
|
+
* 列值格式化(声明式、JSON 可序列化)。
|
|
346
|
+
* 在 paginate 的 cellText 出口统一消费:格式化发生在进 RenderPlan 之前,
|
|
347
|
+
* 三后端(DOM/Canvas/PDF)零改动。
|
|
348
|
+
*
|
|
349
|
+
* 语义约定(v0.9 固化):
|
|
350
|
+
* - number.digits 显式给出 → 精确保留(12.5 + digits:2 → "12.50")
|
|
351
|
+
* - number.thousands 默认 false(千分位显式开启)
|
|
352
|
+
* - date 字符串按"本地时区的日历日"解析(YYYY-MM-DD / YYYY/MM/DD 直取年月日,
|
|
353
|
+
* 不经 Date 字符串构造——后者按 UTC 零点,负时区环境会少一天)
|
|
354
|
+
*/
|
|
355
|
+
declare type ColumnFormat = {
|
|
356
|
+
kind: "number";
|
|
357
|
+
thousands?: boolean;
|
|
358
|
+
digits?: number;
|
|
359
|
+
} | {
|
|
360
|
+
kind: "percent";
|
|
361
|
+
digits?: number;
|
|
362
|
+
} | {
|
|
363
|
+
kind: "date";
|
|
364
|
+
pattern?: string;
|
|
365
|
+
};
|
|
366
|
+
|
|
344
367
|
declare interface Comment_2 {
|
|
345
368
|
texts?: RichText[];
|
|
346
369
|
margins?: Partial<CommentMargins>;
|
|
@@ -540,6 +563,55 @@ declare enum ErrorValue {
|
|
|
540
563
|
Num = '#NUM!',
|
|
541
564
|
}
|
|
542
565
|
|
|
566
|
+
export declare interface ExcelImportedSheet {
|
|
567
|
+
name: string;
|
|
568
|
+
/** Original, one-based workbook position. */
|
|
569
|
+
index: number;
|
|
570
|
+
range: string;
|
|
571
|
+
rowCount: number;
|
|
572
|
+
columnCount: number;
|
|
573
|
+
/** Zero-based index into template.pages. */
|
|
574
|
+
pageStart: number;
|
|
575
|
+
pageCount: number;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/** Limits apply to the selected rectangular ranges, including their empty cells. */
|
|
579
|
+
export declare interface ExcelImportLimits {
|
|
580
|
+
/** Compressed input, default 20 MiB. */
|
|
581
|
+
maxFileBytes?: number;
|
|
582
|
+
/** Declared ZIP uncompressed total, default 64 MiB. */
|
|
583
|
+
maxUncompressedBytes?: number;
|
|
584
|
+
/** Total selected cells across sheets, default 250,000; hard ceiling 1,000,000. */
|
|
585
|
+
maxCells?: number;
|
|
586
|
+
/** Rows per selected sheet, default 100,000; hard ceiling 1,048,576. */
|
|
587
|
+
maxRows?: number;
|
|
588
|
+
/** Columns per selected sheet, default 2,048; hard ceiling 16,384. */
|
|
589
|
+
maxColumns?: number;
|
|
590
|
+
/** Workbook sheets, default 32. */
|
|
591
|
+
maxSheets?: number;
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export declare interface ExcelImportOptions {
|
|
595
|
+
/** Sheet names or one-based workbook positions. Default: all visible sheets. */
|
|
596
|
+
sheets?: Array<string | number>;
|
|
597
|
+
/** A1 range for every sheet, or ranges keyed by exact sheet name. */
|
|
598
|
+
range?: string | Record<string, string>;
|
|
599
|
+
/** Wide preserves natural column widths. A3/A4 scale the complete width to paper. */
|
|
600
|
+
layout?: "wide" | "a3" | "a4";
|
|
601
|
+
/** Only applies to A3/A4; default landscape. */
|
|
602
|
+
landscape?: boolean;
|
|
603
|
+
/** Vertical preview segment limit, default 80, maximum 200. Merges remain intact. */
|
|
604
|
+
maxRowsPerPage?: number;
|
|
605
|
+
/** Optional resource limits; hard ceilings prevent unbounded allocations. */
|
|
606
|
+
limits?: ExcelImportLimits;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
export declare interface ExcelImportResult {
|
|
610
|
+
template: ReportTemplate;
|
|
611
|
+
warnings: string[];
|
|
612
|
+
sheets: ExcelImportedSheet[];
|
|
613
|
+
}
|
|
614
|
+
|
|
543
615
|
declare namespace ExcelJS {
|
|
544
616
|
export {
|
|
545
617
|
Buffer_2 as Buffer,
|
|
@@ -790,6 +862,12 @@ declare interface GridCell {
|
|
|
790
862
|
value?: string | number | boolean | null;
|
|
791
863
|
/** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
|
|
792
864
|
numberFormat?: string;
|
|
865
|
+
/** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
|
|
866
|
+
valueType?: "text" | "number" | "boolean";
|
|
867
|
+
/** 单元格级编辑控制;预览仍需显式开启 editing。 */
|
|
868
|
+
editable?: boolean;
|
|
869
|
+
/** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
|
|
870
|
+
formula?: string;
|
|
793
871
|
children?: PlanComponent[];
|
|
794
872
|
colSpan?: number;
|
|
795
873
|
rowSpan?: number;
|
|
@@ -879,6 +957,12 @@ declare interface ImageRange {
|
|
|
879
957
|
br: Anchor;
|
|
880
958
|
}
|
|
881
959
|
|
|
960
|
+
/**
|
|
961
|
+
* Import saved .xlsx cell values and common styles as a reusable JSON report template.
|
|
962
|
+
* No formulas, macros, links, database calls or scripts are evaluated. The workbook is not modified.
|
|
963
|
+
*/
|
|
964
|
+
export declare function importExcelTemplate(input: ArrayBuffer | Uint8Array | Blob, options?: ExcelImportOptions): Promise<ExcelImportResult>;
|
|
965
|
+
|
|
882
966
|
declare interface JSZipGeneratorOptions {
|
|
883
967
|
/**
|
|
884
968
|
* @default DEFLATE
|
|
@@ -892,6 +976,82 @@ declare interface JSZipGeneratorOptions {
|
|
|
892
976
|
};
|
|
893
977
|
}
|
|
894
978
|
|
|
979
|
+
/** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
|
|
980
|
+
declare type ListAlignment = NonNullable<ComponentStyle["align"]> | "auto";
|
|
981
|
+
|
|
982
|
+
declare interface ListColumn {
|
|
983
|
+
header: string;
|
|
984
|
+
field: string;
|
|
985
|
+
widthMm: number;
|
|
986
|
+
style?: ComponentStyle;
|
|
987
|
+
/** 内容对齐,优先于 style.align;数值字符串不会自动判为数字。 */
|
|
988
|
+
align?: ListAlignment;
|
|
989
|
+
/** 独立的表头对齐,不改变内容对齐。 */
|
|
990
|
+
headerAlign?: ComponentStyle["align"];
|
|
991
|
+
/** 独立的表头样式,优先于列表级表头样式。 */
|
|
992
|
+
headerStyle?: ComponentStyle;
|
|
993
|
+
/** 值格式化(声明式):千分位/小数位、百分比、日期 pattern */
|
|
994
|
+
format?: ColumnFormat;
|
|
995
|
+
/** 条件格式规则(声明式,命中合并进单元格样式;如负数红字) */
|
|
996
|
+
rules?: StyleRule[];
|
|
997
|
+
/** 内容列编辑控制;仍需由预览显式开启 editing,不影响表头/小计只读规则。 */
|
|
998
|
+
editable?: boolean;
|
|
999
|
+
/** 空值列或特殊数据类型可显式声明编辑输入类型。 */
|
|
1000
|
+
valueType?: GridCell["valueType"];
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
declare interface ListComponent {
|
|
1004
|
+
kind: "list";
|
|
1005
|
+
id?: string;
|
|
1006
|
+
/** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
|
|
1007
|
+
layout?: "page" | "wide";
|
|
1008
|
+
/** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
|
|
1009
|
+
title?: string;
|
|
1010
|
+
leftMm: number;
|
|
1011
|
+
topMm: number;
|
|
1012
|
+
widthMm: number;
|
|
1013
|
+
dataset: string;
|
|
1014
|
+
columns: ListColumn[];
|
|
1015
|
+
fontSizePt?: number;
|
|
1016
|
+
headerBold?: boolean;
|
|
1017
|
+
rowHeightMm?: number;
|
|
1018
|
+
paddingMm?: number;
|
|
1019
|
+
headerEveryPage?: boolean;
|
|
1020
|
+
headerBackgroundColor?: string;
|
|
1021
|
+
/** 内容默认对齐,列配置可覆盖;低层模板缺省仍为 left。 */
|
|
1022
|
+
align?: ListAlignment;
|
|
1023
|
+
/** 表头默认对齐,列配置可覆盖。 */
|
|
1024
|
+
headerAlign?: ComponentStyle["align"];
|
|
1025
|
+
headerStyle?: ComponentStyle;
|
|
1026
|
+
border?: boolean;
|
|
1027
|
+
/** 分组小计(组头/组尾小计/组头防孤行) */
|
|
1028
|
+
groupBy?: ListGroupBy;
|
|
1029
|
+
/** 末尾总合计行(依赖 groupBy.subtotal 或显式 fields) */
|
|
1030
|
+
grandTotal?: ListGrandTotal;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
declare type ListGrandTotal = boolean | {
|
|
1034
|
+
label?: string;
|
|
1035
|
+
style?: ComponentStyle;
|
|
1036
|
+
/** 合计列(缺省沿用 groupBy.subtotal) */
|
|
1037
|
+
fields?: string[];
|
|
1038
|
+
};
|
|
1039
|
+
|
|
1040
|
+
/** 分组小计配置(声明式,见 ListComponent.groupBy) */
|
|
1041
|
+
declare interface ListGroupBy {
|
|
1042
|
+
/** 分组字段(值变化即切组) */
|
|
1043
|
+
field: string;
|
|
1044
|
+
/** 组头文案模板,{value} 占位(默认 "{value}") */
|
|
1045
|
+
headerTemplate?: string;
|
|
1046
|
+
headerStyle?: ComponentStyle;
|
|
1047
|
+
/** 需要小计的列字段(组尾输出合计行;数值列求和,其余输出首值/留空) */
|
|
1048
|
+
subtotal?: string[];
|
|
1049
|
+
subtotalStyle?: ComponentStyle;
|
|
1050
|
+
subtotalLabel?: string;
|
|
1051
|
+
/** 组头防孤行(默认 true:页尾放不下"组头+首行"时整体换页) */
|
|
1052
|
+
keepWithNext?: boolean;
|
|
1053
|
+
}
|
|
1054
|
+
|
|
895
1055
|
declare interface Location_2 {
|
|
896
1056
|
top: number;
|
|
897
1057
|
left: number;
|
|
@@ -1216,6 +1376,30 @@ declare interface RenderPlan {
|
|
|
1216
1376
|
|
|
1217
1377
|
export declare function renderPlanToXlsx(plan: RenderPlan, options?: XlsxRenderOptions): Promise<XlsxRenderResult>;
|
|
1218
1378
|
|
|
1379
|
+
/** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
|
|
1380
|
+
declare interface ReportParamDef {
|
|
1381
|
+
/** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
|
|
1382
|
+
field: string;
|
|
1383
|
+
/** 显示名(缺省用 field) */
|
|
1384
|
+
label?: string;
|
|
1385
|
+
type?: "text" | "number" | "date" | "select";
|
|
1386
|
+
/** select 选项 */
|
|
1387
|
+
options?: Array<{
|
|
1388
|
+
label: string;
|
|
1389
|
+
value: string;
|
|
1390
|
+
}>;
|
|
1391
|
+
defaultValue?: string;
|
|
1392
|
+
required?: boolean;
|
|
1393
|
+
placeholder?: string;
|
|
1394
|
+
}
|
|
1395
|
+
|
|
1396
|
+
declare interface ReportTemplate {
|
|
1397
|
+
schemaVersion?: string;
|
|
1398
|
+
/** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
|
|
1399
|
+
params?: ReportParamDef[];
|
|
1400
|
+
pages: TemplatePage[];
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1219
1403
|
declare interface RichParagraph {
|
|
1220
1404
|
segments: RichSegment[];
|
|
1221
1405
|
align?: ComponentStyle["align"];
|
|
@@ -1491,6 +1675,17 @@ declare interface Style {
|
|
|
1491
1675
|
fill: Fill;
|
|
1492
1676
|
}
|
|
1493
1677
|
|
|
1678
|
+
/** 条件格式规则求值(声明式,见 ListColumn.rules) */
|
|
1679
|
+
declare interface StyleRule {
|
|
1680
|
+
when: {
|
|
1681
|
+
field: string;
|
|
1682
|
+
op: ">" | ">=" | "<" | "<=" | "==" | "!=";
|
|
1683
|
+
value: number | string;
|
|
1684
|
+
};
|
|
1685
|
+
/** 命中时合并进单元格样式(color/bold/backgroundColor 等) */
|
|
1686
|
+
style: Record<string, unknown>;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1494
1689
|
declare interface Table extends Required<TableProperties> {
|
|
1495
1690
|
/**
|
|
1496
1691
|
* Commit changes
|
|
@@ -1613,6 +1808,20 @@ declare interface TableStyleProperties {
|
|
|
1613
1808
|
showColumnStripes?: boolean;
|
|
1614
1809
|
}
|
|
1615
1810
|
|
|
1811
|
+
declare type TemplateComponent = PlanComponent | ListComponent;
|
|
1812
|
+
|
|
1813
|
+
declare interface TemplatePage {
|
|
1814
|
+
widthMm: number;
|
|
1815
|
+
heightMm: number;
|
|
1816
|
+
/** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
|
|
1817
|
+
layout?: "page" | "wide";
|
|
1818
|
+
marginTopMm?: number;
|
|
1819
|
+
marginBottomMm?: number;
|
|
1820
|
+
marginLeftMm?: number;
|
|
1821
|
+
marginRightMm?: number;
|
|
1822
|
+
components: TemplateComponent[];
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1616
1825
|
declare interface TimePeriodRuleType extends ConditionalFormattingBaseRule {
|
|
1617
1826
|
type: 'timePeriod';
|
|
1618
1827
|
timePeriod?: TimePeriodTypes;
|