@agile-team/mach-report 2.9.1 → 2.11.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.
Files changed (115) hide show
  1. package/README.md +11 -7
  2. package/dist/ExcelBindingWizard-CjIiVox-.cjs +1 -0
  3. package/dist/ExcelBindingWizard-Dxm-K5HL.js +1240 -0
  4. package/dist/ParamEditor-D-Hf5xfO.cjs +1 -0
  5. package/dist/ParamEditor-DRGxzxeO.js +381 -0
  6. package/dist/ReportBatchPanel-BYgg0EDB.cjs +1 -0
  7. package/dist/ReportBatchPanel-Bby5yLzU.js +287 -0
  8. package/dist/ReportPreview-DWXROHBP.cjs +6 -0
  9. package/dist/ReportPreview-DiNXhQI0.js +4138 -0
  10. package/dist/ReportTemplateLibrary-C6CO7YCT.cjs +1 -0
  11. package/dist/ReportTemplateLibrary-DfzDXRvr.js +260 -0
  12. package/dist/RuleEditor-C2QsOHOs.cjs +1 -0
  13. package/dist/RuleEditor-D9wQHrkf.js +2024 -0
  14. package/dist/TemplateReviewPanel-BKofGrV9.js +222 -0
  15. package/dist/TemplateReviewPanel-DwtOcLue.cjs +1 -0
  16. package/dist/analytics.cjs +1 -1
  17. package/dist/analytics.d.cts +4 -0
  18. package/dist/analytics.d.ts +4 -0
  19. package/dist/analytics.js +40 -39
  20. package/dist/{assets-ahTRUXRk.cjs → assets-Bu6UohJx.cjs} +1 -1
  21. package/dist/{assets-DDsfEi8R.js → assets-DegqDNqY.js} +1 -1
  22. package/dist/batch-Bt3Fd27Z.cjs +1 -0
  23. package/dist/batch-mRqhhhjt.js +364 -0
  24. package/dist/{capabilities-Cm9hZ3uV.js → capabilities-CK_7hizc.js} +16 -16
  25. package/dist/capabilities-CsZ-pNHR.cjs +1 -0
  26. package/dist/computed-Bvk0W15F.js +521 -0
  27. package/dist/computed-CGV2a809.cjs +1 -0
  28. package/dist/config-B612mw0x.js +525 -0
  29. package/dist/config-BRoLo2oj.cjs +1 -0
  30. package/dist/designer.cjs +2 -2
  31. package/dist/designer.d.cts +695 -50
  32. package/dist/designer.d.ts +695 -50
  33. package/dist/designer.js +2213 -1748
  34. package/dist/index.cjs +8 -8
  35. package/dist/index.d.cts +205 -6
  36. package/dist/index.d.ts +205 -6
  37. package/dist/index.js +808 -1033
  38. package/dist/injection-keys-Db_DyLkm.cjs +1 -0
  39. package/dist/injection-keys-e85udZCp.js +7 -0
  40. package/dist/list-cell-BuYn4tGF.cjs +1 -0
  41. package/dist/list-cell-ClFra1zS.js +173 -0
  42. package/dist/matrix-DVyWiYsd.cjs +1 -0
  43. package/dist/matrix-yZsGnldA.js +227 -0
  44. package/dist/param-validation-BlHHXs6u.js +153 -0
  45. package/dist/param-validation-DCK039V1.cjs +1 -0
  46. package/dist/pdf.cjs +49 -49
  47. package/dist/pdf.d.cts +31 -1
  48. package/dist/pdf.d.ts +31 -1
  49. package/dist/pdf.js +4797 -4650
  50. package/dist/plugin-BDTU4D94.cjs +1 -0
  51. package/dist/plugin-Cd5G2QQn.js +22 -0
  52. package/dist/region-binding-workflow-CXDmt9Bs.js +977 -0
  53. package/dist/region-binding-workflow-DhQvu1co.cjs +3 -0
  54. package/dist/{report-params-B_VCihAh.js → report-params-B44imUd4.js} +1 -1
  55. package/dist/{report-params-CjWrjPl6.cjs → report-params-SJfhKgaX.cjs} +1 -1
  56. package/dist/server/node.d.cts +48 -5
  57. package/dist/server/node.d.ts +48 -5
  58. package/dist/server-node.cjs +1 -1
  59. package/dist/server-node.js +503 -317
  60. package/dist/server.cjs +1 -1
  61. package/dist/server.d.cts +252 -4
  62. package/dist/server.d.ts +252 -4
  63. package/dist/server.js +567 -469
  64. package/dist/style.css +1 -1
  65. package/dist/template-registry-WNXdkiET.js +506 -0
  66. package/dist/template-registry-ukBGlm8N.cjs +1 -0
  67. package/dist/template-review-BXp2oyqg.cjs +1 -0
  68. package/dist/template-review-BdcXSYbx.js +1616 -0
  69. package/dist/tree-BX380Rr7.cjs +1 -0
  70. package/dist/tree-CqcQ99NM.js +172 -0
  71. package/dist/useLocalDraft-C07SYRnC.js +11 -0
  72. package/dist/useLocalDraft-Yiw1wFgI.cjs +1 -0
  73. package/dist/{validate-DWPF7icl.js → validate-7s0yn6ii.js} +26 -26
  74. package/dist/validate-DsRiNw8h.cjs +1 -0
  75. package/dist/vue/async.d.cts +118 -6
  76. package/dist/vue/async.d.ts +118 -6
  77. package/dist/vue/index.d.cts +177 -11
  78. package/dist/vue/index.d.ts +177 -11
  79. package/dist/vue-async.cjs +1 -1
  80. package/dist/vue-async.js +5 -5
  81. package/dist/vue.cjs +1 -1
  82. package/dist/vue.js +116 -113
  83. package/dist/{import-template-CNMLJSQw.js → workbook-session-BKOTwcoq.js} +4290 -4227
  84. package/dist/{import-template-CpxunKVp.cjs → workbook-session-CLYLhZWu.cjs} +17 -17
  85. package/dist/worker.cjs +1 -1
  86. package/dist/worker.d.cts +9 -2
  87. package/dist/worker.d.ts +9 -2
  88. package/dist/worker.js +1 -1
  89. package/dist/xlsx.cjs +4 -2
  90. package/dist/xlsx.d.cts +159 -3
  91. package/dist/xlsx.d.ts +159 -3
  92. package/dist/xlsx.js +354 -192
  93. package/package.json +1 -1
  94. package/dist/ExcelBindingWizard-DiaxvWpQ.cjs +0 -1
  95. package/dist/ExcelBindingWizard-RLJIXKKG.js +0 -816
  96. package/dist/ReportPreview-B5ZNEasW.js +0 -4439
  97. package/dist/ReportPreview-DRtVPUYo.cjs +0 -6
  98. package/dist/RuleEditor-CskN5Fr3.cjs +0 -1
  99. package/dist/RuleEditor-CtJFzKuY.js +0 -1578
  100. package/dist/TemplateReviewPanel-C_Lmzis6.cjs +0 -1
  101. package/dist/TemplateReviewPanel-Cn32OY4_.js +0 -173
  102. package/dist/binding-preview-B5834rml.cjs +0 -2
  103. package/dist/binding-preview-ChXjN5L5.js +0 -649
  104. package/dist/capabilities-DYzWL7KS.cjs +0 -1
  105. package/dist/matrix-CNPDJxED.js +0 -745
  106. package/dist/matrix-Div9Ilh3.cjs +0 -1
  107. package/dist/param-validation-BWNjLcN0.js +0 -116
  108. package/dist/param-validation-CiTxFeZ8.cjs +0 -1
  109. package/dist/plugin-BWwIgZXV.js +0 -25
  110. package/dist/plugin-Dg-J1Rbm.cjs +0 -1
  111. package/dist/template-registry-CHMYZ7SD.cjs +0 -1
  112. package/dist/template-registry-R61AMCr0.js +0 -433
  113. package/dist/template-review-hvWWQFsi.js +0 -1027
  114. package/dist/template-review-jEcOfmGr.cjs +0 -1
  115. package/dist/validate-BDiMqkJC.cjs +0 -1
