@agile-team/mach-report 2.13.0 → 2.15.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 (260) hide show
  1. package/README.md +20 -7
  2. package/THIRD_PARTY_NOTICES.md +3 -1
  3. package/dist/ExcelBindingWizard-BKH1nGNS.js +1485 -0
  4. package/dist/ExcelBindingWizard-Bs43BGNp.cjs +1 -0
  5. package/dist/ParamEditor-Da4akw6V.cjs +1 -0
  6. package/dist/ParamEditor-DoAhzJsm.js +594 -0
  7. package/dist/{ReportBatchPanel-CW2HV9I8.js → ReportBatchPanel-BMf6boMA.js} +39 -39
  8. package/dist/ReportBatchPanel-wP9m9Pj1.cjs +1 -0
  9. package/dist/ReportPreview-ChV19HBp.js +4619 -0
  10. package/dist/ReportPreview-DbLvvOUT.cjs +6 -0
  11. package/dist/{ReportTemplateLibrary-BZB-XWjj.js → ReportTemplateLibrary-C9wutIiT.js} +1 -1
  12. package/dist/ReportTemplateLibrary-Sxr3eD0J.cjs +1 -0
  13. package/dist/RuleEditor-C_Clasvd.js +2037 -0
  14. package/dist/RuleEditor-XhGHK8DE.cjs +1 -0
  15. package/dist/TemplateOutlinePanel-D6Bkny59.js +96 -0
  16. package/dist/TemplateOutlinePanel-JTSR53vJ.cjs +1 -0
  17. package/dist/TemplateReusePanel-Kx35S0Ql.cjs +1 -0
  18. package/dist/TemplateReusePanel-rVuK1kTz.js +388 -0
  19. package/dist/TemplateReviewPanel-B0ar9_zf.js +592 -0
  20. package/dist/TemplateReviewPanel-Dn6X9UmY.cjs +1 -0
  21. package/dist/analytics.cjs +1 -1
  22. package/dist/analytics.d.cts +3 -1
  23. package/dist/analytics.d.ts +3 -1
  24. package/dist/analytics.js +154 -60
  25. package/dist/artifact-integrity.json +135 -0
  26. package/dist/assets-B9ImAi6_.cjs +1 -0
  27. package/dist/assets-DEaz4qsp.js +124 -0
  28. package/dist/batch-BaP6pWDE.cjs +1 -0
  29. package/dist/batch-BfZHN1do.js +220 -0
  30. package/dist/batch-CGyt-b2W.js +273 -0
  31. package/dist/batch-CLpELXBl.cjs +1 -0
  32. package/dist/capabilities-CAh2Nrue.cjs +1 -0
  33. package/dist/capabilities-DskCHs3V.js +69 -0
  34. package/dist/codes.d.cts +2 -0
  35. package/dist/codes.d.ts +2 -0
  36. package/dist/{computed-Bvk0W15F.js → computed-C-4C2S5h.js} +3 -3
  37. package/dist/config-BVsJXSqS.js +842 -0
  38. package/dist/config-D10us76d.cjs +1 -0
  39. package/dist/data-explanation-B8MZRYVS.js +16 -0
  40. package/dist/data-explanation-DE55G30w.cjs +1 -0
  41. package/dist/designer-2bDlcNXQ.js +5136 -0
  42. package/dist/designer-BT7XCdbW.cjs +2 -0
  43. package/dist/designer.cjs +1 -2
  44. package/dist/designer.d.cts +432 -17
  45. package/dist/designer.d.ts +432 -17
  46. package/dist/designer.js +21 -4312
  47. package/dist/drill-ByJviLXS.js +145 -0
  48. package/dist/drill-DYTxuL3A.cjs +1 -0
  49. package/dist/font-loader-B_UkxpzC.cjs +1 -0
  50. package/dist/font-loader-Q3bQjmrI.js +297 -0
  51. package/dist/index.cjs +8 -8
  52. package/dist/index.d.cts +239 -5
  53. package/dist/index.d.ts +239 -5
  54. package/dist/index.js +939 -893
  55. package/dist/json-snapshot-DFb2eWkf.js +1416 -0
  56. package/dist/json-snapshot-WWSGlaHG.cjs +2 -0
  57. package/dist/licenses/_bwip-js_generic-4.11.4.txt +24 -0
  58. package/dist/licenses/_fast-csv_format-4.3.5.txt +22 -0
  59. package/dist/licenses/_fast-csv_parse-4.3.6.txt +22 -0
  60. package/dist/licenses/_pdf-lib_fontkit-1.1.1.txt +326 -0
  61. package/dist/licenses/_pdf-lib_standard-fonts-1.0.0.txt +22 -0
  62. package/dist/licenses/_pdf-lib_upng-1.0.1.txt +22 -0
  63. package/dist/licenses/_types_node-14.18.63.txt +22 -0
  64. package/dist/licenses/_types_pako-2.0.3.txt +22 -0
  65. package/dist/licenses/_types_pegjs-0.10.6.txt +22 -0
  66. package/dist/licenses/archiver-5.3.2.txt +23 -0
  67. package/dist/licenses/archiver-utils-2.1.0.txt +23 -0
  68. package/dist/licenses/archiver-utils-3.0.4.txt +23 -0
  69. package/dist/licenses/async-3.2.6.txt +20 -0
  70. package/dist/licenses/balanced-match-1.0.2.txt +22 -0
  71. package/dist/licenses/base64-js-1.5.1.txt +22 -0
  72. package/dist/licenses/big-integer-1.6.52.txt +25 -0
  73. package/dist/licenses/binary-0.3.0.txt +178 -0
  74. package/dist/licenses/bl-4.1.0.txt +14 -0
  75. package/dist/licenses/bluebird-3.4.7.txt +22 -0
  76. package/dist/licenses/brace-expansion-1.1.21.txt +22 -0
  77. package/dist/licenses/brace-expansion-2.1.7.txt +22 -0
  78. package/dist/licenses/buffer-5.7.1.txt +22 -0
  79. package/dist/licenses/buffer-crc32-0.2.13.txt +20 -0
  80. package/dist/licenses/buffer-indexof-polyfill-1.0.2.txt +23 -0
  81. package/dist/licenses/buffers-0.1.1.txt +140 -0
  82. package/dist/licenses/chainsaw-0.1.0.txt +184 -0
  83. package/dist/licenses/compress-commons-4.1.2.txt +23 -0
  84. package/dist/licenses/concat-map-0.0.1.txt +19 -0
  85. package/dist/licenses/core-util-is-1.0.3.txt +20 -0
  86. package/dist/licenses/crc-32-1.2.2.txt +202 -0
  87. package/dist/licenses/crc32-stream-4.0.3.txt +23 -0
  88. package/dist/licenses/dayjs-1.11.23.txt +22 -0
  89. package/dist/licenses/duplexer2-0.1.4.txt +27 -0
  90. package/dist/licenses/end-of-stream-1.4.5.txt +22 -0
  91. package/dist/licenses/exceljs-4.4.0.txt +23 -0
  92. package/dist/licenses/fast-csv-4.3.6.txt +22 -0
  93. package/dist/licenses/fast-png-6.4.0.txt +22 -0
  94. package/dist/licenses/fs-constants-1.0.0.txt +22 -0
  95. package/dist/licenses/fs.realpath-1.0.0.txt +44 -0
  96. package/dist/licenses/fstream-1.0.12.txt +16 -0
  97. package/dist/licenses/glob-7.2.3.txt +22 -0
  98. package/dist/licenses/graceful-fs-4.2.11.txt +16 -0
  99. package/dist/licenses/ieee754-1.2.1.txt +12 -0
  100. package/dist/licenses/immediate-3.0.6.txt +21 -0
  101. package/dist/licenses/inflight-1.0.6.txt +16 -0
  102. package/dist/licenses/inherits-2.0.4.txt +17 -0
  103. package/dist/licenses/iobuffer-5.4.0.txt +23 -0
  104. package/dist/licenses/isarray-1.0.0.txt +61 -0
  105. package/dist/licenses/jszip-3.10.2.txt +652 -0
  106. package/dist/licenses/lazystream-1.0.1.txt +24 -0
  107. package/dist/licenses/lie-3.3.0.txt +8 -0
  108. package/dist/licenses/listenercount-1.0.1.txt +6 -0
  109. package/dist/licenses/lodash.defaults-4.2.0.txt +48 -0
  110. package/dist/licenses/lodash.difference-4.5.0.txt +48 -0
  111. package/dist/licenses/lodash.escaperegexp-4.1.2.txt +48 -0
  112. package/dist/licenses/lodash.flatten-4.4.0.txt +48 -0
  113. package/dist/licenses/lodash.groupby-4.6.0.txt +48 -0
  114. package/dist/licenses/lodash.isboolean-3.0.3.txt +23 -0
  115. package/dist/licenses/lodash.isequal-4.5.0.txt +48 -0
  116. package/dist/licenses/lodash.isfunction-3.0.9.txt +48 -0
  117. package/dist/licenses/lodash.isnil-4.0.0.txt +23 -0
  118. package/dist/licenses/lodash.isplainobject-4.0.6.txt +48 -0
  119. package/dist/licenses/lodash.isundefined-3.0.1.txt +23 -0
  120. package/dist/licenses/lodash.union-4.6.0.txt +48 -0
  121. package/dist/licenses/lodash.uniq-4.5.0.txt +48 -0
  122. package/dist/licenses/minimatch-3.1.5.txt +16 -0
  123. package/dist/licenses/minimatch-5.1.9.txt +16 -0
  124. package/dist/licenses/minimist-1.2.8.txt +19 -0
  125. package/dist/licenses/mkdirp-0.5.6.txt +22 -0
  126. package/dist/licenses/node-sql-parser-5.4.0.txt +202 -0
  127. package/dist/licenses/normalize-path-3.0.0.txt +22 -0
  128. package/dist/licenses/once-1.4.0.txt +16 -0
  129. package/dist/licenses/pako-1.0.11.txt +22 -0
  130. package/dist/licenses/pako-2.2.0.txt +22 -0
  131. package/dist/licenses/path-is-absolute-1.0.1.txt +22 -0
  132. package/dist/licenses/pdf-lib-1.17.1.txt +22 -0
  133. package/dist/licenses/process-nextick-args-2.0.1.txt +20 -0
  134. package/dist/licenses/readable-stream-2.3.8.txt +48 -0
  135. package/dist/licenses/readable-stream-3.6.2.txt +48 -0
  136. package/dist/licenses/readdir-glob-1.1.3.txt +202 -0
  137. package/dist/licenses/rimraf-2.7.1.txt +16 -0
  138. package/dist/licenses/safe-buffer-5.1.2.txt +22 -0
  139. package/dist/licenses/safe-buffer-5.2.1.txt +22 -0
  140. package/dist/licenses/saxes-5.0.1.txt +397 -0
  141. package/dist/licenses/setimmediate-1.0.5.txt +21 -0
  142. package/dist/licenses/string_decoder-1.1.1.txt +49 -0
  143. package/dist/licenses/string_decoder-1.3.0.txt +49 -0
  144. package/dist/licenses/tar-stream-2.2.0.txt +22 -0
  145. package/dist/licenses/tmp-0.2.7.txt +22 -0
  146. package/dist/licenses/traverse-0.3.9.txt +25 -0
  147. package/dist/licenses/tslib-1.14.1.txt +13 -0
  148. package/dist/licenses/unzipper-0.10.14.txt +26 -0
  149. package/dist/licenses/util-deprecate-1.0.2.txt +25 -0
  150. package/dist/licenses/uuid-11.1.1.txt +10 -0
  151. package/dist/licenses/wrappy-1.0.2.txt +16 -0
  152. package/dist/licenses/xmlchars-2.2.0.txt +19 -0
  153. package/dist/licenses/zip-stream-4.1.1.txt +23 -0
  154. package/dist/matrix-CGRGkn5s.js +112 -0
  155. package/dist/matrix-gEO7ZM_u.cjs +1 -0
  156. package/dist/media-B7vnpD8k.cjs +1 -0
  157. package/dist/media-Y90dHK9z.js +70 -0
  158. package/dist/param-validation-C3HlcLLO.cjs +1 -0
  159. package/dist/param-validation-Do7Eg8Zv.js +181 -0
  160. package/dist/pdf-BwNyeGpt.js +36352 -0
  161. package/dist/pdf-CvvrjPQg.cjs +103 -0
  162. package/dist/pdf.cjs +1 -101
  163. package/dist/pdf.d.cts +18 -3
  164. package/dist/pdf.d.ts +18 -3
  165. package/dist/pdf.js +9 -36579
  166. package/dist/plugin-Ca_XZG3l.js +22 -0
  167. package/dist/{plugin-DzS6pxTA.cjs → plugin-DHO7X8z2.cjs} +1 -1
  168. package/dist/prepared-CFy9B75C.cjs +1 -0
  169. package/dist/prepared-ajM-H-9B.js +69 -0
  170. package/dist/progress-B0ctFpKf.cjs +1 -0
  171. package/dist/progress-D-OTpEav.js +52 -0
  172. package/dist/{record-bindings-D-5jQlTj.js → record-bindings-Do_b3h4V.js} +1 -1
  173. package/dist/{region-binding-workflow-CcUq8W2Q.js → region-binding-workflow-BMhK_TjP.js} +1 -1
  174. package/dist/{region-binding-workflow-BzfbxRiR.cjs → region-binding-workflow-DIYJdCUr.cjs} +1 -1
  175. package/dist/{report-params-B44imUd4.js → report-params-B1RzkhJj.js} +1 -1
  176. package/dist/{report-params-SJfhKgaX.cjs → report-params-WDGrA4oP.cjs} +1 -1
  177. package/dist/sbom.cdx.json +3982 -0
  178. package/dist/server/node.d.cts +66 -12
  179. package/dist/server/node.d.ts +66 -12
  180. package/dist/server-node.cjs +1 -1
  181. package/dist/server-node.js +405 -381
  182. package/dist/server.cjs +1 -1
  183. package/dist/server.d.cts +878 -15
  184. package/dist/server.d.ts +878 -15
  185. package/dist/server.js +1034 -534
  186. package/dist/sha256-ArEYjaTI.cjs +1 -0
  187. package/dist/sha256-DPEuJ3nh.js +155 -0
  188. package/dist/style.css +1 -1
  189. package/dist/template-bindings-C2SpvsMU.js +58 -0
  190. package/dist/template-bindings-CEtWyiLX.cjs +1 -0
  191. package/dist/template-catalog-FJE_c9Qe.cjs +1 -0
  192. package/dist/template-catalog-j2B1MJlL.js +414 -0
  193. package/dist/template-fragments-BGbQLGlV.js +187 -0
  194. package/dist/template-fragments-DcKeiylI.cjs +1 -0
  195. package/dist/template-outline-BwRV_eRo.cjs +1 -0
  196. package/dist/template-outline-cnWfT_LK.js +88 -0
  197. package/dist/{template-registry-BjE1VS6g.js → template-registry-BtaKPELV.js} +364 -201
  198. package/dist/template-registry-Co1zPq5e.cjs +1 -0
  199. package/dist/textwrap-CWHyzkBH.cjs +4 -0
  200. package/dist/textwrap-DE1kgcJB.js +110 -0
  201. package/dist/{tree-CqcQ99NM.js → tree-CjVZLRw7.js} +1 -1
  202. package/dist/{useLocalDraft-C07SYRnC.js → useLocalDraft-BnhcxXk_.js} +1 -1
  203. package/dist/{useLocalDraft-Yiw1wFgI.cjs → useLocalDraft-CioIfDb6.cjs} +1 -1
  204. package/dist/vue/async.d.cts +190 -15
  205. package/dist/vue/async.d.ts +190 -15
  206. package/dist/vue/index.d.cts +274 -24
  207. package/dist/vue/index.d.ts +274 -24
  208. package/dist/vue-async.cjs +1 -1
  209. package/dist/vue-async.js +5 -5
  210. package/dist/vue.cjs +1 -1
  211. package/dist/vue.js +90 -81
  212. package/dist/{workbook-session-DNa2RHNG.cjs → workbook-session-Bjv1YCRK.cjs} +18 -18
  213. package/dist/{workbook-session-BPb3TMnT.js → workbook-session-BvToI-Fd.js} +5440 -5288
  214. package/dist/worker.cjs +1 -1
  215. package/dist/worker.d.cts +66 -12
  216. package/dist/worker.d.ts +66 -12
  217. package/dist/worker.js +61 -56
  218. package/dist/xlsx-node.cjs +34 -34
  219. package/dist/xlsx-node.js +878 -870
  220. package/dist/xlsx.cjs +3 -4
  221. package/dist/xlsx.d.cts +22 -10
  222. package/dist/xlsx.d.ts +22 -10
  223. package/dist/xlsx.js +261 -253
  224. package/package.json +2 -2
  225. package/dist/ExcelBindingWizard-CeAf4QSE.js +0 -1465
  226. package/dist/ExcelBindingWizard-y0mT-AHR.cjs +0 -1
  227. package/dist/ParamEditor-BLaE5q5W.js +0 -522
  228. package/dist/ParamEditor-MBBC7lUE.cjs +0 -1
  229. package/dist/ReportBatchPanel-Fp1ePFag.cjs +0 -1
  230. package/dist/ReportPreview-BN6fk7Wz.cjs +0 -6
  231. package/dist/ReportPreview-D2Jkyh1U.js +0 -4243
  232. package/dist/ReportTemplateLibrary-5fk5CQBO.cjs +0 -1
  233. package/dist/RuleEditor-ChRzNQuF.cjs +0 -1
  234. package/dist/RuleEditor-DzAmW5YH.js +0 -2024
  235. package/dist/TemplateReviewPanel-BKofGrV9.js +0 -222
  236. package/dist/TemplateReviewPanel-DwtOcLue.cjs +0 -1
  237. package/dist/assets-C2U-e-Sz.cjs +0 -4
  238. package/dist/assets-Q0wUwNrV.js +0 -217
  239. package/dist/batch-Bt3Fd27Z.cjs +0 -1
  240. package/dist/batch-mRqhhhjt.js +0 -364
  241. package/dist/capabilities-CK_7hizc.js +0 -63
  242. package/dist/capabilities-CsZ-pNHR.cjs +0 -1
  243. package/dist/config-Bb7RiIO5.cjs +0 -1
  244. package/dist/config-XVwG87IA.js +0 -529
  245. package/dist/matrix-DVyWiYsd.cjs +0 -1
  246. package/dist/matrix-yZsGnldA.js +0 -227
  247. package/dist/page-window-index-CIuT4BAv.js +0 -43
  248. package/dist/page-window-index-DEjnM6IB.cjs +0 -1
  249. package/dist/param-validation-BlHHXs6u.js +0 -153
  250. package/dist/param-validation-DCK039V1.cjs +0 -1
  251. package/dist/plugin-D4wizDXB.js +0 -22
  252. package/dist/progress-7OSZbFok.js +0 -39
  253. package/dist/progress-BnLiS5eH.cjs +0 -1
  254. package/dist/task-events-DQ276fn2.cjs +0 -1
  255. package/dist/task-events-Dpsvf_t2.js +0 -47
  256. package/dist/template-registry-D3SjENi6.cjs +0 -1
  257. package/dist/template-review-DGwWOoCv.cjs +0 -2
  258. package/dist/template-review-PgEe_Wr9.js +0 -1742
  259. package/dist/validate-BJ5HIWY8.cjs +0 -1
  260. package/dist/validate-DbgEM1Hh.js +0 -163
