@agile-team/mach-report 2.10.0 → 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 (111) hide show
  1. package/README.md +6 -2
  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 +2 -0
  18. package/dist/analytics.d.ts +2 -0
  19. package/dist/analytics.js +29 -29
  20. package/dist/batch-Bt3Fd27Z.cjs +1 -0
  21. package/dist/batch-mRqhhhjt.js +364 -0
  22. package/dist/computed-Bvk0W15F.js +521 -0
  23. package/dist/computed-CGV2a809.cjs +1 -0
  24. package/dist/config-B612mw0x.js +525 -0
  25. package/dist/config-BRoLo2oj.cjs +1 -0
  26. package/dist/designer.cjs +2 -2
  27. package/dist/designer.d.cts +659 -9
  28. package/dist/designer.d.ts +659 -9
  29. package/dist/designer.js +2030 -1824
  30. package/dist/index.cjs +8 -8
  31. package/dist/index.d.cts +147 -3
  32. package/dist/index.d.ts +147 -3
  33. package/dist/index.js +639 -592
  34. package/dist/injection-keys-Db_DyLkm.cjs +1 -0
  35. package/dist/injection-keys-e85udZCp.js +7 -0
  36. package/dist/list-cell-BuYn4tGF.cjs +1 -0
  37. package/dist/{list-cell-Dxyi7DOw.js → list-cell-ClFra1zS.js} +54 -40
  38. package/dist/matrix-DVyWiYsd.cjs +1 -0
  39. package/dist/matrix-yZsGnldA.js +227 -0
  40. package/dist/param-validation-BlHHXs6u.js +153 -0
  41. package/dist/param-validation-DCK039V1.cjs +1 -0
  42. package/dist/pdf.cjs +25 -25
  43. package/dist/pdf.d.cts +3 -0
  44. package/dist/pdf.d.ts +3 -0
  45. package/dist/pdf.js +677 -677
  46. package/dist/plugin-BDTU4D94.cjs +1 -0
  47. package/dist/plugin-Cd5G2QQn.js +22 -0
  48. package/dist/region-binding-workflow-CXDmt9Bs.js +977 -0
  49. package/dist/region-binding-workflow-DhQvu1co.cjs +3 -0
  50. package/dist/{report-params-B_VCihAh.js → report-params-B44imUd4.js} +1 -1
  51. package/dist/{report-params-CjWrjPl6.cjs → report-params-SJfhKgaX.cjs} +1 -1
  52. package/dist/server/node.d.cts +5 -2
  53. package/dist/server/node.d.ts +5 -2
  54. package/dist/server-node.cjs +1 -1
  55. package/dist/server-node.js +87 -87
  56. package/dist/server.cjs +1 -1
  57. package/dist/server.d.cts +201 -2
  58. package/dist/server.d.ts +201 -2
  59. package/dist/server.js +557 -658
  60. package/dist/style.css +1 -1
  61. package/dist/template-registry-WNXdkiET.js +506 -0
  62. package/dist/template-registry-ukBGlm8N.cjs +1 -0
  63. package/dist/template-review-BXp2oyqg.cjs +1 -0
  64. package/dist/template-review-BdcXSYbx.js +1616 -0
  65. package/dist/tree-BX380Rr7.cjs +1 -0
  66. package/dist/tree-CqcQ99NM.js +172 -0
  67. package/dist/{validate-UUy9yP4K.js → validate-7s0yn6ii.js} +44 -44
  68. package/dist/validate-DsRiNw8h.cjs +1 -0
  69. package/dist/vue/async.d.cts +93 -4
  70. package/dist/vue/async.d.ts +93 -4
  71. package/dist/vue/index.d.cts +145 -7
  72. package/dist/vue/index.d.ts +145 -7
  73. package/dist/vue-async.cjs +1 -1
  74. package/dist/vue-async.js +5 -5
  75. package/dist/vue.cjs +1 -1
  76. package/dist/vue.js +116 -113
  77. package/dist/{workbook-session-B-bW5_yR.js → workbook-session-BKOTwcoq.js} +1 -1
  78. package/dist/{workbook-session-D7RtdNo0.cjs → workbook-session-CLYLhZWu.cjs} +1 -1
  79. package/dist/worker.cjs +1 -1
  80. package/dist/worker.d.cts +5 -2
  81. package/dist/worker.d.ts +5 -2
  82. package/dist/worker.js +1 -1
  83. package/dist/xlsx.cjs +3 -3
  84. package/dist/xlsx.d.cts +129 -2
  85. package/dist/xlsx.d.ts +129 -2
  86. package/dist/xlsx.js +336 -242
  87. package/package.json +1 -1
  88. package/dist/ExcelBindingWizard-CF7RplWm.cjs +0 -1
  89. package/dist/ExcelBindingWizard-qhwEderR.js +0 -842
  90. package/dist/ReportPreview-BE1tCHqE.js +0 -4604
  91. package/dist/ReportPreview-QKRKQOe3.cjs +0 -6
  92. package/dist/RuleEditor-BA36yIV6.js +0 -1723
  93. package/dist/RuleEditor-CczJ6mJm.cjs +0 -1
  94. package/dist/TemplateReviewPanel-CHi4Alqa.cjs +0 -1
  95. package/dist/TemplateReviewPanel-Dz0G5o83.js +0 -217
  96. package/dist/binding-preview-BWsdf_z2.cjs +0 -2
  97. package/dist/binding-preview-DILq0-0f.js +0 -649
  98. package/dist/decimal-CI1OAczk.js +0 -87
  99. package/dist/decimal-CQA0xJex.cjs +0 -1
  100. package/dist/list-cell-CyM1ZlRN.cjs +0 -1
  101. package/dist/matrix-BbXarwyk.js +0 -661
  102. package/dist/matrix-Cm65WLLP.cjs +0 -1
  103. package/dist/param-validation-BWNjLcN0.js +0 -116
  104. package/dist/param-validation-CiTxFeZ8.cjs +0 -1
  105. package/dist/plugin-CThk42vJ.cjs +0 -1
  106. package/dist/plugin-tGn7-5oF.js +0 -25
  107. package/dist/template-registry-CGWTLtIA.cjs +0 -1
  108. package/dist/template-registry-DzlQs3OF.js +0 -434
  109. package/dist/template-review-D1RoNCPw.cjs +0 -1
  110. package/dist/template-review-fnteXRng.js +0 -1473
  111. package/dist/validate-Bf6ccFr2.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;