@@ -1,4 +1,5 @@
1
1
  import { ComponentOptionsMixin } from 'vue';
2
+ import { ComputedRef } from 'vue';
2
3
  import { DefineComponent } from 'vue';
3
4
  declare interface AggregateDefinition {
4
5
  /** Output column; valueField defaults to this field. */
@@ -30,6 +31,8 @@ declare interface AggregateDefinition_3 {
30
31
  declare type AggregateOperation = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
31
32
  declare type AggregateOperation_2 = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
32
33
  declare type AggregateOperation_3 = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
34
+ declare type AnyExcelBindingDocumentResult = ExcelBindingDocumentResult | ExcelRegionBindingDocumentResult;
35
+ declare type AnyExcelBindingSession = ExcelBindingSession | ExcelRegionBindingSession;
33
36
  declare interface AssetRenderBudget {
34
37
  /** Maximum newly rendered assets, default 1000. Existing imageData is kept unchanged. */
35
38
  maxAssets?: number;
@@ -260,18 +263,39 @@ declare interface DatasetContract {
260
263
  rowKey?: string;
261
264
  }
262
265
  declare interface DatasetContract_2 {
263
- fields: readonly ReportFieldContract_3[];
264
- rowKey?: string;
265
- }
266
- declare interface DatasetContract_3 {
267
266
  fields: readonly ReportFieldContract_2[];
268
267
  rowKey?: string;
269
268
  }
270
269
  declare type DatasetRows = Record<string, Record<string, unknown>[]>;
271
270
  declare type DatasetRows_2 = Record<string, Record<string, unknown>[]>;
272
- declare type DatasetRows_3 = Record<string, Record<string, unknown>[]>;
273
271
  /** Optional wizard labels remain independent of the general designer configuration. */
274
272
  export declare const EXCEL_BINDING_MESSAGES: {
273
+ tableMode: string;
274
+ multiRegions: string;
275
+ multiHint: string;
276
+ addRegion: string;
277
+ removeRegion: string;
278
+ regionProperties: string;
279
+ regionCoordinates: string;
280
+ regionMode: string;
281
+ recordMode: string;
282
+ repeatMode: string;
283
+ recordHint: string;
284
+ repeatHint: string;
285
+ bindRegionHeader: string;
286
+ noRegionHeader: string;
287
+ clearHeader: string;
288
+ flowFooter: string;
289
+ flowFooterHint: string;
290
+ bindFooter: string;
291
+ clearFooter: string;
292
+ concurrency: string;
293
+ revisionField: string;
294
+ sourceTokenField: string;
295
+ selectionCellLabel: string;
296
+ searchFields: string;
297
+ fieldLimit: string;
298
+ restoreDraft: string;
275
299
  title: string;
276
300
  intro: string;
277
301
  upload: string;
@@ -385,21 +409,26 @@ declare interface ExcelBindingSession {
385
409
  };
386
410
  }
387
411
  export declare const ExcelBindingWizard: DefineComponent<ExcelBindingWizardOptions, {
412
+ pendingLocalChanges: boolean;
388
413
  importFile: (file: File) => Promise<void>;
389
- apply: () => void;
414
+ apply: () => Promise<void>;
390
415
  cancel: () => void;
391
416
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
417
+ dirty: (value: boolean) => any;
392
418
  apply: (result: ExcelBindingWizardApply) => any;
393
419
  }, string, MachReportVuePublicProps, Readonly<ExcelBindingWizardOptions> & Readonly<{
420
+ onDirty?: ((value: boolean) => any) | undefined;
394
421
  onApply?: ((result: ExcelBindingWizardApply) => any) | undefined;
395
422
  }>, {}>;
396
- export declare interface ExcelBindingWizardApply extends ExcelBindingDocumentResult {
397
- session: ExcelBindingSession;
398
- }
423
+ export declare type ExcelBindingWizardApply = AnyExcelBindingDocumentResult & {
424
+ session: AnyExcelBindingSession;
425
+ };
399
426
  export declare interface ExcelBindingWizardOptions {
400
427
  datasets: readonly ExcelBindingDataset[];
428
+ /** An embedded editor can decline replacement; success is shown only after acceptance. */
429
+ accept?: (result: ExcelBindingWizardApply) => boolean | Promise<boolean>;
401
430
  /** Source + exact coordinates + mappings. No File, functions, network credentials, or live result rows. */
402
- session?: ExcelBindingSession;
431
+ session?: AnyExcelBindingSession;
403
432
  identity?: {
404
433
  id: string;
405
434
  name: string;
@@ -484,6 +513,43 @@ declare interface ExcelImportResult {
484
513
  warnings: string[];
485
514
  sheets: ExcelImportedSheet[];
486
515
  }
516
+ /** A row prototype is replaced, never copied into a generated business report. */
517
+ declare interface ExcelRegionBinding {
518
+ id: string;
519
+ /** One physical source row, with any contiguous subset of the sheet columns. */
520
+ range: string;
521
+ dataset: string;
522
+ /** record accepts zero or one row; repeat expands vertically and shifts following bands. */
523
+ mode: "record" | "repeat";
524
+ fields: string[];
525
+ rowKey: string;
526
+ revisionField?: string;
527
+ sourceTokenField?: string;
528
+ /** Optional immediately preceding header, with the same physical columns. */
529
+ headerRange?: string;
530
+ }
531
+ declare interface ExcelRegionBindingDocumentResult {
532
+ document: ReportTemplateDocument_2;
533
+ recipe: ExcelRegionBindingRecipe;
534
+ warnings: string[];
535
+ }
536
+ /** Version 2 describes several independent, vertically ordered data regions on one Sheet. */
537
+ declare interface ExcelRegionBindingRecipe {
538
+ version: "2.0";
539
+ sheet: string;
540
+ regions: ExcelRegionBinding[];
541
+ /** Full-width source rows reserved on every page; excluded from flowing content. */
542
+ footerRange?: string;
543
+ }
544
+ declare interface ExcelRegionBindingSession {
545
+ version: "2.0";
546
+ source: ExcelImportResult;
547
+ recipe: ExcelRegionBindingRecipe;
548
+ identity: {
549
+ id: string;
550
+ name: string;
551
+ };
552
+ }
487
553
  declare interface ExpressionOptions {
488
554
  numeric?: "number" | "decimal";
489
555
  digits?: number;
@@ -509,11 +575,15 @@ declare interface GridCell {
509
575
  value?: string | number | boolean | null;
510
576
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
511
577
  numberFormat?: string;
578
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
579
+ indentMm?: number;
512
580
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
513
581
  valueType?: "text" | "number" | "boolean";
514
582
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
515
583
  editable?: boolean;
516
584
  source?: ReportCellSource;
585
+ /** SDK 派生结果不映射业务来源,始终只读(包括覆盖同名源字段的计算)。 */
586
+ derived?: boolean;
517
587
  /** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
518
588
  formula?: string;
519
589
  children?: PlanComponent[];
@@ -528,11 +598,15 @@ declare interface GridCell_2 {
528
598
  value?: string | number | boolean | null;
529
599
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
530
600
  numberFormat?: string;
601
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
602
+ indentMm?: number;
531
603
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
532
604
  valueType?: "text" | "number" | "boolean";
533
605
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
534
606
  editable?: boolean;
535
607
  source?: ReportCellSource_2;
608
+ /** SDK 派生结果不映射业务来源,始终只读(包括覆盖同名源字段的计算)。 */
609
+ derived?: boolean;
536
610
  /** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
537
611
  formula?: string;
538
612
  children?: PlanComponent_2[];
@@ -547,11 +621,15 @@ declare interface GridCell_3 {
547
621
  value?: string | number | boolean | null;
548
622
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
549
623
  numberFormat?: string;
624
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
625
+ indentMm?: number;
550
626
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
551
627
  valueType?: "text" | "number" | "boolean";
552
628
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
553
629
  editable?: boolean;
554
630
  source?: ReportCellSource_3;
631
+ /** SDK 派生结果不映射业务来源,始终只读(包括覆盖同名源字段的计算)。 */
632
+ derived?: boolean;
555
633
  /** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
556
634
  formula?: string;
557
635
  children?: PlanComponent_3[];
@@ -643,6 +721,8 @@ declare interface ListColumn_3 {
643
721
  }
644
722
  declare interface ListComponent {
645
723
  kind: "list";
724
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
725
+ meta?: Record<string, unknown>;
646
726
  id?: string;
647
727
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
648
728
  layout?: "page" | "wide";
@@ -652,6 +732,10 @@ declare interface ListComponent {
652
732
  topMm: number;
653
733
  widthMm: number;
654
734
  dataset: string;
735
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
736
+ header?: boolean;
737
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
738
+ cardinality?: "record";
655
739
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
656
740
  rowKey?: string;
657
741
  revisionField?: string;
@@ -678,6 +762,8 @@ declare interface ListComponent {
678
762
  computed?: ComputedField[];
679
763
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
680
764
  matrix?: MatrixTableOptions;
765
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
766
+ tree?: TreeTableOptions;
681
767
  /** Explicit row visibility; hidden rows do not participate in summaries. */
682
768
  rowVisibleWhen?: StyleRule["when"];
683
769
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -687,6 +773,8 @@ declare interface ListComponent {
687
773
  }
688
774
  declare interface ListComponent_2 {
689
775
  kind: "list";
776
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
777
+ meta?: Record<string, unknown>;
690
778
  id?: string;
691
779
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
692
780
  layout?: "page" | "wide";
@@ -696,6 +784,10 @@ declare interface ListComponent_2 {
696
784
  topMm: number;
697
785
  widthMm: number;
698
786
  dataset: string;
787
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
788
+ header?: boolean;
789
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
790
+ cardinality?: "record";
699
791
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
700
792
  rowKey?: string;
701
793
  revisionField?: string;
@@ -722,6 +814,8 @@ declare interface ListComponent_2 {
722
814
  computed?: ComputedField_2[];
723
815
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
724
816
  matrix?: MatrixTableOptions_2;
817
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
818
+ tree?: TreeTableOptions_2;
725
819
  /** Explicit row visibility; hidden rows do not participate in summaries. */
726
820
  rowVisibleWhen?: StyleRule_2["when"];
727
821
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -731,6 +825,8 @@ declare interface ListComponent_2 {
731
825
  }
732
826
  declare interface ListComponent_3 {
733
827
  kind: "list";
828
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
829
+ meta?: Record<string, unknown>;
734
830
  id?: string;
735
831
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
736
832
  layout?: "page" | "wide";
@@ -740,6 +836,10 @@ declare interface ListComponent_3 {
740
836
  topMm: number;
741
837
  widthMm: number;
742
838
  dataset: string;
839
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
840
+ header?: boolean;
841
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
842
+ cardinality?: "record";
743
843
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
744
844
  rowKey?: string;
745
845
  revisionField?: string;
@@ -766,6 +866,8 @@ declare interface ListComponent_3 {
766
866
  computed?: ComputedField_3[];
767
867
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
768
868
  matrix?: MatrixTableOptions_3;
869
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
870
+ tree?: TreeTableOptions_3;
769
871
  /** Explicit row visibility; hidden rows do not participate in summaries. */
770
872
  rowVisibleWhen?: StyleRule_3["when"];
771
873
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -778,6 +880,9 @@ declare interface ListDetail {
778
880
  parentKey: string;
779
881
  foreignKey: string;
780
882
  rowKey?: string;
883
+ /** 子表独立的并发契约;省略时不继承主表字段。 */
884
+ revisionField?: string;
885
+ sourceTokenField?: string;
781
886
  columns: ListColumn[];
782
887
  rowHeightMm?: number;
783
888
  header?: boolean;
@@ -790,6 +895,9 @@ declare interface ListDetail_2 {
790
895
  parentKey: string;
791
896
  foreignKey: string;
792
897
  rowKey?: string;
898
+ /** 子表独立的并发契约;省略时不继承主表字段。 */
899
+ revisionField?: string;
900
+ sourceTokenField?: string;
793
901
  columns: ListColumn_2[];
794
902
  rowHeightMm?: number;
795
903
  header?: boolean;
@@ -802,6 +910,9 @@ declare interface ListDetail_3 {
802
910
  parentKey: string;
803
911
  foreignKey: string;
804
912
  rowKey?: string;
913
+ /** 子表独立的并发契约;省略时不继承主表字段。 */
914
+ revisionField?: string;
915
+ sourceTokenField?: string;
805
916
  columns: ListColumn_3[];
806
917
  rowHeightMm?: number;
807
918
  header?: boolean;
@@ -987,6 +1098,8 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
987
1098
  paramPromptDescription?: string;
988
1099
  paramSelectPlaceholder?: string;
989
1100
  paramTextPlaceholder?: string;
1101
+ paramRangeStart?: string;
1102
+ paramRangeEnd?: string;
990
1103
  /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
991
1104
  searching?: string;
992
1105
  importExcel?: string;
@@ -1038,6 +1151,171 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
1038
1151
  conflicts?: string;
1039
1152
  editReadOnly?: string;
1040
1153
  editMissing?: string;
1154
+ editRecalculationUnavailable?: string;
1155
+ editDuplicate?: string;
1156
+ clipboardInvalid?: string;
1157
+ editSaved?: string;
1158
+ settingsPanes?: string;
1159
+ columnDirectory?: string;
1160
+ columnSearch?: string;
1161
+ columnNoMatches?: string;
1162
+ columnResults?: string;
1163
+ columnGroup?: string;
1164
+ discardTitle?: string;
1165
+ discardDescription?: string;
1166
+ discardKeep?: string;
1167
+ discardProceed?: string;
1168
+ taskQuery?: string;
1169
+ taskValidate?: string;
1170
+ taskLayout?: string;
1171
+ taskAssets?: string;
1172
+ taskEncode?: string;
1173
+ taskDownload?: string;
1174
+ taskPrint?: string;
1175
+ taskCancel?: string;
1176
+ taskCancelled?: string;
1177
+ diagnosticsTitle?: string;
1178
+ diagnosticsSearch?: string;
1179
+ diagnosticsMore?: string;
1180
+ diagnosticsLocate?: string;
1181
+ diagnosticsLocation?: string;
1182
+ diagnosticsStrict?: string;
1183
+ diagnosticsDetails?: string;
1184
+ diagnosticMissingImage?: string;
1185
+ diagnosticUnsupported?: string;
1186
+ diagnosticUnsupportedStyle?: string;
1187
+ diagnosticImageFormat?: string;
1188
+ diagnosticRichText?: string;
1189
+ diagnosticNested?: string;
1190
+ diagnosticImageAsync?: string;
1191
+ diagnosticImageDecode?: string;
1192
+ diagnosticAssetFailed?: string;
1193
+ diagnosticAssetBudget?: string;
1194
+ }
1195
+ /**
1196
+ * 配置中心(对齐 mach-table 的 defineMachTableConfig 体验):
1197
+ * - 应用级:app.use(machReportPlugin, { config: defineMachReportConfig({...}) })
1198
+ * - 路由级叠加:provideMachReportConfig(overlay)(响应式,就近覆盖)
1199
+ * - 优先级:组件 props > 路由级叠加 > preset > defaults(props 永远最高)
1200
+ */
1201
+ /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1202
+ declare interface MachReportMessages_2 extends Partial<ReportCalculationMessages_2> {
1203
+ exportMenu?: string;
1204
+ exportMenuDescription?: string;
1205
+ clearSearch?: string;
1206
+ searchHint?: string;
1207
+ searchNoMatches?: string;
1208
+ pageJump?: string;
1209
+ pageJumpInvalid?: string;
1210
+ pageJumpHint?: string;
1211
+ pagination?: string;
1212
+ columnSearchHint?: string;
1213
+ columnSearchShortcut?: string;
1214
+ closeColumnDirectory?: string;
1215
+ columnResultsMore?: string;
1216
+ columnCount?: string;
1217
+ settingsGeneral?: string;
1218
+ settingsTools?: string;
1219
+ settingsAdvanced?: string;
1220
+ settingsAdvancedDescription?: string;
1221
+ settingsCalculations?: string;
1222
+ settingsCalculationsDescription?: string;
1223
+ title: string;
1224
+ prevPage: string;
1225
+ nextPage: string;
1226
+ /** 页码显示模板,{cur}/{total} 占位 */
1227
+ pageInfo: string;
1228
+ fitWidth: string;
1229
+ exportHtml: string;
1230
+ exportPdf: string;
1231
+ exportExcel: string;
1232
+ exportImage: string;
1233
+ exportWord: string;
1234
+ /** 导出进行中提示,{format} 占位 */
1235
+ exporting: string;
1236
+ print: string;
1237
+ pdfWindow: string;
1238
+ loading: string;
1239
+ empty: string;
1240
+ /** @deprecated 未被组件消费,将在下个大版本移除(保留仅为类型兼容) */
1241
+ errorPrefix: string;
1242
+ retry: string;
1243
+ /** 可选新增文案,保留旧完整文案对象兼容。 */
1244
+ pdfFontUnavailable?: string;
1245
+ /** 搜索框占位文案 */
1246
+ searchPlaceholder: string;
1247
+ /** 搜索命中计数,{cur}/{total} 占位 */
1248
+ matchInfo: string;
1249
+ /** 上/下一个命中 */
1250
+ prevMatch: string;
1251
+ nextMatch: string;
1252
+ /** 缩略图侧栏开关 */
1253
+ thumbnails: string;
1254
+ /** 参数面板 */
1255
+ paramsTitle: string;
1256
+ query: string;
1257
+ reset: string;
1258
+ /** 必填缺失提示({label} 占位) */
1259
+ paramRequired: string;
1260
+ paramInvalid?: string;
1261
+ paramPrompt?: string;
1262
+ paramPromptDescription?: string;
1263
+ paramSelectPlaceholder?: string;
1264
+ paramTextPlaceholder?: string;
1265
+ paramRangeStart?: string;
1266
+ paramRangeEnd?: string;
1267
+ /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
1268
+ searching?: string;
1269
+ importExcel?: string;
1270
+ importing?: string;
1271
+ editCell?: string;
1272
+ editingHint?: string;
1273
+ saving?: string;
1274
+ editInvalidNumber?: string;
1275
+ editInvalidBoolean?: string;
1276
+ editConflict?: string;
1277
+ settings?: string;
1278
+ settingsDisplay?: string;
1279
+ settingsExport?: string;
1280
+ settingsData?: string;
1281
+ settingsUnavailable?: string;
1282
+ settingsReset?: string;
1283
+ settingsClose?: string;
1284
+ search?: string;
1285
+ closeSearch?: string;
1286
+ prevSearchMatch?: string;
1287
+ nextSearchMatch?: string;
1288
+ zoom?: string;
1289
+ settingsLocal?: string;
1290
+ editingLocal?: string;
1291
+ editingSaved?: string;
1292
+ importLocal?: string;
1293
+ emptyDescription?: string;
1294
+ undo?: string;
1295
+ redo?: string;
1296
+ restoreChanges?: string;
1297
+ changes?: string;
1298
+ changesCount?: string;
1299
+ changesEmpty?: string;
1300
+ changesBefore?: string;
1301
+ changesAfter?: string;
1302
+ editAtomicRequired?: string;
1303
+ clipboardLimit?: string;
1304
+ preferencesError?: string;
1305
+ freezeHeaders?: string;
1306
+ frozenColumns?: string;
1307
+ sections?: string;
1308
+ locateField?: string;
1309
+ locateFieldPlaceholder?: string;
1310
+ locateFieldMissing?: string;
1311
+ importSummary?: string;
1312
+ importPreserved?: string;
1313
+ importWarnings?: string;
1314
+ importReadOnly?: string;
1315
+ conflicts?: string;
1316
+ editReadOnly?: string;
1317
+ editMissing?: string;
1318
+ editRecalculationUnavailable?: string;
1041
1319
  editDuplicate?: string;
1042
1320
  clipboardInvalid?: string;
1043
1321
  editSaved?: string;
@@ -1175,7 +1453,6 @@ declare interface OutputDiagnosticOptions extends OutputTaskOptions {
1175
1453
  fidelity?: "warn" | "strict";
1176
1454
  }
1177
1455
  declare type OutputFormat = "dom" | "canvas" | "pdf" | "xlsx";
1178
- declare type OutputFormat_2 = "dom" | "canvas" | "pdf" | "xlsx";
1179
1456
  /** Stage counts are exact completed units; encoding libraries may remain indeterminate. */
1180
1457
  declare interface OutputTaskOptions {
1181
1458
  signal?: AbortSignal;
@@ -1186,6 +1463,71 @@ declare interface OutputTaskOptions_2 {
1186
1463
  signal?: AbortSignal;
1187
1464
  onProgress?: (completed: number, total: number) => void;
1188
1465
  }
1466
+ export declare const PARAM_EDITOR_MESSAGES: {
1467
+ paramsTool: string;
1468
+ paramsDescription: string;
1469
+ paramsDirectory: string;
1470
+ paramAdd: string;
1471
+ paramEmpty: string;
1472
+ paramEmptyHint: string;
1473
+ paramField: string;
1474
+ paramLabel: string;
1475
+ paramType: string;
1476
+ paramRequired: string;
1477
+ paramPlaceholder: string;
1478
+ paramDefaultEnabled: string;
1479
+ paramDefault: string;
1480
+ paramMinimum: string;
1481
+ paramMaximum: string;
1482
+ paramMinLength: string;
1483
+ paramMaxLength: string;
1484
+ paramOptions: string;
1485
+ paramOptionValue: string;
1486
+ paramOptionLabel: string;
1487
+ paramOptionAdd: string;
1488
+ paramRemove: string;
1489
+ paramOptionRemove: string;
1490
+ paramMoveUp: string;
1491
+ paramMoveDown: string;
1492
+ paramApply: string;
1493
+ paramRestore: string;
1494
+ paramPending: string;
1495
+ paramReady: string;
1496
+ paramInvalid: string;
1497
+ paramConflict: string;
1498
+ paramApplyFailed: string;
1499
+ paramRenameHint: string;
1500
+ paramChanges: string;
1501
+ paramAdded: string;
1502
+ paramRemoved: string;
1503
+ paramWire: string;
1504
+ paramNoDefault: string;
1505
+ paramRangeHint: string;
1506
+ paramText: string;
1507
+ paramNumber: string;
1508
+ paramDate: string;
1509
+ paramMonth: string;
1510
+ paramYear: string;
1511
+ paramDateRange: string;
1512
+ paramSelect: string;
1513
+ };
1514
+ export declare const ParamEditor: DefineComponent<ParamEditorOptions, {
1515
+ pending: ComputedRef<boolean>;
1516
+ reset: () => void;
1517
+ apply: () => boolean;
1518
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1519
+ dirty: (pending: boolean) => any;
1520
+ }, string, MachReportVuePublicProps, Readonly<ParamEditorOptions> & Readonly<{
1521
+ onDirty?: ((pending: boolean) => any) | undefined;
1522
+ }>, {}>;
1523
+ export declare type ParamEditorMessages = typeof PARAM_EDITOR_MESSAGES;
1524
+ export declare interface ParamEditorOptions {
1525
+ document: ReportTemplateDocument;
1526
+ readonly?: boolean;
1527
+ messages?: Partial<ParamEditorMessages>;
1528
+ /** Return false when the enclosing template transaction rejects the change. */
1529
+ accept(definitions: ReportParamDef[]): boolean;
1530
+ }
1189
1531
  declare interface PlanComponent {
1190
1532
  /** Template page furniture repeats per page and reserves its vertical band. */
1191
1533
  pageAnchor?: "header" | "footer";
@@ -1353,6 +1695,7 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1353
1695
  canvasHint: string;
1354
1696
  zoom: string;
1355
1697
  sampleRows: string;
1698
+ treeSampleHint: string;
1356
1699
  resizeComponent: string;
1357
1700
  resizeColumn: string;
1358
1701
  insertComponent: string;
@@ -1387,6 +1730,8 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1387
1730
  headerRow: string;
1388
1731
  headerFirst: string;
1389
1732
  headerLast: string;
1733
+ flowLayout: string;
1734
+ paramsTool: string;
1390
1735
  excelTool: string;
1391
1736
  rulesTool: string;
1392
1737
  reviewTool: string;
@@ -1434,6 +1779,61 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1434
1779
  fieldPosition: string;
1435
1780
  previewFieldDirectory: string;
1436
1781
  };
1782
+ export declare const REPORT_BATCH_MESSAGES: {
1783
+ batchTitle: string;
1784
+ batchDescription: string;
1785
+ batchAdd: string;
1786
+ batchDuplicate: string;
1787
+ batchRemove: string;
1788
+ batchRun: string;
1789
+ batchRunning: string;
1790
+ batchRetry: string;
1791
+ batchCancel: string;
1792
+ batchCancelling: string;
1793
+ batchPending: string;
1794
+ batchCompleted: string;
1795
+ batchFailed: string;
1796
+ batchCancelled: string;
1797
+ batchCase: string;
1798
+ batchProgress: string;
1799
+ batchInvalid: string;
1800
+ batchEmpty: string;
1801
+ batchNoInstance: string;
1802
+ batchOpen: string;
1803
+ batchLimit: string;
1804
+ batchChanged: string;
1805
+ batchPages: string;
1806
+ batchPrevious: string;
1807
+ batchNext: string;
1808
+ batchPage: string;
1809
+ };
1810
+ declare interface ReportBatchCase {
1811
+ id: string;
1812
+ params: Record<string, string>;
1813
+ }
1814
+ export declare type ReportBatchMessages = typeof REPORT_BATCH_MESSAGES;
1815
+ export declare const ReportBatchPanel: DefineComponent<ReportBatchPanelOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1816
+ "open-instance": (receipt: ReportBatchReceipt) => any;
1817
+ }, string, MachReportVuePublicProps, Readonly<ReportBatchPanelOptions> & Readonly<{
1818
+ "onOpen-instance"?: ((receipt: ReportBatchReceipt) => any) | undefined;
1819
+ }>, {}>;
1820
+ export declare interface ReportBatchPanelOptions {
1821
+ paramDefs: ReportParamDef[];
1822
+ execute(item: ReportBatchCase, context: {
1823
+ index: number;
1824
+ signal: AbortSignal;
1825
+ }): Promise<ReportBatchReceipt>;
1826
+ initialCases?: ReportBatchCase[];
1827
+ readonly?: boolean;
1828
+ concurrency?: number;
1829
+ maxCases?: number;
1830
+ messages?: Partial<ReportBatchMessages>;
1831
+ paramMessages?: Partial<MachReportMessages_2>;
1832
+ }
1833
+ export declare interface ReportBatchReceipt {
1834
+ instanceId?: string;
1835
+ label?: string;
1836
+ }
1437
1837
  /** Return false to keep the current report. Without a hook the preview asks inline. */
1438
1838
  declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
1439
1839
  declare interface ReportBeforeDiscardContext {
@@ -1471,6 +1871,35 @@ declare interface ReportCalculationMessages {
1471
1871
  calculationErrorOverflow: string;
1472
1872
  calculationErrorPrecision: string;
1473
1873
  }
1874
+ declare interface ReportCalculationMessages_2 {
1875
+ calculationTitle: string;
1876
+ calculationLocal: string;
1877
+ calculationHint: string;
1878
+ calculationFormula: string;
1879
+ calculationExpression: string;
1880
+ calculationExpressionHint: string;
1881
+ calculationPrecision: string;
1882
+ calculationRun: string;
1883
+ calculationCancel: string;
1884
+ calculationResult: string;
1885
+ calculationIncluded: string;
1886
+ calculationExcluded: string;
1887
+ calculationEmpty: string;
1888
+ calculationNoSelection: string;
1889
+ calculationSum: string;
1890
+ calculationAverage: string;
1891
+ calculationMin: string;
1892
+ calculationMax: string;
1893
+ calculationCount: string;
1894
+ calculationMedian: string;
1895
+ calculationCustom: string;
1896
+ calculationErrorSelection: string;
1897
+ calculationErrorLimit: string;
1898
+ calculationErrorExpression: string;
1899
+ calculationErrorDivision: string;
1900
+ calculationErrorOverflow: string;
1901
+ calculationErrorPrecision: string;
1902
+ }
1474
1903
  /** 预览中的物理坐标;合并单元格使用左上角坐标。 */
1475
1904
  declare interface ReportCellAddress {
1476
1905
  pageIndex: number;
@@ -1530,7 +1959,7 @@ declare type ReportCellFieldOptions = ReportCellFieldBase & ({
1530
1959
  min?: string;
1531
1960
  max?: string;
1532
1961
  });
1533
- declare type ReportCellReadOnlyReason = "cell" | "formula" | "complex" | "structure";
1962
+ declare type ReportCellReadOnlyReason = "cell" | "formula" | "complex" | "structure" | "derived";
1534
1963
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
1535
1964
  declare interface ReportCellSource {
1536
1965
  datasetId: string;
@@ -1670,19 +2099,26 @@ declare interface ReportFieldContract_2 {
1670
2099
  semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
1671
2100
  unit?: string;
1672
2101
  }
1673
- declare interface ReportFieldContract_3 {
1674
- field: string;
1675
- label?: string;
1676
- type: "text" | "number" | "boolean" | "date" | "decimal";
1677
- required?: boolean;
1678
- nullable?: boolean;
1679
- enum?: readonly (string | number | boolean)[];
1680
- min?: number;
1681
- max?: number;
1682
- minLength?: number;
1683
- maxLength?: number;
1684
- semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
1685
- unit?: string;
2102
+ declare interface ReportFlowBand {
2103
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2104
+ componentIds: string[];
2105
+ /** Source-template coordinates; following bands keep their original gap. */
2106
+ topMm: number;
2107
+ heightMm: number;
2108
+ }
2109
+ declare interface ReportFlowBand_2 {
2110
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2111
+ componentIds: string[];
2112
+ /** Source-template coordinates; following bands keep their original gap. */
2113
+ topMm: number;
2114
+ heightMm: number;
2115
+ }
2116
+ declare interface ReportFlowBand_3 {
2117
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2118
+ componentIds: string[];
2119
+ /** Source-template coordinates; following bands keep their original gap. */
2120
+ topMm: number;
2121
+ heightMm: number;
1686
2122
  }
1687
2123
  declare interface ReportInteractionOptions {
1688
2124
  /** 只读选区计算,默认关闭;不写回业务值或执行导入的 Excel 公式。 */
@@ -1698,13 +2134,22 @@ declare interface ReportOutputOptions {
1698
2134
  /** warn preserves supported output and shows diagnostics; strict rejects known fidelity loss. */
1699
2135
  fidelity?: "warn" | "strict";
1700
2136
  }
2137
+ declare interface ReportPageFlow {
2138
+ bands: ReportFlowBand[];
2139
+ }
2140
+ declare interface ReportPageFlow_2 {
2141
+ bands: ReportFlowBand_2[];
2142
+ }
2143
+ declare interface ReportPageFlow_3 {
2144
+ bands: ReportFlowBand_3[];
2145
+ }
1701
2146
  /** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
1702
2147
  declare interface ReportParamDef {
1703
2148
  /** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
1704
2149
  field: string;
1705
2150
  /** 显示名(缺省用 field) */
1706
2151
  label?: string;
1707
- type?: "text" | "number" | "date" | "select";
2152
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1708
2153
  /** select 选项 */
1709
2154
  options?: Array<{
1710
2155
  label: string;
@@ -1713,7 +2158,7 @@ declare interface ReportParamDef {
1713
2158
  defaultValue?: string;
1714
2159
  required?: boolean;
1715
2160
  placeholder?: string;
1716
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2161
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1717
2162
  min?: number | string;
1718
2163
  max?: number | string;
1719
2164
  minLength?: number;
@@ -1725,7 +2170,7 @@ declare interface ReportParamDef_2 {
1725
2170
  field: string;
1726
2171
  /** 显示名(缺省用 field) */
1727
2172
  label?: string;
1728
- type?: "text" | "number" | "date" | "select";
2173
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1729
2174
  /** select 选项 */
1730
2175
  options?: Array<{
1731
2176
  label: string;
@@ -1734,7 +2179,7 @@ declare interface ReportParamDef_2 {
1734
2179
  defaultValue?: string;
1735
2180
  required?: boolean;
1736
2181
  placeholder?: string;
1737
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2182
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1738
2183
  min?: number | string;
1739
2184
  max?: number | string;
1740
2185
  minLength?: number;
@@ -1746,7 +2191,7 @@ declare interface ReportParamDef_3 {
1746
2191
  field: string;
1747
2192
  /** 显示名(缺省用 field) */
1748
2193
  label?: string;
1749
- type?: "text" | "number" | "date" | "select";
2194
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1750
2195
  /** select 选项 */
1751
2196
  options?: Array<{
1752
2197
  label: string;
@@ -1755,7 +2200,7 @@ declare interface ReportParamDef_3 {
1755
2200
  defaultValue?: string;
1756
2201
  required?: boolean;
1757
2202
  placeholder?: string;
1758
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2203
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1759
2204
  min?: number | string;
1760
2205
  max?: number | string;
1761
2206
  minLength?: number;
@@ -1791,6 +2236,34 @@ declare interface ReportTemplate_3 {
1791
2236
  params?: ReportParamDef_3[];
1792
2237
  pages: TemplatePage_3[];
1793
2238
  }
2239
+ declare interface ReportTemplateCatalogEntry extends ReportTemplateSummary {
2240
+ category?: string;
2241
+ tags?: string[];
2242
+ updatedAt?: string;
2243
+ }
2244
+ declare interface ReportTemplateCatalogPage {
2245
+ items: ReportTemplateCatalogEntry[];
2246
+ next?: string;
2247
+ categories?: Array<{
2248
+ id: string;
2249
+ label: string;
2250
+ count?: number;
2251
+ }>;
2252
+ }
2253
+ /** Discovery metadata is separate from executable templates and from enterprise account authorization. */
2254
+ declare interface ReportTemplateCatalogProvider {
2255
+ search(request: ReportTemplateCatalogQuery): Promise<ReportTemplateCatalogPage>;
2256
+ get(id: string, context: {
2257
+ signal?: AbortSignal;
2258
+ }): Promise<ReportTemplateDocument | undefined>;
2259
+ }
2260
+ declare interface ReportTemplateCatalogQuery {
2261
+ query?: string;
2262
+ category?: string;
2263
+ cursor?: string;
2264
+ limit?: number;
2265
+ signal?: AbortSignal;
2266
+ }
1794
2267
  /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
1795
2268
  declare interface ReportTemplateDocument {
1796
2269
  schemaVersion: "1.0";
@@ -1837,8 +2310,13 @@ export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions
1837
2310
  onSaved?: ((document: ReportTemplateDocument) => any) | undefined;
1838
2311
  "onExcel-bound"?: ((result: ExcelBindingWizardApply) => any) | undefined;
1839
2312
  }>, {}>;
2313
+ export declare const ReportTemplateLibrary: DefineComponent<TemplateLibraryOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2314
+ open: (document: ReportTemplateDocument_3) => any;
2315
+ }, string, MachReportVuePublicProps, Readonly<TemplateLibraryOptions> & Readonly<{
2316
+ onOpen?: ((document: ReportTemplateDocument_3) => any) | undefined;
2317
+ }>, {}>;
1840
2318
  declare interface ReportTemplateReviewIssue {
1841
- code: "template" | "compatibility" | "dataset" | "field" | "sample" | "layout" | "output";
2319
+ code: "template" | "compatibility" | "dataset" | "field" | "sample" | "layout" | "output" | "params";
1842
2320
  severity: "error" | "warning";
1843
2321
  path: string;
1844
2322
  message: string;
@@ -1847,6 +2325,7 @@ declare interface ReportTemplateReviewIssue {
1847
2325
  componentIndex?: number;
1848
2326
  field?: string;
1849
2327
  }
2328
+ declare type ReportTemplateSummary = Omit<ReportTemplateDocument, "template">;
1850
2329
  declare interface RichParagraph {
1851
2330
  segments: RichSegment[];
1852
2331
  align?: ComponentStyle["align"];
@@ -1891,8 +2370,40 @@ declare interface RichSegment_3 {
1891
2370
  }
1892
2371
  /** Optional rule-editor copy; hosts can override without changing core/report messages. */
1893
2372
  export declare const RULE_EDITOR_MESSAGES: {
2373
+ restoreDraft: string;
2374
+ catalog: string;
2375
+ searchFields: string;
2376
+ useField: string;
2377
+ shown: string;
2378
+ explanation: string;
2379
+ sourceValues: string;
2380
+ expression: string;
2381
+ result: string;
2382
+ notChecked: string;
2383
+ nullReason: string;
2384
+ sourceHint: string;
2385
+ pending: string;
1894
2386
  detail: string;
1895
2387
  matrix: string;
2388
+ tree: string;
2389
+ treeInput: string;
2390
+ treeFlat: string;
2391
+ treeNested: string;
2392
+ treeId: string;
2393
+ treeParent: string;
2394
+ treeChildren: string;
2395
+ treeLabel: string;
2396
+ treeIndent: string;
2397
+ treeOrphan: string;
2398
+ treeAsRoot: string;
2399
+ treeValues: string;
2400
+ treeSource: string;
2401
+ treeLeaves: string;
2402
+ treeRows: string;
2403
+ treeDepth: string;
2404
+ treeHint: string;
2405
+ treeReadonly: string;
2406
+ treeBudget: string;
1896
2407
  measureLabel: string;
1897
2408
  childDataset: string;
1898
2409
  parentKey: string;
@@ -2006,17 +2517,21 @@ export declare const RULE_EDITOR_MESSAGES: {
2006
2517
  new: string;
2007
2518
  enabled: string;
2008
2519
  };
2009
- export declare const RuleEditor: DefineComponent<RuleEditorOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2520
+ export declare const RuleEditor: DefineComponent<RuleEditorOptions, {
2521
+ pendingLocalChanges: boolean;
2522
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2010
2523
  change: (value: ListComponent_3) => any;
2524
+ dirty: (value: boolean) => any;
2011
2525
  }, string, MachReportVuePublicProps, Readonly<RuleEditorOptions> & Readonly<{
2012
2526
  onChange?: ((value: ListComponent_3) => any) | undefined;
2527
+ onDirty?: ((value: boolean) => any) | undefined;
2013
2528
  }>, {}>;
2014
2529
  export declare type RuleEditorMessages = typeof RULE_EDITOR_MESSAGES;
2015
2530
  export declare interface RuleEditorOptions {
2016
2531
  list: ListComponent_2;
2017
- datasets?: DatasetRows_3;
2018
- datasetSchema?: DatasetContract_3;
2019
- datasetSchemas?: Record<string, DatasetContract_3>;
2532
+ datasets?: DatasetRows_2;
2533
+ datasetSchema?: DatasetContract_2;
2534
+ datasetSchemas?: Record<string, DatasetContract_2>;
2020
2535
  readonly?: boolean;
2021
2536
  messages?: Partial<RuleEditorMessages>;
2022
2537
  }
@@ -2076,6 +2591,7 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2076
2591
  canvasHint: string;
2077
2592
  zoom: string;
2078
2593
  sampleRows: string;
2594
+ treeSampleHint: string;
2079
2595
  resizeComponent: string;
2080
2596
  resizeColumn: string;
2081
2597
  insertComponent: string;
@@ -2110,6 +2626,8 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2110
2626
  headerRow: string;
2111
2627
  headerFirst: string;
2112
2628
  headerLast: string;
2629
+ flowLayout: string;
2630
+ paramsTool: string;
2113
2631
  excelTool: string;
2114
2632
  rulesTool: string;
2115
2633
  reviewTool: string;
@@ -2188,8 +2706,55 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2188
2706
  applyJson: string;
2189
2707
  note: string;
2190
2708
  invalid: string;
2709
+ fitWidth: string;
2710
+ fitPage: string;
2711
+ fitSelection: string;
2712
+ wideNavigation: string;
2713
+ alignSelection: string;
2714
+ leftEdges: string;
2715
+ centers: string;
2716
+ rightEdges: string;
2717
+ topEdges: string;
2718
+ middles: string;
2719
+ bottomEdges: string;
2720
+ horizontalSpacing: string;
2721
+ verticalSpacing: string;
2722
+ lockSelection: string;
2723
+ unlockSelection: string;
2724
+ sessionLock: string;
2725
+ toolsPending: string;
2726
+ };
2727
+ export declare const TEMPLATE_LIBRARY_MESSAGES: {
2728
+ title: string;
2729
+ subtitle: string;
2730
+ search: string;
2731
+ all: string;
2732
+ refresh: string;
2733
+ open: string;
2734
+ copy: string;
2735
+ empty: string;
2736
+ emptyHint: string;
2737
+ loadMore: string;
2738
+ previous: string;
2739
+ page: string;
2740
+ loading: string;
2741
+ retry: string;
2742
+ revision: string;
2743
+ copyTitle: string;
2744
+ newId: string;
2745
+ newName: string;
2746
+ create: string;
2747
+ cancel: string;
2748
+ count: string;
2749
+ missing: string;
2750
+ stale: string;
2751
+ invalid: string;
2191
2752
  };
2192
2753
  export declare const TEMPLATE_REVIEW_MESSAGES: {
2754
+ stale: string;
2755
+ scope: string;
2756
+ datasets: string;
2757
+ treeHint: string;
2193
2758
  title: string;
2194
2759
  run: string;
2195
2760
  running: string;
@@ -2257,7 +2822,7 @@ export declare interface TemplateEditorOptions {
2257
2822
  dataSchemas?: Record<string, DatasetContract>;
2258
2823
  bindingDatasets?: ExcelBindingDataset[];
2259
2824
  /** Optional independently persisted Excel source and binding recipe. */
2260
- bindingSession?: ExcelBindingSession;
2825
+ bindingSession?: AnyExcelBindingSession;
2261
2826
  readonly?: boolean;
2262
2827
  messages?: Partial<TemplateEditorMessages>;
2263
2828
  preview?: Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "theme" | "assets" | "pdfFontUrl" | "toolbar">;
@@ -2268,6 +2833,15 @@ export declare interface TemplateEditorSaveContext {
2268
2833
  expectedRevision?: string;
2269
2834
  signal: AbortSignal;
2270
2835
  }
2836
+ export declare type TemplateLibraryMessages = typeof TEMPLATE_LIBRARY_MESSAGES;
2837
+ export declare interface TemplateLibraryOptions {
2838
+ provider: ReportTemplateCatalogProvider;
2839
+ messages?: Partial<TemplateLibraryMessages>;
2840
+ /** Optional real persistence action. No copy button is shown without it. */
2841
+ create?: (document: ReportTemplateDocument, context: {
2842
+ signal: AbortSignal;
2843
+ }) => Promise<ReportTemplateDocument>;
2844
+ }
2271
2845
  declare interface TemplatePage {
2272
2846
  widthMm: number;
2273
2847
  heightMm: number;
@@ -2278,6 +2852,9 @@ declare interface TemplatePage {
2278
2852
  marginLeftMm?: number;
2279
2853
  marginRightMm?: number;
2280
2854
  components: TemplateComponent[];
2855
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2856
+ flow?: ReportPageFlow;
2857
+ meta?: Record<string, unknown>;
2281
2858
  }
2282
2859
  declare interface TemplatePage_2 {
2283
2860
  widthMm: number;
@@ -2289,6 +2866,9 @@ declare interface TemplatePage_2 {
2289
2866
  marginLeftMm?: number;
2290
2867
  marginRightMm?: number;
2291
2868
  components: TemplateComponent_2[];
2869
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2870
+ flow?: ReportPageFlow_2;
2871
+ meta?: Record<string, unknown>;
2292
2872
  }
2293
2873
  declare interface TemplatePage_3 {
2294
2874
  widthMm: number;
@@ -2300,27 +2880,92 @@ declare interface TemplatePage_3 {
2300
2880
  marginLeftMm?: number;
2301
2881
  marginRightMm?: number;
2302
2882
  components: TemplateComponent_3[];
2883
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2884
+ flow?: ReportPageFlow_3;
2885
+ meta?: Record<string, unknown>;
2303
2886
  }
2304
2887
  export declare type TemplateReviewMessages = typeof TEMPLATE_REVIEW_MESSAGES;
2305
- export declare const TemplateReviewPanel: DefineComponent<{
2306
- document: ReportTemplateDocument_3;
2307
- previous?: ReportTemplateDocument_3;
2308
- datasets?: DatasetRows_2;
2309
- dataSchemas?: Readonly<Record<string, DatasetContract_2>>;
2310
- formats?: readonly OutputFormat_2[];
2888
+ declare interface TemplateReviewOptions {
2889
+ document: ReportTemplateDocument;
2890
+ previous?: ReportTemplateDocument;
2891
+ datasets?: DatasetRows;
2892
+ dataSchemas?: Readonly<Record<string, DatasetContract>>;
2893
+ formats?: readonly OutputFormat[];
2894
+ }
2895
+ export declare const TemplateReviewPanel: DefineComponent<TemplateReviewOptions & {
2311
2896
  messages?: Partial<TemplateReviewMessages>;
2312
2897
  }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2313
2898
  locate: (value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any;
2314
- }, string, MachReportVuePublicProps, Readonly<{
2315
- document: ReportTemplateDocument_3;
2316
- previous?: ReportTemplateDocument_3;
2317
- datasets?: DatasetRows_2;
2318
- dataSchemas?: Readonly<Record<string, DatasetContract_2>>;
2319
- formats?: readonly OutputFormat_2[];
2899
+ }, string, MachReportVuePublicProps, Readonly<TemplateReviewOptions & {
2320
2900
  messages?: Partial<TemplateReviewMessages>;
2321
2901
  }> & Readonly<{
2322
2902
  onLocate?: ((value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any) | undefined;
2323
2903
  }>, {}>;
2904
+ /** A serialized tree contract. Sibling and root order follow input order. */
2905
+ declare interface TreeTableOptions {
2906
+ input: "flat" | "nested";
2907
+ idField: string;
2908
+ /** Flat roots have null/undefined parent values. */
2909
+ parentField?: string;
2910
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
2911
+ childrenField?: string;
2912
+ labelField: string;
2913
+ indentMm?: number;
2914
+ orphan?: "error" | "root";
2915
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
2916
+ parentValues?: "source" | "leaf-aggregate";
2917
+ aggregates?: AggregateDefinition[];
2918
+ maxRows?: number;
2919
+ maxDepth?: number;
2920
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
2921
+ maxAggregationVisits?: number;
2922
+ }
2923
+ /** A serialized tree contract. Sibling and root order follow input order. */
2924
+ declare interface TreeTableOptions_2 {
2925
+ input: "flat" | "nested";
2926
+ idField: string;
2927
+ /** Flat roots have null/undefined parent values. */
2928
+ parentField?: string;
2929
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
2930
+ childrenField?: string;
2931
+ labelField: string;
2932
+ indentMm?: number;
2933
+ orphan?: "error" | "root";
2934
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
2935
+ parentValues?: "source" | "leaf-aggregate";
2936
+ aggregates?: AggregateDefinition_2[];
2937
+ maxRows?: number;
2938
+ maxDepth?: number;
2939
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
2940
+ maxAggregationVisits?: number;
2941
+ }
2942
+ /** A serialized tree contract. Sibling and root order follow input order. */
2943
+ declare interface TreeTableOptions_3 {
2944
+ input: "flat" | "nested";
2945
+ idField: string;
2946
+ /** Flat roots have null/undefined parent values. */
2947
+ parentField?: string;
2948
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
2949
+ childrenField?: string;
2950
+ labelField: string;
2951
+ indentMm?: number;
2952
+ orphan?: "error" | "root";
2953
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
2954
+ parentValues?: "source" | "leaf-aggregate";
2955
+ aggregates?: AggregateDefinition_3[];
2956
+ maxRows?: number;
2957
+ maxDepth?: number;
2958
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
2959
+ maxAggregationVisits?: number;
2960
+ }
2961
+ declare interface XlsxImageOptions {
2962
+ /** Decoded bytes per unique embedded image; default 16 MiB. */
2963
+ maxImageBytes?: number;
2964
+ /** Total decoded bytes of unique images in this workbook; default 32 MiB. */
2965
+ maxTotalImageBytes?: number;
2966
+ /** Unique embedded media limit, default 1000; repeated placements reuse the same media. */
2967
+ maxImages?: number;
2968
+ }
2324
2969
  /**
2325
2970
  * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
2326
2971
  * - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
@@ -2329,7 +2974,7 @@ export declare const TemplateReviewPanel: DefineComponent<{
2329
2974
  * 目标是"财务能直接用的对账表"而非复刻版面)
2330
2975
  * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
2331
2976
  */
2332
- declare interface XlsxRenderOptions extends OutputDiagnosticOptions {
2977
+ declare interface XlsxRenderOptions extends OutputDiagnosticOptions, XlsxImageOptions {
2333
2978
  /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
2334
2979
  sheetName?: (sheetIndex: number) => string;
2335
2980
  /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */