@agile-team/mach-report 2.10.0 → 2.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +6 -2
  2. package/dist/ExcelBindingWizard-LWX6G1A2.js +1465 -0
  3. package/dist/ExcelBindingWizard-a4kslPHF.cjs +1 -0
  4. package/dist/ParamEditor-BLaE5q5W.js +522 -0
  5. package/dist/ParamEditor-MBBC7lUE.cjs +1 -0
  6. package/dist/ReportBatchPanel-B5ClP9tm.js +350 -0
  7. package/dist/ReportBatchPanel-Dc-SDkYA.cjs +1 -0
  8. package/dist/ReportPreview-DWXROHBP.cjs +6 -0
  9. package/dist/ReportPreview-DiNXhQI0.js +4138 -0
  10. package/dist/ReportTemplateLibrary-5fk5CQBO.cjs +1 -0
  11. package/dist/ReportTemplateLibrary-BZB-XWjj.js +311 -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 +730 -9
  28. package/dist/designer.d.ts +730 -9
  29. package/dist/designer.js +2093 -1785
  30. package/dist/index.cjs +8 -8
  31. package/dist/index.d.cts +161 -3
  32. package/dist/index.d.ts +161 -3
  33. package/dist/index.js +486 -431
  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,50 @@ 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
+ regionReady: string;
280
+ regionPending: string;
281
+ regionError: string;
282
+ locateIssue: string;
283
+ nextDataset: string;
284
+ nextRowKey: string;
285
+ nextField: string;
286
+ nextRange: string;
287
+ nextRegion: string;
288
+ nextHeader: string;
289
+ nextFooter: string;
290
+ nextContract: string;
291
+ dataContract: string;
292
+ inspectIssues: string;
293
+ previousIssues: string;
294
+ nextIssues: string;
295
+ noCellSelection: string;
296
+ limitRegions: string;
297
+ applying: string;
298
+ regionCoordinates: string;
299
+ regionMode: string;
300
+ recordMode: string;
301
+ repeatMode: string;
302
+ recordHint: string;
303
+ repeatHint: string;
304
+ bindRegionHeader: string;
305
+ noRegionHeader: string;
306
+ clearHeader: string;
307
+ flowFooter: string;
308
+ flowFooterHint: string;
309
+ bindFooter: string;
310
+ clearFooter: string;
311
+ concurrency: string;
312
+ revisionField: string;
313
+ sourceTokenField: string;
314
+ selectionCellLabel: string;
315
+ searchFields: string;
316
+ fieldLimit: string;
270
317
  restoreDraft: string;
271
318
  title: string;
272
319
  intro: string;
@@ -392,15 +439,15 @@ export declare const ExcelBindingWizard: DefineComponent<ExcelBindingWizardOptio
392
439
  onDirty?: ((value: boolean) => any) | undefined;
393
440
  onApply?: ((result: ExcelBindingWizardApply) => any) | undefined;
394
441
  }>, {}>;
