@agile-team/mach-report 0.4.0 → 0.6.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 (111) hide show
  1. package/dist/ReportPreview-DWLjYi_p.js +527 -0
  2. package/dist/ReportPreview-rBtmbu3W.cjs +6 -0
  3. package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
  4. package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
  5. package/dist/builder/template-builder.d.ts +3 -3
  6. package/dist/compat/jh4j-template.d.ts +1 -1
  7. package/dist/index.cjs +6 -0
  8. package/dist/index.d.cts +13 -0
  9. package/dist/index.d.ts +13 -13
  10. package/dist/index.js +919 -14
  11. package/dist/layout/paginate.d.ts +2 -2
  12. package/dist/manager/api.d.ts +1 -1
  13. package/dist/manager/index.d.ts +2 -2
  14. package/dist/manager.cjs +1 -0
  15. package/dist/manager.d.cts +5 -0
  16. package/dist/manager.d.ts +1 -1
  17. package/dist/manager.js +104 -6
  18. package/dist/pdf/index.d.ts +2 -2
  19. package/dist/pdf/render-pdf.d.ts +10 -4
  20. package/dist/pdf.cjs +84 -0
  21. package/dist/pdf.d.cts +6 -0
  22. package/dist/pdf.d.ts +1 -1
  23. package/dist/pdf.js +36152 -7
  24. package/dist/plugin-BIJxGHZX.cjs +1 -0
  25. package/dist/plugin-DrV67_VW.js +89 -0
  26. package/dist/render/canvas.d.ts +2 -2
  27. package/dist/render/dom.d.ts +1 -1
  28. package/dist/render/grid-geometry.d.ts +1 -1
  29. package/dist/render/style.d.ts +1 -8
  30. package/dist/schema/validate.d.ts +1 -1
  31. package/dist/sql/compile.d.ts +1 -1
  32. package/dist/sql/index.d.ts +4 -4
  33. package/dist/sql.cjs +68 -0
  34. package/dist/sql.d.cts +5 -0
  35. package/dist/sql.d.ts +1 -1
  36. package/dist/sql.js +40794 -6
  37. package/dist/style-B3vxGDZd.cjs +3 -0
  38. package/dist/style-B7Xfo5I-.js +255 -0
  39. package/dist/style.css +1 -0
  40. package/dist/vue/ReportPreview.d.ts +141 -0
  41. package/dist/vue/ReportToolbar.d.ts +25 -0
  42. package/dist/vue/adapters.d.ts +37 -0
  43. package/dist/vue/async.d.cts +146 -0
  44. package/dist/vue/async.d.ts +146 -0
  45. package/dist/vue/composables/usePageWindow.d.ts +28 -0
  46. package/dist/vue/composables/usePrintExport.d.ts +19 -0
  47. package/dist/vue/composables/useZoom.d.ts +15 -0
  48. package/dist/vue/config.d.ts +79 -0
  49. package/dist/vue/index.d.cts +11 -0
  50. package/dist/vue/index.d.ts +11 -0
  51. package/dist/vue/injection-keys.d.ts +12 -0
  52. package/dist/vue/local-adapter.d.ts +12 -0
  53. package/dist/vue/pdf-exporter.d.ts +13 -0
  54. package/dist/vue/plugin.d.ts +34 -0
  55. package/dist/vue-async.cjs +1 -0
  56. package/dist/vue-async.js +17 -0
  57. package/dist/vue.cjs +1 -0
  58. package/dist/vue.js +44 -0
  59. package/package.json +84 -17
  60. package/dist/builder/template-builder.js +0 -153
  61. package/dist/builder/template-builder.js.map +0 -1
  62. package/dist/compat/jh4j-template.js +0 -196
  63. package/dist/compat/jh4j-template.js.map +0 -1
  64. package/dist/defaults.js +0 -28
  65. package/dist/defaults.js.map +0 -1
  66. package/dist/index.js.map +0 -1
  67. package/dist/layout/paginate.js +0 -197
  68. package/dist/layout/paginate.js.map +0 -1
  69. package/dist/layout/textwrap.js +0 -173
  70. package/dist/layout/textwrap.js.map +0 -1
  71. package/dist/manager/api.js +0 -101
  72. package/dist/manager/api.js.map +0 -1
  73. package/dist/manager/index.js +0 -3
  74. package/dist/manager/index.js.map +0 -1
  75. package/dist/manager/types.js +0 -8
  76. package/dist/manager/types.js.map +0 -1
  77. package/dist/manager.js.map +0 -1
  78. package/dist/pdf/font-loader.js +0 -84
  79. package/dist/pdf/font-loader.js.map +0 -1
  80. package/dist/pdf/index.js +0 -3
  81. package/dist/pdf/index.js.map +0 -1
  82. package/dist/pdf/render-pdf.js +0 -284
  83. package/dist/pdf/render-pdf.js.map +0 -1
  84. package/dist/pdf.js.map +0 -1
  85. package/dist/render/canvas.js +0 -402
  86. package/dist/render/canvas.js.map +0 -1
  87. package/dist/render/dom.js +0 -311
  88. package/dist/render/dom.js.map +0 -1
  89. package/dist/render/grid-geometry.js +0 -131
  90. package/dist/render/grid-geometry.js.map +0 -1
  91. package/dist/render/style.js +0 -39
  92. package/dist/render/style.js.map +0 -1
  93. package/dist/render/window.js +0 -58
  94. package/dist/render/window.js.map +0 -1
  95. package/dist/schema/render-plan.js +0 -25
  96. package/dist/schema/render-plan.js.map +0 -1
  97. package/dist/schema/validate.js +0 -129
  98. package/dist/schema/validate.js.map +0 -1
  99. package/dist/sql/ast-check.js +0 -44
  100. package/dist/sql/ast-check.js.map +0 -1
  101. package/dist/sql/compile.js +0 -145
  102. package/dist/sql/compile.js.map +0 -1
  103. package/dist/sql/expr.js +0 -123
  104. package/dist/sql/expr.js.map +0 -1
  105. package/dist/sql/index.js +0 -5
  106. package/dist/sql/index.js.map +0 -1
  107. package/dist/sql/tokenizer.js +0 -124
  108. package/dist/sql/tokenizer.js.map +0 -1
  109. package/dist/sql.js.map +0 -1
  110. package/dist/units.js +0 -26
  111. package/dist/units.js.map +0 -1
