@agile-team/mach-report 2.21.0 → 2.22.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 (110) hide show
  1. package/README.md +16 -2
  2. package/dist/{ExcelBindingWizard-B2xXBOJu.cjs → ExcelBindingWizard-CW79I6Gl.cjs} +1 -1
  3. package/dist/{ExcelBindingWizard-CixTPQAL.js → ExcelBindingWizard-CZyppD7I.js} +3 -3
  4. package/dist/{ParamEditor-DhHlNxai.cjs → ParamEditor-CiYCJI0b.cjs} +1 -1
  5. package/dist/{ParamEditor-gKhvEsnr.js → ParamEditor-DQit-Gdf.js} +2 -2
  6. package/dist/{ReportBatchPanel-D-lyWKyf.js → ReportBatchPanel-DKTpV7MU.js} +2 -2
  7. package/dist/{ReportBatchPanel-BUdUfTdm.cjs → ReportBatchPanel-Db6TAfG5.cjs} +1 -1
  8. package/dist/ReportLabelStudio-B0i9ohQj.cjs +1 -0
  9. package/dist/ReportLabelStudio-BYnRqmje.js +780 -0
  10. package/dist/{ReportParamPanel-peB-KEmm.js → ReportParamPanel-BHSKVL8k.js} +231 -224
  11. package/dist/ReportParamPanel-lngONOEz.cjs +1 -0
  12. package/dist/ReportPreview-BDgKssYR.js +5887 -0
  13. package/dist/ReportPreview-Dw-4icG6.cjs +6 -0
  14. package/dist/{ReportTemplateLibrary-WZl-AK-2.js → ReportTemplateLibrary-BZuKn0YK.js} +1 -1
  15. package/dist/{ReportTemplateLibrary-Cs9WKneQ.cjs → ReportTemplateLibrary-DEXH07ND.cjs} +1 -1
  16. package/dist/{RuleEditor-DGpmjCko.js → RuleEditor-CIQn547x.js} +3 -3
  17. package/dist/{RuleEditor-Dtcq-7LO.cjs → RuleEditor-zSUmPjKa.cjs} +1 -1
  18. package/dist/{TemplateOutlinePanel-CkCh506f.cjs → TemplateOutlinePanel-B5SfGYVN.cjs} +1 -1
  19. package/dist/{TemplateOutlinePanel-cxp95OT9.js → TemplateOutlinePanel-D0PgOSQE.js} +2 -2
  20. package/dist/{TemplateReusePanel-BZ8VTtrO.js → TemplateReusePanel-BKlAEF8-.js} +2 -2
  21. package/dist/{TemplateReusePanel-CwttuSta.cjs → TemplateReusePanel-DAy_Hwqz.cjs} +1 -1
  22. package/dist/TemplateReviewPanel-CowmHaQQ.cjs +1 -0
  23. package/dist/{TemplateReviewPanel-C9cTvsRs.js → TemplateReviewPanel-div-EH_m.js} +2 -2
  24. package/dist/artifact-integrity.json +76 -76
  25. package/dist/{auto-Tq7ReIC1.cjs → auto-DcUHlKob.cjs} +1 -1
  26. package/dist/{auto-BkdGiNtr.js → auto-moShblh1.js} +4 -4
  27. package/dist/{designer-CIDHt5xz.js → designer-B7jJeAeG.js} +1500 -1455
  28. package/dist/{designer-CDqok4S5.cjs → designer-BWQVpJeN.cjs} +2 -2
  29. package/dist/designer.cjs +1 -1
  30. package/dist/designer.d.cts +149 -2
  31. package/dist/designer.d.ts +149 -2
  32. package/dist/designer.js +13 -12
  33. package/dist/{encoding-BSeUwrN7.js → encoding-DbnhbwI8.js} +2 -2
  34. package/dist/{encoding-B79hW4zq.cjs → encoding-ncQAvyOv.cjs} +1 -1
  35. package/dist/index.cjs +5 -5
  36. package/dist/index.d.cts +38 -0
  37. package/dist/index.d.ts +38 -0
  38. package/dist/index.js +299 -279
  39. package/dist/{json-snapshot-Kgn459Oj.js → json-snapshot-DvQbZlD7.js} +2 -2
  40. package/dist/{json-snapshot-I5VI84Vp.cjs → json-snapshot-nyV63AbB.cjs} +1 -1
  41. package/dist/{plugin-BaRUGORD.cjs → plugin-AcAQ2m9X.cjs} +1 -1
  42. package/dist/{plugin-D4kAxfLG.js → plugin-w5Nyt08U.js} +1 -1
  43. package/dist/{prefill-CJSazcVY.js → prefill-BXBxx5We.js} +1 -1
  44. package/dist/{prefill-Bpyn58AZ.cjs → prefill-DUvejVt1.cjs} +1 -1
  45. package/dist/prepared-YXy-fVLw.cjs +1 -0
  46. package/dist/{prepared-BwjwEzFz.js → prepared-rXCKqdHY.js} +35 -34
  47. package/dist/{protocol-C8VWF9An.cjs → protocol-C9ZaylID.cjs} +1 -1
  48. package/dist/{protocol-Bs9-ohHN.js → protocol-fjaeKkjf.js} +3 -3
  49. package/dist/{region-binding-workflow-JNowHd0A.cjs → region-binding-workflow-BiJQ7NU6.cjs} +1 -1
  50. package/dist/{region-binding-workflow-Cy4GIOUo.js → region-binding-workflow-aA8nxmkZ.js} +1 -1
  51. package/dist/report-encoding-worker.cjs +1 -1
  52. package/dist/report-encoding-worker.js +1 -1
  53. package/dist/{runtime-BDf5x1i1.js → runtime-BTtpjF3D.js} +4 -4
  54. package/dist/{runtime-DsJt1PIf.cjs → runtime-Dq0LUsyS.cjs} +1 -1
  55. package/dist/sbom.cdx.json +1 -1
  56. package/dist/server/node.d.cts +9 -0
  57. package/dist/server/node.d.ts +9 -0
  58. package/dist/server-node.cjs +5 -4
  59. package/dist/server-node.js +1838 -1760
  60. package/dist/server.cjs +1 -1
  61. package/dist/server.d.cts +81 -0
  62. package/dist/server.d.ts +81 -0
  63. package/dist/server.js +6 -6
  64. package/dist/style.css +1 -1
  65. package/dist/template-catalog-CLAM4w7H.cjs +1 -0
  66. package/dist/{template-catalog-DFwIS9aN.js → template-catalog-JSxSqk5y.js} +3 -3
  67. package/dist/template-fragments-Ca25Jt7e.cjs +1 -0
  68. package/dist/{template-fragments-Dng-AlHk.js → template-fragments-D2JFj7Du.js} +18 -18
  69. package/dist/{template-outline-DiADphlq.js → template-outline-CDWXptuj.js} +1 -1
  70. package/dist/template-outline-K4jGhATu.cjs +1 -0
  71. package/dist/template-registry-CWnuGqyP.cjs +1 -0
  72. package/dist/{template-registry-DhBqoD7W.js → template-registry-Do1Uav2Z.js} +333 -261
  73. package/dist/template-serialization-CU4n_Miu.js +307 -0
  74. package/dist/template-serialization-CgqBo6s-.cjs +1 -0
  75. package/dist/vue/async.d.cts +97 -2
  76. package/dist/vue/async.d.ts +97 -2
  77. package/dist/vue/index.d.cts +197 -4
  78. package/dist/vue/index.d.ts +197 -4
  79. package/dist/vue-async.cjs +1 -1
  80. package/dist/vue-async.js +3 -3
  81. package/dist/vue.cjs +1 -1
  82. package/dist/vue.js +75 -70
  83. package/dist/{workbook-session-NYv01LHe.cjs → workbook-session-BvEBRRMz.cjs} +1 -1
  84. package/dist/{workbook-session-oinxX3qo.js → workbook-session-f0wVlzst.js} +1 -1
  85. package/dist/workbook-sheets-CaPAulQ6.cjs +2 -0
  86. package/dist/workbook-sheets-D4M7XXBh.js +44 -0
  87. package/dist/worker.cjs +1 -1
  88. package/dist/worker.d.cts +9 -0
  89. package/dist/worker.d.ts +9 -0
  90. package/dist/worker.js +4 -4
  91. package/dist/xlsx.cjs +4 -4
  92. package/dist/xlsx.d.cts +39 -2
  93. package/dist/xlsx.d.ts +39 -2
  94. package/dist/xlsx.js +290 -270
  95. package/package.json +1 -1
  96. package/dist/ReportLabelStudio-BcjQt73a.cjs +0 -1
  97. package/dist/ReportLabelStudio-N2w6DdaZ.js +0 -764
  98. package/dist/ReportParamPanel-CVpK8mFc.cjs +0 -1
  99. package/dist/ReportPreview-BBJNlu2U.js +0 -5740
  100. package/dist/ReportPreview-nf4Dk1Jc.cjs +0 -6
  101. package/dist/TemplateReviewPanel-C2YjiaEC.cjs +0 -1
  102. package/dist/prepared-BiSz_9vN.cjs +0 -1
  103. package/dist/template-bindings-Cg5oBLFT.cjs +0 -1
  104. package/dist/template-bindings-TKnXM7ll.js +0 -62
  105. package/dist/template-catalog-D_2jdnkL.cjs +0 -1
  106. package/dist/template-fragments-DZVUBhuB.cjs +0 -1
  107. package/dist/template-outline-DWkzZXVC.cjs +0 -1
  108. package/dist/template-registry-DpLUSLwF.cjs +0 -1
  109. package/dist/template-serialization-Cc3h-miv.js +0 -247
  110. package/dist/template-serialization-D1R5oAqh.cjs +0 -1
@@ -878,6 +878,7 @@ declare interface MachReportDefaults {
878
878
  toolbar?: MachReportToolbarOptions;
879
879
  interaction?: ReportInteractionOptions;
880
880
  preferences?: ReportPreferencesOptions;
881
+ refresh?: ReportRefreshOptions;
881
882
  /** Protect local input and drafts before replacing a report. Default true. */
882
883
  guardChanges?: boolean;
883
884
  beforeDiscard?: ReportBeforeDiscard;
@@ -921,6 +922,7 @@ declare type MachReportLogger = Pick<Console, "warn" | "info">;
921
922
  */
922
923
  /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
923
924
  declare interface MachReportMessages extends Partial<ReportCalculationMessages>, Partial<ReportDataReviewMessages>, ReportPrintMessages, ReportParamOptionsMessages {
925
+ previousSnapshot?: string;
924
926
  reviewTools?: string;
925
927
  validationTitle?: string;
926
928
  validationError?: string;
@@ -1129,6 +1131,8 @@ declare interface MachReportPreviewOptions {
1129
1131
  /** 只读快照,由组件的同一套状态驱动;无需通过事件另建状态。 */
1130
1132
  declare interface MachReportState {
1131
1133
  readonly loading: boolean;
1134
+ /** A retained previous snapshot is readable while writes/output remain blocked. */
1135
+ readonly stale?: boolean;
1132
1136
  readonly hasPlan: boolean;
1133
1137
  readonly pageCount: number;
1134
1138
  readonly currentPage: number;
@@ -1175,6 +1179,8 @@ declare interface MachReportTheme {
1175
1179
  btnActiveBg: string;
1176
1180
  }
1177
1181
  declare interface MachReportToolbarOptions {
1182
+ /** Reasons explain host restrictions without granting capabilities. */
1183
+ unavailableReasons?: Partial<Record<ReportPreviewTool, string>>;
1178
1184
  search?: boolean;
1179
1185
  thumbnails?: boolean;
1180
1186
  zoom?: boolean;
@@ -2188,11 +2194,17 @@ declare interface ReportFetchInput extends ReportTaskMonitoring {
2188
2194
  onQueryResult?: (reportId: string, result: ReportQueryResult, reportIndex?: number) => void;
2189
2195
  }
2190
2196
  declare type ReportFieldAggregation = "sum" | "avg" | "min" | "max" | "count" | "none";
2197
+ declare type ReportFieldAggregation_2 = "sum" | "avg" | "min" | "max" | "count" | "none";
2191
2198
  declare interface ReportFieldCalculation {
2192
2199
  /** Business-owned explanation, never executable JavaScript or an inferred business formula. */
2193
2200
  description: string;
2194
2201
  dependsOn: readonly string[];
2195
2202
  }
2203
+ declare interface ReportFieldCalculation_2 {
2204
+ /** Business-owned explanation, never executable JavaScript or an inferred business formula. */
2205
+ description: string;
2206
+ dependsOn: readonly string[];
2207
+ }
2196
2208
  declare interface ReportFieldContract extends ReportFieldSemantics {
2197
2209
  field: string;
2198
2210
  label?: string;
@@ -2207,6 +2219,20 @@ declare interface ReportFieldContract extends ReportFieldSemantics {
2207
2219
  semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
2208
2220
  unit?: string;
2209
2221
  }
2222
+ declare interface ReportFieldContract_2 extends ReportFieldSemantics_2 {
2223
+ field: string;
2224
+ label?: string;
2225
+ type: "text" | "number" | "boolean" | "date" | "decimal";
2226
+ required?: boolean;
2227
+ nullable?: boolean;
2228
+ enum?: readonly (string | number | boolean)[];
2229
+ min?: number;
2230
+ max?: number;
2231
+ minLength?: number;
2232
+ maxLength?: number;
2233
+ semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
2234
+ unit?: string;
2235
+ }
2210
2236
  declare interface ReportFieldSemantics {
2211
2237
  description?: string;
2212
2238
  /** Explicit meaning of null/missing; does not convert blanks into zero. */
@@ -2217,6 +2243,16 @@ declare interface ReportFieldSemantics {
2217
2243
  format?: ColumnFormat;
2218
2244
  calculation?: ReportFieldCalculation;
2219
2245
  }
2246
+ declare interface ReportFieldSemantics_2 {
2247
+ description?: string;
2248
+ /** Explicit meaning of null/missing; does not convert blanks into zero. */
2249
+ missingMeaning?: string;
2250
+ /** Recommended aggregation; none marks non-additive measures such as ratios. No aggregation runs implicitly. */
2251
+ aggregation?: ReportFieldAggregation_2;
2252
+ /** Shared presentation only; raw values and calculation precision remain unchanged. */
2253
+ format?: ColumnFormat_3;
2254
+ calculation?: ReportFieldCalculation_2;
2255
+ }
2220
2256
  declare interface ReportFieldTarget {
2221
2257
  field: string;
2222
2258
  datasetId?: string;
@@ -2410,8 +2446,8 @@ declare type ReportPredicateScalar = string | number | boolean | null;
2410
2446
  declare type ReportPredicateScalar_2 = string | number | boolean | null;
2411
2447
  declare type ReportPredicateScalar_3 = string | number | boolean | null;
2412
2448
  declare interface ReportPreferencesAdapter {
2413
- load(key: string): Partial<ReportPreviewPreferences> | null | Promise<Partial<ReportPreviewPreferences> | null>;
2414
- save(key: string, value: Readonly<Partial<ReportPreviewPreferences>>): void | Promise<void>;
2449
+ load(key: string): ReportStoredPreferences | null | Promise<ReportStoredPreferences | null>;
2450
+ save(key: string, value: Readonly<ReportStoredPreferences>): void | Promise<void>;
2415
2451
  remove?(key: string): void | Promise<void>;
2416
2452
  }
2417
2453
  declare interface ReportPreferencesOptions {
@@ -2509,6 +2545,17 @@ declare interface ReportQueryResult {
2509
2545
  sourceToken?: string;
2510
2546
  diagnostics?: ReportDiagnostic[];
2511
2547
  }
2548
+ /** Explicit refresh policy. The key identifies template/layout revisions outside query parameters. */
2549
+ declare interface ReportRefreshOptions {
2550
+ retainPrevious?: boolean;
2551
+ key?: string;
2552
+ /** Host API request preceding the preview reload. Blocks edits and output without discarding drafts. */
2553
+ pending?: boolean;
2554
+ /** The host retained an earlier snapshot after its own query failed or was cancelled. */
2555
+ stale?: boolean;
2556
+ /** Retry the host HTTP query when it owns the stale snapshot. The host updates its own state. */
2557
+ retry?(): void | Promise<void>;
2558
+ }
2512
2559
  declare type ReportRegistry = Record<string, ReportDefinition>;
2513
2560
  declare interface ReportRuntimeBudget {
2514
2561
  maxRows?: number;
@@ -2538,6 +2585,10 @@ declare interface ReportSaveResult {
2538
2585
  }>;
2539
2586
  diagnostics?: ReportDiagnostic[];
2540
2587
  }
2588
+ declare interface ReportStoredPreferences extends Partial<ReportPreviewPreferences> {
2589
+ zoomMode?: "fit" | number;
2590
+ wideZoomMode?: "fit" | number;
2591
+ }
2541
2592
  /** 阶段事件只包含可序列化值;不表示估算百分比,也不包含业务数据。 */
2542
2593
  declare interface ReportTaskEvent {
2543
2594
  taskId: string;
@@ -2556,6 +2607,8 @@ declare interface ReportTaskMonitoring {
2556
2607
  declare type ReportTaskObserver = (event: ReportTaskEvent) => void;
2557
2608
  declare interface ReportTemplate {
2558
2609
  schemaVersion?: string;
2610
+ /** Optional source identity and stable field meanings for safe stored-template reuse. */
2611
+ dataContract?: ReportTemplateDataContract;
2559
2612
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
2560
2613
  params?: ReportParamDef[];
2561
2614
  /** Fixed label pages repeat in record → copy → template-page order. */
@@ -2564,12 +2617,28 @@ declare interface ReportTemplate {
2564
2617
  }
2565
2618
  declare interface ReportTemplate_2 {
2566
2619
  schemaVersion?: string;
2620
+ /** Optional source identity and stable field meanings for safe stored-template reuse. */
2621
+ dataContract?: ReportTemplateDataContract_2;
2567
2622
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
2568
2623
  params?: ReportParamDef_2[];
2569
2624
  /** Fixed label pages repeat in record → copy → template-page order. */
2570
2625
  repeat?: ReportTemplateRepeat_2;
2571
2626
  pages: TemplatePage_2[];
2572
2627
  }
2628
+ declare interface ReportTemplateDataContract {
2629
+ /** Host-owned report/domain identity, without a query date or tenant credentials. */
2630
+ source?: string;
2631
+ datasets: Readonly<Record<string, {
2632
+ fields: readonly ReportTemplateFieldBinding[];
2633
+ }>>;
2634
+ }
2635
+ declare interface ReportTemplateDataContract_2 {
2636
+ /** Host-owned report/domain identity, without a query date or tenant credentials. */
2637
+ source?: string;
2638
+ datasets: Readonly<Record<string, {
2639
+ fields: readonly ReportTemplateFieldBinding_2[];
2640
+ }>>;
2641
+ }
2573
2642
  /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
2574
2643
  declare interface ReportTemplateDocument {
2575
2644
  schemaVersion: "1.0";
@@ -2580,6 +2649,22 @@ declare interface ReportTemplateDocument {
2580
2649
  description?: string;
2581
2650
  template: ReportTemplate;
2582
2651
  }
2652
+ /** Stable business meaning is independent of a column's position and editable caption. */
2653
+ declare interface ReportTemplateFieldBinding {
2654
+ field: string;
2655
+ label?: string;
2656
+ semanticKey?: string;
2657
+ type?: ReportFieldContract["type"];
2658
+ unit?: string;
2659
+ }
2660
+ /** Stable business meaning is independent of a column's position and editable caption. */
2661
+ declare interface ReportTemplateFieldBinding_2 {
2662
+ field: string;
2663
+ label?: string;
2664
+ semanticKey?: string;
2665
+ type?: ReportFieldContract_2["type"];
2666
+ unit?: string;
2667
+ }
2583
2668
  declare type ReportTemplateLoader = (context: ReportLoadContext) => ReportTemplate | Promise<ReportTemplate>;
2584
2669
  declare interface ReportTemplateProvider {
2585
2670
  list(context: {
@@ -2800,6 +2885,12 @@ declare type ValueFormat = ColumnFormat;
2800
2885
  declare type ValueFormat_2 = ColumnFormat_2;
2801
2886
  /** The same declarative formatting used by list columns, before any output backend. */
2802
2887
  declare type ValueFormat_3 = ColumnFormat_3;
2888
+ /** 可序列化的附加工作表在编码前写入,浏览器与 Worker 共用同一声明。 */
2889
+ declare interface XlsxAdditionalSheet {
2890
+ name: string;
2891
+ rows: readonly (readonly (string | number | boolean | null)[])[];
2892
+ columnWidths?: readonly number[];
2893
+ }
2803
2894
  declare type XlsxImageOptions = ImageMediaOptions_2;
2804
2895
  /**
2805
2896
  * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
@@ -2812,6 +2903,8 @@ declare type XlsxImageOptions = ImageMediaOptions_2;
2812
2903
  declare interface XlsxRenderOptions extends AssetRenderOptions_2, XlsxImageOptions {
2813
2904
  /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
2814
2905
  sheetName?: (sheetIndex: number) => string;
2906
+ /** 可序列化命名,用于 Worker;未提供的项沿用默认名称。 */
2907
+ sheetNames?: readonly string[];
2815
2908
  /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
2816
2909
  sheetMode?: "auto" | "pages" | "continuous";
2817
2910
  /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
@@ -2820,5 +2913,7 @@ declare interface XlsxRenderOptions extends AssetRenderOptions_2, XlsxImageOptio
2820
2913
  maxDataBars?: number;
2821
2914
  /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
2822
2915
  paperSize?: "auto" | "a3" | "a4" | "a5";
2916
+ /** 在最终编码前追加说明、审计等标量工作表,可直接交给 Worker。 */
2917
+ additionalSheets?: readonly XlsxAdditionalSheet[];
2823
2918
  }
2824
2919
  export {};
@@ -71,6 +71,10 @@ declare const __VLS_component: DefineComponent<ExtractPropTypes<{
71
71
  type: PropType<ReportPreferencesOptions>;
72
72
  default: undefined;
73
73
  };
74
+ refresh: {
75
+ type: PropType<ReportRefreshOptions>;
76
+ default: undefined;
77
+ };
74
78
  guardChanges: {
75
79
  type: BooleanConstructor;
76
80
  default: undefined;
@@ -253,6 +257,10 @@ declare const __VLS_component: DefineComponent<ExtractPropTypes<{
253
257
  type: PropType<ReportPreferencesOptions>;
254
258
  default: undefined;
255
259
  };
260
+ refresh: {
261
+ type: PropType<ReportRefreshOptions>;
262
+ default: undefined;
263
+ };
256
264
  guardChanges: {
257
265
  type: BooleanConstructor;
258
266
  default: undefined;
@@ -358,6 +366,7 @@ declare const __VLS_component: DefineComponent<ExtractPropTypes<{
358
366
  toolbar: MachReportToolbarOptions;
359
367
  interaction: ReportInteractionOptions;
360
368
  preferences: ReportPreferencesOptions;
369
+ refresh: ReportRefreshOptions;
361
370
  guardChanges: boolean;
362
371
  beforeDiscard: ReportBeforeDiscard;
363
372
  messages: Partial<MachReportMessages>;
@@ -468,8 +477,30 @@ declare type __VLS_Props_6 = {
468
477
  state: ReportDataComparisonState;
469
478
  messages: ReportDataReviewMessages;
470
479
  };
480
+ declare type __VLS_Props_7 = {
481
+ messages: MachReportMessages;
482
+ formats?: readonly ReportExportFormat[];
483
+ busy?: boolean;
484
+ /** 宿主附加出口仍复用菜单的焦点、键盘与忙碌行为。 */
485
+ actions?: readonly {
486
+ id: string;
487
+ label: string;
488
+ description?: string;
489
+ disabled?: boolean;
490
+ }[];
491
+ };
492
+ declare type __VLS_Props_8 = {
493
+ task: Readonly<ReportPreviewTask> | null;
494
+ messages?: MachReportMessages;
495
+ };
471
496
  declare function __VLS_template(): {
472
497
  slots: {
498
+ export?(_: {
499
+ busy: boolean;
500
+ exportReport: (format: string) => Promise<void>;
501
+ formats: ReportExportFormat[];
502
+ messages: MachReportMessages;
503
+ }): any;
473
504
  settings?(_: {}): any;
474
505
  default?(_: {}): any;
475
506
  };
@@ -479,6 +510,11 @@ declare function __VLS_template_2(): {
479
510
  slots: {
480
511
  navigation?(_: {}): any;
481
512
  'data-tools'?(_: {}): any;
513
+ export?(_: {
514
+ messages: MachReportMessages;
515
+ formats: readonly ReportExportFormat[];
516
+ busy: boolean | undefined;
517
+ }): any;
482
518
  };
483
519
  refs: {
484
520
  searchToggleRef: HTMLButtonElement;
@@ -921,7 +957,7 @@ export declare function createProviderEditing(provider: ReportProvider, options:
921
957
  export declare function createReportStoragePreferences(storage: Pick<Storage, "getItem" | "setItem" | "removeItem">): ReportPreferencesAdapter;
922
958
  declare type Current<T> = T | (() => T);
923
959
  declare interface DatasetContract {
924
- fields: readonly ReportFieldContract[];
960
+ fields: readonly ReportFieldContract_2[];
925
961
  rowKey?: string;
926
962
  }
927
963
  declare type DatasetRows = Record<string, Record<string, unknown>[]>;
@@ -1638,6 +1674,7 @@ export declare interface MachReportDefaults {
1638
1674
  toolbar?: MachReportToolbarOptions;
1639
1675
  interaction?: ReportInteractionOptions;
1640
1676
  preferences?: ReportPreferencesOptions;
1677
+ refresh?: ReportRefreshOptions;
1641
1678
  /** Protect local input and drafts before replacing a report. Default true. */
1642
1679
  guardChanges?: boolean;
1643
1680
  beforeDiscard?: ReportBeforeDiscard;
@@ -1717,6 +1754,7 @@ export declare type MachReportLogger = Pick<Console, "warn" | "info">;
1717
1754
  */
1718
1755
  /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1719
1756
  export declare interface MachReportMessages extends Partial<ReportCalculationMessages>, Partial<ReportDataReviewMessages>, ReportPrintMessages, ReportParamOptionsMessages {
1757
+ previousSnapshot?: string;
1720
1758
  reviewTools?: string;
1721
1759
  validationTitle?: string;
1722
1760
  validationError?: string;
@@ -1938,6 +1976,8 @@ export declare interface MachReportPreviewOptions {
1938
1976
  /** 只读快照,由组件的同一套状态驱动;无需通过事件另建状态。 */
1939
1977
  export declare interface MachReportState {
1940
1978
  readonly loading: boolean;
1979
+ /** A retained previous snapshot is readable while writes/output remain blocked. */
1980
+ readonly stale?: boolean;
1941
1981
  readonly hasPlan: boolean;
1942
1982
  readonly pageCount: number;
1943
1983
  readonly currentPage: number;
@@ -1984,6 +2024,8 @@ export declare interface MachReportTheme {
1984
2024
  btnActiveBg: string;
1985
2025
  }
1986
2026
  export declare interface MachReportToolbarOptions {
2027
+ /** Reasons explain host restrictions without granting capabilities. */
2028
+ unavailableReasons?: Partial<Record<ReportPreviewTool, string>>;
1987
2029
  search?: boolean;
1988
2030
  thumbnails?: boolean;
1989
2031
  zoom?: boolean;
@@ -3071,6 +3113,13 @@ export declare interface ReportExportExecutionOptions {
3071
3113
  }
3072
3114
  /** 输出能力仍由宿主授权;工具偏好只决定当前预览实例的可见与启用状态。 */
3073
3115
  export declare type ReportExportFormat = "html" | "pdf" | "xlsx" | "png" | "word";
3116
+ export declare const ReportExportMenu: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
3117
+ export: (format: ReportExportFormat) => any;
3118
+ action: (id: string) => any;
3119
+ }, string, MachReportVuePublicProps, Readonly<__VLS_Props_7> & Readonly<{
3120
+ onExport?: ((format: ReportExportFormat) => any) | undefined;
3121
+ onAction?: ((id: string) => any) | undefined;
3122
+ }>, {}>;
3074
3123
  export declare interface ReportExportThresholds {
3075
3124
  cells?: number;
3076
3125
  pages?: number;
@@ -3136,11 +3185,23 @@ declare interface ReportFetchInput extends ReportTaskMonitoring {
3136
3185
  onQueryResult?: (reportId: string, result: ReportQueryResult, reportIndex?: number) => void;
3137
3186
  }
3138
3187
  declare type ReportFieldAggregation = "sum" | "avg" | "min" | "max" | "count" | "none";
3188
+ declare type ReportFieldAggregation_2 = "sum" | "avg" | "min" | "max" | "count" | "none";
3189
+ declare type ReportFieldAggregation_3 = "sum" | "avg" | "min" | "max" | "count" | "none";
3139
3190
  declare interface ReportFieldCalculation {
3140
3191
  /** Business-owned explanation, never executable JavaScript or an inferred business formula. */
3141
3192
  description: string;
3142
3193
  dependsOn: readonly string[];
3143
3194
  }
3195
+ declare interface ReportFieldCalculation_2 {
3196
+ /** Business-owned explanation, never executable JavaScript or an inferred business formula. */
3197
+ description: string;
3198
+ dependsOn: readonly string[];
3199
+ }
3200
+ declare interface ReportFieldCalculation_3 {
3201
+ /** Business-owned explanation, never executable JavaScript or an inferred business formula. */
3202
+ description: string;
3203
+ dependsOn: readonly string[];
3204
+ }
3144
3205
  declare interface ReportFieldContract extends ReportFieldSemantics {
3145
3206
  field: string;
3146
3207
  label?: string;
@@ -3155,6 +3216,34 @@ declare interface ReportFieldContract extends ReportFieldSemantics {
3155
3216
  semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
3156
3217
  unit?: string;
3157
3218
  }
3219
+ declare interface ReportFieldContract_2 extends ReportFieldSemantics_2 {
3220
+ field: string;
3221
+ label?: string;
3222
+ type: "text" | "number" | "boolean" | "date" | "decimal";
3223
+ required?: boolean;
3224
+ nullable?: boolean;
3225
+ enum?: readonly (string | number | boolean)[];
3226
+ min?: number;
3227
+ max?: number;
3228
+ minLength?: number;
3229
+ maxLength?: number;
3230
+ semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
3231
+ unit?: string;
3232
+ }
3233
+ declare interface ReportFieldContract_3 extends ReportFieldSemantics_3 {
3234
+ field: string;
3235
+ label?: string;
3236
+ type: "text" | "number" | "boolean" | "date" | "decimal";
3237
+ required?: boolean;
3238
+ nullable?: boolean;
3239
+ enum?: readonly (string | number | boolean)[];
3240
+ min?: number;
3241
+ max?: number;
3242
+ minLength?: number;
3243
+ maxLength?: number;
3244
+ semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
3245
+ unit?: string;
3246
+ }
3158
3247
  declare interface ReportFieldSemantics {
3159
3248
  description?: string;
3160
3249
  /** Explicit meaning of null/missing; does not convert blanks into zero. */
@@ -3162,9 +3251,29 @@ declare interface ReportFieldSemantics {
3162
3251
  /** Recommended aggregation; none marks non-additive measures such as ratios. No aggregation runs implicitly. */
3163
3252
  aggregation?: ReportFieldAggregation;
3164
3253
  /** Shared presentation only; raw values and calculation precision remain unchanged. */
3165
- format?: ColumnFormat;
3254
+ format?: ColumnFormat_2;
3166
3255
  calculation?: ReportFieldCalculation;
3167
3256
  }
3257
+ declare interface ReportFieldSemantics_2 {
3258
+ description?: string;
3259
+ /** Explicit meaning of null/missing; does not convert blanks into zero. */
3260
+ missingMeaning?: string;
3261
+ /** Recommended aggregation; none marks non-additive measures such as ratios. No aggregation runs implicitly. */
3262
+ aggregation?: ReportFieldAggregation_2;
3263
+ /** Shared presentation only; raw values and calculation precision remain unchanged. */
3264
+ format?: ColumnFormat;
3265
+ calculation?: ReportFieldCalculation_2;
3266
+ }
3267
+ declare interface ReportFieldSemantics_3 {
3268
+ description?: string;
3269
+ /** Explicit meaning of null/missing; does not convert blanks into zero. */
3270
+ missingMeaning?: string;
3271
+ /** Recommended aggregation; none marks non-additive measures such as ratios. No aggregation runs implicitly. */
3272
+ aggregation?: ReportFieldAggregation_3;
3273
+ /** Shared presentation only; raw values and calculation precision remain unchanged. */
3274
+ format?: ColumnFormat_3;
3275
+ calculation?: ReportFieldCalculation_3;
3276
+ }
3168
3277
  export declare interface ReportFieldTarget {
3169
3278
  field: string;
3170
3279
  datasetId?: string;
@@ -3422,8 +3531,8 @@ declare type ReportPredicateScalar = string | number | boolean | null;
3422
3531
  declare type ReportPredicateScalar_2 = string | number | boolean | null;
3423
3532
  declare type ReportPredicateScalar_3 = string | number | boolean | null;
3424
3533
  export declare interface ReportPreferencesAdapter {
3425
- load(key: string): Partial<ReportPreviewPreferences> | null | Promise<Partial<ReportPreviewPreferences> | null>;
3426
- save(key: string, value: Readonly<Partial<ReportPreviewPreferences>>): void | Promise<void>;
3534
+ load(key: string): ReportStoredPreferences | null | Promise<ReportStoredPreferences | null>;
3535
+ save(key: string, value: Readonly<ReportStoredPreferences>): void | Promise<void>;
3427
3536
  remove?(key: string): void | Promise<void>;
3428
3537
  }
3429
3538
  export declare interface ReportPreferencesOptions {
@@ -3553,6 +3662,17 @@ declare interface ReportQueryResult {
3553
3662
  sourceToken?: string;
3554
3663
  diagnostics?: ReportDiagnostic[];
3555
3664
  }
3665
+ /** Explicit refresh policy. The key identifies template/layout revisions outside query parameters. */
3666
+ export declare interface ReportRefreshOptions {
3667
+ retainPrevious?: boolean;
3668
+ key?: string;
3669
+ /** Host API request preceding the preview reload. Blocks edits and output without discarding drafts. */
3670
+ pending?: boolean;
3671
+ /** The host retained an earlier snapshot after its own query failed or was cancelled. */
3672
+ stale?: boolean;
3673
+ /** Retry the host HTTP query when it owns the stale snapshot. The host updates its own state. */
3674
+ retry?(): void | Promise<void>;
3675
+ }
3556
3676
  declare type ReportRegistry = Record<string, ReportDefinition>;
3557
3677
  declare interface ReportRuntimeBudget {
3558
3678
  maxRows?: number;
@@ -3586,6 +3706,10 @@ export declare interface ReportSection {
3586
3706
  label: string;
3587
3707
  pageIndex: number;
3588
3708
  }
3709
+ export declare interface ReportStoredPreferences extends Partial<ReportPreviewPreferences> {
3710
+ zoomMode?: "fit" | number;
3711
+ wideZoomMode?: "fit" | number;
3712
+ }
3589
3713
  /** 阶段事件只包含可序列化值;不表示估算百分比,也不包含业务数据。 */
3590
3714
  declare interface ReportTaskEvent {
3591
3715
  taskId: string;
@@ -3602,8 +3726,17 @@ declare interface ReportTaskMonitoring {
3602
3726
  onEvent?: ReportTaskObserver;
3603
3727
  }
3604
3728
  declare type ReportTaskObserver = (event: ReportTaskEvent) => void;
3729
+ export declare const ReportTaskStatus: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
3730
+ cancel: () => any;
3731
+ }, string, MachReportVuePublicProps, Readonly<__VLS_Props_8> & Readonly<{
3732
+ onCancel?: (() => any) | undefined;
3733
+ }>, {
3734
+ messages: MachReportMessages;
3735
+ }>;
3605
3736
  declare interface ReportTemplate {
3606
3737
  schemaVersion?: string;
3738
+ /** Optional source identity and stable field meanings for safe stored-template reuse. */
3739
+ dataContract?: ReportTemplateDataContract;
3607
3740
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
3608
3741
  params?: ReportParamDef_2[];
3609
3742
  /** Fixed label pages repeat in record → copy → template-page order. */
@@ -3612,6 +3745,8 @@ declare interface ReportTemplate {
3612
3745
  }
3613
3746
  declare interface ReportTemplate_2 {
3614
3747
  schemaVersion?: string;
3748
+ /** Optional source identity and stable field meanings for safe stored-template reuse. */
3749
+ dataContract?: ReportTemplateDataContract_2;
3615
3750
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
3616
3751
  params?: ReportParamDef[];
3617
3752
  /** Fixed label pages repeat in record → copy → template-page order. */
@@ -3620,12 +3755,35 @@ declare interface ReportTemplate_2 {
3620
3755
  }
3621
3756
  declare interface ReportTemplate_3 {
3622
3757
  schemaVersion?: string;
3758
+ /** Optional source identity and stable field meanings for safe stored-template reuse. */
3759
+ dataContract?: ReportTemplateDataContract_3;
3623
3760
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
3624
3761
  params?: ReportParamDef_3[];
3625
3762
  /** Fixed label pages repeat in record → copy → template-page order. */
3626
3763
  repeat?: ReportTemplateRepeat_3;
3627
3764
  pages: TemplatePage_3[];
3628
3765
  }
3766
+ declare interface ReportTemplateDataContract {
3767
+ /** Host-owned report/domain identity, without a query date or tenant credentials. */
3768
+ source?: string;
3769
+ datasets: Readonly<Record<string, {
3770
+ fields: readonly ReportTemplateFieldBinding[];
3771
+ }>>;
3772
+ }
3773
+ declare interface ReportTemplateDataContract_2 {
3774
+ /** Host-owned report/domain identity, without a query date or tenant credentials. */
3775
+ source?: string;
3776
+ datasets: Readonly<Record<string, {
3777
+ fields: readonly ReportTemplateFieldBinding_2[];
3778
+ }>>;
3779
+ }
3780
+ declare interface ReportTemplateDataContract_3 {
3781
+ /** Host-owned report/domain identity, without a query date or tenant credentials. */
3782
+ source?: string;
3783
+ datasets: Readonly<Record<string, {
3784
+ fields: readonly ReportTemplateFieldBinding_3[];
3785
+ }>>;
3786
+ }
3629
3787
  /** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
3630
3788
  declare interface ReportTemplateDocument {
3631
3789
  schemaVersion: "1.0";
@@ -3636,6 +3794,30 @@ declare interface ReportTemplateDocument {
3636
3794
  description?: string;
3637
3795
  template: ReportTemplate_2;
3638
3796
  }
3797
+ /** Stable business meaning is independent of a column's position and editable caption. */
3798
+ declare interface ReportTemplateFieldBinding {
3799
+ field: string;
3800
+ label?: string;
3801
+ semanticKey?: string;
3802
+ type?: ReportFieldContract["type"];
3803
+ unit?: string;
3804
+ }
3805
+ /** Stable business meaning is independent of a column's position and editable caption. */
3806
+ declare interface ReportTemplateFieldBinding_2 {
3807
+ field: string;
3808
+ label?: string;
3809
+ semanticKey?: string;
3810
+ type?: ReportFieldContract_2["type"];
3811
+ unit?: string;
3812
+ }
3813
+ /** Stable business meaning is independent of a column's position and editable caption. */
3814
+ declare interface ReportTemplateFieldBinding_3 {
3815
+ field: string;
3816
+ label?: string;
3817
+ semanticKey?: string;
3818
+ type?: ReportFieldContract_3["type"];
3819
+ unit?: string;
3820
+ }
3639
3821
  declare type ReportTemplateLoader = (context: ReportLoadContext) => ReportTemplate_2 | Promise<ReportTemplate_2>;
3640
3822
  declare interface ReportTemplateProvider {
3641
3823
  list(context: {
@@ -3728,6 +3910,7 @@ export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExpo
3728
3910
  toolbar: MachReportToolbarOptions;
3729
3911
  interaction: ReportInteractionOptions;
3730
3912
  preferences?: ReportPreferencesOptions;
3913
+ refresh?: ReportRefreshOptions;
3731
3914
  assets?: AssetRenderOptions;
3732
3915
  guardChanges: boolean;
3733
3916
  beforeDiscard?: ReportBeforeDiscard;
@@ -4011,6 +4194,12 @@ declare type ValueFormat = ColumnFormat;
4011
4194
  declare type ValueFormat_2 = ColumnFormat_2;
4012
4195
  /** The same declarative formatting used by list columns, before any output backend. */
4013
4196
  declare type ValueFormat_3 = ColumnFormat_3;
4197
+ /** 可序列化的附加工作表在编码前写入,浏览器与 Worker 共用同一声明。 */
4198
+ declare interface XlsxAdditionalSheet {
4199
+ name: string;
4200
+ rows: readonly (readonly (string | number | boolean | null)[])[];
4201
+ columnWidths?: readonly number[];
4202
+ }
4014
4203
  declare type XlsxImageOptions = ImageMediaOptions_2;
4015
4204
  /**
4016
4205
  * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
@@ -4023,6 +4212,8 @@ declare type XlsxImageOptions = ImageMediaOptions_2;
4023
4212
  declare interface XlsxRenderOptions extends AssetRenderOptions_2, XlsxImageOptions {
4024
4213
  /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
4025
4214
  sheetName?: (sheetIndex: number) => string;
4215
+ /** 可序列化命名,用于 Worker;未提供的项沿用默认名称。 */
4216
+ sheetNames?: readonly string[];
4026
4217
  /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
4027
4218
  sheetMode?: "auto" | "pages" | "continuous";
4028
4219
  /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
@@ -4031,6 +4222,8 @@ declare interface XlsxRenderOptions extends AssetRenderOptions_2, XlsxImageOptio
4031
4222
  maxDataBars?: number;
4032
4223
  /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
4033
4224
  paperSize?: "auto" | "a3" | "a4" | "a5";
4225
+ /** 在最终编码前追加说明、审计等标量工作表,可直接交给 Worker。 */
4226
+ additionalSheets?: readonly XlsxAdditionalSheet[];
4034
4227
  }
4035
4228
  export {};
4036
4229