@@ -43,7 +43,7 @@ declare interface AssetRenderBudget {
43
43
  /** Wall-clock budget, including adapters that ignore AbortSignal. Default 30 seconds. */
44
44
  maxDurationMs?: number;
45
45
  }
46
- declare interface AssetRenderOptions extends OutputDiagnosticOptions {
46
+ declare interface AssetRenderOptions extends OutputDiagnosticOptions, ImageMediaOptions {
47
47
  assetRenderers?: Partial<Record<ImageComponentKind, ComponentImageRenderer>>;
48
48
  assetBudget?: AssetRenderBudget;
49
49
  /** Default throw prevents an incomplete export; placeholder retains the component and emits diagnostics. */
@@ -85,6 +85,12 @@ declare const BASE_TEMPLATE_EDITOR_MESSAGES: {
85
85
  note: string;
86
86
  invalid: string;
87
87
  };
88
+ declare interface CanvasSelection {
89
+ /** Ctrl/Command/Shift toggles the selection without changing the report schema. */
90
+ additive?: boolean;
91
+ pageIndex: number;
92
+ componentIndex: number;
93
+ }
88
94
  /** Serializable symbol settings. Encoders remain in the optional /codes entry. */
89
95
  declare interface CodeOptions {
90
96
  /** Explicit content, including an empty value, takes precedence over legacy fallbackText. */
@@ -315,6 +321,8 @@ declare interface ComputedField_3 extends ExpressionOptions_3 {
315
321
  /** String adapter expressions cannot be inspected; declare dependencies explicitly. */
316
322
  dependsOn?: readonly string[];
317
323
  }
324
+ /** No global storage access: hosts explicitly choose localStorage, sessionStorage or their own adapter. */
325
+ export declare function createTemplateDraftStorage(storage: Pick<Storage, "getItem" | "setItem" | "removeItem">): TemplateDraftStorageAdapter;
318
326
  declare interface DatasetContract {
319
327
  fields: readonly ReportFieldContract[];
320
328
  rowKey?: string;
@@ -327,6 +335,8 @@ declare type DatasetRows = Record<string, Record<string, unknown>[]>;
327
335
  declare type DatasetRows_2 = Record<string, Record<string, unknown>[]>;
328
336
  /** Optional wizard labels remain independent of the general designer configuration. */
329
337
  export declare const EXCEL_BINDING_MESSAGES: {
338
+ recoveredMapping: string;
339
+ recoveredSheetMissing: string;
330
340
  tableMode: string;
331
341
  multiRegions: string;
332
342
  multiHint: string;
@@ -490,11 +500,11 @@ export declare const ExcelBindingWizard: DefineComponent<ExcelBindingWizardOptio
490
500
  apply: () => Promise<void>;
491
501
  cancel: () => void;
492
502
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
493
- dirty: (value: boolean) => any;
494
503
  apply: (result: ExcelBindingWizardApply) => any;
504
+ dirty: (value: boolean) => any;
495
505
  }, string, MachReportVuePublicProps, Readonly<ExcelBindingWizardOptions> & Readonly<{
496
- onDirty?: ((value: boolean) => any) | undefined;
497
506
  onApply?: ((result: ExcelBindingWizardApply) => any) | undefined;
507
+ onDirty?: ((value: boolean) => any) | undefined;
498
508
  }>, {}>;
499
509
  export declare type ExcelBindingWizardApply = AnyExcelBindingDocumentResult & {
500
510
  session: AnyExcelBindingSession;
@@ -714,6 +724,18 @@ declare interface GridCell_3 {
714
724
  style?: ComponentStyle_3;
715
725
  }
716
726
  declare type ImageComponentKind = "image" | "chart" | "barcode" | "qrcode";
727
+ /** Bounded binary image inspection shared by PDF, Excel and template import. No decoder is loaded. */
728
+ declare interface ImageMediaOptions {
729
+ maxImageBytes?: number;
730
+ maxTotalImageBytes?: number;
731
+ maxImages?: number;
732
+ /** Decoded pixels per unique image, default 16 million. */
733
+ maxImagePixels?: number;
734
+ /** Total decoded pixels for unique media, default 64 million. */
735
+ maxTotalImagePixels?: number;
736
+ /** Maximum source dimension, default 16384 pixels. */
737
+ maxImageDimension?: number;
738
+ }
717
739
  /** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
718
740
  declare type ListAlignment = NonNullable<ComponentStyle["align"]> | "auto";
719
741
  /** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
@@ -1070,6 +1092,9 @@ declare interface ListGroupBy_3 {
1070
1092
  }
1071
1093
  /** defaults 层可配置项(全部可选,均有内置缺省) */
1072
1094
  declare interface MachReportDefaults {
1095
+ drill?: ReportDrillOptions;
1096
+ loadParamOptions?: ReportParamOptionsLoader;
1097
+ printOptions?: ReportPrintOptions;
1073
1098
  showExport?: boolean;
1074
1099
  showPrint?: boolean;
1075
1100
  showPdfWindow?: boolean;
@@ -1111,7 +1136,11 @@ declare type MachReportLogger = Pick<Console, "warn" | "info">;
1111
1136
  * - 优先级:组件 props > 路由级叠加 > preset > defaults(props 永远最高)
1112
1137
  */
1113
1138
  /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1114
- declare interface MachReportMessages extends Partial<ReportCalculationMessages> {
1139
+ declare interface MachReportMessages extends Partial<ReportCalculationMessages>, ReportPrintMessages, ReportParamOptionsMessages {
1140
+ drillActions?: string;
1141
+ drillOpening?: string;
1142
+ drillMissingValue?: string;
1143
+ drillFailed?: string;
1115
1144
  exportMenu?: string;
1116
1145
  exportMenuDescription?: string;
1117
1146
  clearSearch?: string;
@@ -1122,6 +1151,13 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
1122
1151
  pageJumpHint?: string;
1123
1152
  pagination?: string;
1124
1153
  recordNavigation?: string;
1154
+ dataExplanation?: string;
1155
+ dataExplanationHint?: string;
1156
+ dataExplanationSearch?: string;
1157
+ dataExplanationEmpty?: string;
1158
+ dataMissingSource?: string;
1159
+ dataNotApplicable?: string;
1160
+ dataNotCalculable?: string;
1125
1161
  recordInfo?: string;
1126
1162
  prevRecord?: string;
1127
1163
  nextRecord?: string;
@@ -1279,7 +1315,11 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>
1279
1315
  * - 优先级:组件 props > 路由级叠加 > preset > defaults(props 永远最高)
1280
1316
  */
1281
1317
  /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1282
- declare interface MachReportMessages_2 extends Partial<ReportCalculationMessages_2> {
1318
+ declare interface MachReportMessages_2 extends Partial<ReportCalculationMessages_2>, ReportPrintMessages_2, ReportParamOptionsMessages_2 {
1319
+ drillActions?: string;
1320
+ drillOpening?: string;
1321
+ drillMissingValue?: string;
1322
+ drillFailed?: string;
1283
1323
  exportMenu?: string;
1284
1324
  exportMenuDescription?: string;
1285
1325
  clearSearch?: string;
@@ -1290,6 +1330,13 @@ declare interface MachReportMessages_2 extends Partial<ReportCalculationMessages
1290
1330
  pageJumpHint?: string;
1291
1331
  pagination?: string;
1292
1332
  recordNavigation?: string;
1333
+ dataExplanation?: string;
1334
+ dataExplanationHint?: string;
1335
+ dataExplanationSearch?: string;
1336
+ dataExplanationEmpty?: string;
1337
+ dataMissingSource?: string;
1338
+ dataNotApplicable?: string;
1339
+ dataNotCalculable?: string;
1293
1340
  recordInfo?: string;
1294
1341
  prevRecord?: string;
1295
1342
  nextRecord?: string;
@@ -1519,7 +1566,7 @@ declare interface MatrixTableOptions_3 {
1519
1566
  maxCells?: number;
1520
1567
  }
1521
1568
  declare interface OutputDiagnostic {
1522
- code: "missing-image" | "unsupported-component" | "unsupported-image-format" | "unsupported-style" | "rich-text-flattened" | "nested-components-omitted" | "async-image-required" | "image-decode-failed" | "asset-render-failed" | "asset-budget-exceeded";
1569
+ code: "invalid-image-data" | "image-budget-exceeded" | "component-render-failed" | "unsupported-text" | "output-degraded" | "missing-image" | "unsupported-component" | "unsupported-image-format" | "unsupported-style" | "rich-text-flattened" | "nested-components-omitted" | "async-image-required" | "image-decode-failed" | "asset-render-failed" | "asset-budget-exceeded";
1523
1570
  severity: "warning";
1524
1571
  format: OutputFormat;
1525
1572
  pageIndex: number;
@@ -1531,7 +1578,7 @@ declare interface OutputDiagnostic {
1531
1578
  message: string;
1532
1579
  }
1533
1580
  declare interface OutputDiagnostic_2 {
1534
- code: "missing-image" | "unsupported-component" | "unsupported-image-format" | "unsupported-style" | "rich-text-flattened" | "nested-components-omitted" | "async-image-required" | "image-decode-failed" | "asset-render-failed" | "asset-budget-exceeded";
1581
+ code: "invalid-image-data" | "image-budget-exceeded" | "component-render-failed" | "unsupported-text" | "output-degraded" | "missing-image" | "unsupported-component" | "unsupported-image-format" | "unsupported-style" | "rich-text-flattened" | "nested-components-omitted" | "async-image-required" | "image-decode-failed" | "asset-render-failed" | "asset-budget-exceeded";
1535
1582
  severity: "warning";
1536
1583
  format: OutputFormat_2;
1537
1584
  pageIndex: number;
@@ -1579,6 +1626,13 @@ export declare const PARAM_EDITOR_MESSAGES: {
1579
1626
  paramMinLength: string;
1580
1627
  paramMaxLength: string;
1581
1628
  paramOptions: string;
1629
+ paramOptionsMode: string;
1630
+ paramOptionsStatic: string;
1631
+ paramOptionsRemote: string;
1632
+ paramOptionsSource: string;
1633
+ paramDependencyUnavailable: string;
1634
+ paramDependencies: string;
1635
+ paramRemoteHint: string;
1582
1636
  paramOptionValue: string;
1583
1637
  paramOptionLabel: string;
1584
1638
  paramOptionAdd: string;
@@ -1791,6 +1845,13 @@ declare interface PlanTableFragment_3 {
1791
1845
  };
1792
1846
  }
1793
1847
  declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
1848
+ toolTarget: string;
1849
+ toolPreview: string;
1850
+ toolPreviewHide: string;
1851
+ toolChooseComponent: string;
1852
+ previousColumns: string;
1853
+ nextColumns: string;
1854
+ columnWindow: string;
1794
1855
  paperAndPages: string;
1795
1856
  pageDirectory: string;
1796
1857
  pageName: string;
@@ -2169,6 +2230,8 @@ declare type ReportCellFieldOptions = ReportCellFieldBase & ({
2169
2230
  declare type ReportCellReadOnlyReason = "cell" | "formula" | "complex" | "structure" | "derived";
2170
2231
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2171
2232
  declare interface ReportCellSource {
2233
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2234
+ sourceScope?: string;
2172
2235
  datasetId: string;
2173
2236
  rowKey: string | number;
2174
2237
  field: string;
@@ -2177,6 +2240,8 @@ declare interface ReportCellSource {
2177
2240
  }
2178
2241
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2179
2242
  declare interface ReportCellSource_2 {
2243
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2244
+ sourceScope?: string;
2180
2245
  datasetId: string;
2181
2246
  rowKey: string | number;
2182
2247
  field: string;
@@ -2185,6 +2250,8 @@ declare interface ReportCellSource_2 {
2185
2250
  }
2186
2251
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2187
2252
  declare interface ReportCellSource_3 {
2253
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2254
+ sourceScope?: string;
2188
2255
  datasetId: string;
2189
2256
  rowKey: string | number;
2190
2257
  field: string;
@@ -2201,6 +2268,55 @@ declare interface ReportCellTableIdentity {
2201
2268
  declare type ReportCellValue = string | number | boolean | null;
2202
2269
  declare type ReportCellValueType = NonNullable<GridCell["valueType"]>;
2203
2270
  declare type ReportDiscardReason = "reload" | "import" | "replace" | "leave";
2271
+ declare interface ReportDocumentStyle {
2272
+ id: string;
2273
+ name: string;
2274
+ style: ComponentStyle_2;
2275
+ target?: "content" | "header";
2276
+ }
2277
+ /** Serializable action metadata. URLs, scripts and automatic navigation are deliberately absent. */
2278
+ declare interface ReportDrillAction {
2279
+ id: string;
2280
+ label: string;
2281
+ target: {
2282
+ field: string;
2283
+ datasetId?: string;
2284
+ reportScope?: string;
2285
+ roles?: readonly string[];
2286
+ };
2287
+ params?: Readonly<Record<string, ReportDrillBinding>>;
2288
+ }
2289
+ declare type ReportDrillBinding = {
2290
+ value: string | number | boolean;
2291
+ } | {
2292
+ from: "value" | "rowKey";
2293
+ } | {
2294
+ from: "query" | "field";
2295
+ field: string;
2296
+ };
2297
+ /** Trusted host-owned allowlist. Matching serialized metadata alone never executes an action. */
2298
+ declare interface ReportDrillOptions {
2299
+ actions: readonly ReportDrillAction[];
2300
+ open(request: ReportDrillRequest & {
2301
+ signal: AbortSignal;
2302
+ view: Readonly<{
2303
+ zoom: number;
2304
+ scrollTop: number;
2305
+ scrollLeft: number;
2306
+ }>;
2307
+ }): void | Promise<void>;
2308
+ }
2309
+ declare interface ReportDrillRequest {
2310
+ actionId: string;
2311
+ params: Readonly<Record<string, string>>;
2312
+ returnState: Readonly<ReportDrillReturnState>;
2313
+ }
2314
+ declare interface ReportDrillReturnState {
2315
+ params: Readonly<Record<string, string>>;
2316
+ address: Readonly<ReportCellAddress>;
2317
+ reportScope?: string;
2318
+ source?: Readonly<Pick<ReportCellSource, "sourceScope" | "datasetId" | "rowKey" | "field">>;
2319
+ }
2204
2320
  declare interface ReportEditBatch {
2205
2321
  /** Idempotency identity; the server should bind it to the exact payload. */
2206
2322
  requestId: string;
@@ -2362,6 +2478,10 @@ declare interface ReportParamDef {
2362
2478
  label: string;
2363
2479
  value: string;
2364
2480
  }>;
2481
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2482
+ optionsSource?: string;
2483
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2484
+ dependsOn?: string[];
2365
2485
  defaultValue?: string;
2366
2486
  required?: boolean;
2367
2487
  placeholder?: string;
@@ -2383,6 +2503,10 @@ declare interface ReportParamDef_2 {
2383
2503
  label: string;
2384
2504
  value: string;
2385
2505
  }>;
2506
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2507
+ optionsSource?: string;
2508
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2509
+ dependsOn?: string[];
2386
2510
  defaultValue?: string;
2387
2511
  required?: boolean;
2388
2512
  placeholder?: string;
@@ -2404,6 +2528,10 @@ declare interface ReportParamDef_3 {
2404
2528
  label: string;
2405
2529
  value: string;
2406
2530
  }>;
2531
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2532
+ optionsSource?: string;
2533
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2534
+ dependsOn?: string[];
2407
2535
  defaultValue?: string;
2408
2536
  required?: boolean;
2409
2537
  placeholder?: string;
@@ -2413,6 +2541,37 @@ declare interface ReportParamDef_3 {
2413
2541
  minLength?: number;
2414
2542
  maxLength?: number;
2415
2543
  }
2544
+ declare interface ReportParamOption {
2545
+ readonly label: string;
2546
+ readonly value: string;
2547
+ }
2548
+ declare interface ReportParamOptionsInput {
2549
+ readonly source: string;
2550
+ readonly field: string;
2551
+ readonly query: string;
2552
+ /** Only declared dependencies, captured at request start. Never the mutable form. */
2553
+ readonly params: Readonly<Record<string, string>>;
2554
+ readonly signal: AbortSignal;
2555
+ readonly limit: number;
2556
+ }
2557
+ /** Resolve a trusted source key through the host's existing API/authentication. */
2558
+ declare type ReportParamOptionsLoader = (input: ReportParamOptionsInput) => Promise<readonly ReportParamOption[]>;
2559
+ declare interface ReportParamOptionsMessages {
2560
+ paramOptionsLoading?: string;
2561
+ paramOptionsEmpty?: string;
2562
+ paramOptionsFailed?: string;
2563
+ paramOptionsMissingLoader?: string;
2564
+ paramOptionsDependencies?: string;
2565
+ paramOptionsClear?: string;
2566
+ }
2567
+ declare interface ReportParamOptionsMessages_2 {
2568
+ paramOptionsLoading?: string;
2569
+ paramOptionsEmpty?: string;
2570
+ paramOptionsFailed?: string;
2571
+ paramOptionsMissingLoader?: string;
2572
+ paramOptionsDependencies?: string;
2573
+ paramOptionsClear?: string;
2574
+ }
2416
2575
  declare interface ReportPreferencesAdapter {
2417
2576
  load(key: string): Partial<ReportPreviewPreferences> | null | Promise<Partial<ReportPreviewPreferences> | null>;
2418
2577
  save(key: string, value: Readonly<Partial<ReportPreviewPreferences>>): void | Promise<void>;
@@ -2425,6 +2584,46 @@ declare interface ReportPreferencesOptions {
2425
2584
  }
2426
2585
  declare type ReportPreviewPreferences = Record<ReportPreviewTool, boolean>;
2427
2586
  declare type ReportPreviewTool = "search" | "thumbnails" | "zoom" | ReportExportFormat | "print" | "pdfWindow" | "editing" | "import";
2587
+ declare interface ReportPrintCalibration {
2588
+ offsetXmm?: number;
2589
+ offsetYmm?: number;
2590
+ }
2591
+ declare interface ReportPrintFont {
2592
+ /** Same family name used by the template. Sources are trusted application assets. */
2593
+ family: string;
2594
+ source: string;
2595
+ weight?: string;
2596
+ style?: "normal" | "italic" | "oblique";
2597
+ }
2598
+ declare interface ReportPrintMessages {
2599
+ printPrepareTimeout?: string;
2600
+ printImageFailed?: string;
2601
+ printFontFailed?: string;
2602
+ printPrepareFailed?: string;
2603
+ printCalibration?: string;
2604
+ printOffsetX?: string;
2605
+ printOffsetY?: string;
2606
+ printCalibrationTest?: string;
2607
+ printCalibrationHint?: string;
2608
+ }
2609
+ declare interface ReportPrintMessages_2 {
2610
+ printPrepareTimeout?: string;
2611
+ printImageFailed?: string;
2612
+ printFontFailed?: string;
2613
+ printPrepareFailed?: string;
2614
+ printCalibration?: string;
2615
+ printOffsetX?: string;
2616
+ printOffsetY?: string;
2617
+ printCalibrationTest?: string;
2618
+ printCalibrationHint?: string;
2619
+ }
2620
+ declare interface ReportPrintOptions {
2621
+ /** Defaults to 15 seconds for the entire font/image preparation stage. */
2622
+ resourceTimeoutMs?: number;
2623
+ fonts?: readonly ReportPrintFont[];
2624
+ /** Physical translation only; no scaling or mutation of the report data/plan. */
2625
+ calibration?: ReportPrintCalibration;
2626
+ }
2428
2627
  declare interface ReportTemplate {
2429
2628
  schemaVersion?: string;
2430
2629
  /** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
@@ -2533,6 +2732,19 @@ export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions
2533
2732
  onSaved?: ((document: ReportTemplateDocument) => any) | undefined;
2534
2733
  "onExcel-bound"?: ((result: ExcelBindingWizardApply) => any) | undefined;
2535
2734
  }>, {}>;
2735
+ declare interface ReportTemplateFixture {
2736
+ name: string;
2737
+ datasets: DatasetRows;
2738
+ params?: Record<string, string>;
2739
+ }
2740
+ /** Plain JSON, versioned by the host; inserting never links mutable library objects. */
2741
+ declare interface ReportTemplateFragment {
2742
+ id: string;
2743
+ name: string;
2744
+ revision: string;
2745
+ components: TemplateComponent_2[];
2746
+ repeatDataset?: string;
2747
+ }
2536
2748
  export declare const ReportTemplateLibrary: DefineComponent<TemplateLibraryOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
2537
2749
  open: (document: ReportTemplateDocument_3, context?: ReportTemplateCatalogOpenContext_2 | undefined) => any;
2538
2750
  }, string, MachReportVuePublicProps, Readonly<TemplateLibraryOptions> & Readonly<{
@@ -2780,6 +2992,7 @@ export declare const RuleEditor: DefineComponent<RuleEditorOptions, {
2780
2992
  }>, {}>;
2781
2993
  export declare type RuleEditorMessages = typeof RULE_EDITOR_MESSAGES;
2782
2994
  export declare interface RuleEditorOptions {
2995
+ recoveryKey?: string;
2783
2996
  list: ListComponent_2;
2784
2997
  datasets?: DatasetRows_2;
2785
2998
  datasetSchema?: DatasetContract_2;
@@ -2824,6 +3037,13 @@ declare interface StyleRule_3 {
2824
3037
  style: Record<string, unknown>;
2825
3038
  }
2826
3039
  export declare const TEMPLATE_EDITOR_MESSAGES: {
3040
+ toolTarget: string;
3041
+ toolPreview: string;
3042
+ toolPreviewHide: string;
3043
+ toolChooseComponent: string;
3044
+ previousColumns: string;
3045
+ nextColumns: string;
3046
+ columnWindow: string;
2827
3047
  paperAndPages: string;
2828
3048
  pageDirectory: string;
2829
3049
  pageName: string;
@@ -3043,6 +3263,8 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
3043
3263
  applyJson: string;
3044
3264
  note: string;
3045
3265
  invalid: string;
3266
+ outlineTool: string;
3267
+ reuseTool: string;
3046
3268
  fitWidth: string;
3047
3269
  fitPage: string;
3048
3270
  fitSelection: string;
@@ -3098,7 +3320,108 @@ export declare const TEMPLATE_LIBRARY_MESSAGES: {
3098
3320
  stale: string;
3099
3321
  invalid: string;
3100
3322
  };
3323
+ export declare const TEMPLATE_PRODUCT_MESSAGES: {
3324
+ outline: string;
3325
+ search: string;
3326
+ noMatches: string;
3327
+ more: string;
3328
+ usages: string;
3329
+ all: string;
3330
+ count: string;
3331
+ page: string;
3332
+ component: string;
3333
+ field: string;
3334
+ calculation: string;
3335
+ binding: string;
3336
+ reuse: string;
3337
+ fragments: string;
3338
+ styles: string;
3339
+ insert: string;
3340
+ update: string;
3341
+ noFragments: string;
3342
+ capture: string;
3343
+ fragmentName: string;
3344
+ role: string;
3345
+ apply: string;
3346
+ copy: string;
3347
+ paste: string;
3348
+ bindings: string;
3349
+ dataset: string;
3350
+ target: string;
3351
+ preserve: string;
3352
+ select: string;
3353
+ revision: string;
3354
+ instance: string;
3355
+ newRevision: string;
3356
+ noStyles: string;
3357
+ nameRequired: string;
3358
+ styleText: string;
3359
+ styleHeading: string;
3360
+ styleBody: string;
3361
+ styleNumber: string;
3362
+ styleNote: string;
3363
+ rename: string;
3364
+ renameHint: string;
3365
+ continue: string;
3366
+ cancel: string;
3367
+ locate: string;
3368
+ };
3369
+ export declare const TEMPLATE_RECOVERY_MESSAGES: {
3370
+ readonly available: "发现未保存草稿";
3371
+ readonly restore: "恢复草稿";
3372
+ readonly discard: "放弃草稿";
3373
+ readonly stale: "草稿基线已变化,恢复后须核对最新版本再保存。";
3374
+ readonly localOnly: "仅保存模板、JSON 与工具配置,不保存业务数据或 Excel 文件。";
3375
+ readonly autosaved: "草稿已暂存";
3376
+ readonly saving: "暂存中";
3377
+ readonly storageError: "草稿暂存失败";
3378
+ readonly conflict: "模板版本已变化";
3379
+ readonly conflictHint: "本地修改已保留。核对差异后选择处理方式,不会自动合并或覆盖。";
3380
+ readonly baseline: "共同基线";
3381
+ readonly local: "本地修改";
3382
+ readonly remote: "远端修改";
3383
+ readonly changes: "处差异";
3384
+ readonly path: "位置";
3385
+ readonly before: "原值";
3386
+ readonly after: "新值";
3387
+ readonly empty: "没有差异";
3388
+ readonly loadLatest: "读取最新版本";
3389
+ readonly adopt: "采用最新版本";
3390
+ readonly rebase: "保留本地内容,以最新版本为基线";
3391
+ readonly confirm: "确认更新基线";
3392
+ readonly confirmHint: "此操作保留完整本地内容,不合并远端改动;下次保存将以最新修订号校验。";
3393
+ readonly keepCopy: "保留独立副本";
3394
+ readonly copied: "副本已保留";
3395
+ readonly revision: "修订";
3396
+ readonly unknown: "未发布";
3397
+ readonly close: "收起差异";
3398
+ readonly review: "核对版本冲突";
3399
+ readonly toolsNeedSource: "Excel 映射配置已恢复,请重新选择原文件后核对。";
3400
+ };
3101
3401
  export declare const TEMPLATE_REVIEW_MESSAGES: {
3402
+ cancel: string;
3403
+ cancelled: string;
3404
+ progress: string;
3405
+ sampleConsentMissing: string;
3406
+ sampleNameMissing: string;
3407
+ sampleLimit: string;
3408
+ sampleNameDuplicate: string;
3409
+ sampleRowsLimit: string;
3410
+ namedFixtures: string;
3411
+ fixtureName: string;
3412
+ fixturePlaceholder: string;
3413
+ deidentified: string;
3414
+ capture: string;
3415
+ remove: string;
3416
+ fixtureHint: string;
3417
+ parameters: string;
3418
+ compare: string;
3419
+ dimensions: string;
3420
+ fieldsAdded: string;
3421
+ fieldsRemoved: string;
3422
+ baselinePreview: string;
3423
+ draftPreview: string;
3424
+ closeCompare: string;
3102
3425
  stale: string;
3103
3426
  scope: string;
3104
3427
  datasets: string;
@@ -3146,6 +3469,42 @@ export declare const TEMPLATE_REVIEW_MESSAGES: {
3146
3469
  declare type TemplateComponent = PlanComponent | ListComponent;
3147
3470
  declare type TemplateComponent_2 = PlanComponent_2 | ListComponent_2;
3148
3471
  declare type TemplateComponent_3 = PlanComponent_3 | ListComponent_3;
3472
+ export declare interface TemplateConflictContext {
3473
+ id: string;
3474
+ signal: AbortSignal;
3475
+ }
3476
+ export declare interface TemplateCopyContext extends TemplateConflictContext {
3477
+ sourceRevision?: string;
3478
+ }
3479
+ export declare interface TemplateDraftRecord {
3480
+ version: 1;
3481
+ templateId: string;
3482
+ savedAt: string;
3483
+ baseline: ReportTemplateDocument;
3484
+ document: ReportTemplateDocument;
3485
+ json: string;
3486
+ appliedJson: string;
3487
+ tools: Record<string, TemplateToolDraft>;
3488
+ }
3489
+ export declare interface TemplateDraftStorage {
3490
+ /** Account / project scope. Changing scope cancels previous reads and isolates recovery. */
3491
+ scope: string;
3492
+ adapter: TemplateDraftStorageAdapter;
3493
+ debounceMs?: number;
3494
+ /** UTF-16 storage budget, default 2 MiB, maximum 16 MiB. */
3495
+ maxBytes?: number;
3496
+ }
3497
+ export declare interface TemplateDraftStorageAdapter {
3498
+ read(key: string, context: {
3499
+ signal: AbortSignal;
3500
+ }): string | null | Promise<string | null>;
3501
+ write(key: string, value: string, context: {
3502
+ signal: AbortSignal;
3503
+ }): void | Promise<void>;
3504
+ remove(key: string, context: {
3505
+ signal: AbortSignal;
3506
+ }): void | Promise<void>;
3507
+ }
3149
3508
  export declare type TemplateEditorBeforeDiscard = (context: TemplateEditorBeforeDiscardContext) => boolean | Promise<boolean>;
3150
3509
  export declare interface TemplateEditorBeforeDiscardContext {
3151
3510
  reason: "reset" | "replace";
@@ -3154,6 +3513,11 @@ export declare interface TemplateEditorBeforeDiscardContext {
3154
3513
  replacement?: ReportTemplateDocument;
3155
3514
  pendingLocalChanges: true;
3156
3515
  }
3516
+ export declare interface TemplateEditorConflictOptions {
3517
+ loadLatest?: (context: TemplateConflictContext) => Promise<ReportTemplateDocument>;
3518
+ /** The host chooses the new persistent identity. The local draft remains untouched. */
3519
+ keepCopy?: (document: ReportTemplateDocument, context: TemplateCopyContext) => Promise<void>;
3520
+ }
3157
3521
  export declare interface TemplateEditorController {
3158
3522
  readonly pendingLocalChanges: boolean;
3159
3523
  readonly saving?: boolean;
@@ -3164,7 +3528,15 @@ export declare interface TemplateEditorController {
3164
3528
  }
3165
3529
  /** Newly introduced labels are optional for existing complete message dictionaries. */
3166
3530
  export declare type TemplateEditorMessages = typeof BASE_TEMPLATE_EDITOR_MESSAGES & Partial<typeof PRODUCT_TEMPLATE_EDITOR_MESSAGES>;
3167
- export declare interface TemplateEditorOptions {
3531
+ export declare interface TemplateEditorOptions extends TemplateEditorConflictOptions {
3532
+ /** Opt-in declaration-only recovery. Scope should include project and account identity. */
3533
+ draftStorage?: TemplateDraftStorage;
3534
+ recoveryMessages?: Partial<TemplateRecoveryMessages>;
3535
+ productMessages?: Partial<TemplateProductMessages>;
3536
+ reviewMessages?: Partial<TemplateReviewMessages>;
3537
+ fragments?: ReportTemplateFragment[];
3538
+ documentStyles?: ReportDocumentStyle[];
3539
+ reviewFixtures?: ReportTemplateFixture[];
3168
3540
  modelValue: ReportTemplateDocument;
3169
3541
  datasets?: DatasetRows;
3170
3542
  dataSchemas?: Record<string, DatasetContract>;
@@ -3190,6 +3562,31 @@ export declare interface TemplateLibraryOptions {
3190
3562
  signal: AbortSignal;
3191
3563
  }) => Promise<ReportTemplateDocument>;
3192
3564
  }
3565
+ declare interface TemplateOutlineLocation {
3566
+ path: string;
3567
+ pageIndex?: number;
3568
+ componentIndex?: number;
3569
+ field?: string;
3570
+ }
3571
+ export declare const TemplateOutlinePanel: DefineComponent<{
3572
+ document: ReportTemplateDocument_3;
3573
+ selection?: {
3574
+ pageIndex: number;
3575
+ componentIndex: number;
3576
+ };
3577
+ messages?: Partial<TemplateProductMessages>;
3578
+ }, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
3579
+ locate: (location: TemplateOutlineLocation) => any;
3580
+ }, string, MachReportVuePublicProps, Readonly<{
3581
+ document: ReportTemplateDocument_3;
3582
+ selection?: {
3583
+ pageIndex: number;
3584
+ componentIndex: number;
3585
+ };
3586
+ messages?: Partial<TemplateProductMessages>;
3587
+ }> & Readonly<{
3588
+ onLocate?: ((location: TemplateOutlineLocation) => any) | undefined;
3589
+ }>, {}>;
3193
3590
  declare interface TemplatePage {
3194
3591
  widthMm: number;
3195
3592
  heightMm: number;
@@ -3232,6 +3629,25 @@ declare interface TemplatePage_3 {
3232
3629
  flow?: ReportPageFlow_3;
3233
3630
  meta?: Record<string, unknown>;
3234
3631
  }
3632
+ export declare type TemplateProductMessages = typeof TEMPLATE_PRODUCT_MESSAGES;
3633
+ export declare type TemplateRecoveryMessages = {
3634
+ [K in keyof typeof TEMPLATE_RECOVERY_MESSAGES]: string;
3635
+ };
3636
+ export declare interface TemplateReuseOptions {
3637
+ document: ReportTemplateDocument;
3638
+ pageIndex: number;
3639
+ selection?: CanvasSelection;
3640
+ fragments?: readonly ReportTemplateFragment[];
3641
+ styles?: readonly ReportDocumentStyle[];
3642
+ disabled?: boolean;
3643
+ messages?: Partial<TemplateProductMessages>;
3644
+ accept: (change: (document: ReportTemplateDocument) => void) => boolean;
3645
+ }
3646
+ export declare const TemplateReusePanel: DefineComponent<TemplateReuseOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
3647
+ select: (location: CanvasSelection) => any;
3648
+ }, string, MachReportVuePublicProps, Readonly<TemplateReuseOptions> & Readonly<{
3649
+ onSelect?: ((location: CanvasSelection) => any) | undefined;
3650
+ }>, {}>;
3235
3651
  export declare type TemplateReviewMessages = typeof TEMPLATE_REVIEW_MESSAGES;
3236
3652
  declare interface TemplateReviewOptions {
3237
3653
  document: ReportTemplateDocument;
@@ -3239,6 +3655,8 @@ declare interface TemplateReviewOptions {
3239
3655
  datasets?: DatasetRows;
3240
3656
  dataSchemas?: Readonly<Record<string, DatasetContract>>;
3241
3657
  formats?: readonly OutputFormat[];
3658
+ /** Explicit, already de-identified examples; no business data is fetched by the editor. */
3659
+ fixtures?: readonly ReportTemplateFixture[];
3242
3660
  }
3243
3661
  export declare const TemplateReviewPanel: DefineComponent<TemplateReviewOptions & {
3244
3662
  messages?: Partial<TemplateReviewMessages>;
@@ -3249,6 +3667,10 @@ export declare const TemplateReviewPanel: DefineComponent<TemplateReviewOptions
3249
3667
  }> & Readonly<{
3250
3668
  onLocate?: ((value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any) | undefined;
3251
3669
  }>, {}>;
3670
+ export declare interface TemplateToolDraft {
3671
+ baseline: string;
3672
+ value: string;
3673
+ }
3252
3674
  /** A serialized tree contract. Sibling and root order follow input order. */
3253
3675
  declare interface TreeTableOptions {
3254
3676
  input: "flat" | "nested";
@@ -3312,21 +3734,14 @@ declare type ValueFormat = ColumnFormat;
3312
3734
  declare type ValueFormat_2 = ColumnFormat_2;
3313
3735
  /** The same declarative formatting used by list columns, before any output backend. */
3314
3736
  declare type ValueFormat_3 = ColumnFormat_3;
3315
- declare interface XlsxImageOptions {
3316
- /** Decoded bytes per unique embedded image; default 16 MiB. */
3317
- maxImageBytes?: number;
3318
- /** Total decoded bytes of unique images in this workbook; default 32 MiB. */
3319
- maxTotalImageBytes?: number;
3320
- /** Unique embedded media limit, default 1000; repeated placements reuse the same media. */
3321
- maxImages?: number;
3322
- }
3737
+ declare type XlsxImageOptions = ImageMediaOptions;
3323
3738
  /**
3324
3739
  * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
3325
3740
  * - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
3326
3741
  * 加粗/对齐/底色/字号直译(resolveGridLayout 复用单真相源几何)
3327
3742
  * - 文本组件 → 合并标题行(顺序流式输出,保字号/加粗/对齐;非像素级定位,
3328
3743
  * 目标是"财务能直接用的对账表"而非复刻版面)
3329
- * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
3744
+ * - 原生 richText 保留基础字形;未支持组件、段落专有排版与单元格嵌套组件计入 diagnostics / warnings
3330
3745
  */
3331
3746
  declare interface XlsxRenderOptions extends OutputDiagnosticOptions, XlsxImageOptions {
3332
3747
  /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */