@agile-team/mach-report 2.2.0 → 2.3.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.
package/dist/pdf.d.cts CHANGED
@@ -91,6 +91,7 @@ declare interface PlanComponent {
91
91
  richParagraphs?: RichParagraph[];
92
92
  imageData?: string;
93
93
  grid?: PlanGrid;
94
+ table?: PlanTableFragment;
94
95
  style?: ComponentStyle;
95
96
  meta?: Record<string, unknown>;
96
97
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -106,6 +107,8 @@ declare interface PlanGrid {
106
107
  }
107
108
 
108
109
  declare interface PlanPage {
110
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
111
+ layout?: "page" | "wide";
109
112
  pageWidthMm: number;
110
113
  pageHeightMm: number;
111
114
  marginTopMm?: number;
@@ -115,6 +118,19 @@ declare interface PlanPage {
115
118
  components: PlanComponent[];
116
119
  }
117
120
 
121
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
122
+ declare interface PlanTableFragment {
123
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
124
+ id: string;
125
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
126
+ rowIndex: number;
127
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
128
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
129
+ columnKeys: string[];
130
+ layout?: "page" | "wide";
131
+ title?: string;
132
+ }
133
+
118
134
  declare interface RenderPlan {
119
135
  schemaVersion: string;
120
136
  pages: PlanPage[];
package/dist/pdf.d.ts CHANGED
@@ -91,6 +91,7 @@ declare interface PlanComponent {
91
91
  richParagraphs?: RichParagraph[];
92
92
  imageData?: string;
93
93
  grid?: PlanGrid;
94
+ table?: PlanTableFragment;
94
95
  style?: ComponentStyle;
95
96
  meta?: Record<string, unknown>;
96
97
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -106,6 +107,8 @@ declare interface PlanGrid {
106
107
  }
107
108
 
108
109
  declare interface PlanPage {
110
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
111
+ layout?: "page" | "wide";
109
112
  pageWidthMm: number;
110
113
  pageHeightMm: number;
111
114
  marginTopMm?: number;
@@ -115,6 +118,19 @@ declare interface PlanPage {
115
118
  components: PlanComponent[];
116
119
  }
117
120
 
121
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
122
+ declare interface PlanTableFragment {
123
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
124
+ id: string;
125
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
126
+ rowIndex: number;
127
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
128
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
129
+ columnKeys: string[];
130
+ layout?: "page" | "wide";
131
+ title?: string;
132
+ }
133
+
118
134
  declare interface RenderPlan {
119
135
  schemaVersion: string;
120
136
  pages: PlanPage[];
package/dist/pdf.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { g as W1 } from "./_commonjsHelpers-DaMA6jEr.js";
2
- import { b as So, c as yl, f as G1, L as yu, r as Rd } from "./grid-geometry-DONcjshk.js";
3
- import { h as H1, i as K1, a as ml, w as X1 } from "./textwrap-DdaewxAd.js";
2
+ import { c as So, d as yl, g as G1, L as yu, r as Rd } from "./grid-geometry-CWmJ9c9y.js";
3
+ import { h as H1, i as K1, a as ml, w as X1 } from "./textwrap-BQyrpYSR.js";
4
4
  var mu = {}, bl;
5
5
  function Kn() {
6
6
  return bl || (bl = 1, (function(t) {
@@ -1 +1 @@
1
- "use strict";var l=Object.create;var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var m=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of p(e))!h.call(r,c)&&c!==t&&n(r,c,{get:()=>e[c],enumerable:!(o=s(e,c))||o.enumerable});return r};var C=(r,e,t)=>(t=r!=null?l(d(r)):{},m(e||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r));const E=require("vue"),O=require("./report-params-D1gZ1DME.cjs"),_="mach-report/fetcher",f="mach-report/pdf-exporter",P="mach-report/config",u="mach-report/controller",a=E.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-DY0PGGqF.cjs")).then(r=>r.ReportPreview$1)),T={install(r,e={}){let t=e.fetcher;if(!t&&e.reports){const o=e.reports;let c;t=async R=>(c??=import("@agile-team/mach-report").then(({createReportSource:i})=>i(o)),(await c)(R)),t.getParamDefs=R=>O.getReportParamDefs(o,R)}t&&r.provide(_,t),e.pdfExporter&&r.provide(f,e.pdfExporter),r.provide(P,E.computed(()=>{if(e.pdfFontUrl===void 0)return e.config??null;const o=e.config??{defaults:{},presets:{}};return{...o,defaults:{...o.defaults,pdfFontUrl:e.pdfFontUrl}}})),e.globalComponent!==!1&&!r.component("MachReportPreview")&&r.component("MachReportPreview",a)}};exports.MACH_REPORT_CONFIG_KEY=P;exports.MACH_REPORT_CONTROLLER_KEY=u;exports.MACH_REPORT_FETCHER_KEY=_;exports.MACH_REPORT_PDF_EXPORTER_KEY=f;exports.MachReportPreview=a;exports.machReportPlugin=T;
1
+ "use strict";var l=Object.create;var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var m=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let c of p(e))!h.call(r,c)&&c!==t&&n(r,c,{get:()=>e[c],enumerable:!(o=s(e,c))||o.enumerable});return r};var C=(r,e,t)=>(t=r!=null?l(d(r)):{},m(e||!r||!r.__esModule?n(t,"default",{value:r,enumerable:!0}):t,r));const E=require("vue"),O=require("./report-params-D1gZ1DME.cjs"),_="mach-report/fetcher",f="mach-report/pdf-exporter",P="mach-report/config",u="mach-report/controller",a=E.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./ReportPreview-CLENbOCL.cjs")).then(r=>r.ReportPreview$1)),T={install(r,e={}){let t=e.fetcher;if(!t&&e.reports){const o=e.reports;let c;t=async R=>(c??=import("@agile-team/mach-report").then(({createReportSource:i})=>i(o)),(await c)(R)),t.getParamDefs=R=>O.getReportParamDefs(o,R)}t&&r.provide(_,t),e.pdfExporter&&r.provide(f,e.pdfExporter),r.provide(P,E.computed(()=>{if(e.pdfFontUrl===void 0)return e.config??null;const o=e.config??{defaults:{},presets:{}};return{...o,defaults:{...o.defaults,pdfFontUrl:e.pdfFontUrl}}})),e.globalComponent!==!1&&!r.component("MachReportPreview")&&r.component("MachReportPreview",a)}};exports.MACH_REPORT_CONFIG_KEY=P;exports.MACH_REPORT_CONTROLLER_KEY=u;exports.MACH_REPORT_FETCHER_KEY=_;exports.MACH_REPORT_PDF_EXPORTER_KEY=f;exports.MachReportPreview=a;exports.machReportPlugin=T;
@@ -1,6 +1,6 @@
1
1
  import { defineAsyncComponent as a, computed as s } from "vue";
2
2
  import { g as m } from "./report-params-B3Fia6JO.js";
3
- const p = "mach-report/fetcher", l = "mach-report/pdf-exporter", R = "mach-report/config", h = "mach-report/controller", d = a(() => import("./ReportPreview-BWrQCj9M.js").then((r) => r.s)), _ = {
3
+ const p = "mach-report/fetcher", l = "mach-report/pdf-exporter", R = "mach-report/config", h = "mach-report/controller", d = a(() => import("./ReportPreview-CwTGfyTq.js").then((r) => r.s)), _ = {
4
4
  install(r, e = {}) {
5
5
  let t = e.fetcher;
6
6
  if (!t && e.reports) {
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .mrp-toolbar[data-v-601f8fa8]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-title[data-v-601f8fa8]{font-size:13px;font-weight:600;margin-right:8px;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-nav[data-v-601f8fa8]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-601f8fa8]:hover:not(:disabled){background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-nav[data-v-601f8fa8]:disabled{opacity:.4;cursor:not-allowed}.mrp-active[data-v-601f8fa8]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mrp-pageinfo[data-v-601f8fa8]{font-size:12px;min-width:56px;text-align:center;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-spacer[data-v-601f8fa8]{flex:1}.mrp-search[data-v-601f8fa8]{display:flex;align-items:center;gap:4px}.mrp-search-input[data-v-601f8fa8]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;width:150px;outline:none}.mrp-search-input[data-v-601f8fa8]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-search-count[data-v-601f8fa8]{font-size:12px;color:var(--mrp-toolbar-fg, #e8e8e8);min-width:42px;text-align:center}.mrp-params[data-v-aafce92d]{display:flex;align-items:flex-end;gap:12px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-params-title[data-v-aafce92d]{font-size:12px;font-weight:600;color:var(--mrp-toolbar-fg, #e8e8e8);padding-bottom:5px;white-space:nowrap}.mrp-params-grid[data-v-aafce92d]{display:flex;flex-wrap:wrap;gap:8px 12px;flex:1}.mrp-param[data-v-aafce92d]{display:flex;flex-direction:column;gap:2px}.mrp-param-label[data-v-aafce92d]{font-size:11px;color:var(--mrp-toolbar-fg, #e8e8e8);opacity:.85}.mrp-param-star[data-v-aafce92d]{color:#ff7b72;font-style:normal;margin-left:2px}.mrp-param-input[data-v-aafce92d]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:3px 8px;font-size:12px;min-width:130px;outline:none}.mrp-param-input[data-v-aafce92d]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-param-missing .mrp-param-input[data-v-aafce92d]{border-color:#ff7b72}select.mrp-param-input option[data-v-aafce92d]{background:#22252a}.mrp-params-actions[data-v-aafce92d]{display:flex;gap:6px;padding-bottom:1px}.mrp-nav[data-v-aafce92d]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:4px 14px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-aafce92d]:hover{background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-param-query[data-v-aafce92d]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mach-report-preview[data-v-294f34ce]{--mrp-shell-bg: #525659;--mrp-shell-fg: #e8e8e8;--mrp-toolbar-bg: #323639;--mrp-toolbar-border: #22252a;--mrp-toolbar-fg: #e8e8e8;--mrp-btn-fg: #cfcfcf;--mrp-btn-border: #4a4d52;--mrp-btn-hover-bg: #414549;--mrp-btn-hover-fg: #ffffff;--mrp-btn-active-bg: #2d5fb8;position:relative;display:flex;flex-direction:column;background:var(--mrp-shell-bg);color:var(--mrp-shell-fg);overflow:hidden}.mrp-main[data-v-294f34ce]{display:flex;flex:1;min-height:0}.mrp-body[data-v-294f34ce]{flex:1;overflow:auto;padding:24px;outline:none}.mrp-scale[data-v-294f34ce]{margin:0 auto}.mrp-scale-inner[data-v-294f34ce]{display:flex;flex-direction:column;align-items:center}.mrp-page-holder[data-v-294f34ce]{background:#fff;box-shadow:0 2px 8px #00000059;margin-bottom:var(--v4c81cc3e);flex:none}.mrp-state[data-v-294f34ce]{padding:40px;text-align:center;color:#bfbfbf;font-size:13px}.mrp-error[data-v-294f34ce]{color:#ff9d9d}.mrp-export-notice[data-v-294f34ce]{padding:7px 12px;font-size:12px;background:#fff0c2;color:#613c00}.mrp-export-error[data-v-294f34ce]{background:#ffe0df;color:#8e1f1f}.mrp-export-progress[data-v-294f34ce]{background:#e7f0ff;color:#1a4d86}.mrp-retry[data-v-294f34ce]{margin-left:12px;background:transparent;color:#8fb7ff;border:1px solid #5a7fbf;border-radius:4px;padding:1px 10px;cursor:pointer}.mrp-overlay[data-v-294f34ce]{position:absolute;inset:0;pointer-events:none}.mrp-page-holder[data-v-294f34ce] mark.mrp-hit{background:#ffe066;color:#7a5c00;border-radius:2px;padding:0 1px}.mrp-thumbs[data-v-294f34ce]{width:140px;flex:none;overflow-y:auto;border-left:1px solid var(--mrp-toolbar-border);background:var(--mrp-toolbar-bg);padding:8px;display:flex;flex-direction:column}.mrp-thumb[data-v-294f34ce]{cursor:pointer;text-align:center;flex:none;margin-bottom:8px}.mrp-thumb-spacer[data-v-294f34ce]{flex:none}.mrp-thumb-box[data-v-294f34ce]{box-sizing:border-box;width:116px;background:#fff;box-shadow:0 1px 4px #0006;overflow:hidden;border:2px solid transparent}.mrp-thumb-active .mrp-thumb-box[data-v-294f34ce]{border-color:var(--mrp-btn-active-bg)}.mrp-thumb-no[data-v-294f34ce]{display:block;margin-top:4px;line-height:16px;font-size:11px;color:var(--mrp-toolbar-fg)}.mrp-debug[data-v-294f34ce]{position:absolute;right:8px;bottom:8px;background:#000000c7;color:#7ee787;font:11px/1.6 ui-monospace,monospace;padding:6px 10px;border-radius:6px;pointer-events:none;white-space:pre}
1
+ .mrp-toolbar[data-v-601f8fa8]{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-title[data-v-601f8fa8]{font-size:13px;font-weight:600;margin-right:8px;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-nav[data-v-601f8fa8]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-601f8fa8]:hover:not(:disabled){background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-nav[data-v-601f8fa8]:disabled{opacity:.4;cursor:not-allowed}.mrp-active[data-v-601f8fa8]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mrp-pageinfo[data-v-601f8fa8]{font-size:12px;min-width:56px;text-align:center;color:var(--mrp-toolbar-fg, #e8e8e8)}.mrp-spacer[data-v-601f8fa8]{flex:1}.mrp-search[data-v-601f8fa8]{display:flex;align-items:center;gap:4px}.mrp-search-input[data-v-601f8fa8]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:2px 8px;font-size:12px;width:150px;outline:none}.mrp-search-input[data-v-601f8fa8]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-search-count[data-v-601f8fa8]{font-size:12px;color:var(--mrp-toolbar-fg, #e8e8e8);min-width:42px;text-align:center}.mrp-params[data-v-aafce92d]{display:flex;align-items:flex-end;gap:12px;padding:6px 12px;background:var(--mrp-toolbar-bg, #323639);border-bottom:1px solid var(--mrp-toolbar-border, #22252a);flex:none;flex-wrap:wrap}.mrp-params-title[data-v-aafce92d]{font-size:12px;font-weight:600;color:var(--mrp-toolbar-fg, #e8e8e8);padding-bottom:5px;white-space:nowrap}.mrp-params-grid[data-v-aafce92d]{display:flex;flex-wrap:wrap;gap:8px 12px;flex:1}.mrp-param[data-v-aafce92d]{display:flex;flex-direction:column;gap:2px}.mrp-param-label[data-v-aafce92d]{font-size:11px;color:var(--mrp-toolbar-fg, #e8e8e8);opacity:.85}.mrp-param-star[data-v-aafce92d]{color:#ff7b72;font-style:normal;margin-left:2px}.mrp-param-input[data-v-aafce92d]{background:#22252a;color:#e8e8e8;border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:3px 8px;font-size:12px;min-width:130px;outline:none}.mrp-param-input[data-v-aafce92d]:focus{border-color:var(--mrp-btn-active-bg, #2d5fb8)}.mrp-param-missing .mrp-param-input[data-v-aafce92d]{border-color:#ff7b72}select.mrp-param-input option[data-v-aafce92d]{background:#22252a}.mrp-params-actions[data-v-aafce92d]{display:flex;gap:6px;padding-bottom:1px}.mrp-nav[data-v-aafce92d]{background:transparent;color:var(--mrp-btn-fg, #cfcfcf);border:1px solid var(--mrp-btn-border, #4a4d52);border-radius:4px;padding:4px 14px;font-size:12px;cursor:pointer;white-space:nowrap}.mrp-nav[data-v-aafce92d]:hover{background:var(--mrp-btn-hover-bg, #414549);color:var(--mrp-btn-hover-fg, #fff)}.mrp-param-query[data-v-aafce92d]{background:var(--mrp-btn-active-bg, #2d5fb8);border-color:var(--mrp-btn-active-bg, #2d5fb8);color:#fff}.mach-report-preview[data-v-449298a6]{--mrp-shell-bg: #525659;--mrp-shell-fg: #e8e8e8;--mrp-toolbar-bg: #323639;--mrp-toolbar-border: #22252a;--mrp-toolbar-fg: #e8e8e8;--mrp-btn-fg: #cfcfcf;--mrp-btn-border: #4a4d52;--mrp-btn-hover-bg: #414549;--mrp-btn-hover-fg: #ffffff;--mrp-btn-active-bg: #2d5fb8;position:relative;display:flex;flex-direction:column;background:var(--mrp-shell-bg);color:var(--mrp-shell-fg);overflow:hidden}.mrp-main[data-v-449298a6]{display:flex;flex:1;min-height:0}.mrp-body[data-v-449298a6]{flex:1;min-width:0;overflow:auto;padding:24px;outline:none}.mrp-scale[data-v-449298a6]{position:relative;margin:0 auto}.mrp-scale-inner[data-v-449298a6]{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center}.mrp-page-holder[data-v-449298a6]{background:#fff;box-shadow:0 2px 8px #00000059;margin-bottom:var(--v5d32312f);flex:none}.mrp-wide-report .mrp-page-holder[data-v-449298a6]{box-shadow:none}.mrp-state[data-v-449298a6]{padding:40px;text-align:center;color:#bfbfbf;font-size:13px}.mrp-error[data-v-449298a6]{color:#ff9d9d}.mrp-export-notice[data-v-449298a6]{padding:7px 12px;font-size:12px;background:#fff0c2;color:#613c00}.mrp-export-error[data-v-449298a6]{background:#ffe0df;color:#8e1f1f}.mrp-export-progress[data-v-449298a6]{background:#e7f0ff;color:#1a4d86}.mrp-retry[data-v-449298a6]{margin-left:12px;background:transparent;color:#8fb7ff;border:1px solid #5a7fbf;border-radius:4px;padding:1px 10px;cursor:pointer}.mrp-overlay[data-v-449298a6]{position:absolute;inset:0;pointer-events:none}.mrp-page-holder[data-v-449298a6] mark.mrp-hit{background:#ffe066;color:#7a5c00;border-radius:2px;padding:0 1px;scroll-margin:8px}.mrp-thumbs[data-v-449298a6]{width:140px;flex:none;overflow-y:auto;border-left:1px solid var(--mrp-toolbar-border);background:var(--mrp-toolbar-bg);padding:8px;display:flex;flex-direction:column}.mrp-thumb[data-v-449298a6]{cursor:pointer;text-align:center;flex:none;margin-bottom:8px}.mrp-thumb-spacer[data-v-449298a6]{flex:none}.mrp-thumb-box[data-v-449298a6]{box-sizing:border-box;width:116px;background:#fff;box-shadow:0 1px 4px #0006;overflow:hidden;border:2px solid transparent}.mrp-thumb-active .mrp-thumb-box[data-v-449298a6]{border-color:var(--mrp-btn-active-bg)}.mrp-thumb-no[data-v-449298a6]{display:block;margin-top:4px;line-height:16px;font-size:11px;color:var(--mrp-toolbar-fg)}.mrp-debug[data-v-449298a6]{position:absolute;right:8px;bottom:8px;background:#000000c7;color:#7ee787;font:11px/1.6 ui-monospace,monospace;padding:6px 10px;border-radius:6px;pointer-events:none;white-space:pre}
@@ -1,4 +1,4 @@
1
- import { S as l } from "./grid-geometry-DONcjshk.js";
1
+ import { S as l } from "./grid-geometry-CWmJ9c9y.js";
2
2
  const x = l;
3
3
  function g(t) {
4
4
  return (t.kind === "image" || t.kind === "barcode" || t.kind === "qrcode" || t.kind === "chart") && !!t.imageData;
@@ -102,6 +102,10 @@ declare interface ListColumn {
102
102
  declare interface ListComponent {
103
103
  kind: "list";
104
104
  id?: string;
105
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
106
+ layout?: "page" | "wide";
107
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
108
+ title?: string;
105
109
  leftMm: number;
106
110
  topMm: number;
107
111
  widthMm: number;
@@ -648,6 +652,7 @@ declare interface PlanComponent {
648
652
  richParagraphs?: RichParagraph[];
649
653
  imageData?: string;
650
654
  grid?: PlanGrid;
655
+ table?: PlanTableFragment;
651
656
  style?: ComponentStyle;
652
657
  meta?: Record<string, unknown>;
653
658
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -668,6 +673,8 @@ declare interface PlanGrid {
668
673
  }
669
674
 
670
675
  declare interface PlanPage {
676
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
677
+ layout?: "page" | "wide";
671
678
  pageWidthMm: number;
672
679
  pageHeightMm: number;
673
680
  marginTopMm?: number;
@@ -677,6 +684,19 @@ declare interface PlanPage {
677
684
  components: PlanComponent[];
678
685
  }
679
686
 
687
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
688
+ declare interface PlanTableFragment {
689
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
690
+ id: string;
691
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
692
+ rowIndex: number;
693
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
694
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
695
+ columnKeys: string[];
696
+ layout?: "page" | "wide";
697
+ title?: string;
698
+ }
699
+
680
700
  /** 预取组件分片(路由 hover / 空闲时调用,正式渲染零等待) */
681
701
  export declare function preloadMachReport(): Promise<unknown>;
682
702
 
@@ -774,6 +794,8 @@ declare type TemplateComponent = PlanComponent | ListComponent;
774
794
  declare interface TemplatePage {
775
795
  widthMm: number;
776
796
  heightMm: number;
797
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
798
+ layout?: "page" | "wide";
777
799
  marginTopMm?: number;
778
800
  marginBottomMm?: number;
779
801
  marginLeftMm?: number;
@@ -809,11 +831,13 @@ declare interface TextMeasurer {
809
831
  * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
810
832
  */
811
833
  declare interface XlsxRenderOptions {
812
- /** 工作表命名(默认 "Sheet1" 起序) */
813
- sheetName?: (pageIndex: number) => string;
814
- /** 默认 text 保留显示文本;raw 使用列表自动保留的原始数值、布尔、文本与空值。 */
834
+ /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
835
+ sheetName?: (sheetIndex: number) => string;
836
+ /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
837
+ sheetMode?: "auto" | "pages" | "continuous";
838
+ /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
815
839
  valueMode?: "text" | "raw";
816
- /** 默认 auto 按计划识别 A3/A4/A5;自定义尺寸回退 A4 并返回告警。 */
840
+ /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
817
841
  paperSize?: "auto" | "a3" | "a4" | "a5";
818
842
  }
819
843
 
@@ -102,6 +102,10 @@ declare interface ListColumn {
102
102
  declare interface ListComponent {
103
103
  kind: "list";
104
104
  id?: string;
105
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
106
+ layout?: "page" | "wide";
107
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
108
+ title?: string;
105
109
  leftMm: number;
106
110
  topMm: number;
107
111
  widthMm: number;
@@ -648,6 +652,7 @@ declare interface PlanComponent {
648
652
  richParagraphs?: RichParagraph[];
649
653
  imageData?: string;
650
654
  grid?: PlanGrid;
655
+ table?: PlanTableFragment;
651
656
  style?: ComponentStyle;
652
657
  meta?: Record<string, unknown>;
653
658
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -668,6 +673,8 @@ declare interface PlanGrid {
668
673
  }
669
674
 
670
675
  declare interface PlanPage {
676
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
677
+ layout?: "page" | "wide";
671
678
  pageWidthMm: number;
672
679
  pageHeightMm: number;
673
680
  marginTopMm?: number;
@@ -677,6 +684,19 @@ declare interface PlanPage {
677
684
  components: PlanComponent[];
678
685
  }
679
686
 
687
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
688
+ declare interface PlanTableFragment {
689
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
690
+ id: string;
691
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
692
+ rowIndex: number;
693
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
694
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
695
+ columnKeys: string[];
696
+ layout?: "page" | "wide";
697
+ title?: string;
698
+ }
699
+
680
700
  /** 预取组件分片(路由 hover / 空闲时调用,正式渲染零等待) */
681
701
  export declare function preloadMachReport(): Promise<unknown>;
682
702
 
@@ -774,6 +794,8 @@ declare type TemplateComponent = PlanComponent | ListComponent;
774
794
  declare interface TemplatePage {
775
795
  widthMm: number;
776
796
  heightMm: number;
797
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
798
+ layout?: "page" | "wide";
777
799
  marginTopMm?: number;
778
800
  marginBottomMm?: number;
779
801
  marginLeftMm?: number;
@@ -809,11 +831,13 @@ declare interface TextMeasurer {
809
831
  * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
810
832
  */
811
833
  declare interface XlsxRenderOptions {
812
- /** 工作表命名(默认 "Sheet1" 起序) */
813
- sheetName?: (pageIndex: number) => string;
814
- /** 默认 text 保留显示文本;raw 使用列表自动保留的原始数值、布尔、文本与空值。 */
834
+ /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
835
+ sheetName?: (sheetIndex: number) => string;
836
+ /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
837
+ sheetMode?: "auto" | "pages" | "continuous";
838
+ /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
815
839
  valueMode?: "text" | "raw";
816
- /** 默认 auto 按计划识别 A3/A4/A5;自定义尺寸回退 A4 并返回告警。 */
840
+ /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
817
841
  paperSize?: "auto" | "a3" | "a4" | "a5";
818
842
  }
819
843
 
@@ -405,6 +405,10 @@ declare interface ListColumn {
405
405
  declare interface ListComponent {
406
406
  kind: "list";
407
407
  id?: string;
408
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
409
+ layout?: "page" | "wide";
410
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
411
+ title?: string;
408
412
  leftMm: number;
409
413
  topMm: number;
410
414
  widthMm: number;
@@ -1035,6 +1039,7 @@ declare interface PlanComponent {
1035
1039
  richParagraphs?: RichParagraph[];
1036
1040
  imageData?: string;
1037
1041
  grid?: PlanGrid;
1042
+ table?: PlanTableFragment;
1038
1043
  style?: ComponentStyle;
1039
1044
  meta?: Record<string, unknown>;
1040
1045
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -1059,6 +1064,8 @@ export declare class PlanLoadError extends Error {
1059
1064
  }
1060
1065
 
1061
1066
  declare interface PlanPage {
1067
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
1068
+ layout?: "page" | "wide";
1062
1069
  pageWidthMm: number;
1063
1070
  pageHeightMm: number;
1064
1071
  marginTopMm?: number;
@@ -1068,6 +1075,19 @@ declare interface PlanPage {
1068
1075
  components: PlanComponent[];
1069
1076
  }
1070
1077
 
1078
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
1079
+ declare interface PlanTableFragment {
1080
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
1081
+ id: string;
1082
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
1083
+ rowIndex: number;
1084
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
1085
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
1086
+ columnKeys: string[];
1087
+ layout?: "page" | "wide";
1088
+ title?: string;
1089
+ }
1090
+
1071
1091
  declare function print_2(): Promise<void>;
1072
1092
 
1073
1093
  declare interface PrintHtmlResult {
@@ -1244,6 +1264,8 @@ declare type TemplateComponent = PlanComponent | ListComponent;
1244
1264
  declare interface TemplatePage {
1245
1265
  widthMm: number;
1246
1266
  heightMm: number;
1267
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
1268
+ layout?: "page" | "wide";
1247
1269
  marginTopMm?: number;
1248
1270
  marginBottomMm?: number;
1249
1271
  marginLeftMm?: number;
@@ -1340,8 +1362,8 @@ export declare function useReportPreview(): MachReportController | null;
1340
1362
 
1341
1363
  /**
1342
1364
  * 缩放状态(transform: scale 方案):
1343
- * - fit 模式:按视口宽自适应(clamp 0.3~1)
1344
- * - raw 模式:固定百分比
1365
+ * - fit 模式:按视口宽自适应,超宽表也能完整缩入视口
1366
+ * - raw 模式:固定百分比(30%~300%)
1345
1367
  * transform 而非 CSS zoom:标准属性、跨浏览器、零重排。
1346
1368
  */
1347
1369
  export declare function useZoom(getFitInputs: () => {
@@ -1363,11 +1385,13 @@ export declare function useZoom(getFitInputs: () => {
1363
1385
  * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
1364
1386
  */
1365
1387
  declare interface XlsxRenderOptions {
1366
- /** 工作表命名(默认 "Sheet1" 起序) */
1367
- sheetName?: (pageIndex: number) => string;
1368
- /** 默认 text 保留显示文本;raw 使用列表自动保留的原始数值、布尔、文本与空值。 */
1388
+ /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
1389
+ sheetName?: (sheetIndex: number) => string;
1390
+ /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
1391
+ sheetMode?: "auto" | "pages" | "continuous";
1392
+ /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
1369
1393
  valueMode?: "text" | "raw";
1370
- /** 默认 auto 按计划识别 A3/A4/A5;自定义尺寸回退 A4 并返回告警。 */
1394
+ /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
1371
1395
  paperSize?: "auto" | "a3" | "a4" | "a5";
1372
1396
  }
1373
1397
 
@@ -405,6 +405,10 @@ declare interface ListColumn {
405
405
  declare interface ListComponent {
406
406
  kind: "list";
407
407
  id?: string;
408
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
409
+ layout?: "page" | "wide";
410
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
411
+ title?: string;
408
412
  leftMm: number;
409
413
  topMm: number;
410
414
  widthMm: number;
@@ -1035,6 +1039,7 @@ declare interface PlanComponent {
1035
1039
  richParagraphs?: RichParagraph[];
1036
1040
  imageData?: string;
1037
1041
  grid?: PlanGrid;
1042
+ table?: PlanTableFragment;
1038
1043
  style?: ComponentStyle;
1039
1044
  meta?: Record<string, unknown>;
1040
1045
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -1059,6 +1064,8 @@ export declare class PlanLoadError extends Error {
1059
1064
  }
1060
1065
 
1061
1066
  declare interface PlanPage {
1067
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
1068
+ layout?: "page" | "wide";
1062
1069
  pageWidthMm: number;
1063
1070
  pageHeightMm: number;
1064
1071
  marginTopMm?: number;
@@ -1068,6 +1075,19 @@ declare interface PlanPage {
1068
1075
  components: PlanComponent[];
1069
1076
  }
1070
1077
 
1078
+ /** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
1079
+ declare interface PlanTableFragment {
1080
+ /** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
1081
+ id: string;
1082
+ /** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
1083
+ rowIndex: number;
1084
+ role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
1085
+ /** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
1086
+ columnKeys: string[];
1087
+ layout?: "page" | "wide";
1088
+ title?: string;
1089
+ }
1090
+
1071
1091
  declare function print_2(): Promise<void>;
1072
1092
 
1073
1093
  declare interface PrintHtmlResult {
@@ -1244,6 +1264,8 @@ declare type TemplateComponent = PlanComponent | ListComponent;
1244
1264
  declare interface TemplatePage {
1245
1265
  widthMm: number;
1246
1266
  heightMm: number;
1267
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
1268
+ layout?: "page" | "wide";
1247
1269
  marginTopMm?: number;
1248
1270
  marginBottomMm?: number;
1249
1271
  marginLeftMm?: number;
@@ -1340,8 +1362,8 @@ export declare function useReportPreview(): MachReportController | null;
1340
1362
 
1341
1363
  /**
1342
1364
  * 缩放状态(transform: scale 方案):
1343
- * - fit 模式:按视口宽自适应(clamp 0.3~1)
1344
- * - raw 模式:固定百分比
1365
+ * - fit 模式:按视口宽自适应,超宽表也能完整缩入视口
1366
+ * - raw 模式:固定百分比(30%~300%)
1345
1367
  * transform 而非 CSS zoom:标准属性、跨浏览器、零重排。
1346
1368
  */
1347
1369
  export declare function useZoom(getFitInputs: () => {
@@ -1363,11 +1385,13 @@ export declare function useZoom(getFitInputs: () => {
1363
1385
  * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
1364
1386
  */
1365
1387
  declare interface XlsxRenderOptions {
1366
- /** 工作表命名(默认 "Sheet1" 起序) */
1367
- sheetName?: (pageIndex: number) => string;
1368
- /** 默认 text 保留显示文本;raw 使用列表自动保留的原始数值、布尔、文本与空值。 */
1388
+ /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
1389
+ sheetName?: (sheetIndex: number) => string;
1390
+ /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
1391
+ sheetMode?: "auto" | "pages" | "continuous";
1392
+ /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
1369
1393
  valueMode?: "text" | "raw";
1370
- /** 默认 auto 按计划识别 A3/A4/A5;自定义尺寸回退 A4 并返回告警。 */
1394
+ /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
1371
1395
  paperSize?: "auto" | "a3" | "a4" | "a5";
1372
1396
  }
1373
1397
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-BMoMUxrw.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-DY0PGGqF.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-MSh_OhoW.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-CLENbOCL.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-CAcNe0FT.js";
2
- import { M as l } from "./plugin-CAcNe0FT.js";
1
+ import { m as o } from "./plugin-uoO9VA6O.js";
2
+ import { M as l } from "./plugin-uoO9VA6O.js";
3
3
  function a() {
4
- return import("./ReportPreview-BWrQCj9M.js").then((t) => t.s);
4
+ return import("./ReportPreview-CwTGfyTq.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 u=require("@agile-team/mach-report"),e=require("./ReportPreview-DY0PGGqF.cjs"),c=require("./plugin-BMoMUxrw.cjs"),s=require("vue");function p(r){const o=u.createReportSource(r),i=async n=>{if(n.reportIds.length===0)throw new e.PlanLoadError("缺少报表 ID");for(const t of n.reportIds)if(!Object.prototype.hasOwnProperty.call(r,t)||!r[t])throw new e.PlanLoadError(`本地模板 ${t} 不存在`);return o(n)};return i.getParamDefs=o.getParamDefs,i}const l=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 P(){const r=s.shallowRef(null),o=()=>r.value?.state??l,i=Object.freeze({get loading(){return o().loading},get hasPlan(){return o().hasPlan},get pageCount(){return o().pageCount},get currentPage(){return o().currentPage},get exporting(){return o().exporting},get printing(){return o().printing},get canExport(){return o().canExport},get canPrint(){return o().canPrint},get error(){return o().error},get pdfFont(){return o().pdfFont}});function n(){if(!r.value)throw new e.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return r.value}return{ref(t){const a=t;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},ready:s.computed(()=>r.value!==null),state:i,async checkPdfFont(){const t=n();return t.checkPdfFont?t.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},async reload(){await n().reload()},async print(){await n().print()},async exportAs(t){await n().exportAs(t)},openPdfWindow(){n().openPdfWindow()},gotoPage(t){n().gotoPage(t)},async setParams(t,a){await n().setParams(t,a)}}}function f(){return s.inject(c.MACH_REPORT_CONTROLLER_KEY,null)}exports.DEFAULT_MESSAGES=e.DEFAULT_MESSAGES;exports.DEFAULT_THEME=e.DEFAULT_THEME;exports.MachReportError=e.MachReportError;exports.PlanLoadError=e.PlanLoadError;exports.ReportParamPanel=e.ReportParamPanel;exports.ReportPreview=e.ReportPreview;exports.ReportToolbar=e.ReportToolbar;exports.SILENT_LOGGER=e.SILENT_LOGGER;exports.buildPrintDocument=e.buildPrintDocument;exports.buildWordHtml=e.buildWordHtml;exports.createDefaultPdfExporter=e.createDefaultPdfExporter;exports.createFetchRequest=e.createFetchRequest;exports.defineMachReportConfig=e.defineMachReportConfig;exports.defineMachReportPreset=e.defineMachReportPreset;exports.joinReportIds=e.joinReportIds;exports.normalizeReportIds=e.normalizeReportIds;exports.printPlans=e.printPlans;exports.provideMachReportConfig=e.provideMachReportConfig;exports.resolveConfig=e.resolveConfig;exports.themeToCssVars=e.themeToCssVars;exports.toErrorDetail=e.toErrorDetail;exports.useMachReportConfig=e.useMachReportConfig;exports.usePageWindow=e.usePageWindow;exports.usePrintExport=e.usePrintExport;exports.useZoom=e.useZoom;exports.MACH_REPORT_CONFIG_KEY=c.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=c.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=c.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=c.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=c.MachReportPreview;exports.machReportPlugin=c.machReportPlugin;exports.createLocalFetcher=p;exports.useMachReport=P;exports.useReportPreview=f;Object.keys(u).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>u[r]})});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@agile-team/mach-report"),e=require("./ReportPreview-CLENbOCL.cjs"),c=require("./plugin-MSh_OhoW.cjs"),s=require("vue");function p(r){const o=u.createReportSource(r),i=async n=>{if(n.reportIds.length===0)throw new e.PlanLoadError("缺少报表 ID");for(const t of n.reportIds)if(!Object.prototype.hasOwnProperty.call(r,t)||!r[t])throw new e.PlanLoadError(`本地模板 ${t} 不存在`);return o(n)};return i.getParamDefs=o.getParamDefs,i}const l=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 P(){const r=s.shallowRef(null),o=()=>r.value?.state??l,i=Object.freeze({get loading(){return o().loading},get hasPlan(){return o().hasPlan},get pageCount(){return o().pageCount},get currentPage(){return o().currentPage},get exporting(){return o().exporting},get printing(){return o().printing},get canExport(){return o().canExport},get canPrint(){return o().canPrint},get error(){return o().error},get pdfFont(){return o().pdfFont}});function n(){if(!r.value)throw new e.MachReportError("config","报表预览尚未挂载,请在 ready 后调用控制器");return r.value}return{ref(t){const a=t;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},ready:s.computed(()=>r.value!==null),state:i,async checkPdfFont(){const t=n();return t.checkPdfFont?t.checkPdfFont():{status:"unverified",fontUrl:"",message:"旧自定义控制器未提供字体检查,请由宿主确认字体配置"}},async reload(){await n().reload()},async print(){await n().print()},async exportAs(t){await n().exportAs(t)},openPdfWindow(){n().openPdfWindow()},gotoPage(t){n().gotoPage(t)},async setParams(t,a){await n().setParams(t,a)}}}function f(){return s.inject(c.MACH_REPORT_CONTROLLER_KEY,null)}exports.DEFAULT_MESSAGES=e.DEFAULT_MESSAGES;exports.DEFAULT_THEME=e.DEFAULT_THEME;exports.MachReportError=e.MachReportError;exports.PlanLoadError=e.PlanLoadError;exports.ReportParamPanel=e.ReportParamPanel;exports.ReportPreview=e.ReportPreview;exports.ReportToolbar=e.ReportToolbar;exports.SILENT_LOGGER=e.SILENT_LOGGER;exports.buildPrintDocument=e.buildPrintDocument;exports.buildWordHtml=e.buildWordHtml;exports.createDefaultPdfExporter=e.createDefaultPdfExporter;exports.createFetchRequest=e.createFetchRequest;exports.defineMachReportConfig=e.defineMachReportConfig;exports.defineMachReportPreset=e.defineMachReportPreset;exports.joinReportIds=e.joinReportIds;exports.normalizeReportIds=e.normalizeReportIds;exports.printPlans=e.printPlans;exports.provideMachReportConfig=e.provideMachReportConfig;exports.resolveConfig=e.resolveConfig;exports.themeToCssVars=e.themeToCssVars;exports.toErrorDetail=e.toErrorDetail;exports.useMachReportConfig=e.useMachReportConfig;exports.usePageWindow=e.usePageWindow;exports.usePrintExport=e.usePrintExport;exports.useZoom=e.useZoom;exports.MACH_REPORT_CONFIG_KEY=c.MACH_REPORT_CONFIG_KEY;exports.MACH_REPORT_CONTROLLER_KEY=c.MACH_REPORT_CONTROLLER_KEY;exports.MACH_REPORT_FETCHER_KEY=c.MACH_REPORT_FETCHER_KEY;exports.MACH_REPORT_PDF_EXPORTER_KEY=c.MACH_REPORT_PDF_EXPORTER_KEY;exports.MachReportPreview=c.MachReportPreview;exports.machReportPlugin=c.machReportPlugin;exports.createLocalFetcher=p;exports.useMachReport=P;exports.useReportPreview=f;Object.keys(u).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>u[r]})});
package/dist/vue.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import { createReportSource as c } from "@agile-team/mach-report";
2
2
  export * from "@agile-team/mach-report";
3
- import { P as s, M as i } from "./ReportPreview-BWrQCj9M.js";
4
- import { D as M, a as T, R as x, b as O, c as F, S as v, d as A, e as D, f as b, g as L, h as S, i as j, j as H, n as I, p as k, k as W, r as Y, t as z, l as G, u as K, m as U, o as N, q } from "./ReportPreview-BWrQCj9M.js";
5
- import { a as f } from "./plugin-CAcNe0FT.js";
6
- import { b as X, c as Z, d as $, M as B, m as J } from "./plugin-CAcNe0FT.js";
3
+ import { P as s, M as i } from "./ReportPreview-CwTGfyTq.js";
4
+ import { D as M, a as T, R as x, b as O, c as F, S as v, d as A, e as D, f as b, g as L, h as S, i as j, j as H, n as I, p as k, k as W, r as Y, t as z, l as G, u as K, m as U, o as N, q } from "./ReportPreview-CwTGfyTq.js";
5
+ import { a as f } from "./plugin-uoO9VA6O.js";
6
+ import { b as X, c as Z, d as $, M as B, m as J } from "./plugin-uoO9VA6O.js";
7
7
  import { shallowRef as u, computed as p, inject as l } from "vue";
8
8
  function m(n) {
9
9
  const t = c(n), a = async (r) => {