@agile-team/mach-report 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +54 -10
  2. package/dist/ReportPreview-B-mwUSk9.cjs +6 -0
  3. package/dist/ReportPreview-DKjr4cwO.js +1688 -0
  4. package/dist/defaults-D4o0NCLo.js +9 -0
  5. package/dist/defaults-DOO1yHwx.cjs +1 -0
  6. package/dist/grid-geometry-Dw7BlENr.js +130 -0
  7. package/dist/grid-geometry-bkciiZ4Q.cjs +1 -0
  8. package/dist/index.cjs +6 -6
  9. package/dist/index.d.cts +37 -5
  10. package/dist/index.d.ts +37 -5
  11. package/dist/index.js +1163 -1037
  12. package/dist/pdf.cjs +48 -48
  13. package/dist/pdf.d.cts +18 -0
  14. package/dist/pdf.d.ts +18 -0
  15. package/dist/pdf.js +5605 -5575
  16. package/dist/{plugin-BMoMUxrw.cjs → plugin-2lqgTX26.cjs} +1 -1
  17. package/dist/{plugin-CAcNe0FT.js → plugin-5R00MJQs.js} +1 -1
  18. package/dist/render-plan-CfJ3wf1l.cjs +1 -0
  19. package/dist/render-plan-I9AHvQv7.js +13 -0
  20. package/dist/sql.cjs +42 -42
  21. package/dist/sql.js +1366 -1363
  22. package/dist/style.css +1 -1
  23. package/dist/textwrap-nH0UYU6D.js +108 -0
  24. package/dist/textwrap-oD-t4b4B.cjs +4 -0
  25. package/dist/vue/async.d.cts +33 -7
  26. package/dist/vue/async.d.ts +33 -7
  27. package/dist/vue/index.d.cts +36 -10
  28. package/dist/vue/index.d.ts +36 -10
  29. package/dist/vue-async.cjs +1 -1
  30. package/dist/vue-async.js +3 -3
  31. package/dist/vue.cjs +1 -1
  32. package/dist/vue.js +4 -4
  33. package/dist/xlsx.cjs +24 -24
  34. package/dist/xlsx.d.cts +24 -4
  35. package/dist/xlsx.d.ts +24 -4
  36. package/dist/xlsx.js +8287 -8166
  37. package/package.json +1 -1
  38. package/dist/ReportPreview-BWrQCj9M.js +0 -1643
  39. package/dist/ReportPreview-DY0PGGqF.cjs +0 -6
  40. package/dist/grid-geometry-DBH9ExuY.cjs +0 -1
  41. package/dist/grid-geometry-DONcjshk.js +0 -130
  42. package/dist/textwrap-DdaewxAd.js +0 -117
  43. package/dist/textwrap-DqiFwAV3.cjs +0 -3
package/dist/index.d.ts CHANGED
@@ -133,8 +133,8 @@ export declare function createReportSource(reports: ReportRegistry, options?: {
133
133
  }): ReportSource;
134
134
 
135
135
  /**
136
- * 创建一页标准明细模板;分页与格式化继续由 paginateTemplate 处理。
137
- * 固定列保持毫米宽度,自动列共享余量;全部固定列时表格宽度为列宽之和。
136
+ * 创建明细模板;校验、列宽分配、标题与页面装配分别处理。
137
+ * page 自动列共享纸张余量;wide 保留自然列宽,公开配置保持不变。
138
138
  */
139
139
  export declare function createTableTemplate(options: TableTemplateOptions): ReportTemplate;
140
140
 
@@ -276,6 +276,10 @@ export declare interface ListColumn {
276
276
  export declare interface ListComponent {
277
277
  kind: "list";
278
278
  id?: string;
279
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
280
+ layout?: "page" | "wide";
281
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
282
+ title?: string;
279
283
  leftMm: number;
280
284
  topMm: number;
281
285
  widthMm: number;
@@ -328,6 +332,9 @@ export declare function measurePageSizePx(page: Pick<PlanPage, "pageWidthMm" | "
328
332
 
329
333
  export declare function measureTextMm(text: string, options: TextMeasureOptions): number;
330
334
 
335
+ /** Merge a declared style layer while keeping its explicit font unit authoritative. */
336
+ export declare function mergeComponentStyles(base: ComponentStyle | undefined, override: ComponentStyle | undefined): ComponentStyle;
337
+
331
338
  export declare const MM_PER_INCH = 25.4;
332
339
 
333
340
  export declare function mmToPx(value: number, dpi?: number): number;
@@ -386,6 +393,7 @@ export declare interface PaginateResult {
386
393
  warnings: string[];
387
394
  }
388
395
 
396
+ /** 模板遍历只编排静态组件和列表;行测量、分组、换页与汇总各自独立。 */
389
397
  export declare function paginateTemplate(template: ReportTemplate, datasets: DatasetRows, optionsOrMmPerRow?: number | PaginateOptions): PaginateResult;
390
398
 
391
399
  export declare const PAPER_SIZES: Record<string, {
@@ -416,6 +424,7 @@ export declare interface PlanComponent {
416
424
  richParagraphs?: RichParagraph[];
417
425
  imageData?: string;
418
426
  grid?: PlanGrid;
427
+ table?: PlanTableFragment;
419
428
  style?: ComponentStyle;
420
429
  meta?: Record<string, unknown>;
421
430
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -434,9 +443,13 @@ export declare interface PlanGrid {
434
443
  colWidthsMm?: number[];
435
444
  rowHeightsMm?: number[];
436
445
  gapMm?: number;
446
+ /** 单元格四边内距;旧静态网格默认 0.5mm,分页列表使用其真实测量内距。 */
447
+ paddingMm?: number;
437
448
  }
438
449
 
439
450
  export declare interface PlanPage {
451
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
452
+ layout?: "page" | "wide";
440
453
  pageWidthMm: number;
441
454
  pageHeightMm: number;
442
455
  marginTopMm?: number;
@@ -446,6 +459,19 @@ export declare interface PlanPage {
446
459
  components: PlanComponent[];
447
460
  }
448
461
 
462
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
463
+ export declare interface PlanTableFragment {
464
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
465
+ id: string;
466
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
467
+ rowIndex: number;
468
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
469
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
470
+ columnKeys: string[];
471
+ layout?: "page" | "wide";
472
+ title?: string;
473
+ }
474
+
449
475
  export declare function ptToPx(pt: number, dpi?: number): number;
450
476
 
451
477
  export declare function pxToMm(value: number, dpi?: number): number;
@@ -675,16 +701,20 @@ export declare interface StyleRule {
675
701
  style: Record<string, unknown>;
676
702
  }
677
703
 
678
- /** 标准明细列:显式 widthMm 优先;其余列按 flex 分配剩余可用宽度。 */
704
+ /** 明细列:显式 widthMm 优先;纸张模式按 flex 分余量,宽表模式按 flex 放大基准列宽。 */
679
705
  export declare type TableTemplateColumn = Omit<ListColumn, "widthMm"> & {
680
706
  widthMm?: number;
681
707
  /** 自动列的宽度权重,默认 1(有 widthMm 时不参与分配)。 */
682
708
  flex?: number;
683
709
  };
684
710
 
685
- export declare type TableTemplateListOptions = Partial<Omit<ListComponent, "kind" | "leftMm" | "topMm" | "widthMm" | "dataset" | "columns">>;
711
+ export declare type TableTemplateListOptions = Partial<Omit<ListComponent, "kind" | "leftMm" | "topMm" | "widthMm" | "dataset" | "columns" | "layout" | "title">>;
686
712
 
687
713
  export declare interface TableTemplateOptions extends PageOptions {
714
+ /** page 保持旧版纸张布局;wide 按所有列的自然宽度扩展,纵向分段仅供预览与渲染。 */
715
+ layout?: "page" | "wide";
716
+ /** 宽表模式自动列的基准宽度,默认 30mm;widthMm 优先,flex 为基准宽度的倍数。 */
717
+ columnWidthMm?: number;
688
718
  title?: string;
689
719
  /** 标题占高,默认 10mm;没有标题时不占空间。 */
690
720
  titleHeightMm?: number;
@@ -693,7 +723,7 @@ export declare interface TableTemplateOptions extends PageOptions {
693
723
  titleStyle?: ComponentStyle;
694
724
  dataset?: string;
695
725
  columns: readonly TableTemplateColumn[];
696
- /** 默认 A4;页边距各默认 10mm。 */
726
+ /** 纸张模式默认 A4;与 layout: "wide" 互斥;页边距各默认 10mm。 */
697
727
  paper?: PaperName | {
698
728
  widthMm: number;
699
729
  heightMm: number;
@@ -741,6 +771,8 @@ export declare type TemplateComponent = PlanComponent | ListComponent;
741
771
  export declare interface TemplatePage {
742
772
  widthMm: number;
743
773
  heightMm: number;
774
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
775
+ layout?: "page" | "wide";
744
776
  marginTopMm?: number;
745
777
  marginBottomMm?: number;
746
778
  marginLeftMm?: number;