@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.
- package/dist/ReportPreview-DWLjYi_p.js +527 -0
- package/dist/ReportPreview-rBtmbu3W.cjs +6 -0
- package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
- package/dist/builder/template-builder.d.ts +3 -3
- package/dist/compat/jh4j-template.d.ts +1 -1
- package/dist/index.cjs +6 -0
- package/dist/index.d.cts +13 -0
- package/dist/index.d.ts +13 -13
- package/dist/index.js +919 -14
- package/dist/layout/paginate.d.ts +2 -2
- package/dist/manager/api.d.ts +1 -1
- package/dist/manager/index.d.ts +2 -2
- package/dist/manager.cjs +1 -0
- package/dist/manager.d.cts +5 -0
- package/dist/manager.d.ts +1 -1
- package/dist/manager.js +104 -6
- package/dist/pdf/index.d.ts +2 -2
- package/dist/pdf/render-pdf.d.ts +10 -4
- package/dist/pdf.cjs +84 -0
- package/dist/pdf.d.cts +6 -0
- package/dist/pdf.d.ts +1 -1
- package/dist/pdf.js +36152 -7
- package/dist/plugin-BIJxGHZX.cjs +1 -0
- package/dist/plugin-DrV67_VW.js +89 -0
- package/dist/render/canvas.d.ts +2 -2
- package/dist/render/dom.d.ts +1 -1
- package/dist/render/grid-geometry.d.ts +1 -1
- package/dist/render/style.d.ts +1 -8
- package/dist/schema/validate.d.ts +1 -1
- package/dist/sql/compile.d.ts +1 -1
- package/dist/sql/index.d.ts +4 -4
- package/dist/sql.cjs +68 -0
- package/dist/sql.d.cts +5 -0
- package/dist/sql.d.ts +1 -1
- package/dist/sql.js +40794 -6
- package/dist/style-B3vxGDZd.cjs +3 -0
- package/dist/style-B7Xfo5I-.js +255 -0
- package/dist/style.css +1 -0
- package/dist/vue/ReportPreview.d.ts +141 -0
- package/dist/vue/ReportToolbar.d.ts +25 -0
- package/dist/vue/adapters.d.ts +37 -0
- package/dist/vue/async.d.cts +146 -0
- package/dist/vue/async.d.ts +146 -0
- package/dist/vue/composables/usePageWindow.d.ts +28 -0
- package/dist/vue/composables/usePrintExport.d.ts +19 -0
- package/dist/vue/composables/useZoom.d.ts +15 -0
- package/dist/vue/config.d.ts +79 -0
- package/dist/vue/index.d.cts +11 -0
- package/dist/vue/index.d.ts +11 -0
- package/dist/vue/injection-keys.d.ts +12 -0
- package/dist/vue/local-adapter.d.ts +12 -0
- package/dist/vue/pdf-exporter.d.ts +13 -0
- package/dist/vue/plugin.d.ts +34 -0
- package/dist/vue-async.cjs +1 -0
- package/dist/vue-async.js +17 -0
- package/dist/vue.cjs +1 -0
- package/dist/vue.js +44 -0
- package/package.json +84 -17
- package/dist/builder/template-builder.js +0 -153
- package/dist/builder/template-builder.js.map +0 -1
- package/dist/compat/jh4j-template.js +0 -196
- package/dist/compat/jh4j-template.js.map +0 -1
- package/dist/defaults.js +0 -28
- package/dist/defaults.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/layout/paginate.js +0 -197
- package/dist/layout/paginate.js.map +0 -1
- package/dist/layout/textwrap.js +0 -173
- package/dist/layout/textwrap.js.map +0 -1
- package/dist/manager/api.js +0 -101
- package/dist/manager/api.js.map +0 -1
- package/dist/manager/index.js +0 -3
- package/dist/manager/index.js.map +0 -1
- package/dist/manager/types.js +0 -8
- package/dist/manager/types.js.map +0 -1
- package/dist/manager.js.map +0 -1
- package/dist/pdf/font-loader.js +0 -84
- package/dist/pdf/font-loader.js.map +0 -1
- package/dist/pdf/index.js +0 -3
- package/dist/pdf/index.js.map +0 -1
- package/dist/pdf/render-pdf.js +0 -284
- package/dist/pdf/render-pdf.js.map +0 -1
- package/dist/pdf.js.map +0 -1
- package/dist/render/canvas.js +0 -402
- package/dist/render/canvas.js.map +0 -1
- package/dist/render/dom.js +0 -311
- package/dist/render/dom.js.map +0 -1
- package/dist/render/grid-geometry.js +0 -131
- package/dist/render/grid-geometry.js.map +0 -1
- package/dist/render/style.js +0 -39
- package/dist/render/style.js.map +0 -1
- package/dist/render/window.js +0 -58
- package/dist/render/window.js.map +0 -1
- package/dist/schema/render-plan.js +0 -25
- package/dist/schema/render-plan.js.map +0 -1
- package/dist/schema/validate.js +0 -129
- package/dist/schema/validate.js.map +0 -1
- package/dist/sql/ast-check.js +0 -44
- package/dist/sql/ast-check.js.map +0 -1
- package/dist/sql/compile.js +0 -145
- package/dist/sql/compile.js.map +0 -1
- package/dist/sql/expr.js +0 -123
- package/dist/sql/expr.js.map +0 -1
- package/dist/sql/index.js +0 -5
- package/dist/sql/index.js.map +0 -1
- package/dist/sql/tokenizer.js +0 -124
- package/dist/sql/tokenizer.js.map +0 -1
- package/dist/sql.js.map +0 -1
- package/dist/units.js +0 -26
- 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
|
+
};
|
package/dist/render/canvas.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
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;
|
package/dist/render/dom.d.ts
CHANGED
package/dist/render/style.d.ts
CHANGED
|
@@ -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;
|
package/dist/sql/compile.d.ts
CHANGED
package/dist/sql/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
1
|
+
export * from './tokenizer';
|
|
2
|
+
export * from './expr';
|
|
3
|
+
export * from './compile';
|
|
4
|
+
export * from './ast-check';
|