395
- export declare interface ExcelBindingWizardApply extends ExcelBindingDocumentResult {
396
- session: ExcelBindingSession;
397
- }
442
+ export declare type ExcelBindingWizardApply = AnyExcelBindingDocumentResult & {
443
+ session: AnyExcelBindingSession;
444
+ };
398
445
  export declare interface ExcelBindingWizardOptions {
399
446
  datasets: readonly ExcelBindingDataset[];
400
447
  /** An embedded editor can decline replacement; success is shown only after acceptance. */
401
448
  accept?: (result: ExcelBindingWizardApply) => boolean | Promise<boolean>;
402
449
  /** Source + exact coordinates + mappings. No File, functions, network credentials, or live result rows. */
403
- session?: ExcelBindingSession;
450
+ session?: AnyExcelBindingSession;
404
451
  identity?: {
405
452
  id: string;
406
453
  name: string;
@@ -485,6 +532,43 @@ declare interface ExcelImportResult {
485
532
  warnings: string[];
486
533
  sheets: ExcelImportedSheet[];
487
534
  }
535
+ /** A row prototype is replaced, never copied into a generated business report. */
536
+ declare interface ExcelRegionBinding {
537
+ id: string;
538
+ /** One physical source row, with any contiguous subset of the sheet columns. */
539
+ range: string;
540
+ dataset: string;
541
+ /** record accepts zero or one row; repeat expands vertically and shifts following bands. */
542
+ mode: "record" | "repeat";
543
+ fields: string[];
544
+ rowKey: string;
545
+ revisionField?: string;
546
+ sourceTokenField?: string;
547
+ /** Optional immediately preceding header, with the same physical columns. */
548
+ headerRange?: string;
549
+ }
550
+ declare interface ExcelRegionBindingDocumentResult {
551
+ document: ReportTemplateDocument_2;
552
+ recipe: ExcelRegionBindingRecipe;
553
+ warnings: string[];
554
+ }
555
+ /** Version 2 describes several independent, vertically ordered data regions on one Sheet. */
556
+ declare interface ExcelRegionBindingRecipe {
557
+ version: "2.0";
558
+ sheet: string;
559
+ regions: ExcelRegionBinding[];
560
+ /** Full-width source rows reserved on every page; excluded from flowing content. */
561
+ footerRange?: string;
562
+ }
563
+ declare interface ExcelRegionBindingSession {
564
+ version: "2.0";
565
+ source: ExcelImportResult;
566
+ recipe: ExcelRegionBindingRecipe;
567
+ identity: {
568
+ id: string;
569
+ name: string;
570
+ };
571
+ }
488
572
  declare interface ExpressionOptions {
489
573
  numeric?: "number" | "decimal";
490
574
  digits?: number;
@@ -510,6 +594,8 @@ declare interface GridCell {
510
594
  value?: string | number | boolean | null;
511
595
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
512
596
  numberFormat?: string;
597
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
598
+ indentMm?: number;
513
599
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
514
600
  valueType?: "text" | "number" | "boolean";
515
601
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -531,6 +617,8 @@ declare interface GridCell_2 {
531
617
  value?: string | number | boolean | null;
532
618
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
533
619
  numberFormat?: string;
620
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
621
+ indentMm?: number;
534
622
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
535
623
  valueType?: "text" | "number" | "boolean";
536
624
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -552,6 +640,8 @@ declare interface GridCell_3 {
552
640
  value?: string | number | boolean | null;
553
641
  /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
554
642
  numberFormat?: string;
643
+ /** Physical left inset for hierarchical labels; raw value stays unchanged. */
644
+ indentMm?: number;
555
645
  /** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
556
646
  valueType?: "text" | "number" | "boolean";
557
647
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
@@ -650,6 +740,8 @@ declare interface ListColumn_3 {
650
740
  }
651
741
  declare interface ListComponent {
652
742
  kind: "list";
743
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
744
+ meta?: Record<string, unknown>;
653
745
  id?: string;
654
746
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
655
747
  layout?: "page" | "wide";
@@ -659,6 +751,10 @@ declare interface ListComponent {
659
751
  topMm: number;
660
752
  widthMm: number;
661
753
  dataset: string;
754
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
755
+ header?: boolean;
756
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
757
+ cardinality?: "record";
662
758
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
663
759
  rowKey?: string;
664
760
  revisionField?: string;
@@ -685,6 +781,8 @@ declare interface ListComponent {
685
781
  computed?: ComputedField[];
686
782
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
687
783
  matrix?: MatrixTableOptions;
784
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
785
+ tree?: TreeTableOptions;
688
786
  /** Explicit row visibility; hidden rows do not participate in summaries. */
689
787
  rowVisibleWhen?: StyleRule["when"];
690
788
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -694,6 +792,8 @@ declare interface ListComponent {
694
792
  }
695
793
  declare interface ListComponent_2 {
696
794
  kind: "list";
795
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
796
+ meta?: Record<string, unknown>;
697
797
  id?: string;
698
798
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
699
799
  layout?: "page" | "wide";
@@ -703,6 +803,10 @@ declare interface ListComponent_2 {
703
803
  topMm: number;
704
804
  widthMm: number;
705
805
  dataset: string;
806
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
807
+ header?: boolean;
808
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
809
+ cardinality?: "record";
706
810
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
707
811
  rowKey?: string;
708
812
  revisionField?: string;
@@ -729,6 +833,8 @@ declare interface ListComponent_2 {
729
833
  computed?: ComputedField_2[];
730
834
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
731
835
  matrix?: MatrixTableOptions_2;
836
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
837
+ tree?: TreeTableOptions_2;
732
838
  /** Explicit row visibility; hidden rows do not participate in summaries. */
733
839
  rowVisibleWhen?: StyleRule_2["when"];
734
840
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -738,6 +844,8 @@ declare interface ListComponent_2 {
738
844
  }
739
845
  declare interface ListComponent_3 {
740
846
  kind: "list";
847
+ /** Opaque serializable layout annotations; interpreted only by explicit optional adapters. */
848
+ meta?: Record<string, unknown>;
741
849
  id?: string;
742
850
  /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
743
851
  layout?: "page" | "wide";
@@ -747,6 +855,10 @@ declare interface ListComponent_3 {
747
855
  topMm: number;
748
856
  widthMm: number;
749
857
  dataset: string;
858
+ /** Headerless record/region bindings do not allocate a synthetic list header. */
859
+ header?: boolean;
860
+ /** A fixed record region rejects multiple rows instead of dropping source data. */
861
+ cardinality?: "record";
750
862
  /** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
751
863
  rowKey?: string;
752
864
  revisionField?: string;
@@ -773,6 +885,8 @@ declare interface ListComponent_3 {
773
885
  computed?: ComputedField_3[];
774
886
  /** Dynamic pivot of the current source dataset, with read-only derived identities. */
775
887
  matrix?: MatrixTableOptions_3;
888
+ /** Full ordered hierarchy; source parent values and descendant-leaf rollups are explicit. */
889
+ tree?: TreeTableOptions_3;
776
890
  /** Explicit row visibility; hidden rows do not participate in summaries. */
777
891
  rowVisibleWhen?: StyleRule_3["when"];
778
892
  /** Master/detail relation is keyed by business identity, never by display row index. */
@@ -1003,6 +1117,172 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
1003
1117
  paramPromptDescription?: string;
1004
1118
  paramSelectPlaceholder?: string;
1005
1119
  paramTextPlaceholder?: string;
1120
+ paramRangeStart?: string;
1121
+ paramRangeEnd?: string;
1122
+ /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
1123
+ searching?: string;
1124
+ importExcel?: string;
1125
+ importing?: string;
1126
+ editCell?: string;
1127
+ editingHint?: string;
1128
+ saving?: string;
1129
+ editInvalidNumber?: string;
1130
+ editInvalidBoolean?: string;
1131
+ editConflict?: string;
1132
+ settings?: string;
1133
+ settingsDisplay?: string;
1134
+ settingsExport?: string;
1135
+ settingsData?: string;
1136
+ settingsUnavailable?: string;
1137
+ settingsReset?: string;
1138
+ settingsClose?: string;
1139
+ search?: string;
1140
+ closeSearch?: string;
1141
+ prevSearchMatch?: string;
1142
+ nextSearchMatch?: string;
1143
+ zoom?: string;
1144
+ settingsLocal?: string;
1145
+ editingLocal?: string;
1146
+ editingSaved?: string;
1147
+ importLocal?: string;
1148
+ emptyDescription?: string;
1149
+ undo?: string;
1150
+ redo?: string;
1151
+ restoreChanges?: string;
1152
+ changes?: string;
1153
+ changesCount?: string;
1154
+ changesEmpty?: string;
1155
+ changesBefore?: string;
1156
+ changesAfter?: string;
1157
+ editAtomicRequired?: string;
1158
+ clipboardLimit?: string;
1159
+ preferencesError?: string;
1160
+ freezeHeaders?: string;
1161
+ frozenColumns?: string;
1162
+ sections?: string;
1163
+ locateField?: string;
1164
+ locateFieldPlaceholder?: string;
1165
+ locateFieldMissing?: string;
1166
+ importSummary?: string;
1167
+ importPreserved?: string;
1168
+ importWarnings?: string;
1169
+ importReadOnly?: string;
1170
+ conflicts?: string;
1171
+ editReadOnly?: string;
1172
+ editMissing?: string;
1173
+ editRecalculationUnavailable?: string;
1174
+ editDuplicate?: string;
1175
+ clipboardInvalid?: string;
1176
+ editSaved?: string;
1177
+ settingsPanes?: string;
1178
+ columnDirectory?: string;
1179
+ columnSearch?: string;
1180
+ columnNoMatches?: string;
1181
+ columnResults?: string;
1182
+ columnGroup?: string;
1183
+ discardTitle?: string;
1184
+ discardDescription?: string;
1185
+ discardKeep?: string;
1186
+ discardProceed?: string;
1187
+ taskQuery?: string;
1188
+ taskValidate?: string;
1189
+ taskLayout?: string;
1190
+ taskAssets?: string;
1191
+ taskEncode?: string;
1192
+ taskDownload?: string;
1193
+ taskPrint?: string;
1194
+ taskCancel?: string;
1195
+ taskCancelled?: string;
1196
+ diagnosticsTitle?: string;
1197
+ diagnosticsSearch?: string;
1198
+ diagnosticsMore?: string;
1199
+ diagnosticsLocate?: string;
1200
+ diagnosticsLocation?: string;
1201
+ diagnosticsStrict?: string;
1202
+ diagnosticsDetails?: string;
1203
+ diagnosticMissingImage?: string;
1204
+ diagnosticUnsupported?: string;
1205
+ diagnosticUnsupportedStyle?: string;
1206
+ diagnosticImageFormat?: string;
1207
+ diagnosticRichText?: string;
1208
+ diagnosticNested?: string;
1209
+ diagnosticImageAsync?: string;
1210
+ diagnosticImageDecode?: string;
1211
+ diagnosticAssetFailed?: string;
1212
+ diagnosticAssetBudget?: string;
1213
+ }
1214
+ /**
1215
+ * 配置中心(对齐 mach-table 的 defineMachTableConfig 体验):
1216
+ * - 应用级:app.use(machReportPlugin, { config: defineMachReportConfig({...}) })
1217
+ * - 路由级叠加:provideMachReportConfig(overlay)(响应式,就近覆盖)
1218
+ * - 优先级:组件 props > 路由级叠加 > preset > defaults(props 永远最高)
1219
+ */
1220
+ /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1221
+ declare interface MachReportMessages_2 extends Partial<ReportCalculationMessages_2> {
1222
+ exportMenu?: string;
1223
+ exportMenuDescription?: string;
1224
+ clearSearch?: string;
1225
+ searchHint?: string;
1226
+ searchNoMatches?: string;
1227
+ pageJump?: string;
1228
+ pageJumpInvalid?: string;
1229
+ pageJumpHint?: string;
1230
+ pagination?: string;
1231
+ columnSearchHint?: string;
1232
+ columnSearchShortcut?: string;
1233
+ closeColumnDirectory?: string;
1234
+ columnResultsMore?: string;
1235
+ columnCount?: string;
1236
+ settingsGeneral?: string;
1237
+ settingsTools?: string;
1238
+ settingsAdvanced?: string;
1239
+ settingsAdvancedDescription?: string;
1240
+ settingsCalculations?: string;
1241
+ settingsCalculationsDescription?: string;
1242
+ title: string;
1243
+ prevPage: string;
1244
+ nextPage: string;
1245
+ /** 页码显示模板,{cur}/{total} 占位 */
1246
+ pageInfo: string;
1247
+ fitWidth: string;
1248
+ exportHtml: string;
1249
+ exportPdf: string;
1250
+ exportExcel: string;
1251
+ exportImage: string;
1252
+ exportWord: string;
1253
+ /** 导出进行中提示,{format} 占位 */
1254
+ exporting: string;
1255
+ print: string;
1256
+ pdfWindow: string;
1257
+ loading: string;
1258
+ empty: string;
1259
+ /** @deprecated 未被组件消费,将在下个大版本移除(保留仅为类型兼容) */
1260
+ errorPrefix: string;
1261
+ retry: string;
1262
+ /** 可选新增文案,保留旧完整文案对象兼容。 */
1263
+ pdfFontUnavailable?: string;
1264
+ /** 搜索框占位文案 */
1265
+ searchPlaceholder: string;
1266
+ /** 搜索命中计数,{cur}/{total} 占位 */
1267
+ matchInfo: string;
1268
+ /** 上/下一个命中 */
1269
+ prevMatch: string;
1270
+ nextMatch: string;
1271
+ /** 缩略图侧栏开关 */
1272
+ thumbnails: string;
1273
+ /** 参数面板 */
1274
+ paramsTitle: string;
1275
+ query: string;
1276
+ reset: string;
1277
+ /** 必填缺失提示({label} 占位) */
1278
+ paramRequired: string;
1279
+ paramInvalid?: string;
1280
+ paramPrompt?: string;
1281
+ paramPromptDescription?: string;
1282
+ paramSelectPlaceholder?: string;
1283
+ paramTextPlaceholder?: string;
1284
+ paramRangeStart?: string;
1285
+ paramRangeEnd?: string;
1006
1286
  /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
1007
1287
  searching?: string;
1008
1288
  importExcel?: string;
@@ -1202,6 +1482,77 @@ declare interface OutputTaskOptions_2 {
1202
1482
  signal?: AbortSignal;
1203
1483
  onProgress?: (completed: number, total: number) => void;
1204
1484
  }
1485
+ export declare const PARAM_EDITOR_MESSAGES: {
1486
+ paramsTool: string;
1487
+ paramsDescription: string;
1488
+ paramsDirectory: string;
1489
+ paramAdd: string;
1490
+ paramEmpty: string;
1491
+ paramEmptyHint: string;
1492
+ paramField: string;
1493
+ paramLabel: string;
1494
+ paramType: string;
1495
+ paramRequired: string;
1496
+ paramPlaceholder: string;
1497
+ paramDefaultEnabled: string;
1498
+ paramDefault: string;
1499
+ paramMinimum: string;
1500
+ paramMaximum: string;
1501
+ paramMinLength: string;
1502
+ paramMaxLength: string;
1503
+ paramOptions: string;
1504
+ paramOptionValue: string;
1505
+ paramOptionLabel: string;
1506
+ paramOptionAdd: string;
1507
+ paramRemove: string;
1508
+ paramOptionRemove: string;
1509
+ paramMoveUp: string;
1510
+ paramMoveDown: string;
1511
+ paramApply: string;
1512
+ paramRestore: string;
1513
+ paramPending: string;
1514
+ paramReady: string;
1515
+ paramInvalid: string;
1516
+ paramIssueCount: string;
1517
+ paramLocateFirst: string;
1518
+ paramUnnamed: string;
1519
+ paramRangeStart: string;
1520
+ paramRangeEnd: string;
1521
+ paramConflict: string;
1522
+ paramApplyFailed: string;
1523
+ paramRenameHint: string;
1524
+ paramChanges: string;
1525
+ paramAdded: string;
1526
+ paramRemoved: string;
1527
+ paramWire: string;
1528
+ paramNoDefault: string;
1529
+ paramRangeHint: string;
1530
+ paramText: string;
1531
+ paramNumber: string;
1532
+ paramDate: string;
1533
+ paramMonth: string;
1534
+ paramYear: string;
1535
+ paramDateRange: string;
1536
+ paramSelect: string;
1537
+ };
1538
+ export declare const ParamEditor: DefineComponent<ParamEditorOptions, {
1539
+ pending: ComputedRef<boolean>;
1540
+ reset: () => void;
1541
+ apply: () => boolean;
1542
+ locateIssue: () => Promise<void>;
1543
+ }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1544
+ dirty: (pending: boolean) => any;
1545
+ }, string, MachReportVuePublicProps, Readonly<ParamEditorOptions> & Readonly<{
1546
+ onDirty?: ((pending: boolean) => any) | undefined;
1547
+ }>, {}>;
1548
+ export declare type ParamEditorMessages = typeof PARAM_EDITOR_MESSAGES;
1549
+ export declare interface ParamEditorOptions {
1550
+ document: ReportTemplateDocument;
1551
+ readonly?: boolean;
1552
+ messages?: Partial<ParamEditorMessages>;
1553
+ /** Return false when the enclosing template transaction rejects the change. */
1554
+ accept(definitions: ReportParamDef[]): boolean;
1555
+ }
1205
1556
  declare interface PlanComponent {
1206
1557
  /** Template page furniture repeats per page and reserves its vertical band. */
1207
1558
  pageAnchor?: "header" | "footer";
@@ -1369,6 +1720,7 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1369
1720
  canvasHint: string;
1370
1721
  zoom: string;
1371
1722
  sampleRows: string;
1723
+ treeSampleHint: string;
1372
1724
  resizeComponent: string;
1373
1725
  resizeColumn: string;
1374
1726
  insertComponent: string;
@@ -1403,10 +1755,21 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1403
1755
  headerRow: string;
1404
1756
  headerFirst: string;
1405
1757
  headerLast: string;
1758
+ flowLayout: string;
1759
+ paramsTool: string;
1406
1760
  excelTool: string;
1407
1761
  rulesTool: string;
1408
1762
  reviewTool: string;
1409
1763
  toolsDescription: string;
1764
+ unapplied: string;
1765
+ pendingToolsLabel: string;
1766
+ pendingToolsHint: string;
1767
+ saveReadonly: string;
1768
+ saveConfirmation: string;
1769
+ saveUnchanged: string;
1770
+ saveInvalid: string;
1771
+ saveJsonPending: string;
1772
+ returnToConfiguration: string;
1410
1773
  rulesNeedList: string;
1411
1774
  undo: string;
1412
1775
  redo: string;
@@ -1450,6 +1813,68 @@ declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1450
1813
  fieldPosition: string;
1451
1814
  previewFieldDirectory: string;
1452
1815
  };
1816
+ export declare const REPORT_BATCH_MESSAGES: {
1817
+ batchTitle: string;
1818
+ batchDescription: string;
1819
+ batchAdd: string;
1820
+ batchDuplicate: string;
1821
+ batchDuplicateCompleted: string;
1822
+ batchRemove: string;
1823
+ batchRun: string;
1824
+ batchContinue: string;
1825
+ batchRunning: string;
1826
+ batchRetry: string;
1827
+ batchCancel: string;
1828
+ batchCancelling: string;
1829
+ batchPending: string;
1830
+ batchCompleted: string;
1831
+ batchCompletedHint: string;
1832
+ batchFailed: string;
1833
+ batchCancelled: string;
1834
+ batchCase: string;
1835
+ batchProgress: string;
1836
+ batchInvalid: string;
1837
+ batchEmpty: string;
1838
+ batchNoMatches: string;
1839
+ batchFilter: string;
1840
+ batchAll: string;
1841
+ batchNextFailure: string;
1842
+ batchNoInstance: string;
1843
+ batchOpen: string;
1844
+ batchLimit: string;
1845
+ batchChanged: string;
1846
+ batchPages: string;
1847
+ batchPrevious: string;
1848
+ batchNext: string;
1849
+ batchPage: string;
1850
+ };
1851
+ declare interface ReportBatchCase {
1852
+ id: string;
1853
+ params: Record<string, string>;
1854
+ }
1855
+ export declare type ReportBatchMessages = typeof REPORT_BATCH_MESSAGES;
1856
+ export declare const ReportBatchPanel: DefineComponent<ReportBatchPanelOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1857
+ "open-instance": (receipt: ReportBatchReceipt) => any;
1858
+ }, string, MachReportVuePublicProps, Readonly<ReportBatchPanelOptions> & Readonly<{
1859
+ "onOpen-instance"?: ((receipt: ReportBatchReceipt) => any) | undefined;
1860
+ }>, {}>;
1861
+ export declare interface ReportBatchPanelOptions {
1862
+ paramDefs: ReportParamDef[];
1863
+ execute(item: ReportBatchCase, context: {
1864
+ index: number;
1865
+ signal: AbortSignal;
1866
+ }): Promise<ReportBatchReceipt>;
1867
+ initialCases?: ReportBatchCase[];
1868
+ readonly?: boolean;
1869
+ concurrency?: number;
1870
+ maxCases?: number;
1871
+ messages?: Partial<ReportBatchMessages>;
1872
+ paramMessages?: Partial<MachReportMessages_2>;
1873
+ }
1874
+ export declare interface ReportBatchReceipt {
1875
+ instanceId?: string;
1876
+ label?: string;
1877
+ }
1453
1878
  /** Return false to keep the current report. Without a hook the preview asks inline. */
1454
1879
  declare type ReportBeforeDiscard = (context: Readonly<ReportBeforeDiscardContext>) => boolean | Promise<boolean>;
1455
1880
  declare interface ReportBeforeDiscardContext {
@@ -1487,6 +1912,35 @@ declare interface ReportCalculationMessages {
1487
1912
  calculationErrorOverflow: string;
1488
1913
  calculationErrorPrecision: string;
1489
1914
  }
1915
+ declare interface ReportCalculationMessages_2 {
1916
+ calculationTitle: string;
1917
+ calculationLocal: string;
1918
+ calculationHint: string;
1919
+ calculationFormula: string;
1920
+ calculationExpression: string;
1921
+ calculationExpressionHint: string;
1922
+ calculationPrecision: string;
1923
+ calculationRun: string;
1924
+ calculationCancel: string;
1925
+ calculationResult: string;
1926
+ calculationIncluded: string;
1927
+ calculationExcluded: string;
1928
+ calculationEmpty: string;
1929
+ calculationNoSelection: string;
1930
+ calculationSum: string;
1931
+ calculationAverage: string;
1932
+ calculationMin: string;
1933
+ calculationMax: string;
1934
+ calculationCount: string;
1935
+ calculationMedian: string;
1936
+ calculationCustom: string;
1937
+ calculationErrorSelection: string;
1938
+ calculationErrorLimit: string;
1939
+ calculationErrorExpression: string;
1940
+ calculationErrorDivision: string;
1941
+ calculationErrorOverflow: string;
1942
+ calculationErrorPrecision: string;
1943
+ }
1490
1944
  /** 预览中的物理坐标;合并单元格使用左上角坐标。 */
1491
1945
  declare interface ReportCellAddress {
1492
1946
  pageIndex: number;
@@ -1686,6 +2140,27 @@ declare interface ReportFieldContract_2 {
1686
2140
  semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
1687
2141
  unit?: string;
1688
2142
  }
2143
+ declare interface ReportFlowBand {
2144
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2145
+ componentIds: string[];
2146
+ /** Source-template coordinates; following bands keep their original gap. */
2147
+ topMm: number;
2148
+ heightMm: number;
2149
+ }
2150
+ declare interface ReportFlowBand_2 {
2151
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2152
+ componentIds: string[];
2153
+ /** Source-template coordinates; following bands keep their original gap. */
2154
+ topMm: number;
2155
+ heightMm: number;
2156
+ }
2157
+ declare interface ReportFlowBand_3 {
2158
+ /** Exact stable component IDs. Static components use nid, lists use id. */
2159
+ componentIds: string[];
2160
+ /** Source-template coordinates; following bands keep their original gap. */
2161
+ topMm: number;
2162
+ heightMm: number;
2163
+ }
1689
2164
  declare interface ReportInteractionOptions {
1690
2165
  /** 只读选区计算,默认关闭;不写回业务值或执行导入的 Excel 公式。 */
1691
2166
  calculations?: boolean;
@@ -1700,13 +2175,22 @@ declare interface ReportOutputOptions {
1700
2175
  /** warn preserves supported output and shows diagnostics; strict rejects known fidelity loss. */
1701
2176
  fidelity?: "warn" | "strict";
1702
2177
  }
2178
+ declare interface ReportPageFlow {
2179
+ bands: ReportFlowBand[];
2180
+ }
2181
+ declare interface ReportPageFlow_2 {
2182
+ bands: ReportFlowBand_2[];
2183
+ }
2184
+ declare interface ReportPageFlow_3 {
2185
+ bands: ReportFlowBand_3[];
2186
+ }
1703
2187
  /** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
1704
2188
  declare interface ReportParamDef {
1705
2189
  /** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
1706
2190
  field: string;
1707
2191
  /** 显示名(缺省用 field) */
1708
2192
  label?: string;
1709
- type?: "text" | "number" | "date" | "select";
2193
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1710
2194
  /** select 选项 */
1711
2195
  options?: Array<{
1712
2196
  label: string;
@@ -1715,7 +2199,7 @@ declare interface ReportParamDef {
1715
2199
  defaultValue?: string;
1716
2200
  required?: boolean;
1717
2201
  placeholder?: string;
1718
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2202
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1719
2203
  min?: number | string;
1720
2204
  max?: number | string;
1721
2205
  minLength?: number;
@@ -1727,7 +2211,28 @@ declare interface ReportParamDef_2 {
1727
2211
  field: string;
1728
2212
  /** 显示名(缺省用 field) */
1729
2213
  label?: string;
1730
- type?: "text" | "number" | "date" | "select";
2214
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
2215
+ /** select 选项 */
2216
+ options?: Array<{
2217
+ label: string;
2218
+ value: string;
2219
+ }>;
2220
+ defaultValue?: string;
2221
+ required?: boolean;
2222
+ placeholder?: string;
2223
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
2224
+ min?: number | string;
2225
+ max?: number | string;
2226
+ minLength?: number;
2227
+ maxLength?: number;
2228
+ }
2229
+ /** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
2230
+ declare interface ReportParamDef_3 {
2231
+ /** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
2232
+ field: string;
2233
+ /** 显示名(缺省用 field) */
2234
+ label?: string;
2235
+ type?: "text" | "number" | "date" | "month" | "year" | "dateRange" | "select";
1731
2236
  /** select 选项 */
1732
2237
  options?: Array<{
1733
2238
  label: string;
@@ -1736,7 +2241,7 @@ declare interface ReportParamDef_2 {
1736
2241
  defaultValue?: string;
1737
2242
  required?: boolean;
1738
2243
  placeholder?: string;
1739
- /** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
2244
+ /** 数字上下界;日期/月/年使用对应规范字符串;dateRange 对两端使用 YYYY-MM-DD 边界(含边界)。 */
1740
2245
  min?: number | string;
1741
2246
  max?: number | string;
1742
2247
  minLength?: number;
@@ -1766,6 +2271,50 @@ declare interface ReportTemplate_2 {
1766
2271
  params?: ReportParamDef_2[];
1767
2272
  pages: TemplatePage_2[];
1768
2273
  }
2274
+ declare interface ReportTemplate_3 {
2275
+ schemaVersion?: string;
2276
+ /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
2277
+ params?: ReportParamDef_3[];
2278
+ pages: TemplatePage_3[];
2279
+ }
2280
+ declare interface ReportTemplateCatalogEntry extends ReportTemplateSummary {
2281
+ category?: string;
2282
+ tags?: string[];
2283
+ updatedAt?: string;
2284
+ /** Optional lifecycle metadata. revision continues to identify the editable document. */
2285
+ draftRevision?: string;
2286
+ publishedRevision?: string;
2287
+ }
2288
+ declare interface ReportTemplateCatalogOpenContext {
2289
+ mode: "edit" | "published";
2290
+ }
2291
+ declare interface ReportTemplateCatalogOpenContext_2 {
2292
+ mode: "edit" | "published";
2293
+ }
2294
+ declare interface ReportTemplateCatalogPage {
2295
+ items: ReportTemplateCatalogEntry[];
2296
+ next?: string;
2297
+ categories?: Array<{
2298
+ id: string;
2299
+ label: string;
2300
+ count?: number;
2301
+ }>;
2302
+ }
2303
+ /** Discovery metadata is separate from executable templates and from enterprise account authorization. */
2304
+ declare interface ReportTemplateCatalogProvider {
2305
+ search(request: ReportTemplateCatalogQuery): Promise<ReportTemplateCatalogPage>;
2306
+ get(id: string, context: {
2307
+ signal?: AbortSignal;
2308
+ mode?: ReportTemplateCatalogOpenContext["mode"];
2309
+ }): Promise<ReportTemplateDocument | undefined>;
2310
+ }
2311
+ declare interface ReportTemplateCatalogQuery {
2312
+ query?: string;
2313
+ category?: string;
2314
+ cursor?: string;
2315
+ limit?: number;
2316
+ signal?: AbortSignal;
2317
+ }
1769
2318
  /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
1770
2319
  declare interface ReportTemplateDocument {
1771
2320
  schemaVersion: "1.0";
@@ -1786,6 +2335,16 @@ declare interface ReportTemplateDocument_2 {
1786
2335
  description?: string;
1787
2336
  template: ReportTemplate_2;
1788
2337
  }
2338
+ /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
2339
+ declare interface ReportTemplateDocument_3 {
2340
+ schemaVersion: "1.0";
2341
+ id: string;
2342
+ name: string;
2343
+ /** 宿主的发布版本/乐观锁标识,不由引擎自动递增。 */
2344
+ revision?: string;
2345
+ description?: string;
2346
+ template: ReportTemplate_3;
2347
+ }
1789
2348
  export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions, {
1790
2349
  pendingLocalChanges: boolean;
1791
2350
  saving: boolean;
@@ -1802,6 +2361,11 @@ export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions
1802
2361
  onSaved?: ((document: ReportTemplateDocument) => any) | undefined;
1803
2362
  "onExcel-bound"?: ((result: ExcelBindingWizardApply) => any) | undefined;
1804
2363
  }>, {}>;
2364
+ export declare const ReportTemplateLibrary: DefineComponent<TemplateLibraryOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2365
+ open: (document: ReportTemplateDocument_3, context?: ReportTemplateCatalogOpenContext_2 | undefined) => any;
2366
+ }, string, MachReportVuePublicProps, Readonly<TemplateLibraryOptions> & Readonly<{
2367
+ onOpen?: ((document: ReportTemplateDocument_3, context?: ReportTemplateCatalogOpenContext_2 | undefined) => any) | undefined;
2368
+ }>, {}>;
1805
2369
  declare interface ReportTemplateReviewIssue {
1806
2370
  code: "template" | "compatibility" | "dataset" | "field" | "sample" | "layout" | "output" | "params";
1807
2371
  severity: "error" | "warning";
@@ -1812,6 +2376,7 @@ declare interface ReportTemplateReviewIssue {
1812
2376
  componentIndex?: number;
1813
2377
  field?: string;
1814
2378
  }
2379
+ declare type ReportTemplateSummary = Omit<ReportTemplateDocument, "template">;
1815
2380
  declare interface RichParagraph {
1816
2381
  segments: RichSegment[];
1817
2382
  align?: ComponentStyle["align"];
@@ -1871,6 +2436,25 @@ export declare const RULE_EDITOR_MESSAGES: {
1871
2436
  pending: string;
1872
2437
  detail: string;
1873
2438
  matrix: string;
2439
+ tree: string;
2440
+ treeInput: string;
2441
+ treeFlat: string;
2442
+ treeNested: string;
2443
+ treeId: string;
2444
+ treeParent: string;
2445
+ treeChildren: string;
2446
+ treeLabel: string;
2447
+ treeIndent: string;
2448
+ treeOrphan: string;
2449
+ treeAsRoot: string;
2450
+ treeValues: string;
2451
+ treeSource: string;
2452
+ treeLeaves: string;
2453
+ treeRows: string;
2454
+ treeDepth: string;
2455
+ treeHint: string;
2456
+ treeReadonly: string;
2457
+ treeBudget: string;
1874
2458
  measureLabel: string;
1875
2459
  childDataset: string;
1876
2460
  parentKey: string;
@@ -2058,6 +2642,7 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2058
2642
  canvasHint: string;
2059
2643
  zoom: string;
2060
2644
  sampleRows: string;
2645
+ treeSampleHint: string;
2061
2646
  resizeComponent: string;
2062
2647
  resizeColumn: string;
2063
2648
  insertComponent: string;
@@ -2092,10 +2677,21 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2092
2677
  headerRow: string;
2093
2678
  headerFirst: string;
2094
2679
  headerLast: string;
2680
+ flowLayout: string;
2681
+ paramsTool: string;
2095
2682
  excelTool: string;
2096
2683
  rulesTool: string;
2097
2684
  reviewTool: string;
2098
2685
  toolsDescription: string;
2686
+ unapplied: string;
2687
+ pendingToolsLabel: string;
2688
+ pendingToolsHint: string;
2689
+ saveReadonly: string;
2690
+ saveConfirmation: string;
2691
+ saveUnchanged: string;
2692
+ saveInvalid: string;
2693
+ saveJsonPending: string;
2694
+ returnToConfiguration: string;
2099
2695
  rulesNeedList: string;
2100
2696
  undo: string;
2101
2697
  redo: string;
@@ -2188,10 +2784,48 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
2188
2784
  sessionLock: string;
2189
2785
  toolsPending: string;
2190
2786
  };
2787
+ export declare const TEMPLATE_LIBRARY_MESSAGES: {
2788
+ publicationChanged: string;
2789
+ continueDraft: string;
2790
+ viewPublished: string;
2791
+ draft: string;
2792
+ published: string;
2793
+ draftPending: string;
2794
+ retrySearch: string;
2795
+ retryOpen: string;
2796
+ retryCopy: string;
2797
+ openingTarget: string;
2798
+ creatingTarget: string;
2799
+ title: string;
2800
+ subtitle: string;
2801
+ search: string;
2802
+ all: string;
2803
+ refresh: string;
2804
+ open: string;
2805
+ copy: string;
2806
+ empty: string;
2807
+ emptyHint: string;
2808
+ loadMore: string;
2809
+ previous: string;
2810
+ page: string;
2811
+ loading: string;
2812
+ retry: string;
2813
+ revision: string;
2814
+ copyTitle: string;
2815
+ newId: string;
2816
+ newName: string;
2817
+ create: string;
2818
+ cancel: string;
2819
+ count: string;
2820
+ missing: string;
2821
+ stale: string;
2822
+ invalid: string;
2823
+ };
2191
2824
  export declare const TEMPLATE_REVIEW_MESSAGES: {
2192
2825
  stale: string;
2193
2826
  scope: string;
2194
2827
  datasets: string;
2828
+ treeHint: string;
2195
2829
  title: string;
2196
2830
  run: string;
2197
2831
  running: string;
@@ -2234,6 +2868,7 @@ export declare const TEMPLATE_REVIEW_MESSAGES: {
2234
2868
  };
2235
2869
  declare type TemplateComponent = PlanComponent | ListComponent;
2236
2870
  declare type TemplateComponent_2 = PlanComponent_2 | ListComponent_2;
2871
+ declare type TemplateComponent_3 = PlanComponent_3 | ListComponent_3;
2237
2872
  export declare type TemplateEditorBeforeDiscard = (context: TemplateEditorBeforeDiscardContext) => boolean | Promise<boolean>;
2238
2873
  export declare interface TemplateEditorBeforeDiscardContext {
2239
2874
  reason: "reset" | "replace";
@@ -2258,7 +2893,7 @@ export declare interface TemplateEditorOptions {
2258
2893
  dataSchemas?: Record<string, DatasetContract>;
2259
2894
  bindingDatasets?: ExcelBindingDataset[];
2260
2895
  /** Optional independently persisted Excel source and binding recipe. */
2261
- bindingSession?: ExcelBindingSession;
2896
+ bindingSession?: AnyExcelBindingSession;
2262
2897
  readonly?: boolean;
2263
2898
  messages?: Partial<TemplateEditorMessages>;
2264
2899
  preview?: Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "theme" | "assets" | "pdfFontUrl" | "toolbar">;
@@ -2269,6 +2904,15 @@ export declare interface TemplateEditorSaveContext {
2269
2904
  expectedRevision?: string;
2270
2905
  signal: AbortSignal;
2271
2906
  }
2907
+ export declare type TemplateLibraryMessages = typeof TEMPLATE_LIBRARY_MESSAGES;
2908
+ export declare interface TemplateLibraryOptions {
2909
+ provider: ReportTemplateCatalogProvider;
2910
+ messages?: Partial<TemplateLibraryMessages>;
2911
+ /** Optional real persistence action. No copy button is shown without it. */
2912
+ create?: (document: ReportTemplateDocument, context: {
2913
+ signal: AbortSignal;
2914
+ }) => Promise<ReportTemplateDocument>;
2915
+ }
2272
2916
  declare interface TemplatePage {
2273
2917
  widthMm: number;
2274
2918
  heightMm: number;
@@ -2279,6 +2923,9 @@ declare interface TemplatePage {
2279
2923
  marginLeftMm?: number;
2280
2924
  marginRightMm?: number;
2281
2925
  components: TemplateComponent[];
2926
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2927
+ flow?: ReportPageFlow;
2928
+ meta?: Record<string, unknown>;
2282
2929
  }
2283
2930
  declare interface TemplatePage_2 {
2284
2931
  widthMm: number;
@@ -2290,6 +2937,23 @@ declare interface TemplatePage_2 {
2290
2937
  marginLeftMm?: number;
2291
2938
  marginRightMm?: number;
2292
2939
  components: TemplateComponent_2[];
2940
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2941
+ flow?: ReportPageFlow_2;
2942
+ meta?: Record<string, unknown>;
2943
+ }
2944
+ declare interface TemplatePage_3 {
2945
+ widthMm: number;
2946
+ heightMm: number;
2947
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
2948
+ layout?: "page" | "wide";
2949
+ marginTopMm?: number;
2950
+ marginBottomMm?: number;
2951
+ marginLeftMm?: number;
2952
+ marginRightMm?: number;
2953
+ components: TemplateComponent_3[];
2954
+ /** Explicit vertical bands preserve source gaps as dynamic regions expand. */
2955
+ flow?: ReportPageFlow_3;
2956
+ meta?: Record<string, unknown>;
2293
2957
  }
2294
2958
  export declare type TemplateReviewMessages = typeof TEMPLATE_REVIEW_MESSAGES;
2295
2959
  declare interface TemplateReviewOptions {
@@ -2308,6 +2972,63 @@ export declare const TemplateReviewPanel: DefineComponent<TemplateReviewOptions
2308
2972
  }> & Readonly<{
2309
2973
  onLocate?: ((value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any) | undefined;
2310
2974
  }>, {}>;
2975
+ /** A serialized tree contract. Sibling and root order follow input order. */
2976
+ declare interface TreeTableOptions {
2977
+ input: "flat" | "nested";
2978
+ idField: string;
2979
+ /** Flat roots have null/undefined parent values. */
2980
+ parentField?: string;
2981
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
2982
+ childrenField?: string;
2983
+ labelField: string;
2984
+ indentMm?: number;
2985
+ orphan?: "error" | "root";
2986
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
2987
+ parentValues?: "source" | "leaf-aggregate";
2988
+ aggregates?: AggregateDefinition[];
2989
+ maxRows?: number;
2990
+ maxDepth?: number;
2991
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
2992
+ maxAggregationVisits?: number;
2993
+ }
2994
+ /** A serialized tree contract. Sibling and root order follow input order. */
2995
+ declare interface TreeTableOptions_2 {
2996
+ input: "flat" | "nested";
2997
+ idField: string;
2998
+ /** Flat roots have null/undefined parent values. */
2999
+ parentField?: string;
3000
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
3001
+ childrenField?: string;
3002
+ labelField: string;
3003
+ indentMm?: number;
3004
+ orphan?: "error" | "root";
3005
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
3006
+ parentValues?: "source" | "leaf-aggregate";
3007
+ aggregates?: AggregateDefinition_2[];
3008
+ maxRows?: number;
3009
+ maxDepth?: number;
3010
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
3011
+ maxAggregationVisits?: number;
3012
+ }
3013
+ /** A serialized tree contract. Sibling and root order follow input order. */
3014
+ declare interface TreeTableOptions_3 {
3015
+ input: "flat" | "nested";
3016
+ idField: string;
3017
+ /** Flat roots have null/undefined parent values. */
3018
+ parentField?: string;
3019
+ /** Nested child arrays, defaults to children. Every node still needs an ID. */
3020
+ childrenField?: string;
3021
+ labelField: string;
3022
+ indentMm?: number;
3023
+ orphan?: "error" | "root";
3024
+ /** Source preserves parent values; leaf-aggregate derives only parents from descendant leaves. */
3025
+ parentValues?: "source" | "leaf-aggregate";
3026
+ aggregates?: AggregateDefinition_3[];
3027
+ maxRows?: number;
3028
+ maxDepth?: number;
3029
+ /** Bounded leaf-to-ancestor aggregate work; default one million. */
3030
+ maxAggregationVisits?: number;
3031
+ }
2311
3032
  declare interface XlsxImageOptions {
2312
3033
  /** Decoded bytes per unique embedded image; default 16 MiB. */
2313
3034
  maxImageBytes?: number;