@agile-team/mach-report 2.14.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 (256) hide show
  1. package/README.md +16 -11
  2. package/THIRD_PARTY_NOTICES.md +3 -1
  3. package/dist/{ExcelBindingWizard-CvsWR8Ga.js → ExcelBindingWizard-BKH1nGNS.js} +3 -3
  4. package/dist/{ExcelBindingWizard-CLT2p7P3.cjs → ExcelBindingWizard-Bs43BGNp.cjs} +1 -1
  5. package/dist/ParamEditor-Da4akw6V.cjs +1 -0
  6. package/dist/ParamEditor-DoAhzJsm.js +594 -0
  7. package/dist/{ReportBatchPanel-LqVgiqp7.js → ReportBatchPanel-BMf6boMA.js} +39 -39
  8. package/dist/{ReportBatchPanel-DkxTzBkD.cjs → ReportBatchPanel-wP9m9Pj1.cjs} +1 -1
  9. package/dist/ReportPreview-ChV19HBp.js +4619 -0
  10. package/dist/ReportPreview-DbLvvOUT.cjs +6 -0
  11. package/dist/{ReportTemplateLibrary-MjWEtc7X.js → ReportTemplateLibrary-C9wutIiT.js} +1 -1
  12. package/dist/{ReportTemplateLibrary-cQ1sqNYo.cjs → ReportTemplateLibrary-Sxr3eD0J.cjs} +1 -1
  13. package/dist/{RuleEditor-ChuXMlei.js → RuleEditor-C_Clasvd.js} +5 -5
  14. package/dist/{RuleEditor-BaR6xUiI.cjs → RuleEditor-XhGHK8DE.cjs} +1 -1
  15. package/dist/{TemplateOutlinePanel-Dci6aRn1.js → TemplateOutlinePanel-D6Bkny59.js} +2 -2
  16. package/dist/{TemplateOutlinePanel-BHKP89Xz.cjs → TemplateOutlinePanel-JTSR53vJ.cjs} +1 -1
  17. package/dist/{TemplateReusePanel-CY5eO2Sh.cjs → TemplateReusePanel-Kx35S0Ql.cjs} +1 -1
  18. package/dist/{TemplateReusePanel-B7Gmyc1z.js → TemplateReusePanel-rVuK1kTz.js} +2 -2
  19. package/dist/{TemplateReviewPanel-DjlX3xpt.js → TemplateReviewPanel-B0ar9_zf.js} +2 -2
  20. package/dist/{TemplateReviewPanel-JvZe9_4G.cjs → TemplateReviewPanel-Dn6X9UmY.cjs} +1 -1
  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 -1
  44. package/dist/designer.d.cts +144 -16
  45. package/dist/designer.d.ts +144 -16
  46. package/dist/designer.js +1 -1
  47. package/dist/drill-ByJviLXS.js +145 -0
  48. package/dist/drill-DYTxuL3A.cjs +1 -0
  49. package/dist/{font-loader-vhCT8znW.cjs → font-loader-B_UkxpzC.cjs} +1 -1
  50. package/dist/{font-loader-DHto6Lra.js → font-loader-Q3bQjmrI.js} +1 -1
  51. package/dist/index.cjs +8 -8
  52. package/dist/index.d.cts +82 -4
  53. package/dist/index.d.ts +82 -4
  54. package/dist/index.js +785 -820
  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-8UPQebOE.js → pdf-BwNyeGpt.js} +4385 -4321
  161. package/dist/{pdf-AyJGb22z.cjs → pdf-CvvrjPQg.cjs} +51 -49
  162. package/dist/pdf.cjs +1 -1
  163. package/dist/pdf.d.cts +18 -3
  164. package/dist/pdf.d.ts +18 -3
  165. package/dist/pdf.js +2 -2
  166. package/dist/{plugin-BGKf-Tqg.js → plugin-Ca_XZG3l.js} +2 -2
  167. package/dist/{plugin-CktLH_Iy.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-By_UKZ2g.cjs +1 -0
  173. package/dist/record-bindings-Do_b3h4V.js +196 -0
  174. package/dist/{region-binding-workflow-DEJbhpCv.js → region-binding-workflow-BMhK_TjP.js} +1 -1
  175. package/dist/{region-binding-workflow-BzfbxRiR.cjs → region-binding-workflow-DIYJdCUr.cjs} +1 -1
  176. package/dist/{report-params-B44imUd4.js → report-params-B1RzkhJj.js} +1 -1
  177. package/dist/{report-params-SJfhKgaX.cjs → report-params-WDGrA4oP.cjs} +1 -1
  178. package/dist/sbom.cdx.json +3982 -0
  179. package/dist/server/node.d.cts +20 -1
  180. package/dist/server/node.d.ts +20 -1
  181. package/dist/server-node.cjs +1 -1
  182. package/dist/server-node.js +247 -237
  183. package/dist/server.cjs +1 -1
  184. package/dist/server.d.cts +772 -4
  185. package/dist/server.d.ts +772 -4
  186. package/dist/server.js +885 -645
  187. package/dist/sha256-ArEYjaTI.cjs +1 -0
  188. package/dist/sha256-DPEuJ3nh.js +155 -0
  189. package/dist/style.css +1 -1
  190. package/dist/template-bindings-C2SpvsMU.js +58 -0
  191. package/dist/template-bindings-CEtWyiLX.cjs +1 -0
  192. package/dist/template-catalog-FJE_c9Qe.cjs +1 -0
  193. package/dist/template-catalog-j2B1MJlL.js +414 -0
  194. package/dist/{template-fragments-CLkGo6To.js → template-fragments-BGbQLGlV.js} +21 -21
  195. package/dist/{template-fragments-DFUpq5QM.cjs → template-fragments-DcKeiylI.cjs} +1 -1
  196. package/dist/{template-outline-B3xVkzSv.cjs → template-outline-BwRV_eRo.cjs} +1 -1
  197. package/dist/{template-outline-CFenM1PV.js → template-outline-cnWfT_LK.js} +3 -3
  198. package/dist/{template-registry-COXDEJEM.js → template-registry-BtaKPELV.js} +364 -201
  199. package/dist/template-registry-Co1zPq5e.cjs +1 -0
  200. package/dist/textwrap-CWHyzkBH.cjs +4 -0
  201. package/dist/textwrap-DE1kgcJB.js +110 -0
  202. package/dist/{tree-CqcQ99NM.js → tree-CjVZLRw7.js} +1 -1
  203. package/dist/vue/async.d.cts +123 -14
  204. package/dist/vue/async.d.ts +123 -14
  205. package/dist/vue/index.d.cts +158 -22
  206. package/dist/vue/index.d.ts +158 -22
  207. package/dist/vue-async.cjs +1 -1
  208. package/dist/vue-async.js +3 -3
  209. package/dist/vue.cjs +1 -1
  210. package/dist/vue.js +80 -78
  211. package/dist/{workbook-session-DNa2RHNG.cjs → workbook-session-Bjv1YCRK.cjs} +18 -18
  212. package/dist/{workbook-session-BfK1yHOO.js → workbook-session-BvToI-Fd.js} +5440 -5288
  213. package/dist/worker.cjs +1 -1
  214. package/dist/worker.d.cts +20 -1
  215. package/dist/worker.d.ts +20 -1
  216. package/dist/worker.js +33 -32
  217. package/dist/xlsx-node.cjs +34 -34
  218. package/dist/xlsx-node.js +878 -870
  219. package/dist/xlsx.cjs +3 -4
  220. package/dist/xlsx.d.cts +22 -10
  221. package/dist/xlsx.d.ts +22 -10
  222. package/dist/xlsx.js +261 -253
  223. package/package.json +2 -2
  224. package/dist/ParamEditor-CflQV3eQ.js +0 -526
  225. package/dist/ParamEditor-vIDzvpPV.cjs +0 -1
  226. package/dist/ReportPreview-CvbqLUzM.cjs +0 -6
  227. package/dist/ReportPreview-D_ywJ_-H.js +0 -4533
  228. package/dist/assets-C2U-e-Sz.cjs +0 -4
  229. package/dist/assets-Q0wUwNrV.js +0 -217
  230. package/dist/batch-DzaTNLWI.js +0 -371
  231. package/dist/batch-xMkqYiTr.cjs +0 -1
  232. package/dist/capabilities-CK_7hizc.js +0 -63
  233. package/dist/capabilities-CsZ-pNHR.cjs +0 -1
  234. package/dist/config-0UIohTS7.cjs +0 -1
  235. package/dist/config-Dt9NtCPl.js +0 -566
  236. package/dist/data-explanation-BktvER5B.cjs +0 -1
  237. package/dist/data-explanation-C_J6jYNi.js +0 -16
  238. package/dist/designer-Ci1LizA9.js +0 -5020
  239. package/dist/designer-rtmVIIdN.cjs +0 -2
  240. package/dist/json-snapshot-BeFT3Tso.js +0 -1952
  241. package/dist/json-snapshot-D1NTP2oI.cjs +0 -2
  242. package/dist/matrix-DVyWiYsd.cjs +0 -1
  243. package/dist/matrix-yZsGnldA.js +0 -227
  244. package/dist/page-window-index-CIuT4BAv.js +0 -43
  245. package/dist/page-window-index-DEjnM6IB.cjs +0 -1
  246. package/dist/param-validation-BlHHXs6u.js +0 -153
  247. package/dist/param-validation-DCK039V1.cjs +0 -1
  248. package/dist/progress-7OSZbFok.js +0 -39
  249. package/dist/progress-BnLiS5eH.cjs +0 -1
  250. package/dist/task-events-DQ276fn2.cjs +0 -1
  251. package/dist/task-events-Dpsvf_t2.js +0 -47
  252. package/dist/template-bindings-BJR4k7qZ.cjs +0 -1
  253. package/dist/template-bindings-Daui7hLF.js +0 -252
  254. package/dist/template-registry-D3SjENi6.cjs +0 -1
  255. package/dist/validate-BJ5HIWY8.cjs +0 -1
  256. package/dist/validate-CkQBWCeg.js +0 -163
@@ -9,6 +9,14 @@ import { InjectionKey } from 'vue';
9
9
  import { PropType } from 'vue';
10
10
  import { Ref } from 'vue';
11
11
  declare const __VLS_component: DefineComponent<ExtractPropTypes<{
12
+ drill: {
13
+ type: PropType<ReportDrillOptions>;
14
+ default: undefined;
15
+ };
16
+ loadParamOptions: {
17
+ type: PropType<ReportParamOptionsLoader>;
18
+ default: undefined;
19
+ };
12
20
  reportId: {
13
21
  type: PropType<string | string[] | null>;
14
22
  default: null;
@@ -171,6 +179,14 @@ declare const __VLS_component: DefineComponent<ExtractPropTypes<{
171
179
  "template-import": (result: ExcelImportResult) => any;
172
180
  "preferences-change": (preferences: Readonly<ReportPreviewPreferences>) => any;
173
181
  }, string, MachReportVuePublicProps, Readonly<ExtractPropTypes<{
182
+ drill: {
183
+ type: PropType<ReportDrillOptions>;
184
+ default: undefined;
185
+ };
186
+ loadParamOptions: {
187
+ type: PropType<ReportParamOptionsLoader>;
188
+ default: undefined;
189
+ };
174
190
  reportId: {
175
191
  type: PropType<string | string[] | null>;
176
192
  default: null;
@@ -309,6 +325,8 @@ declare const __VLS_component: DefineComponent<ExtractPropTypes<{
309
325
  showPdfWindow: boolean;
310
326
  showSettings: boolean;
311
327
  showParams: boolean;
328
+ drill: ReportDrillOptions;
329
+ loadParamOptions: ReportParamOptionsLoader;
312
330
  printOptions: ReportPrintOptions;
313
331
  toolbar: MachReportToolbarOptions;
314
332
  interaction: ReportInteractionOptions;
@@ -400,6 +418,7 @@ declare type __VLS_Props_3 = {
400
418
  showActions?: boolean;
401
419
  showTitle?: boolean;
402
420
  disabled?: boolean;
421
+ loadOptions?: ReportParamOptionsLoader;
403
422
  };
404
423
  declare function __VLS_template(): {
405
424
  slots: {
@@ -470,7 +489,7 @@ declare interface AssetRenderBudget {
470
489
  /** Wall-clock budget, including adapters that ignore AbortSignal. Default 30 seconds. */
471
490
  maxDurationMs?: number;
472
491
  }
473
- declare interface AssetRenderOptions extends OutputDiagnosticOptions {
492
+ declare interface AssetRenderOptions extends OutputDiagnosticOptions, ImageMediaOptions {
474
493
  assetRenderers?: Partial<Record<ImageComponentKind, ComponentImageRenderer>>;
475
494
  assetBudget?: AssetRenderBudget;
476
495
  /** Default throw prevents an incomplete export; placeholder retains the component and emits diagnostics. */
@@ -900,7 +919,7 @@ declare interface GridCell {
900
919
  valueType?: "text" | "number" | "boolean";
901
920
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
902
921
  editable?: boolean;
903
- source?: ReportCellSource;
922
+ source?: ReportCellSource_2;
904
923
  /** SDK 派生结果不映射业务来源,始终只读(包括覆盖同名源字段的计算)。 */
905
924
  derived?: boolean;
906
925
  /** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
@@ -923,7 +942,7 @@ declare interface GridCell_2 {
923
942
  valueType?: "text" | "number" | "boolean";
924
943
  /** 单元格级编辑控制;预览仍需显式开启 editing。 */
925
944
  editable?: boolean;
926
- source?: ReportCellSource_2;
945
+ source?: ReportCellSource;
927
946
  /** SDK 派生结果不映射业务来源,始终只读(包括覆盖同名源字段的计算)。 */
928
947
  derived?: boolean;
929
948
  /** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
@@ -965,6 +984,30 @@ export declare type HostRequest = (config: {
965
984
  signal?: AbortSignal;
966
985
  }) => Promise<unknown>;
967
986
  declare type ImageComponentKind = "image" | "chart" | "barcode" | "qrcode";
987
+ /** Bounded binary image inspection shared by PDF, Excel and template import. No decoder is loaded. */
988
+ declare interface ImageMediaOptions {
989
+ maxImageBytes?: number;
990
+ maxTotalImageBytes?: number;
991
+ maxImages?: number;
992
+ /** Decoded pixels per unique image, default 16 million. */
993
+ maxImagePixels?: number;
994
+ /** Total decoded pixels for unique media, default 64 million. */
995
+ maxTotalImagePixels?: number;
996
+ /** Maximum source dimension, default 16384 pixels. */
997
+ maxImageDimension?: number;
998
+ }
999
+ /** Bounded binary image inspection shared by PDF, Excel and template import. No decoder is loaded. */
1000
+ declare interface ImageMediaOptions_2 {
1001
+ maxImageBytes?: number;
1002
+ maxTotalImageBytes?: number;
1003
+ maxImages?: number;
1004
+ /** Decoded pixels per unique image, default 16 million. */
1005
+ maxImagePixels?: number;
1006
+ /** Total decoded pixels for unique media, default 64 million. */
1007
+ maxTotalImagePixels?: number;
1008
+ /** Maximum source dimension, default 16384 pixels. */
1009
+ maxImageDimension?: number;
1010
+ }
968
1011
  export declare function joinReportIds(reportId: ReportIdInput): string;
969
1012
  /** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
970
1013
  declare type ListAlignment = NonNullable<ComponentStyle_2["align"]> | "auto";
@@ -1379,6 +1422,8 @@ export declare interface MachReportController {
1379
1422
  }
1380
1423
  /** defaults 层可配置项(全部可选,均有内置缺省) */
1381
1424
  export declare interface MachReportDefaults {
1425
+ drill?: ReportDrillOptions;
1426
+ loadParamOptions?: ReportParamOptionsLoader;
1382
1427
  printOptions?: ReportPrintOptions;
1383
1428
  showExport?: boolean;
1384
1429
  showPrint?: boolean;
@@ -1462,7 +1507,11 @@ export declare type MachReportLogger = Pick<Console, "warn" | "info">;
1462
1507
  * - 优先级:组件 props > 路由级叠加 > preset > defaults(props 永远最高)
1463
1508
  */
1464
1509
  /** 工具栏与状态文案(默认简体中文;出海场景覆写) */
1465
- export declare interface MachReportMessages extends Partial<ReportCalculationMessages>, ReportPrintMessages {
1510
+ export declare interface MachReportMessages extends Partial<ReportCalculationMessages>, ReportPrintMessages, ReportParamOptionsMessages {
1511
+ drillActions?: string;
1512
+ drillOpening?: string;
1513
+ drillMissingValue?: string;
1514
+ drillFailed?: string;
1466
1515
  exportMenu?: string;
1467
1516
  exportMenuDescription?: string;
1468
1517
  clearSearch?: string;
@@ -1778,7 +1827,7 @@ export declare function normalizeReportIds(reportId: ReportIdInput): string[];
1778
1827
  /** Workers preserve stable error codes, not JavaScript class identity. Only known codes cross the UI boundary. */
1779
1828
  export declare function normalizeReportLoadError(error: unknown): MachReportError;
1780
1829
  declare interface OutputDiagnostic {
1781
- 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";
1830
+ 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";
1782
1831
  severity: "warning";
1783
1832
  format: OutputFormat;
1784
1833
  pageIndex: number;
@@ -1790,7 +1839,7 @@ declare interface OutputDiagnostic {
1790
1839
  message: string;
1791
1840
  }
1792
1841
  declare interface OutputDiagnostic_2 {
1793
- 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";
1842
+ 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";
1794
1843
  severity: "warning";
1795
1844
  format: OutputFormat_2;
1796
1845
  pageIndex: number;
@@ -1852,6 +1901,7 @@ declare interface PaginateOptions {
1852
1901
  /** Trusted formula adapter is passed at execution time; it is never serialized in templates. */
1853
1902
  formula?: FormulaAdapter;
1854
1903
  }
1904
+ export declare const PARAM_OPTIONS_MESSAGES: Required<ReportParamOptionsMessages>;
1855
1905
  /** PDF 导出器:RenderPlan → PDF 字节;第二参数可上报非致命保真告警。 */
1856
1906
  export declare interface PdfExporter {
1857
1907
  (plan: RenderPlan, onWarning?: (message: string) => void, task?: OutputTaskOptions_2 & {
@@ -2022,7 +2072,7 @@ declare interface PlanTableFragment {
2022
2072
  layout?: "page" | "wide";
2023
2073
  title?: string;
2024
2074
  /** 只有宿主声明稳定 rowKey 时生成,不能用显示顺序替代业务主键。 */
2025
- source?: Omit<ReportCellSource, "field" | "rowKey"> & {
2075
+ source?: Omit<ReportCellSource_2, "field" | "rowKey"> & {
2026
2076
  rowKey?: string | number;
2027
2077
  };
2028
2078
  }
@@ -2038,7 +2088,7 @@ declare interface PlanTableFragment_2 {
2038
2088
  layout?: "page" | "wide";
2039
2089
  title?: string;
2040
2090
  /** 只有宿主声明稳定 rowKey 时生成,不能用显示顺序替代业务主键。 */
2041
- source?: Omit<ReportCellSource_2, "field" | "rowKey"> & {
2091
+ source?: Omit<ReportCellSource, "field" | "rowKey"> & {
2042
2092
  rowKey?: string | number;
2043
2093
  };
2044
2094
  }
@@ -2179,14 +2229,14 @@ declare interface ReportCellContext {
2179
2229
  valueType: ReportCellValueType;
2180
2230
  table?: ReportCellTableIdentity;
2181
2231
  /** Stable business identity. Physical row indices must never be used as database keys. */
2182
- source?: Readonly<ReportCellSource_2>;
2232
+ source?: Readonly<ReportCellSource>;
2183
2233
  editable: boolean;
2184
2234
  readOnlyReason?: ReportCellReadOnlyReason;
2185
2235
  }
2186
2236
  declare interface ReportCellEdit {
2187
2237
  address: ReportCellAddress;
2188
2238
  table?: ReportCellTableIdentity;
2189
- source?: Readonly<ReportCellSource_2>;
2239
+ source?: Readonly<ReportCellSource>;
2190
2240
  previousValue: ReportCellValue;
2191
2241
  previousText: string;
2192
2242
  value: ReportCellValue;
@@ -2195,7 +2245,7 @@ declare interface ReportCellEdit {
2195
2245
  declare interface ReportCellEdit_2 {
2196
2246
  address: ReportCellAddress_2;
2197
2247
  table?: ReportCellTableIdentity_2;
2198
- source?: Readonly<ReportCellSource>;
2248
+ source?: Readonly<ReportCellSource_2>;
2199
2249
  previousValue: ReportCellValue_2;
2200
2250
  previousText: string;
2201
2251
  value: ReportCellValue_2;
@@ -2235,6 +2285,8 @@ export declare interface ReportCellSelection {
2235
2285
  }
2236
2286
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2237
2287
  declare interface ReportCellSource {
2288
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2289
+ sourceScope?: string;
2238
2290
  datasetId: string;
2239
2291
  rowKey: string | number;
2240
2292
  field: string;
@@ -2243,6 +2295,8 @@ declare interface ReportCellSource {
2243
2295
  }
2244
2296
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2245
2297
  declare interface ReportCellSource_2 {
2298
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2299
+ sourceScope?: string;
2246
2300
  datasetId: string;
2247
2301
  rowKey: string | number;
2248
2302
  field: string;
@@ -2251,6 +2305,8 @@ declare interface ReportCellSource_2 {
2251
2305
  }
2252
2306
  /** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
2253
2307
  declare interface ReportCellSource_3 {
2308
+ /** Source identity across report occurrences; sharing must be explicitly declared. */
2309
+ sourceScope?: string;
2254
2310
  datasetId: string;
2255
2311
  rowKey: string | number;
2256
2312
  field: string;
@@ -2280,6 +2336,8 @@ declare interface ReportDataTarget {
2280
2336
  rowKey?: string | number;
2281
2337
  /** Use table identity when the same dataset appears in several tables. */
2282
2338
  tableId?: string;
2339
+ /** Assigned by the source/runtime when several reports share dataset names. */
2340
+ reportScope?: string;
2283
2341
  }
2284
2342
  declare interface ReportDataTarget_2 {
2285
2343
  datasetId: string;
@@ -2287,8 +2345,12 @@ declare interface ReportDataTarget_2 {
2287
2345
  rowKey?: string | number;
2288
2346
  /** Use table identity when the same dataset appears in several tables. */
2289
2347
  tableId?: string;
2348
+ /** Assigned by the source/runtime when several reports share dataset names. */
2349
+ reportScope?: string;
2290
2350
  }
2291
2351
  declare interface ReportDefinition {
2352
+ /** Explicitly shared editable data identity. Omit to isolate each report occurrence. */
2353
+ sourceScope?: string;
2292
2354
  /** 静态模板或宿主提供的异步模板加载器;动态模板默认每次重新读取,不缓存版本。 */
2293
2355
  template: ReportTemplate_2 | ReportTemplateLoader;
2294
2356
  /** 静态数据;load 存在时优先使用 load 的结果。 */
@@ -2313,13 +2375,56 @@ declare interface ReportDiagnostic {
2313
2375
  target?: ReportDataTarget;
2314
2376
  }
2315
2377
  export declare type ReportDiscardReason = "reload" | "import" | "replace" | "leave";
2378
+ /** Serializable action metadata. URLs, scripts and automatic navigation are deliberately absent. */
2379
+ declare interface ReportDrillAction {
2380
+ id: string;
2381
+ label: string;
2382
+ target: {
2383
+ field: string;
2384
+ datasetId?: string;
2385
+ reportScope?: string;
2386
+ roles?: readonly string[];
2387
+ };
2388
+ params?: Readonly<Record<string, ReportDrillBinding>>;
2389
+ }
2390
+ declare type ReportDrillBinding = {
2391
+ value: string | number | boolean;
2392
+ } | {
2393
+ from: "value" | "rowKey";
2394
+ } | {
2395
+ from: "query" | "field";
2396
+ field: string;
2397
+ };
2398
+ /** Trusted host-owned allowlist. Matching serialized metadata alone never executes an action. */
2399
+ export declare interface ReportDrillOptions {
2400
+ actions: readonly ReportDrillAction[];
2401
+ open(request: ReportDrillRequest & {
2402
+ signal: AbortSignal;
2403
+ view: Readonly<{
2404
+ zoom: number;
2405
+ scrollTop: number;
2406
+ scrollLeft: number;
2407
+ }>;
2408
+ }): void | Promise<void>;
2409
+ }
2410
+ declare interface ReportDrillRequest {
2411
+ actionId: string;
2412
+ params: Readonly<Record<string, string>>;
2413
+ returnState: Readonly<ReportDrillReturnState>;
2414
+ }
2415
+ declare interface ReportDrillReturnState {
2416
+ params: Readonly<Record<string, string>>;
2417
+ address: Readonly<ReportCellAddress>;
2418
+ reportScope?: string;
2419
+ source?: Readonly<Pick<ReportCellSource, "sourceScope" | "datasetId" | "rowKey" | "field">>;
2420
+ }
2316
2421
  declare interface ReportEditBatch {
2317
2422
  /** Idempotency identity; the server should bind it to the exact payload. */
2318
2423
  requestId: string;
2319
2424
  edits: ReportCellEdit[];
2320
2425
  }
2321
2426
  declare interface ReportEditConflict {
2322
- source?: Readonly<ReportCellSource_2>;
2427
+ source?: Readonly<ReportCellSource>;
2323
2428
  address?: ReportCellAddress;
2324
2429
  message: string;
2325
2430
  currentValue?: ReportCellValue;
@@ -2498,6 +2603,10 @@ declare interface ReportParamDef {
2498
2603
  label: string;
2499
2604
  value: string;
2500
2605
  }>;
2606
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2607
+ optionsSource?: string;
2608
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2609
+ dependsOn?: string[];
2501
2610
  defaultValue?: string;
2502
2611
  required?: boolean;
2503
2612
  placeholder?: string;
@@ -2519,6 +2628,10 @@ declare interface ReportParamDef_2 {
2519
2628
  label: string;
2520
2629
  value: string;
2521
2630
  }>;
2631
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2632
+ optionsSource?: string;
2633
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2634
+ dependsOn?: string[];
2522
2635
  defaultValue?: string;
2523
2636
  required?: boolean;
2524
2637
  placeholder?: string;
@@ -2540,6 +2653,10 @@ declare interface ReportParamDef_3 {
2540
2653
  label: string;
2541
2654
  value: string;
2542
2655
  }>;
2656
+ /** Opaque host-resolved source key. No URL, credentials or executable code is stored. */
2657
+ optionsSource?: string;
2658
+ /** Select dependencies must be declared parameters; changing a parent clears descendants. */
2659
+ dependsOn?: string[];
2543
2660
  defaultValue?: string;
2544
2661
  required?: boolean;
2545
2662
  placeholder?: string;
@@ -2555,7 +2672,30 @@ declare interface ReportParamIssue {
2555
2672
  field: string;
2556
2673
  message: string;
2557
2674
  }
2558
- declare type ReportParamIssueCode = "definition" | "required" | "type" | "option" | "minimum" | "maximum" | "minLength" | "maxLength";
2675
+ declare type ReportParamIssueCode = "definition" | "required" | "type" | "option" | "dependency" | "minimum" | "maximum" | "minLength" | "maxLength";
2676
+ export declare interface ReportParamOption {
2677
+ readonly label: string;
2678
+ readonly value: string;
2679
+ }
2680
+ export declare interface ReportParamOptionsInput {
2681
+ readonly source: string;
2682
+ readonly field: string;
2683
+ readonly query: string;
2684
+ /** Only declared dependencies, captured at request start. Never the mutable form. */
2685
+ readonly params: Readonly<Record<string, string>>;
2686
+ readonly signal: AbortSignal;
2687
+ readonly limit: number;
2688
+ }
2689
+ /** Resolve a trusted source key through the host's existing API/authentication. */
2690
+ export declare type ReportParamOptionsLoader = (input: ReportParamOptionsInput) => Promise<readonly ReportParamOption[]>;
2691
+ export declare interface ReportParamOptionsMessages {
2692
+ paramOptionsLoading?: string;
2693
+ paramOptionsEmpty?: string;
2694
+ paramOptionsFailed?: string;
2695
+ paramOptionsMissingLoader?: string;
2696
+ paramOptionsDependencies?: string;
2697
+ paramOptionsClear?: string;
2698
+ }
2559
2699
  export declare const ReportParamPanel: DefineComponent<__VLS_Props_3, {
2560
2700
  focusInvalid: typeof focusInvalid;
2561
2701
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
@@ -2568,6 +2708,7 @@ export declare const ReportParamPanel: DefineComponent<__VLS_Props_3, {
2568
2708
  "onUpdate:modelValue"?: ((value: Record<string, string>) => any) | undefined;
2569
2709
  }>, {
2570
2710
  disabled: boolean;
2711
+ loadOptions: ReportParamOptionsLoader;
2571
2712
  issues: readonly ReportParamIssue[];
2572
2713
  showActions: boolean;
2573
2714
  showTitle: boolean;
@@ -2787,6 +2928,8 @@ declare type ReportValueState_2 = "missing-source" | "not-applicable" | "not-cal
2787
2928
  export declare function resolveCalculationMessages(messages: Partial<ReportCalculationMessages>): ReportCalculationMessages;
2788
2929
  export declare function resolveConfig(config: MachReportConfig | null | undefined, presetName?: string): ResolvedConfig;
2789
2930
  export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "showSettings" | "showParams" | "gapPx">> & {
2931
+ drill?: ReportDrillOptions;
2932
+ loadParamOptions?: ReportParamOptionsLoader;
2790
2933
  pdfFontUrl: string;
2791
2934
  theme: MachReportTheme;
2792
2935
  messages: MachReportMessages;
@@ -3095,21 +3238,14 @@ declare type ValueFormat = ColumnFormat;
3095
3238
  declare type ValueFormat_2 = ColumnFormat_2;
3096
3239
  /** The same declarative formatting used by list columns, before any output backend. */
3097
3240
  declare type ValueFormat_3 = ColumnFormat_3;
3098
- declare interface XlsxImageOptions {
3099
- /** Decoded bytes per unique embedded image; default 16 MiB. */
3100
- maxImageBytes?: number;
3101
- /** Total decoded bytes of unique images in this workbook; default 32 MiB. */
3102
- maxTotalImageBytes?: number;
3103
- /** Unique embedded media limit, default 1000; repeated placements reuse the same media. */
3104
- maxImages?: number;
3105
- }
3241
+ declare type XlsxImageOptions = ImageMediaOptions_2;
3106
3242
  /**
3107
3243
  * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
3108
3244
  * - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
3109
3245
  * 加粗/对齐/底色/字号直译(resolveGridLayout 复用单真相源几何)
3110
3246
  * - 文本组件 → 合并标题行(顺序流式输出,保字号/加粗/对齐;非像素级定位,
3111
3247
  * 目标是"财务能直接用的对账表"而非复刻版面)
3112
- * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
3248
+ * - 原生 richText 保留基础字形;未支持组件、段落专有排版与单元格嵌套组件计入 diagnostics / warnings
3113
3249
  */
3114
3250
  declare interface XlsxRenderOptions extends OutputDiagnosticOptions_2, XlsxImageOptions {
3115
3251
  /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-CktLH_Iy.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-CvbqLUzM.cjs")).then(e=>e.ReportPreview$1)}const t={install(e,o={}){r.machReportPlugin.install(e,o)}};exports.MachReportPreview=r.MachReportPreview;exports.default=t;exports.machReportAsyncPlugin=t;exports.preloadMachReport=i;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-DHO7X8z2.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-DbLvvOUT.cjs")).then(e=>e.ReportPreview$1)}const t={install(e,o={}){r.machReportPlugin.install(e,o)}};exports.MachReportPreview=r.MachReportPreview;exports.default=t;exports.machReportAsyncPlugin=t;exports.preloadMachReport=i;
package/dist/vue-async.js CHANGED
@@ -1,7 +1,7 @@
1
- import { m as o } from "./plugin-BGKf-Tqg.js";
2
- import { M as l } from "./plugin-BGKf-Tqg.js";
1
+ import { m as o } from "./plugin-Ca_XZG3l.js";
2
+ import { M as l } from "./plugin-Ca_XZG3l.js";
3
3
  function a() {
4
- return import("./ReportPreview-D_ywJ_-H.js").then((t) => t.s);
4
+ return import("./ReportPreview-ChV19HBp.js").then((t) => t.s);
5
5
  }
6
6
  const n = {
7
7
  install(t, r = {}) {
package/dist/vue.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("@agile-team/mach-report"),i=require("./ReportPreview-CvbqLUzM.cjs"),a=require("./config-0UIohTS7.cjs"),f=require("./injection-keys-Db_DyLkm.cjs"),C=require("./plugin-CktLH_Iy.cjs"),h=require("vue"),M=require("./data-explanation-BktvER5B.cjs");function v(r){const e=E.createReportSource(r),o=async t=>{if(t.reportIds.length===0)throw new i.PlanLoadError("缺少报表 ID");for(const n of t.reportIds)if(!Object.prototype.hasOwnProperty.call(r,n)||!r[n])throw new i.PlanLoadError(`本地模板 ${n} 不存在`);return e(t)};return o.getParamDefs=e.getParamDefs,o}const A=Object.freeze({loading:!1,hasPlan:!1,pageCount:0,currentPage:1,exporting:null,printing:!1,canExport:!1,canPrint:!1,error:null,pdfFont:Object.freeze({status:"unchecked",fontUrl:""})});function I(){const r=h.shallowRef(null),e=()=>r.value?.state??A,o=Object.freeze({get loading(){return e().loading},get hasPlan(){return e().hasPlan},get pageCount(){return e().pageCount},get currentPage(){return e().currentPage},get exporting(){return e().exporting},get printing(){return e().printing},get canExport(){return e().canExport},get canPrint(){return e().canPrint},get error(){return e().error},get pdfFont(){return e().pdfFont},get editing(){return e().editing??!1},get saving(){return e().saving??!1},get importing(){return e().importing??!1},get dirty(){return e().dirty??!1},get pendingLocalChanges(){return e().pendingLocalChanges??!1},get task(){return e().task??null},get diagnostics(){return e().diagnostics??[]},get reportIds(){return e().reportIds??[]},get params(){return e().params??{}},get canUndo(){return e().canUndo??!1},get canRedo(){return e().canRedo??!1},get changeCount(){return e().changeCount??0},get selection(){return e().selection??null}});function t(){if(!r.value)throw new a.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return r.value}return{ref(n){const s=n;r.value=s&&typeof s.reload=="function"&&typeof s.print=="function"&&typeof s.exportAs=="function"&&typeof s.openPdfWindow=="function"&&typeof s.gotoPage=="function"&&typeof s.setParams=="function"?s:null},ready:h.computed(()=>r.value!==null),state:o,async checkPdfFont(){const n=t();return n.checkPdfFont?n.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},cancelTask(){t().cancelTask?.()},async confirmDiscard(n){return await t().confirmDiscard?.(n)??!0},getOutputDiagnostics(n){return t().getOutputDiagnostics?.(n)??[]},async reload(){await t().reload()},async print(){await t().print()},async exportAs(n){await t().exportAs(n)},openPdfWindow(){t().openPdfWindow()},gotoPage(n){t().gotoPage(n)},async setParams(n,s){await t().setParams(n,s)},async importExcel(n,s){const g=t();if(!g.importExcel)throw new a.MachReportError("config","旧自定义控制器未提供 Excel 导入");return g.importExcel(n,s)},getPlan(){return t().getPlan?.()??null},getChanges(){return t().getChanges?.()??[]},getDifferences:()=>t().getDifferences?.()??[],undo:async()=>await t().undo?.()??!1,redo:async()=>await t().redo?.()??!1,restoreChanges:async()=>await t().restoreChanges?.()??!1,getSelection:()=>t().getSelection?.()??null,focusCell:async(n,s)=>await t().focusCell?.(n,s)??!1,focusField:async n=>await t().focusField?.(n)??!1,copySelection:()=>t().copySelection?.()??"",pasteSelection:async n=>await t().pasteSelection?.(n)??!1}}function L(){return h.inject(f.MACH_REPORT_CONTROLLER_KEY,null)}function T(r){return!!r&&typeof r=="object"&&!Array.isArray(r)}function D(r){return Array.isArray(r)&&r.every(e=>T(e)&&typeof e.code=="string"&&typeof e.message=="string"&&["info","warning","error"].includes(e.severity)&&(e.path===void 0||typeof e.path=="string")&&M.hasValidDataExplanation(e))}function x(r,e){return Array.isArray(r)&&r.every(o=>T(o)&&Number.isSafeInteger(o.editIndex)&&o.editIndex>=0&&o.editIndex<e&&typeof o.code=="string"&&typeof o.message=="string")}function F(r,e){let o;if(!T(r)||typeof r.revision!="string"||!r.revision.trim()?o="非空 revision(请先在适配器解包业务响应)":r.sourceToken!==void 0&&typeof r.sourceToken!="string"?o="字符串 sourceToken":r.diagnostics!==void 0&&!D(r.diagnostics)?o="结构化 diagnostics":r.conflicts!==void 0&&!x(r.conflicts,e)&&(o="有效 editIndex/code/message conflicts"),o)throw new a.MachReportError("edit",`ReportProvider.save 必须返回${o};服务器可能已提交,请重新查询确认后再编辑`)}function _(r){return typeof r=="function"?r():r}function b(r,e){const o=new Set(r.flatMap(t=>t.source?.[e]===void 0?[]:[String(t.source[e])]));return o.size===1?[...o][0]:void 0}function y(r,e,o,t){return typeof r=="function"?r():b(e,o)??t??r}function q(r){return r.requestId??globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function k(r,e){if(!r.save)throw new a.MachReportError("config","ReportProvider.save 未配置,无法启用业务保存");let o="",t,n,s=0;function g(c,u,p){c.conflicts?.length||u!==o||p!==s||(t=c.revision,n=c.sourceToken)}async function m(c,u){if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");const p=_(e.reportId),O={..._(e.params??{})},R=JSON.stringify([p,O]),w=++s;if(R!==o&&(o=R,t=void 0,n=void 0),e.requireSource!==!1&&c.edits.some(l=>!l.source))throw new E.ReportCellEditError("missing");const d=await r.save({reportId:p,params:O,signal:u.signal,requestId:c.requestId,action:u.action,edits:i.cloneReportSnapshot(c.edits),expectedRevision:y(e.expectedRevision,c.edits,"revision",t),sourceToken:y(e.sourceToken,c.edits,"sourceToken",n)});if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");F(d,c.edits.length),d.diagnostics?.forEach(l=>e.onDiagnostic?.(l));const P=d.diagnostics?.filter(l=>l.severity==="error");if(P?.length)throw new a.MachReportError("edit",P.map(l=>l.message).join(";"),{diagnostics:P});const S=d.conflicts?.map(l=>({source:c.edits[l.editIndex]?.source,address:c.edits[l.editIndex]?.address,message:l.message}));return g(d,R,w),{revision:d.revision,sourceToken:d.sourceToken,conflicts:S}}return{requireSource:e.requireSource??!0,canEdit:e.canEdit,validate:e.validate,saveBatch:m,save:(c,u)=>m({requestId:q(u),edits:[i.cloneReportSnapshot(c)]},u)}}exports.PlanLoadError=i.PlanLoadError;exports.REPORT_EXPORT_FORMATS=i.REPORT_EXPORT_FORMATS;exports.REPORT_PREVIEW_TOOLS=i.REPORT_PREVIEW_TOOLS;exports.ReportPagination=i.ReportPagination;exports.ReportPreview=i.ReportPreview;exports.ReportPrintResourceError=i.ReportPrintResourceError;exports.ReportToolbar=i.ReportToolbar;exports.buildPrintDocument=i.buildPrintDocument;exports.buildWordHtml=i.buildWordHtml;exports.createDefaultPdfExporter=i.createDefaultPdfExporter;exports.createFetchRequest=i.createFetchRequest;exports.createPrintCalibrationPlan=i.createPrintCalibrationPlan;exports.createReportStoragePreferences=i.createReportStoragePreferences;exports.joinReportIds=i.joinReportIds;exports.normalizeReportIds=i.normalizeReportIds;exports.preparePrintResources=i.preparePrintResources;exports.printPlans=i.printPlans;exports.usePageWindow=i.usePageWindow;exports.usePrintExport=i.usePrintExport;exports.useZoom=i.useZoom;exports.DEFAULT_CALCULATION_MESSAGES=a.DEFAULT_CALCULATION_MESSAGES;exports.DEFAULT_MESSAGES=a.DEFAULT_MESSAGES;exports.DEFAULT_PRINT_MESSAGES=a.DEFAULT_PRINT_MESSAGES;exports.DEFAULT_THEME=a.DEFAULT_THEME;exports.MachReportError=a.MachReportError;exports.ReportParamPanel=a.ReportParamPanel;exports.SILENT_LOGGER=a.SILENT_LOGGER;exports.defineMachReportConfig=a.defineMachReportConfig;exports.defineMachReportPreset=a.defineMachReportPreset;exports.normalizeReportLoadError=a.normalizeReportLoadError;exports.printCalibration=a.printCalibration;exports.provideMachReportConfig=a.provideMachReportConfig;exports.resolveCalculationMessages=a.resolveCalculationMessages;exports.resolveConfig=a.resolveConfig;exports.snapshotPrintOptions=a.snapshotPrintOptions;exports.themeToCssVars=a.themeToCssVars;exports.toErrorDetail=a.toErrorDetail;exports.useMachReportConfig=a.useMachReportConfig;exports.MACH_REPORT_CONFIG_KEY=f.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=f.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=f.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=f.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=C.MachReportPreview;exports.machReportPlugin=C.machReportPlugin;exports.createLocalFetcher=v;exports.createProviderEditing=k;exports.useMachReport=I;exports.useReportPreview=L;Object.keys(E).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>E[r]})});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("@agile-team/mach-report"),i=require("./ReportPreview-DbLvvOUT.cjs"),a=require("./config-D10us76d.cjs"),g=require("./injection-keys-Db_DyLkm.cjs"),y=require("./plugin-DHO7X8z2.cjs"),h=require("vue"),M=require("./data-explanation-DE55G30w.cjs"),A=require("./progress-B0ctFpKf.cjs");function v(r){const e=E.createReportSource(r),o=async t=>{if(t.reportIds.length===0)throw new i.PlanLoadError("缺少报表 ID");for(const n of t.reportIds)if(!Object.prototype.hasOwnProperty.call(r,n)||!r[n])throw new i.PlanLoadError(`本地模板 ${n} 不存在`);return e(t)};return o.getParamDefs=e.getParamDefs,o}const I=Object.freeze({loading:!1,hasPlan:!1,pageCount:0,currentPage:1,exporting:null,printing:!1,canExport:!1,canPrint:!1,error:null,pdfFont:Object.freeze({status:"unchecked",fontUrl:""})});function L(){const r=h.shallowRef(null),e=()=>r.value?.state??I,o=Object.freeze({get loading(){return e().loading},get hasPlan(){return e().hasPlan},get pageCount(){return e().pageCount},get currentPage(){return e().currentPage},get exporting(){return e().exporting},get printing(){return e().printing},get canExport(){return e().canExport},get canPrint(){return e().canPrint},get error(){return e().error},get pdfFont(){return e().pdfFont},get editing(){return e().editing??!1},get saving(){return e().saving??!1},get importing(){return e().importing??!1},get dirty(){return e().dirty??!1},get pendingLocalChanges(){return e().pendingLocalChanges??!1},get task(){return e().task??null},get diagnostics(){return e().diagnostics??[]},get reportIds(){return e().reportIds??[]},get params(){return e().params??{}},get canUndo(){return e().canUndo??!1},get canRedo(){return e().canRedo??!1},get changeCount(){return e().changeCount??0},get selection(){return e().selection??null}});function t(){if(!r.value)throw new a.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return r.value}return{ref(n){const s=n;r.value=s&&typeof s.reload=="function"&&typeof s.print=="function"&&typeof s.exportAs=="function"&&typeof s.openPdfWindow=="function"&&typeof s.gotoPage=="function"&&typeof s.setParams=="function"?s:null},ready:h.computed(()=>r.value!==null),state:o,async checkPdfFont(){const n=t();return n.checkPdfFont?n.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},cancelTask(){t().cancelTask?.()},async confirmDiscard(n){return await t().confirmDiscard?.(n)??!0},getOutputDiagnostics(n){return t().getOutputDiagnostics?.(n)??[]},async reload(){await t().reload()},async print(){await t().print()},async exportAs(n){await t().exportAs(n)},openPdfWindow(){t().openPdfWindow()},gotoPage(n){t().gotoPage(n)},async setParams(n,s){await t().setParams(n,s)},async importExcel(n,s){const f=t();if(!f.importExcel)throw new a.MachReportError("config","旧自定义控制器未提供 Excel 导入");return f.importExcel(n,s)},getPlan(){return t().getPlan?.()??null},getChanges(){return t().getChanges?.()??[]},getDifferences:()=>t().getDifferences?.()??[],undo:async()=>await t().undo?.()??!1,redo:async()=>await t().redo?.()??!1,restoreChanges:async()=>await t().restoreChanges?.()??!1,getSelection:()=>t().getSelection?.()??null,focusCell:async(n,s)=>await t().focusCell?.(n,s)??!1,focusField:async n=>await t().focusField?.(n)??!1,copySelection:()=>t().copySelection?.()??"",pasteSelection:async n=>await t().pasteSelection?.(n)??!1}}function D(){return h.inject(g.MACH_REPORT_CONTROLLER_KEY,null)}function T(r){return!!r&&typeof r=="object"&&!Array.isArray(r)}function x(r){return Array.isArray(r)&&r.every(e=>T(e)&&typeof e.code=="string"&&typeof e.message=="string"&&["info","warning","error"].includes(e.severity)&&(e.path===void 0||typeof e.path=="string")&&M.hasValidDataExplanation(e))}function F(r,e){return Array.isArray(r)&&r.every(o=>T(o)&&Number.isSafeInteger(o.editIndex)&&o.editIndex>=0&&o.editIndex<e&&typeof o.code=="string"&&typeof o.message=="string")}function b(r,e){let o;if(!T(r)||typeof r.revision!="string"||!r.revision.trim()?o="非空 revision(请先在适配器解包业务响应)":r.sourceToken!==void 0&&typeof r.sourceToken!="string"?o="字符串 sourceToken":r.diagnostics!==void 0&&!x(r.diagnostics)?o="结构化 diagnostics":r.conflicts!==void 0&&!F(r.conflicts,e)&&(o="有效 editIndex/code/message conflicts"),o)throw new a.MachReportError("edit",`ReportProvider.save 必须返回${o};服务器可能已提交,请重新查询确认后再编辑`)}function O(r){return typeof r=="function"?r():r}function q(r,e){const o=new Set(r.flatMap(t=>t.source?.[e]===void 0?[]:[String(t.source[e])]));return o.size===1?[...o][0]:void 0}function _(r,e,o,t){return typeof r=="function"?r():q(e,o)??t??r}function k(r){return r.requestId??globalThis.crypto?.randomUUID?.()??`mr-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`}function U(r,e){if(!r.save)throw new a.MachReportError("config","ReportProvider.save 未配置,无法启用业务保存");let o="",t,n,s=0;function f(c,u,p){c.conflicts?.length||u!==o||p!==s||(t=c.revision,n=c.sourceToken)}async function S(c,u){if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");const p=O(e.reportId),m={...O(e.params??{})},R=JSON.stringify([p,m]),C=++s;if(R!==o&&(o=R,t=void 0,n=void 0),e.requireSource!==!1&&c.edits.some(l=>!l.source))throw new E.ReportCellEditError("missing");const d=await r.save({reportId:p,params:m,signal:u.signal,requestId:c.requestId,action:u.action,edits:i.cloneReportSnapshot(c.edits),expectedRevision:_(e.expectedRevision,c.edits,"revision",t),sourceToken:_(e.sourceToken,c.edits,"sourceToken",n)});if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");b(d,c.edits.length),d.diagnostics?.forEach(l=>A.observeOutput(()=>e.onDiagnostic?.(l)));const P=d.diagnostics?.filter(l=>l.severity==="error");if(P?.length)throw new a.MachReportError("edit",P.map(l=>l.message).join(";"),{diagnostics:P});const w=d.conflicts?.map(l=>({source:c.edits[l.editIndex]?.source,address:c.edits[l.editIndex]?.address,message:l.message}));return f(d,R,C),{revision:d.revision,sourceToken:d.sourceToken,conflicts:w}}return{requireSource:e.requireSource??!0,canEdit:e.canEdit,validate:e.validate,saveBatch:S,save:(c,u)=>S({requestId:k(u),edits:[i.cloneReportSnapshot(c)]},u)}}exports.PlanLoadError=i.PlanLoadError;exports.REPORT_EXPORT_FORMATS=i.REPORT_EXPORT_FORMATS;exports.REPORT_PREVIEW_TOOLS=i.REPORT_PREVIEW_TOOLS;exports.ReportPagination=i.ReportPagination;exports.ReportPreview=i.ReportPreview;exports.ReportPrintResourceError=i.ReportPrintResourceError;exports.ReportToolbar=i.ReportToolbar;exports.buildPrintDocument=i.buildPrintDocument;exports.buildWordHtml=i.buildWordHtml;exports.createDefaultPdfExporter=i.createDefaultPdfExporter;exports.createFetchRequest=i.createFetchRequest;exports.createPrintCalibrationPlan=i.createPrintCalibrationPlan;exports.createReportStoragePreferences=i.createReportStoragePreferences;exports.joinReportIds=i.joinReportIds;exports.normalizeReportIds=i.normalizeReportIds;exports.preparePrintResources=i.preparePrintResources;exports.printPlans=i.printPlans;exports.usePageWindow=i.usePageWindow;exports.usePrintExport=i.usePrintExport;exports.useZoom=i.useZoom;exports.DEFAULT_CALCULATION_MESSAGES=a.DEFAULT_CALCULATION_MESSAGES;exports.DEFAULT_MESSAGES=a.DEFAULT_MESSAGES;exports.DEFAULT_PRINT_MESSAGES=a.DEFAULT_PRINT_MESSAGES;exports.DEFAULT_THEME=a.DEFAULT_THEME;exports.MachReportError=a.MachReportError;exports.PARAM_OPTIONS_MESSAGES=a.PARAM_OPTIONS_MESSAGES;exports.ReportParamPanel=a.ReportParamPanel;exports.SILENT_LOGGER=a.SILENT_LOGGER;exports.defineMachReportConfig=a.defineMachReportConfig;exports.defineMachReportPreset=a.defineMachReportPreset;exports.normalizeReportLoadError=a.normalizeReportLoadError;exports.printCalibration=a.printCalibration;exports.provideMachReportConfig=a.provideMachReportConfig;exports.resolveCalculationMessages=a.resolveCalculationMessages;exports.resolveConfig=a.resolveConfig;exports.snapshotPrintOptions=a.snapshotPrintOptions;exports.themeToCssVars=a.themeToCssVars;exports.toErrorDetail=a.toErrorDetail;exports.useMachReportConfig=a.useMachReportConfig;exports.MACH_REPORT_CONFIG_KEY=g.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=g.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=g.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=g.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=y.MachReportPreview;exports.machReportPlugin=y.machReportPlugin;exports.createLocalFetcher=v;exports.createProviderEditing=U;exports.useMachReport=L;exports.useReportPreview=D;Object.keys(E).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>E[r]})});