@@ -267,6 +270,31 @@ declare type DatasetRows = Record<string, Record<string, unknown>[]>;
267
270
  declare type DatasetRows_2 = Record<string, Record<string, unknown>[]>;
268
271
  /** Optional wizard labels remain independent of the general designer configuration. */
269
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;
270
298
  restoreDraft: string;
271
299
  title: string;
272
300
  intro: string;
@@ -392,15 +420,15 @@ export declare const ExcelBindingWizard: DefineComponent<ExcelBindingWizardOptio
392
420
  onDirty?: ((value: boolean) => any) | undefined;
393
421
  onApply?: ((result: ExcelBindingWizardApply) => any) | undefined;
394
422
  }>, {}>;
395
- export declare interface ExcelBindingWizardApply extends ExcelBindingDocumentResult {
396
- session: ExcelBindingSession;
397
- }
423
+ export declare type ExcelBindingWizardApply = AnyExcelBindingDocumentResult & {
424
+ session: AnyExcelBindingSession;
425
+ };
398
426
  export declare interface ExcelBindingWizardOptions {
399
427
  datasets: readonly ExcelBindingDataset[];
400
428
  /** An embedded editor can decline replacement; success is shown only after acceptance. */
401
429
  accept?: (result: ExcelBindingWizardApply) => boolean | Promise<boolean>;
402
430
  /** Source + exact coordinates + mappings. No File, functions, network credentials, or live result rows. */
403
- session?: ExcelBindingSession;
431
+ session?: AnyExcelBindingSession;
404
432
  identity?: {
405
433
  id: string;
406
434
  name: string;
@@ -485,6 +513,43 @@ declare interface ExcelImportResult {
485
513
  warnings: string[];
486
514
  sheets: ExcelImportedSheet[];
487
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
+ }
488
553
  declare interface ExpressionOptions {
489
554
  numeric?: "number" | "decimal";
490
555
  digits?: number;
@@ -510,6 +575,8 @@ declare interface GridCell {
510
575
  value?: string | number | boolean | null;
511
576
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
512
577
  numberFormat?: string;
578
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
579
+ indentMm?: number;
513
580
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
514
581
  valueType?: "text" | "number" | "boolean";
515
582
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -531,6 +598,8 @@ declare interface GridCell_2 {
531
598
  value?: string | number | boolean | null;
532
599
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
533
600
  numberFormat?: string;
601
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
602
+ indentMm?: number;
534
603
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
535
604
  valueType?: "text" | "number" | "boolean";
536
605
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -552,6 +621,8 @@ declare interface GridCell_3 {
552
621
  value?: string | number | boolean | null;
553
622
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
554
623
  numberFormat?: string;
624
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
625
+ indentMm?: number;
555
626
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
556
627
  valueType?: "text" | "number" | "boolean";
557
628
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -650,6 +721,8 @@ declare interface ListColumn_3 {
650
721
  }
651
722
  declare interface ListComponent {
652
723
  kind: "list";
724
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
725
+ meta?: Record<string, unknown>;
653
726
  id?: string;
654
727
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
655
728
  layout?: "page" | "wide";
@@ -659,6 +732,10 @@ declare interface ListComponent {
659
732
  topMm: number;
660
733
  widthMm: number;
661
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";
662
739
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
663
740
  rowKey?: string;
664
741
  revisionField?: string;
@@ -685,6 +762,8 @@ declare interface ListComponent {
685
762
  computed?: ComputedField[];
686
763
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
687
764
  matrix?: MatrixTableOptions;
765
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
766
+ tree?: TreeTableOptions;
688
767
  /** Explicit row visibility; hidden rows do not participate in summaries. */
689
768
  rowVisibleWhen?: StyleRule["when"];
690
769
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -694,6 +773,8 @@ declare interface ListComponent {
694
773
  }
695
774
  declare interface ListComponent_2 {
696
775
  kind: "list";
776
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
777
+ meta?: Record<string, unknown>;
697
778
  id?: string;
698
779
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
699
780
  layout?: "page" | "wide";
@@ -703,6 +784,10 @@ declare interface ListComponent_2 {
703
784
  topMm: number;
704
785
  widthMm: number;
705
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";
706
791
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
707
792
  rowKey?: string;
708
793
  revisionField?: string;
@@ -729,6 +814,8 @@ declare interface ListComponent_2 {
729
814
  computed?: ComputedField_2[];
730
815
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
731
816
  matrix?: MatrixTableOptions_2;
817
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
818
+ tree?: TreeTableOptions_2;
732
819
  /** Explicit row visibility; hidden rows do not participate in summaries. */
733
820
  rowVisibleWhen?: StyleRule_2["when"];
734
821
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -738,6 +825,8 @@ declare interface ListComponent_2 {
738
825
  }
739
826
  declare interface ListComponent_3 {
740
827
  kind: "list";
828
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
829
+ meta?: Record<string, unknown>;
741
830
  id?: string;
742
831
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
743
832
  layout?: "page" | "wide";
@@ -747,6 +836,10 @@ declare interface ListComponent_3 {
747
836
  topMm: number;
748
837
  widthMm: number;
749
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";
750
843
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
751
844
  rowKey?: string;
752
845
  revisionField?: string;
@@ -773,6 +866,8 @@ declare interface ListComponent_3 {
773
866
  computed?: ComputedField_3[];
774
867
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
775
868
  matrix?: MatrixTableOptions_3;
869
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
870
+ tree?: TreeTableOptions_3;
776
871
  /** Explicit row visibility; hidden rows do not participate in summaries. */
777
872
  rowVisibleWhen?: StyleRule_3["when"];
778
873
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -1003,6 +1098,172 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
1003
1098
  paramPromptDescription?: string;
1004
1099
  paramSelectPlaceholder?: string;
1005
1100
  paramTextPlaceholder?: string;
1101
+ paramRangeStart?: string;
1102
+ paramRangeEnd?: string;
1103
+ /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
1104
+ searching?: string;
1105
+ importExcel?: string;
1106
+ importing?: string;
1107
+ editCell?: string;
1108
+ editingHint?: string;
1109
+ saving?: string;
1110
+ editInvalidNumber?: string;
1111
+ editInvalidBoolean?: string;
1112
+ editConflict?: string;
1113
+ settings?: string;
1114
+ settingsDisplay?: string;
1115
+ settingsExport?: string;
1116
+ settingsData?: string;
1117
+ settingsUnavailable?: string;
1118
+ settingsReset?: string;
1119
+ settingsClose?: string;
1120
+ search?: string;
1121
+ closeSearch?: string;
1122
+ prevSearchMatch?: string;
1123
+ nextSearchMatch?: string;
1124
+ zoom?: string;
1125
+ settingsLocal?: string;
1126
+ editingLocal?: string;
1127
+ editingSaved?: string;
1128
+ importLocal?: string;
1129
+ emptyDescription?: string;
1130
+ undo?: string;
1131
+ redo?: string;
1132
+ restoreChanges?: string;
1133
+ changes?: string;
1134
+ changesCount?: string;
1135
+ changesEmpty?: string;
1136
+ changesBefore?: string;
1137
+ changesAfter?: string;
1138
+ editAtomicRequired?: string;
1139
+ clipboardLimit?: string;
1140
+ preferencesError?: string;
1141
+ freezeHeaders?: string;
1142
+ frozenColumns?: string;
1143
+ sections?: string;
1144
+ locateField?: string;
1145
+ locateFieldPlaceholder?: string;
1146
+ locateFieldMissing?: string;
1147
+ importSummary?: string;
1148
+ importPreserved?: string;
1149
+ importWarnings?: string;
1150
+ importReadOnly?: string;
1151
+ conflicts?: string;
1152
+ editReadOnly?: string;
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;
1006
1267
  /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
1007
1268
  searching?: string;
1008
1269
  importExcel?: string;
@@ -1202,6 +1463,71 @@ declare interface OutputTaskOptions_2 {
1202
1463
  signal?: AbortSignal;
1203
1464
  onProgress?: (completed: number, total: number) => void;
1204
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
+ }
1205
1531
  declare interface PlanComponent {
1206
1532
  /** Template page furniture repeats per page and reserves its vertical band. */
1207
1533
  pageAnchor?: "header" | "footer";
@@ -1369,6 +1695,7 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1369
1695
  canvasHint: string;
1370
1696
  zoom: string;
1371
1697
  sampleRows: string;
1698
+ treeSampleHint: string;
1372
1699
  resizeComponent: string;
1373
1700
  resizeColumn: string;
1374
1701
  insertComponent: string;
@@ -1403,6 +1730,8 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1403
1730
  headerRow: string;
1404
1731
  headerFirst: string;
1405
1732
  headerLast: string;
1733
+ flowLayout: string;
1734
+ paramsTool: string;
1406
1735
  excelTool: string;
1407
1736
  rulesTool: string;
1408
1737
  reviewTool: string;
@@ -1450,6 +1779,61 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1450
1779
  fieldPosition: string;
1451
1780
  previewFieldDirectory: string;
1452
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
+ }
1453
1837
  /** Return false to keep the current report. Without a hook the preview asks inline. */
1454
1838
  declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
1455
1839
  declare interface ReportBeforeDiscardContext {
@@ -1487,6 +1871,35 @@ declare interface ReportCalculationMessages {
1487
1871
  calculationErrorOverflow: string;
1488
1872
  calculationErrorPrecision: string;
1489
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
+ }
1490
1903
  /** 预览中的物理坐标;合并单元格使用左上角坐标。 */
1491
1904
  declare interface ReportCellAddress {
1492
1905
  pageIndex: number;
@@ -1686,6 +2099,27 @@ declare interface ReportFieldContract_2 {
1686
2099
  semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
1687
2100
  unit?: string;
1688
2101
  }
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;
2122
+ }
1689
2123
  declare interface ReportInteractionOptions {
1690
2124
  /** 只读选区计算,默认关闭;不写回业务值或执行导入的 Excel 公式。 */
1691
2125
  calculations?: boolean;
@@ -1700,13 +2134,22 @@ declare interface ReportOutputOptions {
1700
2134
  /** warn preserves supported output and shows diagnostics; strict rejects known fidelity loss. */
1701
2135
  fidelity?: "warn" | "strict";
1702
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
+ }
1703
2146
  /** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
1704
2147
  declare interface ReportParamDef {
1705
2148
  /** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
1706
2149
  field: string;
1707
2150
  /** 显示名(缺省用 field) */
1708
2151
  label?: string;
1709
- type?: "text" | "number" | "date" | "select";
2152
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1710
2153
  /** select 选项 */
1711
2154
  options?: Array<{
1712
2155
  label: string;
@@ -1715,7 +2158,7 @@ declare interface ReportParamDef {
1715
2158
  defaultValue?: string;
1716
2159
  required?: boolean;
1717
2160
  placeholder?: string;
1718
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2161
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1719
2162
  min?: number | string;
1720
2163
  max?: number | string;
1721
2164
  minLength?: number;
@@ -1727,7 +2170,28 @@ declare interface ReportParamDef_2 {
1727
2170
  field: string;
1728
2171
  /** 显示名(缺省用 field) */
1729
2172
  label?: string;
1730
- type?: "text" | "number" | "date" | "select";
2173
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
2174
+ /** select 选项 */
2175
+ options?: Array<{
2176
+ label: string;
2177
+ value: string;
2178
+ }>;
2179
+ defaultValue?: string;
2180
+ required?: boolean;
2181
+ placeholder?: string;
2182
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
2183
+ min?: number | string;
2184
+ max?: number | string;
2185
+ minLength?: number;
2186
+ maxLength?: number;
2187
+ }
2188
+ /** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
2189
+ declare interface ReportParamDef_3 {
2190
+ /** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
2191
+ field: string;
2192
+ /** 显示名(缺省用 field) */
2193
+ label?: string;
2194
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1731
2195
  /** select 选项 */
1732
2196
  options?: Array<{
1733
2197
  label: string;
@@ -1736,7 +2200,7 @@ declare interface ReportParamDef_2 {
1736
2200
  defaultValue?: string;
1737
2201
  required?: boolean;
1738
2202
  placeholder?: string;
1739
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2203
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1740
2204
  min?: number | string;
1741
2205
  max?: number | string;
1742
2206
  minLength?: number;
@@ -1766,6 +2230,40 @@ declare interface ReportTemplate_2 {
1766
2230
  params?: ReportParamDef_2[];
1767
2231
  pages: TemplatePage_2[];
1768
2232
  }
2233
+ declare interface ReportTemplate_3 {
2234
+ schemaVersion?: string;
2235
+ /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
2236
+ params?: ReportParamDef_3[];
2237
+ pages: TemplatePage_3[];
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
+ }
1769
2267
  /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
1770
2268
  declare interface ReportTemplateDocument {
1771
2269
  schemaVersion: "1.0";
@@ -1786,6 +2284,16 @@ declare interface ReportTemplateDocument_2 {
1786
2284
  description?: string;
1787
2285
  template: ReportTemplate_2;
1788
2286
  }
2287
+ /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
2288
+ declare interface ReportTemplateDocument_3 {
2289
+ schemaVersion: "1.0";
2290
+ id: string;
2291
+ name: string;
2292
+ /** 宿主的发布版本/乐观锁标识,不由引擎自动递增。 */
2293
+ revision?: string;
2294
+ description?: string;
2295
+ template: ReportTemplate_3;
2296
+ }
1789
2297
  export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions, {
1790
2298
  pendingLocalChanges: boolean;
1791
2299
  saving: boolean;
@@ -1802,6 +2310,11 @@ export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions
1802
2310
  onSaved?: ((document: ReportTemplateDocument) => any) | undefined;
1803
2311
  "onExcel-bound"?: ((result: ExcelBindingWizardApply) => any) | undefined;
1804
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
+ }>, {}>;
1805
2318
  declare interface ReportTemplateReviewIssue {
1806
2319
  code: "template" | "compatibility" | "dataset" | "field" | "sample" | "layout" | "output" | "params";
1807
2320
  severity: "error" | "warning";
@@ -1812,6 +2325,7 @@ declare interface ReportTemplateReviewIssue {
1812
2325
  componentIndex?: number;
1813
2326
  field?: string;
1814
2327
  }
2328
+ declare type ReportTemplateSummary = Omit<ReportTemplateDocument, "template">;
1815
2329
  declare interface RichParagraph {
1816
2330
  segments: RichSegment[];
1817
2331
  align?: ComponentStyle["align"];
@@ -1871,6 +2385,25 @@ export declare const RULE_EDITOR_MESSAGES: {
1871
2385
  pending: string;
1872
2386
  detail: string;
1873
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;
1874
2407
  measureLabel: string;
1875
2408
  childDataset: string;
1876
2409
  parentKey: string;
@@ -2058,6 +2591,7 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2058
2591
  canvasHint: string;
2059
2592
  zoom: string;
2060
2593
  sampleRows: string;
2594
+ treeSampleHint: string;
2061
2595
  resizeComponent: string;
2062
2596
  resizeColumn: string;
2063
2597
  insertComponent: string;
@@ -2092,6 +2626,8 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2092
2626
  headerRow: string;
2093
2627
  headerFirst: string;
2094
2628
  headerLast: string;
2629
+ flowLayout: string;
2630
+ paramsTool: string;
2095
2631
  excelTool: string;
2096
2632
  rulesTool: string;
2097
2633
  reviewTool: string;
@@ -2188,10 +2724,37 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2188
2724
  sessionLock: string;
2189
2725
  toolsPending: string;
2190
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;
2752
+ };
2191
2753
  export declare const TEMPLATE_REVIEW_MESSAGES: {
2192
2754
  stale: string;
2193
2755
  scope: string;
2194
2756
  datasets: string;
2757
+ treeHint: string;
2195
2758
  title: string;
2196
2759
  run: string;
2197
2760
  running: string;
@@ -2234,6 +2797,7 @@ export declare const TEMPLATE_REVIEW_MESSAGES: {
2234
2797
  };
2235
2798
  declare type TemplateComponent = PlanComponent | ListComponent;
2236
2799
  declare type TemplateComponent_2 = PlanComponent_2 | ListComponent_2;
2800
+ declare type TemplateComponent_3 = PlanComponent_3 | ListComponent_3;
2237
2801
  export declare type TemplateEditorBeforeDiscard = (context: TemplateEditorBeforeDiscardContext) => boolean | Promise<boolean>;
2238
2802
  export declare interface TemplateEditorBeforeDiscardContext {
2239
2803
  reason: "reset" | "replace";
@@ -2258,7 +2822,7 @@ export declare interface TemplateEditorOptions {
2258
2822
  dataSchemas?: Record<string, DatasetContract>;
2259
2823
  bindingDatasets?: ExcelBindingDataset[];
2260
2824
  /** Optional independently persisted Excel source and binding recipe. */
2261
- bindingSession?: ExcelBindingSession;
2825
+ bindingSession?: AnyExcelBindingSession;
2262
2826
  readonly?: boolean;
2263
2827
  messages?: Partial<TemplateEditorMessages>;
2264
2828
  preview?: Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "theme" | "assets" | "pdfFontUrl" | "toolbar">;
@@ -2269,6 +2833,15 @@ export declare interface TemplateEditorSaveContext {
2269
2833
  expectedRevision?: string;
2270
2834
  signal: AbortSignal;
2271
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
+ }
2272
2845
  declare interface TemplatePage {
2273
2846
  widthMm: number;
2274
2847
  heightMm: number;
@@ -2279,6 +2852,9 @@ declare interface TemplatePage {
2279
2852
  marginLeftMm?: number;
2280
2853
  marginRightMm?: number;
2281
2854
  components: TemplateComponent[];
2855
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2856
+ flow?: ReportPageFlow;
2857
+ meta?: Record<string, unknown>;
2282
2858
  }
2283
2859
  declare interface TemplatePage_2 {
2284
2860
  widthMm: number;
@@ -2290,6 +2866,23 @@ declare interface TemplatePage_2 {
2290
2866
  marginLeftMm?: number;
2291
2867
  marginRightMm?: number;
2292
2868
  components: TemplateComponent_2[];
2869
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2870
+ flow?: ReportPageFlow_2;
2871
+ meta?: Record<string, unknown>;
2872
+ }
2873
+ declare interface TemplatePage_3 {
2874
+ widthMm: number;
2875
+ heightMm: number;
2876
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
2877
+ layout?: "page" | "wide";
2878
+ marginTopMm?: number;
2879
+ marginBottomMm?: number;
2880
+ marginLeftMm?: number;
2881
+ marginRightMm?: number;
2882
+ components: TemplateComponent_3[];
2883
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2884
+ flow?: ReportPageFlow_3;
2885
+ meta?: Record<string, unknown>;
2293
2886
  }
2294
2887
  export declare type TemplateReviewMessages = typeof TEMPLATE_REVIEW_MESSAGES;
2295
2888
  declare interface TemplateReviewOptions {
@@ -2308,6 +2901,63 @@ export declare const TemplateReviewPanel: DefineComponent<TemplateReviewOptions
2308
2901
  }> & Readonly<{
2309
2902
  onLocate?: ((value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any) | undefined;
2310
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
+ }
2311
2961
  declare interface XlsxImageOptions {
2312
2962
  /** Decoded bytes per unique embedded image; default 16 MiB. */
2313
2963
  maxImageBytes?: number;