@agile-team/mach-report 2.22.0 → 2.23.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 (154) hide show
  1. package/README.md +7 -6
  2. package/dist/{ExcelBindingWizard-CZyppD7I.js → ExcelBindingWizard-D4FLind-.js} +3 -3
  3. package/dist/{ExcelBindingWizard-CW79I6Gl.cjs → ExcelBindingWizard-D4RS5Bpg.cjs} +1 -1
  4. package/dist/{ParamEditor-CiYCJI0b.cjs → ParamEditor-C-6C9rd2.cjs} +1 -1
  5. package/dist/{ParamEditor-DQit-Gdf.js → ParamEditor-CASZt-Ma.js} +2 -2
  6. package/dist/{ReportBatchPanel-DKTpV7MU.js → ReportBatchPanel-Bq7t8a5r.js} +2 -2
  7. package/dist/{ReportBatchPanel-Db6TAfG5.cjs → ReportBatchPanel-YVj5IO5y.cjs} +1 -1
  8. package/dist/ReportLabelStudio-Cqhita1b.cjs +1 -0
  9. package/dist/{ReportLabelStudio-BYnRqmje.js → ReportLabelStudio-Dj7GXhuv.js} +295 -292
  10. package/dist/ReportParamPanel-DZbFVmDL.cjs +1 -0
  11. package/dist/{ReportParamPanel-BHSKVL8k.js → ReportParamPanel-Dgmqro1Y.js} +93 -79
  12. package/dist/ReportPreview-DeWzG8jQ.js +6257 -0
  13. package/dist/ReportPreview-FFIryrIr.cjs +6 -0
  14. package/dist/{ReportTemplateLibrary-DEXH07ND.cjs → ReportTemplateLibrary-BaWodmpm.cjs} +1 -1
  15. package/dist/{ReportTemplateLibrary-BZuKn0YK.js → ReportTemplateLibrary-DdAAAD2I.js} +1 -1
  16. package/dist/{RuleEditor-CIQn547x.js → RuleEditor-D2UwQGF6.js} +59 -59
  17. package/dist/{RuleEditor-zSUmPjKa.cjs → RuleEditor-DcT9xI1v.cjs} +1 -1
  18. package/dist/TemplateOutlinePanel-CUHFFiNM.cjs +1 -0
  19. package/dist/{TemplateOutlinePanel-D0PgOSQE.js → TemplateOutlinePanel-DrT7XN0m.js} +2 -2
  20. package/dist/{TemplateReusePanel-BKlAEF8-.js → TemplateReusePanel-4eejkNqi.js} +2 -2
  21. package/dist/{TemplateReusePanel-DAy_Hwqz.cjs → TemplateReusePanel-DZMyiX5I.cjs} +1 -1
  22. package/dist/{TemplateReviewPanel-div-EH_m.js → TemplateReviewPanel-BIhNLeNw.js} +2 -2
  23. package/dist/{TemplateReviewPanel-CowmHaQQ.cjs → TemplateReviewPanel-DnYImiXu.cjs} +1 -1
  24. package/dist/analytics.cjs +1 -1
  25. package/dist/analytics.js +26 -26
  26. package/dist/artifact-integrity.json +106 -104
  27. package/dist/assets-D2gHc4Mz.cjs +1 -0
  28. package/dist/assets-T_gDeFaz.js +132 -0
  29. package/dist/auto-4pK9HePf.cjs +1 -0
  30. package/dist/auto-CTIJ6PnR.js +257 -0
  31. package/dist/capabilities-DiBj4Qgl.cjs +1 -0
  32. package/dist/capabilities-pg7j7VLT.js +106 -0
  33. package/dist/charts-Cjw5AYkg.cjs +1 -0
  34. package/dist/{charts-Dlv8j2AG.js → charts-CxJZ0XaY.js} +1 -1
  35. package/dist/computed-DK6BruFz.cjs +1 -0
  36. package/dist/{computed-C8NRZQss.js → computed-f3pOqWLX.js} +381 -301
  37. package/dist/data-bar-CeZuFmYl.cjs +1 -0
  38. package/dist/{data-bar-8baGYEZ9.js → data-bar-IkI6VvMQ.js} +1 -1
  39. package/dist/designer-DhrE7jzw.js +7169 -0
  40. package/dist/designer-IAZu6kBX.cjs +2 -0
  41. package/dist/designer.cjs +1 -1
  42. package/dist/designer.d.cts +98 -45
  43. package/dist/designer.d.ts +98 -45
  44. package/dist/designer.js +3 -3
  45. package/dist/dom-ChE5D-L-.cjs +1 -0
  46. package/dist/dom-JWrchIre.js +452 -0
  47. package/dist/dom-cell-address-DLD1mkTB.cjs +1 -0
  48. package/dist/dom-cell-address-Fn-8nk7D.js +11 -0
  49. package/dist/{encoding-ncQAvyOv.cjs → encoding-BefcaHdp.cjs} +1 -1
  50. package/dist/{encoding-DbnhbwI8.js → encoding-CL6rXEkR.js} +2 -2
  51. package/dist/{font-loader-Di0lQKFf.js → font-loader-BT5baV-o.js} +1 -1
  52. package/dist/{font-loader-BB372_XN.cjs → font-loader-Ga51c2VC.cjs} +1 -1
  53. package/dist/grid-strokes-Be24LGuV.cjs +1 -0
  54. package/dist/grid-strokes-EoY66L2f.js +53 -0
  55. package/dist/index.cjs +8 -8
  56. package/dist/index.d.cts +6 -1
  57. package/dist/index.d.ts +6 -1
  58. package/dist/index.js +944 -1259
  59. package/dist/json-snapshot-1tvQNzQE.cjs +2 -0
  60. package/dist/{json-snapshot-DvQbZlD7.js → json-snapshot-OqkPyUk5.js} +763 -776
  61. package/dist/matrix-B8QWbsGM.cjs +1 -0
  62. package/dist/matrix-C6e_r_vp.js +302 -0
  63. package/dist/{pdf-CARdBcuw.cjs → pdf-HiEeXe9H.cjs} +42 -42
  64. package/dist/{pdf-DmlnL5eB.js → pdf-aobetCsy.js} +20 -20
  65. package/dist/pdf.cjs +1 -1
  66. package/dist/pdf.js +2 -2
  67. package/dist/{plugin-AcAQ2m9X.cjs → plugin-BFANt-i8.cjs} +1 -1
  68. package/dist/{plugin-w5Nyt08U.js → plugin-DeYYAL6F.js} +1 -1
  69. package/dist/{prefill-BXBxx5We.js → prefill-Dk4C6S5R.js} +21 -21
  70. package/dist/prefill-DsUD5OoK.cjs +1 -0
  71. package/dist/prepared-DCIxhKFo.js +94 -0
  72. package/dist/prepared-Dv-XM3i1.cjs +1 -0
  73. package/dist/progress-ByiOxUD3.js +250 -0
  74. package/dist/progress-WomPRP3B.cjs +1 -0
  75. package/dist/{protocol-C9ZaylID.cjs → protocol-B9YgfQ_d.cjs} +1 -1
  76. package/dist/{protocol-fjaeKkjf.js → protocol-DxeUKGYG.js} +3 -3
  77. package/dist/record-bindings-DatJZv_e.js +200 -0
  78. package/dist/record-bindings-MBxbeBsi.cjs +1 -0
  79. package/dist/{region-binding-workflow-aA8nxmkZ.js → region-binding-workflow-DjrXuR1q.js} +2 -2
  80. package/dist/{region-binding-workflow-BiJQ7NU6.cjs → region-binding-workflow-l7NGfagJ.cjs} +2 -2
  81. package/dist/report-encoding-worker.cjs +1 -1
  82. package/dist/report-encoding-worker.js +1 -1
  83. package/dist/rich-text-layout-Ciwa6D2o.js +52 -0
  84. package/dist/rich-text-layout-DK7A_a5r.cjs +3 -0
  85. package/dist/{runtime-BTtpjF3D.js → runtime-75Y5Oq5B.js} +52 -51
  86. package/dist/runtime-DKlGd_D4.cjs +1 -0
  87. package/dist/sbom.cdx.json +1 -1
  88. package/dist/server-node.cjs +5 -5
  89. package/dist/server-node.js +1642 -1586
  90. package/dist/server.cjs +1 -1
  91. package/dist/server.js +24 -24
  92. package/dist/style.css +1 -1
  93. package/dist/{template-catalog-JSxSqk5y.js → template-catalog--cjxzgH7.js} +17 -17
  94. package/dist/template-catalog-CoT7jm_6.cjs +1 -0
  95. package/dist/{template-fragments-D2JFj7Du.js → template-fragments-CPpGpQoz.js} +12 -12
  96. package/dist/template-fragments-GVjpew_q.cjs +1 -0
  97. package/dist/template-registry-DI59PXVK.cjs +1 -0
  98. package/dist/{template-registry-Do1Uav2Z.js → template-registry-O0hNIOfB.js} +17 -17
  99. package/dist/{template-serialization-CU4n_Miu.js → template-serialization-CWmHq7lX.js} +1 -1
  100. package/dist/{template-serialization-CgqBo6s-.cjs → template-serialization-CqQY4zDg.cjs} +1 -1
  101. package/dist/{textwrap-CkGjRFT3.js → textwrap-BIjtEWmq.js} +1 -1
  102. package/dist/textwrap-Cy7o1hIR.cjs +4 -0
  103. package/dist/vue/async.d.cts +24 -0
  104. package/dist/vue/async.d.ts +24 -0
  105. package/dist/vue/index.d.cts +25 -1
  106. package/dist/vue/index.d.ts +25 -1
  107. package/dist/vue-async.cjs +1 -1
  108. package/dist/vue-async.js +3 -3
  109. package/dist/vue.cjs +1 -1
  110. package/dist/vue.js +52 -47
  111. package/dist/{workbook-session-BvEBRRMz.cjs → workbook-session-C6-SrnCT.cjs} +4 -4
  112. package/dist/{workbook-session-f0wVlzst.js → workbook-session-C9ZmCBwY.js} +15 -16
  113. package/dist/worker.cjs +1 -1
  114. package/dist/worker.js +4 -4
  115. package/dist/xlsx.cjs +4 -4
  116. package/dist/xlsx.js +184 -179
  117. package/package.json +1 -1
  118. package/dist/ReportLabelStudio-B0i9ohQj.cjs +0 -1
  119. package/dist/ReportParamPanel-lngONOEz.cjs +0 -1
  120. package/dist/ReportPreview-BDgKssYR.js +0 -5887
  121. package/dist/ReportPreview-Dw-4icG6.cjs +0 -6
  122. package/dist/TemplateOutlinePanel-B5SfGYVN.cjs +0 -1
  123. package/dist/assets-CxHunY_9.js +0 -232
  124. package/dist/assets-vbjAGgk8.cjs +0 -1
  125. package/dist/auto-DcUHlKob.cjs +0 -1
  126. package/dist/auto-moShblh1.js +0 -240
  127. package/dist/charts-aCtoswXq.cjs +0 -1
  128. package/dist/component-tree-1_QCiQJX.js +0 -67
  129. package/dist/component-tree-BjZIp6w9.cjs +0 -1
  130. package/dist/computed-4TnxzgIh.cjs +0 -1
  131. package/dist/data-bar-YltqGTaC.cjs +0 -1
  132. package/dist/designer-B7jJeAeG.js +0 -6914
  133. package/dist/designer-BWQVpJeN.cjs +0 -2
  134. package/dist/grid-geometry-D3SJgWFv.js +0 -136
  135. package/dist/grid-geometry-D8ReblRV.cjs +0 -1
  136. package/dist/json-snapshot-nyV63AbB.cjs +0 -2
  137. package/dist/matrix-0hywp0-F.cjs +0 -1
  138. package/dist/matrix-Dy-tyY7E.js +0 -381
  139. package/dist/prefill-DUvejVt1.cjs +0 -1
  140. package/dist/prepared-YXy-fVLw.cjs +0 -1
  141. package/dist/prepared-rXCKqdHY.js +0 -88
  142. package/dist/progress-B0ctFpKf.cjs +0 -1
  143. package/dist/progress-Hc2vxoCs.js +0 -52
  144. package/dist/record-bindings-Ct1HkPrc.cjs +0 -1
  145. package/dist/record-bindings-VZGS-Qd8.js +0 -155
  146. package/dist/rich-text-layout-K48VHUoW.cjs +0 -3
  147. package/dist/rich-text-layout-wxBhnAS7.js +0 -102
  148. package/dist/runtime-Dq0LUsyS.cjs +0 -1
  149. package/dist/template-catalog-CLAM4w7H.cjs +0 -1
  150. package/dist/template-fragments-Ca25Jt7e.cjs +0 -1
  151. package/dist/template-outline-CDWXptuj.js +0 -88
  152. package/dist/template-outline-K4jGhATu.cjs +0 -1
  153. package/dist/template-registry-CWnuGqyP.cjs +0 -1
  154. package/dist/textwrap-OTOUMr4f.cjs +0 -4
@@ -1015,6 +1015,20 @@ declare interface MachReportMessages extends Partial<ReportCalculationMessages>,
1015
1015
  importing?: string;
1016
1016
  editCell?: string;
1017
1017
  editingHint?: string;
1018
+ editCellEditable?: string;
1019
+ editCellReadOnly?: string;
1020
+ editCellFormula?: string;
1021
+ editCellProtected?: string;
1022
+ editCellComplex?: string;
1023
+ editCellStructure?: string;
1024
+ editCellDerived?: string;
1025
+ editCellPermission?: string;
1026
+ editCellBusy?: string;
1027
+ editHistoryLimited?: string;
1028
+ changesSearch?: string;
1029
+ changesAllDatasets?: string;
1030
+ changesNoMatches?: string;
1031
+ changesRange?: string;
1018
1032
  saving?: string;
1019
1033
  editInvalidNumber?: string;
1020
1034
  editInvalidBoolean?: string;
@@ -2068,11 +2082,21 @@ declare interface ReportEditConflict {
2068
2082
  currentValue?: ReportCellValue_2;
2069
2083
  revision?: string | number;
2070
2084
  }
2085
+ declare interface ReportEditHistoryOptions {
2086
+ /** Retained undo/redo transactions. Default 100. Zero disables undo retention. */
2087
+ maxSteps?: number;
2088
+ /** Conservative retained transaction size in bytes. Default 8 MiB. */
2089
+ maxBytes?: number;
2090
+ }
2071
2091
  /** Opt in with true for local drafts, or provide host validation and persistence. */
2072
2092
  declare interface ReportEditingOptions {
2073
2093
  /** Optional field controls, keyed by source.field / table.columnKey; a resolver supports dataset-specific rules. */
2074
2094
  fields?: Readonly<Record<string, ReportCellFieldOptions>> | ((context: ReportCellContext) => ReportCellFieldOptions | undefined);
2075
2095
  canEdit?(context: ReportCellContext): boolean;
2096
+ /** Optional explanation when canEdit rejects a cell. Does not grant editing access. */
2097
+ readOnlyReason?(context: ReportCellContext): string | undefined;
2098
+ /** Bounds undo/redo retention. Net differences and getChanges remain complete. */
2099
+ history?: ReportEditHistoryOptions;
2076
2100
  /** Return an error message or throw to reject the edit. */
2077
2101
  validate?(edit: Readonly<ReportCellEdit_2>, operation: ReportEditOperation): void | string | Promise<void | string>;
2078
2102
  /** Same declarative rules can be run in Node via validateReportDataset. Requires a source-backed session. */
@@ -1847,6 +1847,20 @@ export declare interface MachReportMessages extends Partial<ReportCalculationMes
1847
1847
  importing?: string;
1848
1848
  editCell?: string;
1849
1849
  editingHint?: string;
1850
+ editCellEditable?: string;
1851
+ editCellReadOnly?: string;
1852
+ editCellFormula?: string;
1853
+ editCellProtected?: string;
1854
+ editCellComplex?: string;
1855
+ editCellStructure?: string;
1856
+ editCellDerived?: string;
1857
+ editCellPermission?: string;
1858
+ editCellBusy?: string;
1859
+ editHistoryLimited?: string;
1860
+ changesSearch?: string;
1861
+ changesAllDatasets?: string;
1862
+ changesNoMatches?: string;
1863
+ changesRange?: string;
1850
1864
  saving?: string;
1851
1865
  editInvalidNumber?: string;
1852
1866
  editInvalidBoolean?: string;
@@ -2486,7 +2500,7 @@ export declare function printPlans(plans: RenderPlan_2[], options?: {
2486
2500
  * 同名 preset 与 messages/theme 均按字段继承;组件 props 仍拥有最高优先级。
2487
2501
  */
2488
2502
  export declare function provideMachReportConfig(overlay: MachReportConfigInput | MachReportDefaults): void;
2489
- export declare interface ProviderEditingOptions extends Pick<ReportEditingOptions, "canEdit" | "validate" | "requireSource"> {
2503
+ export declare interface ProviderEditingOptions extends Pick<ReportEditingOptions, "canEdit" | "readOnlyReason" | "history" | "fields" | "validate" | "validation" | "validateBatch" | "requireSource"> {
2490
2504
  reportId: Current<string>;
2491
2505
  params?: Current<Record<string, string>>;
2492
2506
  /** Getters are useful when query metadata is held by the host. Otherwise stable cell sources are used. */
@@ -3052,11 +3066,21 @@ declare interface ReportEditConflict {
3052
3066
  currentValue?: ReportCellValue;
3053
3067
  revision?: string | number;
3054
3068
  }
3069
+ export declare interface ReportEditHistoryOptions {
3070
+ /** Retained undo/redo transactions. Default 100. Zero disables undo retention. */
3071
+ maxSteps?: number;
3072
+ /** Conservative retained transaction size in bytes. Default 8 MiB. */
3073
+ maxBytes?: number;
3074
+ }
3055
3075
  /** Opt in with true for local drafts, or provide host validation and persistence. */
3056
3076
  export declare interface ReportEditingOptions {
3057
3077
  /** Optional field controls, keyed by source.field / table.columnKey; a resolver supports dataset-specific rules. */
3058
3078
  fields?: Readonly<Record<string, ReportCellFieldOptions>> | ((context: ReportCellContext) => ReportCellFieldOptions | undefined);
3059
3079
  canEdit?(context: ReportCellContext): boolean;
3080
+ /** Optional explanation when canEdit rejects a cell. Does not grant editing access. */
3081
+ readOnlyReason?(context: ReportCellContext): string | undefined;
3082
+ /** Bounds undo/redo retention. Net differences and getChanges remain complete. */
3083
+ history?: ReportEditHistoryOptions;
3060
3084
  /** Return an error message or throw to reject the edit. */
3061
3085
  validate?(edit: Readonly<ReportCellEdit>, operation: ReportEditOperation): void | string | Promise<void | string>;
3062
3086
  /** Same declarative rules can be run in Node via validateReportDataset. Requires a source-backed session. */
@@ -1847,6 +1847,20 @@ export declare interface MachReportMessages extends Partial<ReportCalculationMes
1847
1847
  importing?: string;
1848
1848
  editCell?: string;
1849
1849
  editingHint?: string;
1850
+ editCellEditable?: string;
1851
+ editCellReadOnly?: string;
1852
+ editCellFormula?: string;
1853
+ editCellProtected?: string;
1854
+ editCellComplex?: string;
1855
+ editCellStructure?: string;
1856
+ editCellDerived?: string;
1857
+ editCellPermission?: string;
1858
+ editCellBusy?: string;
1859
+ editHistoryLimited?: string;
1860
+ changesSearch?: string;
1861
+ changesAllDatasets?: string;
1862
+ changesNoMatches?: string;
1863
+ changesRange?: string;
1850
1864
  saving?: string;
1851
1865
  editInvalidNumber?: string;
1852
1866
  editInvalidBoolean?: string;
@@ -2486,7 +2500,7 @@ export declare function printPlans(plans: RenderPlan_2[], options?: {
2486
2500
  * 同名 preset 与 messages/theme 均按字段继承;组件 props 仍拥有最高优先级。
2487
2501
  */
2488
2502
  export declare function provideMachReportConfig(overlay: MachReportConfigInput | MachReportDefaults): void;
2489
- export declare interface ProviderEditingOptions extends Pick<ReportEditingOptions, "canEdit" | "validate" | "requireSource"> {
2503
+ export declare interface ProviderEditingOptions extends Pick<ReportEditingOptions, "canEdit" | "readOnlyReason" | "history" | "fields" | "validate" | "validation" | "validateBatch" | "requireSource"> {
2490
2504
  reportId: Current<string>;
2491
2505
  params?: Current<Record<string, string>>;
2492
2506
  /** Getters are useful when query metadata is held by the host. Otherwise stable cell sources are used. */
@@ -3052,11 +3066,21 @@ declare interface ReportEditConflict {
3052
3066
  currentValue?: ReportCellValue;
3053
3067
  revision?: string | number;
3054
3068
  }
3069
+ export declare interface ReportEditHistoryOptions {
3070
+ /** Retained undo/redo transactions. Default 100. Zero disables undo retention. */
3071
+ maxSteps?: number;
3072
+ /** Conservative retained transaction size in bytes. Default 8 MiB. */
3073
+ maxBytes?: number;
3074
+ }
3055
3075
  /** Opt in with true for local drafts, or provide host validation and persistence. */
3056
3076
  export declare interface ReportEditingOptions {
3057
3077
  /** Optional field controls, keyed by source.field / table.columnKey; a resolver supports dataset-specific rules. */
3058
3078
  fields?: Readonly<Record<string, ReportCellFieldOptions>> | ((context: ReportCellContext) => ReportCellFieldOptions | undefined);
3059
3079
  canEdit?(context: ReportCellContext): boolean;
3080
+ /** Optional explanation when canEdit rejects a cell. Does not grant editing access. */
3081
+ readOnlyReason?(context: ReportCellContext): string | undefined;
3082
+ /** Bounds undo/redo retention. Net differences and getChanges remain complete. */
3083
+ history?: ReportEditHistoryOptions;
3060
3084
  /** Return an error message or throw to reject the edit. */
3061
3085
  validate?(edit: Readonly<ReportCellEdit>, operation: ReportEditOperation): void | string | Promise<void | string>;
3062
3086
  /** Same declarative rules can be run in Node via validateReportDataset. Requires a source-backed session. */
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-AcAQ2m9X.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-Dw-4icG6.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-BFANt-i8.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-FFIryrIr.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-w5Nyt08U.js";
2
- import { M as l } from "./plugin-w5Nyt08U.js";
1
+ import { m as o } from "./plugin-DeYYAL6F.js";
2
+ import { M as l } from "./plugin-DeYYAL6F.js";
3
3
  function a() {
4
- return import("./ReportPreview-BDgKssYR.js").then((t) => t.x);
4
+ return import("./ReportPreview-DeWzG8jQ.js").then((t) => t.x);
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"),n=require("./ReportPreview-Dw-4icG6.cjs"),i=require("./ReportParamPanel-lngONOEz.cjs"),p=require("./injection-keys-Db_DyLkm.cjs"),O=require("./plugin-AcAQ2m9X.cjs"),T=require("vue"),C=require("./json-snapshot-nyV63AbB.cjs"),y=require("./progress-B0ctFpKf.cjs");function v(r){const e=E.createReportSource(r),a=async t=>{if(t.reportIds.length===0)throw new n.PlanLoadError("缺少报表 ID");for(const o of t.reportIds)if(!Object.prototype.hasOwnProperty.call(r,o)||!r[o])throw new n.PlanLoadError(`本地模板 ${o} 不存在`);return e(t)};return a.getParamDefs=e.getParamDefs,a}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 D(){const r=T.shallowRef(null),e=()=>r.value?.state??I,a=Object.freeze({get loading(){return e().loading},get stale(){return e().stale??!1},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 i.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return r.value}return{ref(o){const s=o;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:T.computed(()=>r.value!==null),state:a,async checkPdfFont(){const o=t();return o.checkPdfFont?o.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},cancelTask(){t().cancelTask?.()},async confirmDiscard(o){return await t().confirmDiscard?.(o)??!0},getOutputDiagnostics(o){return t().getOutputDiagnostics?.(o)??[]},async reload(){await t().reload()},async print(){await t().print()},async exportAs(o){await t().exportAs(o)},openPdfWindow(){t().openPdfWindow()},gotoPage(o){t().gotoPage(o)},async setParams(o,s){await t().setParams(o,s)},async importExcel(o,s){const f=t();if(!f.importExcel)throw new i.MachReportError("config","旧自定义控制器未提供 Excel 导入");return f.importExcel(o,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(o,s)=>await t().focusCell?.(o,s)??!1,focusField:async o=>await t().focusField?.(o)??!1,copySelection:()=>t().copySelection?.()??"",pasteSelection:async o=>await t().pasteSelection?.(o)??!1}}function L(){return T.inject(p.MACH_REPORT_CONTROLLER_KEY,null)}function h(r){return!!r&&typeof r=="object"&&!Array.isArray(r)}function x(r){return Array.isArray(r)&&r.every(e=>h(e)&&typeof e.code=="string"&&typeof e.message=="string"&&["info","warning","error"].includes(e.severity)&&(e.path===void 0||typeof e.path=="string")&&C.hasValidDataExplanation(e))}function F(r,e){return Array.isArray(r)&&r.every(a=>h(a)&&Number.isSafeInteger(a.editIndex)&&a.editIndex>=0&&a.editIndex<e&&typeof a.code=="string"&&typeof a.message=="string")}function b(r,e){let a;if(!h(r)||typeof r.revision!="string"||!r.revision.trim()?a="非空 revision(请先在适配器解包业务响应)":r.sourceToken!==void 0&&typeof r.sourceToken!="string"?a="字符串 sourceToken":r.diagnostics!==void 0&&!x(r.diagnostics)?a="结构化 diagnostics":r.conflicts!==void 0&&!F(r.conflicts,e)&&(a="有效 editIndex/code/message conflicts"),a)throw new i.MachReportError("edit",`ReportProvider.save 必须返回${a};服务器可能已提交,请重新查询确认后再编辑`)}function m(r){return typeof r=="function"?r():r}function q(r,e){const a=new Set(r.flatMap(t=>t.source?.[e]===void 0?[]:[String(t.source[e])]));return a.size===1?[...a][0]:void 0}function A(r,e,a,t){return typeof r=="function"?r():q(e,a)??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 i.MachReportError("config","ReportProvider.save 未配置,无法启用业务保存");let a="",t,o,s=0;function f(c,u,g){c.conflicts?.length||u!==a||g!==s||(t=c.revision,o=c.sourceToken)}async function S(c,u){if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");const g=m(e.reportId),_={...m(e.params??{})},R=JSON.stringify([g,_]),M=++s;if(R!==a&&(a=R,t=void 0,o=void 0),e.requireSource!==!1&&c.edits.some(l=>!l.source))throw new E.ReportCellEditError("missing");const d=await r.save({reportId:g,params:_,signal:u.signal,requestId:c.requestId,action:u.action,edits:n.cloneReportSnapshot(c.edits),expectedRevision:A(e.expectedRevision,c.edits,"revision",t),sourceToken:A(e.sourceToken,c.edits,"sourceToken",o)});if(u.signal.aborted)throw u.signal.reason??new DOMException("Aborted","AbortError");b(d,c.edits.length),d.diagnostics?.forEach(l=>y.observeOutput(()=>e.onDiagnostic?.(l)));const P=d.diagnostics?.filter(l=>l.severity==="error");if(P?.length)throw new i.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,M),{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:[n.cloneReportSnapshot(c)]},u)}}exports.PlanLoadError=n.PlanLoadError;exports.REPORT_EXPORT_FORMATS=n.REPORT_EXPORT_FORMATS;exports.REPORT_PREVIEW_TOOLS=n.REPORT_PREVIEW_TOOLS;exports.ReportDataComparisonPanel=n._sfc_main;exports.ReportExportMenu=n.ReportExportMenu;exports.ReportPagination=n.ReportPagination;exports.ReportPrefillPanel=n._sfc_main$1;exports.ReportPreview=n.ReportPreview;exports.ReportPrintResourceError=n.ReportPrintResourceError;exports.ReportTaskStatus=n.ReportTaskStatus;exports.ReportToolbar=n.ReportToolbar;exports.ReportValidationPanel=n.ReportValidationPanel;exports.buildPrintDocument=n.buildPrintDocument;exports.buildWordHtml=n.buildWordHtml;exports.createDefaultPdfExporter=n.createDefaultPdfExporter;exports.createFetchRequest=n.createFetchRequest;exports.createPrintCalibrationPlan=n.createPrintCalibrationPlan;exports.createReportStoragePreferences=n.createReportStoragePreferences;exports.joinReportIds=n.joinReportIds;exports.normalizeReportIds=n.normalizeReportIds;exports.preparePrintResources=n.preparePrintResources;exports.printPlans=n.printPlans;exports.usePageWindow=n.usePageWindow;exports.usePrintExport=n.usePrintExport;exports.useZoom=n.useZoom;exports.DEFAULT_CALCULATION_MESSAGES=i.DEFAULT_CALCULATION_MESSAGES;exports.DEFAULT_DATA_REVIEW_MESSAGES=i.DEFAULT_DATA_REVIEW_MESSAGES;exports.DEFAULT_MESSAGES=i.DEFAULT_MESSAGES;exports.DEFAULT_PRINT_MESSAGES=i.DEFAULT_PRINT_MESSAGES;exports.DEFAULT_THEME=i.DEFAULT_THEME;exports.MachReportError=i.MachReportError;exports.PARAM_OPTIONS_MESSAGES=i.PARAM_OPTIONS_MESSAGES;exports.ReportParamPanel=i.ReportParamPanel;exports.SILENT_LOGGER=i.SILENT_LOGGER;exports.defineMachReportConfig=i.defineMachReportConfig;exports.defineMachReportPreset=i.defineMachReportPreset;exports.normalizeReportLoadError=i.normalizeReportLoadError;exports.printCalibration=i.printCalibration;exports.provideMachReportConfig=i.provideMachReportConfig;exports.resolveCalculationMessages=i.resolveCalculationMessages;exports.resolveConfig=i.resolveConfig;exports.resolveDataReviewMessages=i.resolveDataReviewMessages;exports.snapshotPrintOptions=i.snapshotPrintOptions;exports.themeToCssVars=i.themeToCssVars;exports.toErrorDetail=i.toErrorDetail;exports.useMachReportConfig=i.useMachReportConfig;exports.MACH_REPORT_CONFIG_KEY=p.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=p.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=p.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=p.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=O.MachReportPreview;exports.machReportPlugin=O.machReportPlugin;exports.createLocalFetcher=v;exports.createProviderEditing=U;exports.useMachReport=D;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"),o=require("./ReportPreview-FFIryrIr.cjs"),i=require("./ReportParamPanel-DZbFVmDL.cjs"),f=require("./injection-keys-Db_DyLkm.cjs"),A=require("./plugin-BFANt-i8.cjs"),h=require("vue"),v=require("./json-snapshot-1tvQNzQE.cjs"),w=require("./progress-WomPRP3B.cjs");function C(r){const e=E.createReportSource(r),a=async t=>{if(t.reportIds.length===0)throw new o.PlanLoadError("缺少报表 ID");for(const n of t.reportIds)if(!Object.prototype.hasOwnProperty.call(r,n)||!r[n])throw new o.PlanLoadError(`本地模板 ${n} 不存在`);return e(t)};return a.getParamDefs=e.getParamDefs,a}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 D(){const r=h.shallowRef(null),e=()=>r.value?.state??I,a=Object.freeze({get loading(){return e().loading},get stale(){return e().stale??!1},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 i.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:a,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 i.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 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")&&v.hasValidDataExplanation(e))}function F(r,e){return Array.isArray(r)&&r.every(a=>T(a)&&Number.isSafeInteger(a.editIndex)&&a.editIndex>=0&&a.editIndex<e&&typeof a.code=="string"&&typeof a.message=="string")}function b(r,e){let a;if(!T(r)||typeof r.revision!="string"||!r.revision.trim()?a="非空 revision(请先在适配器解包业务响应)":r.sourceToken!==void 0&&typeof r.sourceToken!="string"?a="字符串 sourceToken":r.diagnostics!==void 0&&!x(r.diagnostics)?a="结构化 diagnostics":r.conflicts!==void 0&&!F(r.conflicts,e)&&(a="有效 editIndex/code/message conflicts"),a)throw new i.MachReportError("edit",`ReportProvider.save 必须返回${a};服务器可能已提交,请重新查询确认后再编辑`)}function m(r){return typeof r=="function"?r():r}function q(r,e){const a=new Set(r.flatMap(t=>t.source?.[e]===void 0?[]:[String(t.source[e])]));return a.size===1?[...a][0]:void 0}function O(r,e,a,t){return typeof r=="function"?r():q(e,a)??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 i.MachReportError("config","ReportProvider.save 未配置,无法启用业务保存");let a="",t,n,s=0;function g(c,l,p){c.conflicts?.length||l!==a||p!==s||(t=c.revision,n=c.sourceToken)}async function S(c,l){if(l.signal.aborted)throw l.signal.reason??new DOMException("Aborted","AbortError");const p=m(e.reportId),_={...m(e.params??{})},R=JSON.stringify([p,_]),M=++s;if(R!==a&&(a=R,t=void 0,n=void 0),e.requireSource!==!1&&c.edits.some(u=>!u.source))throw new E.ReportCellEditError("missing");const d=await r.save({reportId:p,params:_,signal:l.signal,requestId:c.requestId,action:l.action,edits:o.cloneReportSnapshot(c.edits),expectedRevision:O(e.expectedRevision,c.edits,"revision",t),sourceToken:O(e.sourceToken,c.edits,"sourceToken",n)});if(l.signal.aborted)throw l.signal.reason??new DOMException("Aborted","AbortError");b(d,c.edits.length),d.diagnostics?.forEach(u=>w.observeOutput(()=>e.onDiagnostic?.(u)));const P=d.diagnostics?.filter(u=>u.severity==="error");if(P?.length)throw new i.MachReportError("edit",P.map(u=>u.message).join(";"),{diagnostics:P});const y=d.conflicts?.map(u=>({source:c.edits[u.editIndex]?.source,address:c.edits[u.editIndex]?.address,message:u.message}));return g(d,R,M),{revision:d.revision,sourceToken:d.sourceToken,conflicts:y}}return{requireSource:e.requireSource??!0,canEdit:e.canEdit,readOnlyReason:e.readOnlyReason,history:e.history,fields:e.fields,validate:e.validate,validation:e.validation,validateBatch:e.validateBatch,saveBatch:S,save:(c,l)=>S({requestId:k(l),edits:[o.cloneReportSnapshot(c)]},l)}}exports.PlanLoadError=o.PlanLoadError;exports.REPORT_EXPORT_FORMATS=o.REPORT_EXPORT_FORMATS;exports.REPORT_PREVIEW_TOOLS=o.REPORT_PREVIEW_TOOLS;exports.ReportDataComparisonPanel=o._sfc_main;exports.ReportExportMenu=o.ReportExportMenu;exports.ReportPagination=o.ReportPagination;exports.ReportPrefillPanel=o._sfc_main$1;exports.ReportPreview=o.ReportPreview;exports.ReportPrintResourceError=o.ReportPrintResourceError;exports.ReportTaskStatus=o.ReportTaskStatus;exports.ReportToolbar=o.ReportToolbar;exports.ReportValidationPanel=o.ReportValidationPanel;exports.buildPrintDocument=o.buildPrintDocument;exports.buildWordHtml=o.buildWordHtml;exports.createDefaultPdfExporter=o.createDefaultPdfExporter;exports.createFetchRequest=o.createFetchRequest;exports.createPrintCalibrationPlan=o.createPrintCalibrationPlan;exports.createReportStoragePreferences=o.createReportStoragePreferences;exports.joinReportIds=o.joinReportIds;exports.normalizeReportIds=o.normalizeReportIds;exports.preparePrintResources=o.preparePrintResources;exports.printPlans=o.printPlans;exports.usePageWindow=o.usePageWindow;exports.usePrintExport=o.usePrintExport;exports.useZoom=o.useZoom;exports.DEFAULT_CALCULATION_MESSAGES=i.DEFAULT_CALCULATION_MESSAGES;exports.DEFAULT_DATA_REVIEW_MESSAGES=i.DEFAULT_DATA_REVIEW_MESSAGES;exports.DEFAULT_MESSAGES=i.DEFAULT_MESSAGES;exports.DEFAULT_PRINT_MESSAGES=i.DEFAULT_PRINT_MESSAGES;exports.DEFAULT_THEME=i.DEFAULT_THEME;exports.MachReportError=i.MachReportError;exports.PARAM_OPTIONS_MESSAGES=i.PARAM_OPTIONS_MESSAGES;exports.ReportParamPanel=i.ReportParamPanel;exports.SILENT_LOGGER=i.SILENT_LOGGER;exports.defineMachReportConfig=i.defineMachReportConfig;exports.defineMachReportPreset=i.defineMachReportPreset;exports.normalizeReportLoadError=i.normalizeReportLoadError;exports.printCalibration=i.printCalibration;exports.provideMachReportConfig=i.provideMachReportConfig;exports.resolveCalculationMessages=i.resolveCalculationMessages;exports.resolveConfig=i.resolveConfig;exports.resolveDataReviewMessages=i.resolveDataReviewMessages;exports.snapshotPrintOptions=i.snapshotPrintOptions;exports.themeToCssVars=i.themeToCssVars;exports.toErrorDetail=i.toErrorDetail;exports.useMachReportConfig=i.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=A.MachReportPreview;exports.machReportPlugin=A.machReportPlugin;exports.createLocalFetcher=C;exports.createProviderEditing=U;exports.useMachReport=D;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]})});
package/dist/vue.js CHANGED
@@ -1,17 +1,17 @@
1
- import { createReportSource as v, ReportCellEditError as A } from "@agile-team/mach-report";
1
+ import { createReportSource as T, ReportCellEditError as A } from "@agile-team/mach-report";
2
2
  export * from "@agile-team/mach-report";
3
- import { P as R, c as h } from "./ReportPreview-BDgKssYR.js";
4
- import { R as Z, a as Q, _ as ee, b as re, d as te, e as ne, f as oe, g as se, h as ae, i as ie, j as ce, k as ue, l as fe, m as le, n as de, o as ge, p as pe, q as Pe, r as me, s as Ee, t as Re, u as he, v as we, w as ye } from "./ReportPreview-BDgKssYR.js";
5
- import { M as f } from "./ReportParamPanel-BHSKVL8k.js";
6
- import { D as Te, a as ve, b as Ae, c as xe, d as Ce, P as _e, R as Ie, S as Me, e as Oe, f as De, n as ke, p as Fe, g as Le, r as be, h as Ue, i as qe, s as je, t as Ge, j as Ne, u as He } from "./ReportParamPanel-BHSKVL8k.js";
3
+ import { P as R, c as h } from "./ReportPreview-DeWzG8jQ.js";
4
+ import { R as Z, a as Q, _ as ee, b as re, d as te, e as ne, f as oe, g as ae, h as se, i as ie, j as ce, k as ue, l as fe, m as le, n as de, o as ge, p as pe, q as Pe, r as me, s as Ee, t as Re, u as he, v as ye, w as we } from "./ReportPreview-DeWzG8jQ.js";
5
+ import { M as f } from "./ReportParamPanel-Dgmqro1Y.js";
6
+ import { D as ve, a as Te, b as Ae, c as xe, d as Ce, P as Oe, R as _e, S as Ie, e as Me, f as De, n as ke, p as Fe, g as Le, r as be, h as Ue, i as qe, s as je, t as Ge, j as Ne, u as He } from "./ReportParamPanel-Dgmqro1Y.js";
7
7
  import { M as x } from "./injection-keys-e85udZCp.js";