@@ -0,0 +1 @@
1
+ "use strict";var g=Object.create;var d=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var y=(r,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of F(e))!w.call(r,t)&&t!==n&&d(r,t,{get:()=>e[t],enumerable:!(o=T(e,t))||o.enumerable});return r};var j=(r,e,n)=>(n=r!=null?g(U(r)):{},y(e||!r||!r.__esModule?d(n,"default",{value:r,enumerable:!0}):n,r));const C=require("vue");function h(r){return r==null?[]:Array.isArray(r)?r.map(String).filter(e=>e!==""):String(r).split(",").map(e=>e.trim()).filter(e=>e!=="")}function O(r){return h(r).join(",")}class l extends Error{constructor(e){super(e),this.name="PlanLoadError"}}function E(r={}){const{baseUrl:e="",headers:n,credentials:o}=r;return async({url:t,method:f,params:a})=>{const c=a&&Object.keys(a).length>0?`?${new URLSearchParams(a)}`:"";let s;try{s=await fetch(`${e}${t}${c}`,{method:f.toUpperCase(),headers:{Accept:"application/json",...n},credentials:o})}catch(i){throw new l(`请求失败(${t}): ${i instanceof Error?i.message:String(i)}`)}if(!s.ok)throw new l(`HTTP ${s.status} ${t}`);return s.json()}}function P(r){const{request:e,baseUrl:n=""}=r;return async({tempIds:o,furnitureTempId:t,params:f})=>{if(o.length===0)throw new l("缺少报表模板 ID");const a={tempId:o.join(",")};t&&(a.furnitureTempId=t);for(const[i,u]of Object.entries(f||{}))i&&u!=null&&u!==""&&(a[i]=String(u));const c=await e({url:`${n}/report/codePrintReport/gridPlan`,method:"get",params:a});if(c&&c.code!=null&&c.code!==200)throw new l(String(c.message||"预览加载失败"));const s=c?.data?.pages;return{schemaVersion:"jh4j-compatible",pages:Array.isArray(s)?s:[]}}}function R(r={fontUrl:"/simhei.ttf"}){let e=null;return async n=>{e||(e=await import("@agile-team/mach-report/pdf"));const o=r.fontUrl?await e.loadFontWithCache(r.fontUrl):null,{bytes:t}=await e.renderPlanToPdf(n,o?{customFontBytes:o}:{});return t}}const m="mach-report/fetcher",p="mach-report/pdf-exporter",_="mach-report/config",b={install(r,e={}){const n=e.fetcher??P({request:e.request??E({baseUrl:e.baseUrl}),baseUrl:e.baseUrl});r.provide(m,n);const o=e.pdfFontUrl??e.config?.defaults?.pdfFontUrl??"/simhei.ttf";r.provide(p,e.pdfExporter??R({fontUrl:o})),r.provide(_,C.computed(()=>e.config??null))}};exports.MACH_REPORT_CONFIG_KEY=_;exports.MACH_REPORT_FETCHER_KEY=m;exports.MACH_REPORT_PDF_EXPORTER_KEY=p;exports.PlanLoadError=l;exports.createDefaultPdfExporter=R;exports.createFetchRequest=E;exports.createJh4jGridPlanFetcher=P;exports.joinTempIds=O;exports.machReportPlugin=b;exports.normalizeTempIds=h;
@@ -0,0 +1,89 @@
1
+ import { computed as d } from "vue";
2
+ function h(e) {
3
+ return e == null ? [] : Array.isArray(e) ? e.map(String).filter((r) => r !== "") : String(e).split(",").map((r) => r.trim()).filter((r) => r !== "");
4
+ }
5
+ function y(e) {
6
+ return h(e).join(",");
7
+ }
8
+ class l extends Error {
9
+ constructor(r) {
10
+ super(r), this.name = "PlanLoadError";
11
+ }
12
+ }
13
+ function m(e = {}) {
14
+ const { baseUrl: r = "", headers: a, credentials: t } = e;
15
+ return async ({ url: n, method: f, params: o }) => {
16
+ const s = o && Object.keys(o).length > 0 ? `?${new URLSearchParams(o)}` : "";
17
+ let c;
18
+ try {
19
+ c = await fetch(`${r}${n}${s}`, {
20
+ method: f.toUpperCase(),
21
+ headers: { Accept: "application/json", ...a },
22
+ credentials: t
23
+ });
24
+ } catch (i) {
25
+ throw new l(
26
+ `请求失败(${n}): ${i instanceof Error ? i.message : String(i)}`
27
+ );
28
+ }
29
+ if (!c.ok)
30
+ throw new l(`HTTP ${c.status} ${n}`);
31
+ return c.json();
32
+ };
33
+ }
34
+ function p(e) {
35
+ const { request: r, baseUrl: a = "" } = e;
36
+ return async ({ tempIds: t, furnitureTempId: n, params: f }) => {
37
+ if (t.length === 0) throw new l("缺少报表模板 ID");
38
+ const o = { tempId: t.join(",") };
39
+ n && (o.furnitureTempId = n);
40
+ for (const [i, u] of Object.entries(f || {}))
41
+ i && u != null && u !== "" && (o[i] = String(u));
42
+ const s = await r({
43
+ url: `${a}/report/codePrintReport/gridPlan`,
44
+ method: "get",
45
+ params: o
46
+ });
47
+ if (s && s.code != null && s.code !== 200)
48
+ throw new l(String(s.message || "预览加载失败"));
49
+ const c = s?.data?.pages;
50
+ return {
51
+ schemaVersion: "jh4j-compatible",
52
+ pages: Array.isArray(c) ? c : []
53
+ };
54
+ };
55
+ }
56
+ function g(e = { fontUrl: "/simhei.ttf" }) {
57
+ let r = null;
58
+ return async (a) => {
59
+ r || (r = await import("@agile-team/mach-report/pdf"));
60
+ const t = e.fontUrl ? await r.loadFontWithCache(e.fontUrl) : null, { bytes: n } = await r.renderPlanToPdf(a, t ? { customFontBytes: t } : {});
61
+ return n;
62
+ };
63
+ }
64
+ const P = "mach-report/fetcher", E = "mach-report/pdf-exporter", U = "mach-report/config", R = {
65
+ install(e, r = {}) {
66
+ const a = r.fetcher ?? p({
67
+ request: r.request ?? m({ baseUrl: r.baseUrl }),
68
+ baseUrl: r.baseUrl
69
+ });
70
+ e.provide(P, a);
71
+ const t = r.pdfFontUrl ?? r.config?.defaults?.pdfFontUrl ?? "/simhei.ttf";
72
+ e.provide(
73
+ E,
74
+ r.pdfExporter ?? g({ fontUrl: t })
75
+ ), e.provide(U, d(() => r.config ?? null));
76
+ }
77
+ };
78
+ export {
79
+ U as M,
80
+ l as P,
81
+ P as a,
82
+ E as b,
83
+ g as c,
84
+ m as d,
85
+ p as e,
86
+ y as j,
87
+ R as m,
88
+ h as n
89
+ };
@@ -1,5 +1,5 @@
1
- import type { PlanPage, RenderPlan } from "../schema/render-plan";
2
- import { type TextMeasurer } from "../layout/textwrap";
1
+ import { PlanPage, RenderPlan } from '../schema/render-plan';
2
+ import { TextMeasurer } from '../layout/textwrap';
3
3
  export interface CanvasRenderOptions {
4
4
  /** 设备像素比,默认取运行环境 devicePixelRatio */
5
5
  dpr?: number;
@@ -1,4 +1,4 @@
1
- import type { PlanComponent, PlanPage, RenderPlan } from "../schema/render-plan";
1
+ import { PlanComponent, PlanPage, RenderPlan } from '../schema/render-plan';
2
2
  export interface RenderOptions {
3
3
  dpi?: number;
4
4
  classNames?: Partial<Record<ClassKey, string>>;
@@ -1,4 +1,4 @@
1
- import type { GridCell, PlanGrid } from "../schema/render-plan";
1
+ import { GridCell, PlanGrid } from '../schema/render-plan';
2
2
  export interface GridCellBox {
3
3
  ri: number;
4
4
  ci: number;
@@ -1,11 +1,4 @@
1
- /**
2
- * 组件样式解析(三后端共享的唯一样式语义真相源)。
3
- *
4
- * DOM/Canvas/PDF 各自把 ComponentStyle 翻译成绘制语义时必须经过这里,
5
- * 禁止后端内联写 fontSize/颜色/线宽换算——历史上三处各写一份导致
6
- * Canvas 字号 2.13x、网格线口径不一致等漂移 bug。
7
- */
8
- import type { ComponentStyle } from "../schema/render-plan";
1
+ import { ComponentStyle } from '../schema/render-plan';
9
2
  /** 解析后的字号(px 值已按 dpi 换算;pt 值供 PDF 使用) */
10
3
  export interface ResolvedFontSize {
11
4
  fontSizePt: number;
@@ -1,4 +1,4 @@
1
- import type { PlanComponent, PlanPage } from "./render-plan";
1
+ import { PlanComponent, PlanPage } from './render-plan';
2
2
  export interface ValidationError {
3
3
  path: string;
4
4
  message: string;
@@ -1,4 +1,4 @@
1
- export { SqlSyntaxError } from "./tokenizer";
1
+ export { SqlSyntaxError } from './tokenizer';
2
2
  export interface RenderedSql {
3
3
  sql: string;
4
4
  binds: unknown[];
@@ -1,4 +1,4 @@
1
- export * from "./tokenizer";
2
- export * from "./expr";
3
- export * from "./compile";
4
- export * from "./ast-check";
1
+ export * from './tokenizer';
2
+ export * from './expr';
3
+ export * from './compile';
4
+ export * from './ast-check';