@agile-team/mach-report 2.1.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.
Files changed (43) hide show
  1. package/README.md +130 -16
  2. package/dist/ReportPreview-CLENbOCL.cjs +6 -0
  3. package/dist/ReportPreview-CwTGfyTq.js +1679 -0
  4. package/dist/grid-geometry-CWmJ9c9y.js +130 -0
  5. package/dist/grid-geometry-DBH9ExuY.cjs +1 -0
  6. package/dist/index.cjs +5 -5
  7. package/dist/index.d.cts +110 -16
  8. package/dist/index.d.ts +110 -16
  9. package/dist/index.js +1099 -718
  10. package/dist/page-window-index-CIuT4BAv.js +43 -0
  11. package/dist/page-window-index-DEjnM6IB.cjs +1 -0
  12. package/dist/pdf.cjs +46 -46
  13. package/dist/pdf.d.cts +20 -0
  14. package/dist/pdf.d.ts +20 -0
  15. package/dist/pdf.js +6 -6
  16. package/dist/{plugin-Bl00j_CP.cjs → plugin-MSh_OhoW.cjs} +1 -1
  17. package/dist/{plugin-DVScnZ4C.js → plugin-uoO9VA6O.js} +2 -2
  18. package/dist/report-params-B3Fia6JO.js +10 -0
  19. package/dist/report-params-D1gZ1DME.cjs +1 -0
  20. package/dist/style.css +1 -1
  21. package/dist/textwrap-BQyrpYSR.js +117 -0
  22. package/dist/textwrap-DqiFwAV3.cjs +3 -0
  23. package/dist/vue/async.d.cts +77 -2
  24. package/dist/vue/async.d.ts +77 -2
  25. package/dist/vue/index.d.cts +91 -14
  26. package/dist/vue/index.d.ts +91 -14
  27. package/dist/vue-async.cjs +1 -1
  28. package/dist/vue-async.js +3 -3
  29. package/dist/vue.cjs +1 -1
  30. package/dist/vue.js +4 -4
  31. package/dist/xlsx.cjs +21 -21
  32. package/dist/xlsx.d.cts +28 -2
  33. package/dist/xlsx.d.ts +28 -2
  34. package/dist/xlsx.js +5637 -5515
  35. package/package.json +3 -2
  36. package/dist/ReportPreview-Dwdsyk9b.js +0 -1558
  37. package/dist/ReportPreview-VHAIfsz1.cjs +0 -6
  38. package/dist/grid-geometry-BXpOxznT.cjs +0 -1
  39. package/dist/grid-geometry-Bs8QXz1X.js +0 -65
  40. package/dist/report-params-BB85g7mg.js +0 -10
  41. package/dist/report-params-D1NeY-eR.cjs +0 -1
  42. package/dist/style-CFZ-HE2s.cjs +0 -3
  43. package/dist/style-DnmtG7Gl.js +0 -180
@@ -204,6 +204,7 @@ declare type __VLS_Props = {
204
204
  query: string;
205
205
  matchIndex: number;
206
206
  matchCount: number;
207
+ searching?: boolean;
207
208
  };
208
209
  thumbsVisible: boolean;
209
210
  };
@@ -324,7 +325,7 @@ export declare function createFetchRequest(options?: FetchRequestOptions): HostR
324
325
  * 本地渲染适配器:模板 + 数据 → core 分页引擎 → RenderPlan。
325
326
  * 用于本地预览、离线场景和单测。
326
327
  */
327
- export declare function createLocalFetcher(entries: Record<string, LocalTemplateEntry>): PlanFetcher;
328
+ export declare function createLocalFetcher(entries: Record<string, LocalTemplateEntry> | ReportRegistry): PlanFetcher;
328
329
 
329
330
  declare type DatasetRows = Record<string, Record<string, unknown>[]>;
330
331
 
@@ -360,6 +361,10 @@ declare function gotoPage(n: number): void;
360
361
  declare interface GridCell {
361
362
  text?: string;
362
363
  rawText?: string;
364
+ /** 原始值,仅供 Excel raw 模式消费;不参与预览、分页与 PDF 绘制。 */
365
+ value?: string | number | boolean | null;
366
+ /** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
367
+ numberFormat?: string;
363
368
  children?: PlanComponent[];
364
369
  colSpan?: number;
365
370
  rowSpan?: number;
@@ -377,11 +382,20 @@ export declare type HostRequest = (config: {
377
382
 
378
383
  export declare function joinReportIds(reportId: ReportIdInput): string;
379
384
 
385
+ /** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
386
+ declare type ListAlignment = NonNullable<ComponentStyle["align"]> | "auto";
387
+
380
388
  declare interface ListColumn {
381
389
  header: string;
382
390
  field: string;
383
391
  widthMm: number;
384
392
  style?: ComponentStyle;
393
+ /** 内容对齐,优先于 style.align;数值字符串不会自动判为数字。 */
394
+ align?: ListAlignment;
395
+ /** 独立的表头对齐,不改变内容对齐。 */
396
+ headerAlign?: ComponentStyle["align"];
397
+ /** 独立的表头样式,优先于列表级表头样式。 */
398
+ headerStyle?: ComponentStyle;
385
399
  /** 值格式化(声明式):千分位/小数位、百分比、日期 pattern */
386
400
  format?: ColumnFormat;
387
401
  /** 条件格式规则(声明式,命中合并进单元格样式;如负数红字) */
@@ -391,6 +405,10 @@ declare interface ListColumn {
391
405
  declare interface ListComponent {
392
406
  kind: "list";
393
407
  id?: string;
408
+ /** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
409
+ layout?: "page" | "wide";
410
+ /** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
411
+ title?: string;
394
412
  leftMm: number;
395
413
  topMm: number;
396
414
  widthMm: number;
@@ -402,6 +420,11 @@ declare interface ListComponent {
402
420
  paddingMm?: number;
403
421
  headerEveryPage?: boolean;
404
422
  headerBackgroundColor?: string;
423
+ /** 内容默认对齐,列配置可覆盖;低层模板缺省仍为 left。 */
424
+ align?: ListAlignment;
425
+ /** 表头默认对齐,列配置可覆盖。 */
426
+ headerAlign?: ComponentStyle["align"];
427
+ headerStyle?: ComponentStyle;
405
428
  border?: boolean;
406
429
  /** 分组小计(组头/组尾小计/组头防孤行) */
407
430
  groupBy?: ListGroupBy;
@@ -496,6 +519,9 @@ export declare interface MachReportDefaults {
496
519
  messages?: Partial<MachReportMessages>;
497
520
  /** 校验告警等内部日志通道(默认 console;静默传 { warn: () => {}, info: () => {} }) */
498
521
  logger?: MachReportLogger;
522
+ preview?: MachReportPreviewOptions;
523
+ /** Excel 出口配置,按字段继承;不配置使用导出器默认值。 */
524
+ xlsx?: XlsxRenderOptions;
499
525
  }
500
526
 
501
527
  export declare class MachReportError extends Error {
@@ -576,6 +602,8 @@ export declare interface MachReportMessages {
576
602
  reset: string;
577
603
  /** 必填缺失提示({label} 占位) */
578
604
  paramRequired: string;
605
+ /** 可选搜索进度文案,旧完整 messages 对象无需新增字段。 */
606
+ searching?: string;
579
607
  }
580
608
 
581
609
  /**
@@ -919,6 +947,14 @@ fetcher: PlanFetcher | null;
919
947
  };
920
948
  });
921
949
 
950
+ /** 预览按需调优;默认已经启用正文/缩略图虚拟化及可取消的分片搜索。 */
951
+ export declare interface MachReportPreviewOptions {
952
+ /** 视口前后额外保留的正文页数,默认 1,归一化到 0~10 的整数。 */
953
+ overscanPages?: number;
954
+ /** 搜索输入防抖毫秒,默认 200,归一化到 0~2000。 */
955
+ searchDebounceMs?: number;
956
+ }
957
+
922
958
  /** 只读快照,由组件的同一套状态驱动;无需通过事件另建状态。 */
923
959
  export declare interface MachReportState {
924
960
  readonly loading: boolean;
@@ -1003,6 +1039,7 @@ declare interface PlanComponent {
1003
1039
  richParagraphs?: RichParagraph[];
1004
1040
  imageData?: string;
1005
1041
  grid?: PlanGrid;
1042
+ table?: PlanTableFragment;
1006
1043
  style?: ComponentStyle;
1007
1044
  meta?: Record<string, unknown>;
1008
1045
  /** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
@@ -1027,6 +1064,8 @@ export declare class PlanLoadError extends Error {
1027
1064
  }
1028
1065
 
1029
1066
  declare interface PlanPage {
1067
+ /** wide 表示完整自然列宽;页面仅为预览的垂直窗口分段。 */
1068
+ layout?: "page" | "wide";
1030
1069
  pageWidthMm: number;
1031
1070
  pageHeightMm: number;
1032
1071
  marginTopMm?: number;
@@ -1036,6 +1075,19 @@ declare interface PlanPage {
1036
1075
  components: PlanComponent[];
1037
1076
  }
1038
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
+
1039
1091
  declare function print_2(): Promise<void>;
1040
1092
 
1041
1093
  declare interface PrintHtmlResult {
@@ -1067,11 +1119,12 @@ declare interface RenderPlan {
1067
1119
  }
1068
1120
 
1069
1121
  declare interface ReportDefinition {
1070
- template: ReportTemplate;
1122
+ /** 静态模板或宿主提供的异步模板加载器;动态模板默认每次重新读取,不缓存版本。 */
1123
+ template: ReportTemplate | ReportTemplateLoader;
1071
1124
  /** 静态数据;load 存在时优先使用 load 的结果。 */
1072
1125
  datasets?: DatasetRows;
1073
1126
  load?: (context: ReportLoadContext) => DatasetRows | Promise<DatasetRows>;
1074
- /** 覆盖模板参数定义,未提供时自动使用 template.params。 */
1127
+ /** 覆盖模板参数定义;动态模板应在此声明查询面板元数据,避免查询前先请求模板。 */
1075
1128
  params?: ReportParamDef[];
1076
1129
  pagination?: PaginateOptions;
1077
1130
  }
@@ -1134,6 +1187,8 @@ declare interface ReportTemplate {
1134
1187
  pages: TemplatePage[];
1135
1188
  }
1136
1189
 
1190
+ declare type ReportTemplateLoader = (context: ReportLoadContext) => ReportTemplate | Promise<ReportTemplate>;
1191
+
1137
1192
  export declare const ReportToolbar: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
1138
1193
  print: () => any;
1139
1194
  export: (format: "html" | "png" | "pdf" | "xlsx" | "word") => any;
@@ -1165,6 +1220,8 @@ export declare type ResolvedConfig = Required<Pick<MachReportDefaults, "showExpo
1165
1220
  theme: MachReportTheme;
1166
1221
  messages: MachReportMessages;
1167
1222
  logger: MachReportLogger;
1223
+ preview: Required<MachReportPreviewOptions>;
1224
+ xlsx: XlsxRenderOptions;
1168
1225
  };
1169
1226
 
1170
1227
  declare interface RichParagraph {
@@ -1207,6 +1264,8 @@ declare type TemplateComponent = PlanComponent | ListComponent;
1207
1264
  declare interface TemplatePage {
1208
1265
  widthMm: number;
1209
1266
  heightMm: number;
1267
+ /** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
1268
+ layout?: "page" | "wide";
1210
1269
  marginTopMm?: number;
1211
1270
  marginBottomMm?: number;
1212
1271
  marginLeftMm?: number;
@@ -1248,16 +1307,11 @@ export declare function useMachReport(): MachReportHandle;
1248
1307
  /** 组件内部读取当前生效配置层(未提供时返回 null → 走内置缺省) */
1249
1308
  export declare function useMachReportConfig(): ConfigRef;
1250
1309
 
1251
- /**
1252
- * 页级视口虚拟化(DOM 后端)。
1253
- *
1254
- * 坐标口径(与 transform: scale 缩放配合):
1255
- * - 页高/间距/占位均在"自然坐标系"(未缩放 px)维护
1256
- * - 视口滚动量与视口高换算回自然系(除以 zoom)后再进 computePageWindow
1257
- */
1310
+ /** 页级虚拟化;页几何按计划引用缓存,滚动仅更新坐标,不遍历整个计划。 */
1258
1311
  export declare function usePageWindow(plan: Ref<RenderPlan | null>, zoom: Ref<number>, options?: {
1259
1312
  pxPerMm?: number;
1260
1313
  gapPx?: number | Ref<number>;
1314
+ overscan?: number | Ref<number>;
1261
1315
  }): {
1262
1316
  contentSize: ComputedRef< {
1263
1317
  w: number;
@@ -1269,10 +1323,14 @@ export declare function usePageWindow(plan: Ref<RenderPlan | null>, zoom: Ref<nu
1269
1323
  index: number;
1270
1324
  }[]>;
1271
1325
  makeScrollHandler: (currentPage: Ref<number>, pageCount: Ref<number>) => (vp: HTMLElement) => void;
1272
- refreshViewport(vp: HTMLElement | null): void;
1326
+ refreshViewport: (vp: HTMLElement | null) => void;
1327
+ pageOffsetPx: (index: number) => number;
1328
+ destroy: () => void;
1273
1329
  };
1274
1330
 
1275
1331
  export declare function usePrintExport(plan: Ref<RenderPlan | null>, hooks: {
1332
+ /** 按导出开始时的配置快照处理,避免输出过程中跟随路由配置变化。 */
1333
+ getXlsxOptions?: () => XlsxRenderOptions;
1276
1334
  getPdfExporter: () => PdfExporter;
1277
1335
  onError: (message: string, code?: string) => void;
1278
1336
  onWarning?: (message: string) => void;
@@ -1304,8 +1362,8 @@ export declare function useReportPreview(): MachReportController | null;
1304
1362
 
1305
1363
  /**
1306
1364
  * 缩放状态(transform: scale 方案):
1307
- * - fit 模式:按视口宽自适应(clamp 0.3~1)
1308
- * - raw 模式:固定百分比
1365
+ * - fit 模式:按视口宽自适应,超宽表也能完整缩入视口
1366
+ * - raw 模式:固定百分比(30%~300%)
1309
1367
  * transform 而非 CSS zoom:标准属性、跨浏览器、零重排。
1310
1368
  */
1311
1369
  export declare function useZoom(getFitInputs: () => {
@@ -1313,9 +1371,28 @@ export declare function useZoom(getFitInputs: () => {
1313
1371
  pageWidthPx: number;
1314
1372
  } | null): {
1315
1373
  zoom: Ref<number, number>;
1316
- zoomMode: Ref<"fit" | "raw", "fit" | "raw">;
1374
+ zoomMode: Ref<"raw" | "fit", "raw" | "fit">;
1317
1375
  applyFitZoom: () => void;
1318
1376
  setZoom: (mode: "fit" | number) => void;
1319
1377
  };
1320
1378
 
1379
+ /**
1380
+ * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
1381
+ * - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
1382
+ * 加粗/对齐/底色/字号直译(resolveGridLayout 复用单真相源几何)
1383
+ * - 文本组件 → 合并标题行(顺序流式输出,保字号/加粗/对齐;非像素级定位,
1384
+ * 目标是"财务能直接用的对账表"而非复刻版面)
1385
+ * - 未支持组件、富文本专有内容与单元格嵌套组件跳过并计入 warnings
1386
+ */
1387
+ declare interface XlsxRenderOptions {
1388
+ /** 工作表命名(连续表默认使用标题,其余默认 "Sheet1" 起序)。 */
1389
+ sheetName?: (sheetIndex: number) => string;
1390
+ /** auto 默认将 wide 逻辑表合并为连续 Sheet;pages 保留逐页;continuous 要求明确的表来源。 */
1391
+ sheetMode?: "auto" | "pages" | "continuous";
1392
+ /** 宽表或连续表默认 raw,其余默认 text;显式配置可覆盖默认值。 */
1393
+ valueMode?: "text" | "raw";
1394
+ /** 连续表默认不限制打印纸型;显式 A3/A4/A5 仅设置打印适配,不改变 Excel 列宽。 */
1395
+ paperSize?: "auto" | "a3" | "a4" | "a5";
1396
+ }
1397
+
1321
1398
  export { }
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./plugin-Bl00j_CP.cjs");function i(){return Promise.resolve().then(()=>require("./ReportPreview-VHAIfsz1.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-DVScnZ4C.js";
2
- import { M as l } from "./plugin-DVScnZ4C.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-Dwdsyk9b.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-VHAIfsz1.cjs"),c=require("./plugin-Bl00j_CP.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-Dwdsyk9b.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-Dwdsyk9b.js";
5
- import { a as f } from "./plugin-DVScnZ4C.js";
6
- import { b as X, c as Z, d as $, M as B, m as J } from "./plugin-DVScnZ4C.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) => {