8
8
  import { a as ze, b as Ve, c as Ye } from "./injection-keys-e85udZCp.js";
9
- import { M as $e, m as Xe } from "./plugin-w5Nyt08U.js";
10
- import { shallowRef as C, computed as _, inject as I } from "vue";
11
- import { x as M } from "./json-snapshot-DvQbZlD7.js";
12
- import { a as O } from "./progress-Hc2vxoCs.js";
9
+ import { M as $e, m as Be } from "./plugin-DeYYAL6F.js";
10
+ import { shallowRef as C, computed as O, inject as _ } from "vue";
11
+ import { v as I } from "./json-snapshot-OqkPyUk5.js";
12
+ import { u as M } from "./progress-ByiOxUD3.js";
13
13
  function V(r) {
14
- const e = v(r), o = async (t) => {
14
+ const e = T(r), o = async (t) => {
15
15
  if (t.reportIds.length === 0) throw new R("缺少报表 ID");
16
16
  for (const n of t.reportIds)
17
17
  if (!Object.prototype.hasOwnProperty.call(r, n) || !r[n])
@@ -114,10 +114,10 @@ function Y() {
114
114
  }
115
115
  return {
116
116
  ref(n) {
117
- const s = n;
118
- 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;
117
+ const a = n;
118
+ r.value = a && typeof a.reload == "function" && typeof a.print == "function" && typeof a.exportAs == "function" && typeof a.openPdfWindow == "function" && typeof a.gotoPage == "function" && typeof a.setParams == "function" ? a : null;
119
119
  },
120
- ready: _(() => r.value !== null),
120
+ ready: O(() => r.value !== null),
121
121
  state: o,
122
122
  async checkPdfFont() {
123
123
  const n = t();
@@ -147,13 +147,13 @@ function Y() {
147
147
  gotoPage(n) {
148
148
  t().gotoPage(n);
149
149
  },
150
- async setParams(n, s) {
151
- await t().setParams(n, s);
150
+ async setParams(n, a) {
151
+ await t().setParams(n, a);
152
152
  },
153
- async importExcel(n, s) {
153
+ async importExcel(n, a) {
154
154
  const l = t();
155
155
  if (!l.importExcel) throw new f("config", "旧自定义控制器未提供 Excel 导入");
156
- return l.importExcel(n, s);
156
+ return l.importExcel(n, a);
157
157
  },
158
158
  getPlan() {
159
159
  return t().getPlan?.() ?? null;
@@ -166,20 +166,20 @@ function Y() {
166
166
  redo: async () => await t().redo?.() ?? !1,
167
167
  restoreChanges: async () => await t().restoreChanges?.() ?? !1,
168
168
  getSelection: () => t().getSelection?.() ?? null,
169
- focusCell: async (n, s) => await t().focusCell?.(n, s) ?? !1,
169
+ focusCell: async (n, a) => await t().focusCell?.(n, a) ?? !1,
170
170
  focusField: async (n) => await t().focusField?.(n) ?? !1,
171
171
  copySelection: () => t().copySelection?.() ?? "",
172
172
  pasteSelection: async (n) => await t().pasteSelection?.(n) ?? !1
173
173
  };
174
174
  }
175
175
  function K() {
176
- return I(x, null);
176
+ return _(x, null);
177
177
  }
178
178
  function P(r) {
179
179
  return !!r && typeof r == "object" && !Array.isArray(r);
180
180
  }
181
181
  function k(r) {
182
- return Array.isArray(r) && r.every((e) => P(e) && typeof e.code == "string" && typeof e.message == "string" && ["info", "warning", "error"].includes(e.severity) && (e.path === void 0 || typeof e.path == "string") && M(e));
182
+ return Array.isArray(r) && r.every((e) => P(e) && typeof e.code == "string" && typeof e.message == "string" && ["info", "warning", "error"].includes(e.severity) && (e.path === void 0 || typeof e.path == "string") && I(e));
183
183
  }
184
184
  function F(r, e) {
185
185
  return Array.isArray(r) && r.every((o) => P(o) && Number.isSafeInteger(o.editIndex) && o.editIndex >= 0 && o.editIndex < e && typeof o.code == "string" && typeof o.message == "string");
@@ -188,14 +188,14 @@ function L(r, e) {
188
188
  let o;
189
189
  if (!P(r) || typeof r.revision != "string" || !r.revision.trim() ? o = "非空 revision(请先在适配器解包业务响应)" : r.sourceToken !== void 0 && typeof r.sourceToken != "string" ? o = "字符串 sourceToken" : r.diagnostics !== void 0 && !k(r.diagnostics) ? o = "结构化 diagnostics" : r.conflicts !== void 0 && !F(r.conflicts, e) && (o = "有效 editIndex/code/message conflicts"), o) throw new f("edit", `ReportProvider.save 必须返回${o};服务器可能已提交,请重新查询确认后再编辑`);
190
190
  }
191
- function w(r) {
191
+ function y(r) {
192
192
  return typeof r == "function" ? r() : r;
193
193
  }
194
194
  function b(r, e) {
195
195
  const o = new Set(r.flatMap((t) => t.source?.[e] === void 0 ? [] : [String(t.source[e])]));
196
196
  return o.size === 1 ? [...o][0] : void 0;
197
197
  }
198
- function y(r, e, o, t) {
198
+ function w(r, e, o, t) {
199
199
  return typeof r == "function" ? r() : b(e, o) ?? t ?? r;
200
200
  }
201
201
  function U(r) {
@@ -203,42 +203,47 @@ function U(r) {
203
203
  }
204
204
  function $(r, e) {
205
205
  if (!r.save) throw new f("config", "ReportProvider.save 未配置,无法启用业务保存");
206
- let o = "", t, n, s = 0;
207
- function l(a, i, d) {
208
- a.conflicts?.length || i !== o || d !== s || (t = a.revision, n = a.sourceToken);
206
+ let o = "", t, n, a = 0;
207
+ function l(s, i, d) {
208
+ s.conflicts?.length || i !== o || d !== a || (t = s.revision, n = s.sourceToken);
209
209
  }
210
- async function m(a, i) {
210
+ async function m(s, i) {
211
211
  if (i.signal.aborted) throw i.signal.reason ?? new DOMException("Aborted", "AbortError");
212
- const d = w(e.reportId), E = { ...w(e.params ?? {}) }, g = JSON.stringify([d, E]), S = ++s;
213
- if (g !== o && (o = g, t = void 0, n = void 0), e.requireSource !== !1 && a.edits.some((c) => !c.source)) throw new A("missing");
212
+ const d = y(e.reportId), E = { ...y(e.params ?? {}) }, g = JSON.stringify([d, E]), S = ++a;
213
+ if (g !== o && (o = g, t = void 0, n = void 0), e.requireSource !== !1 && s.edits.some((c) => !c.source)) throw new A("missing");
214
214
  const u = await r.save({
215
215
  reportId: d,
216
216
  params: E,
217
217
  signal: i.signal,
218
- requestId: a.requestId,
218
+ requestId: s.requestId,
219
219
  action: i.action,
220
- edits: h(a.edits),
221
- expectedRevision: y(e.expectedRevision, a.edits, "revision", t),
222
- sourceToken: y(e.sourceToken, a.edits, "sourceToken", n)
220
+ edits: h(s.edits),
221
+ expectedRevision: w(e.expectedRevision, s.edits, "revision", t),
222
+ sourceToken: w(e.sourceToken, s.edits, "sourceToken", n)
223
223
  });
224
224
  if (i.signal.aborted) throw i.signal.reason ?? new DOMException("Aborted", "AbortError");
225
- L(u, a.edits.length), u.diagnostics?.forEach((c) => O(() => e.onDiagnostic?.(c)));
225
+ L(u, s.edits.length), u.diagnostics?.forEach((c) => M(() => e.onDiagnostic?.(c)));
226
226
  const p = u.diagnostics?.filter((c) => c.severity === "error");
227
227
  if (p?.length) throw new f("edit", p.map((c) => c.message).join(";"), { diagnostics: p });
228
- const T = u.conflicts?.map((c) => ({ source: a.edits[c.editIndex]?.source, address: a.edits[c.editIndex]?.address, message: c.message }));
229
- return l(u, g, S), { revision: u.revision, sourceToken: u.sourceToken, conflicts: T };
228
+ const v = u.conflicts?.map((c) => ({ source: s.edits[c.editIndex]?.source, address: s.edits[c.editIndex]?.address, message: c.message }));
229
+ return l(u, g, S), { revision: u.revision, sourceToken: u.sourceToken, conflicts: v };
230
230
  }
231
231
  return {
232
232
  requireSource: e.requireSource ?? !0,
233
233
  canEdit: e.canEdit,
234
+ readOnlyReason: e.readOnlyReason,
235
+ history: e.history,
236
+ fields: e.fields,
234
237
  validate: e.validate,
238
+ validation: e.validation,
239
+ validateBatch: e.validateBatch,
235
240
  saveBatch: m,
236
- save: (a, i) => m({ requestId: U(i), edits: [h(a)] }, i)
241
+ save: (s, i) => m({ requestId: U(i), edits: [h(s)] }, i)
237
242
  };
238
243
  }
239
244
  export {
240
- Te as DEFAULT_CALCULATION_MESSAGES,
241
- ve as DEFAULT_DATA_REVIEW_MESSAGES,
245
+ ve as DEFAULT_CALCULATION_MESSAGES,
246
+ Te as DEFAULT_DATA_REVIEW_MESSAGES,
242
247
  Ae as DEFAULT_MESSAGES,
243
248
  xe as DEFAULT_PRINT_MESSAGES,
244
249
  Ce as DEFAULT_THEME,
@@ -248,21 +253,21 @@ export {
248
253
  Ye as MACH_REPORT_PDF_EXPORTER_KEY,
249
254
  f as MachReportError,
250
255
  $e as MachReportPreview,
251
- _e as PARAM_OPTIONS_MESSAGES,
256
+ Oe as PARAM_OPTIONS_MESSAGES,
252
257
  R as PlanLoadError,
253
258
  Z as REPORT_EXPORT_FORMATS,
254
259
  Q as REPORT_PREVIEW_TOOLS,
255
260
  ee as ReportDataComparisonPanel,
256
261
  re as ReportExportMenu,
257
262
  te as ReportPagination,
258
- Ie as ReportParamPanel,
263
+ _e as ReportParamPanel,
259
264
  ne as ReportPrefillPanel,
260
265
  oe as ReportPreview,
261
- se as ReportPrintResourceError,
262
- ae as ReportTaskStatus,
266
+ ae as ReportPrintResourceError,
267
+ se as ReportTaskStatus,
263
268
  ie as ReportToolbar,
264
269
  ce as ReportValidationPanel,
265
- Me as SILENT_LOGGER,
270
+ Ie as SILENT_LOGGER,
266
271
  ue as buildPrintDocument,
267
272
  fe as buildWordHtml,
268
273
  le as createDefaultPdfExporter,
@@ -271,10 +276,10 @@ export {
271
276
  ge as createPrintCalibrationPlan,
272
277
  $ as createProviderEditing,
273
278
  pe as createReportStoragePreferences,
274
- Oe as defineMachReportConfig,
279
+ Me as defineMachReportConfig,
275
280
  De as defineMachReportPreset,
276
281
  Pe as joinReportIds,
277
- Xe as machReportPlugin,
282
+ Be as machReportPlugin,
278
283
  me as normalizeReportIds,
279
284
  ke as normalizeReportLoadError,
280
285
  Ee as preparePrintResources,
@@ -290,7 +295,7 @@ export {
290
295
  Y as useMachReport,
291
296
  He as useMachReportConfig,
292
297
  he as usePageWindow,
293
- we as usePrintExport,
298
+ ye as usePrintExport,
294
299
  K as useReportPreview,
295
- ye as useZoom
300
+ we as useZoom
296
301
  };