@agile-team/mach-report 2.0.0 → 2.2.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 (87) hide show
  1. package/LICENSE +2 -4
  2. package/LICENSING.md +15 -0
  3. package/README.md +317 -76
  4. package/dist/ReportPreview-BWrQCj9M.js +1643 -0
  5. package/dist/ReportPreview-DY0PGGqF.cjs +6 -0
  6. package/dist/grid-geometry-DBH9ExuY.cjs +1 -0
  7. package/dist/grid-geometry-DONcjshk.js +130 -0
  8. package/dist/index.cjs +5 -5
  9. package/dist/index.d.cts +806 -13
  10. package/dist/index.d.ts +806 -13
  11. package/dist/index.js +1170 -653
  12. package/dist/page-window-index-CIuT4BAv.js +43 -0
  13. package/dist/page-window-index-DEjnM6IB.cjs +1 -0
  14. package/dist/pdf.cjs +48 -48
  15. package/dist/pdf.d.cts +159 -6
  16. package/dist/pdf.d.ts +159 -6
  17. package/dist/pdf.js +3542 -3466
  18. package/dist/plugin-BMoMUxrw.cjs +1 -0
  19. package/dist/plugin-CAcNe0FT.js +25 -0
  20. package/dist/report-params-B3Fia6JO.js +10 -0
  21. package/dist/report-params-D1gZ1DME.cjs +1 -0
  22. package/dist/sql.cjs +65 -64
  23. package/dist/sql.d.cts +109 -5
  24. package/dist/sql.d.ts +109 -5
  25. package/dist/sql.js +7947 -7922
  26. package/dist/style.css +1 -1
  27. package/dist/textwrap-DdaewxAd.js +117 -0
  28. package/dist/textwrap-DqiFwAV3.cjs +3 -0
  29. package/dist/vue/async.d.cts +820 -320
  30. package/dist/vue/async.d.ts +820 -320
  31. package/dist/vue/index.d.cts +1374 -14
  32. package/dist/vue/index.d.ts +1374 -14
  33. package/dist/vue-async.cjs +1 -1
  34. package/dist/vue-async.js +11 -12
  35. package/dist/vue.cjs +1 -1
  36. package/dist/vue.js +129 -49
  37. package/dist/xlsx.cjs +21 -21
  38. package/dist/xlsx.d.cts +2300 -5
  39. package/dist/xlsx.d.ts +2300 -5
  40. package/dist/xlsx.js +6390 -6347
  41. package/package.json +8 -3
  42. package/dist/ReportPreview-Cr0IH1Rz.cjs +0 -6
  43. package/dist/ReportPreview-DwknBgsJ.js +0 -1266
  44. package/dist/builder/template-builder.d.ts +0 -69
  45. package/dist/defaults.d.ts +0 -23
  46. package/dist/format.d.ts +0 -48
  47. package/dist/grid-geometry-BXpOxznT.cjs +0 -1
  48. package/dist/grid-geometry-Bs8QXz1X.js +0 -65
  49. package/dist/layout/paginate.d.ts +0 -97
  50. package/dist/layout/textwrap.d.ts +0 -36
  51. package/dist/pdf/font-loader.d.ts +0 -6
  52. package/dist/pdf/index.d.ts +0 -2
  53. package/dist/pdf/render-pdf.d.ts +0 -25
  54. package/dist/plugin-Cj3c2wJc.cjs +0 -1
  55. package/dist/plugin-DJf_6_fl.js +0 -18
  56. package/dist/render/canvas.d.ts +0 -76
  57. package/dist/render/dom.d.ts +0 -10
  58. package/dist/render/grid-geometry.d.ts +0 -41
  59. package/dist/render/style.d.ts +0 -33
  60. package/dist/render/window.d.ts +0 -23
  61. package/dist/schema/render-plan.d.ts +0 -88
  62. package/dist/schema/validate.d.ts +0 -15
  63. package/dist/sql/ast-check.d.ts +0 -14
  64. package/dist/sql/compile.d.ts +0 -31
  65. package/dist/sql/expr.d.ts +0 -21
  66. package/dist/sql/index.d.ts +0 -4
  67. package/dist/sql/tokenizer.d.ts +0 -25
  68. package/dist/style-CFZ-HE2s.cjs +0 -3
  69. package/dist/style-DnmtG7Gl.js +0 -180
  70. package/dist/units.d.ts +0 -11
  71. package/dist/vue/ReportParamPanel.d.ts +0 -19
  72. package/dist/vue/ReportPreview.d.ts +0 -200
  73. package/dist/vue/ReportToolbar.d.ts +0 -42
  74. package/dist/vue/adapters.d.ts +0 -34
  75. package/dist/vue/composables/useHighlight.d.ts +0 -8
  76. package/dist/vue/composables/usePageWindow.d.ts +0 -25
  77. package/dist/vue/composables/usePrintExport.d.ts +0 -40
  78. package/dist/vue/composables/useReportSearch.d.ts +0 -73
  79. package/dist/vue/composables/useZoom.d.ts +0 -15
  80. package/dist/vue/config.d.ts +0 -108
  81. package/dist/vue/controller.d.ts +0 -29
  82. package/dist/vue/errors.d.ts +0 -16
  83. package/dist/vue/injection-keys.d.ts +0 -14
  84. package/dist/vue/local-adapter.d.ts +0 -11
  85. package/dist/vue/pdf-exporter.d.ts +0 -13
  86. package/dist/vue/plugin.d.ts +0 -332
  87. package/dist/xlsx/render-xlsx.d.ts +0 -20
@@ -1,332 +0,0 @@
1
- import { App } from 'vue';
2
- import { PlanFetcher } from './adapters';
3
- import { PdfExporter } from './pdf-exporter';
4
- import { MachReportConfig } from './config';
5
- /**
6
- * 全局组件(懒加载分片:首次渲染才拉取组件与引擎依赖,
7
- * 与局部 import 等价——首屏敏感页面零额外成本)
8
- */
9
- export declare const MachReportPreview: {
10
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
11
- reportId: {
12
- type: import('vue').PropType<string | string[] | null>;
13
- default: null;
14
- };
15
- params: {
16
- type: import('vue').PropType<Record<string, string>>;
17
- default: () => {};
18
- };
19
- height: {
20
- type: StringConstructor;
21
- default: string;
22
- };
23
- autoLoad: {
24
- type: BooleanConstructor;
25
- default: boolean;
26
- };
27
- showExport: {
28
- type: BooleanConstructor;
29
- default: undefined;
30
- };
31
- showPrint: {
32
- type: BooleanConstructor;
33
- default: undefined;
34
- };
35
- showPdfWindow: {
36
- type: BooleanConstructor;
37
- default: undefined;
38
- };
39
- gapPx: {
40
- type: NumberConstructor;
41
- default: undefined;
42
- };
43
- messages: {
44
- type: import('vue').PropType<Partial<import('./config').MachReportMessages>>;
45
- default: undefined;
46
- };
47
- preset: {
48
- type: StringConstructor;
49
- default: undefined;
50
- };
51
- debug: {
52
- type: BooleanConstructor;
53
- default: boolean;
54
- };
55
- paramDefs: {
56
- type: import('vue').PropType<import('..').ReportParamDef[] | undefined>;
57
- default: undefined;
58
- };
59
- showParams: {
60
- type: BooleanConstructor;
61
- default: undefined;
62
- };
63
- fetcher: {
64
- type: import('vue').PropType<PlanFetcher | null>;
65
- default: null;
66
- };
67
- }>> & Readonly<{
68
- onError?: ((message: string, detail?: {
69
- code: string;
70
- cause?: unknown;
71
- } | undefined) => any) | undefined;
72
- onLoaded?: ((pageCount: number) => any) | undefined;
73
- onWarning?: ((message: string) => any) | undefined;
74
- }>, {
75
- reload: () => Promise<void>;
76
- print: () => Promise<void>;
77
- exportAs: (format: string) => void;
78
- openPdfWindow: () => void;
79
- gotoPage: (n: number) => void;
80
- setParams: (values: Record<string, string>, opts?: {
81
- reload?: boolean;
82
- }) => void;
83
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
84
- error: (message: string, detail?: {
85
- code: string;
86
- cause?: unknown;
87
- } | undefined) => any;
88
- loaded: (pageCount: number) => any;
89
- warning: (message: string) => any;
90
- }, import('vue').PublicProps, {
91
- height: string;
92
- gapPx: number;
93
- params: Record<string, string>;
94
- debug: boolean;
95
- showExport: boolean;
96
- showPrint: boolean;
97
- showPdfWindow: boolean;
98
- showParams: boolean;
99
- messages: Partial<import('./config').MachReportMessages>;
100
- reportId: string | string[] | null;
101
- autoLoad: boolean;
102
- preset: string;
103
- paramDefs: import('..').ReportParamDef[] | undefined;
104
- fetcher: PlanFetcher | null;
105
- }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
106
- viewportRef: HTMLDivElement;
107
- containerRef: HTMLDivElement;
108
- thumbsRef: HTMLElement;
109
- }, HTMLDivElement, import('vue').ComponentProvideOptions, {
110
- P: {};
111
- B: {};
112
- D: {};
113
- C: {};
114
- M: {};
115
- Defaults: {};
116
- }, Readonly<import('vue').ExtractPropTypes<{
117
- reportId: {
118
- type: import('vue').PropType<string | string[] | null>;
119
- default: null;
120
- };
121
- params: {
122
- type: import('vue').PropType<Record<string, string>>;
123
- default: () => {};
124
- };
125
- height: {
126
- type: StringConstructor;
127
- default: string;
128
- };
129
- autoLoad: {
130
- type: BooleanConstructor;
131
- default: boolean;
132
- };
133
- showExport: {
134
- type: BooleanConstructor;
135
- default: undefined;
136
- };
137
- showPrint: {
138
- type: BooleanConstructor;
139
- default: undefined;
140
- };
141
- showPdfWindow: {
142
- type: BooleanConstructor;
143
- default: undefined;
144
- };
145
- gapPx: {
146
- type: NumberConstructor;
147
- default: undefined;
148
- };
149
- messages: {
150
- type: import('vue').PropType<Partial<import('./config').MachReportMessages>>;
151
- default: undefined;
152
- };
153
- preset: {
154
- type: StringConstructor;
155
- default: undefined;
156
- };
157
- debug: {
158
- type: BooleanConstructor;
159
- default: boolean;
160
- };
161
- paramDefs: {
162
- type: import('vue').PropType<import('..').ReportParamDef[] | undefined>;
163
- default: undefined;
164
- };
165
- showParams: {
166
- type: BooleanConstructor;
167
- default: undefined;
168
- };
169
- fetcher: {
170
- type: import('vue').PropType<PlanFetcher | null>;
171
- default: null;
172
- };
173
- }>> & Readonly<{
174
- onError?: ((message: string, detail?: {
175
- code: string;
176
- cause?: unknown;
177
- } | undefined) => any) | undefined;
178
- onLoaded?: ((pageCount: number) => any) | undefined;
179
- onWarning?: ((message: string) => any) | undefined;
180
- }>, {
181
- reload: () => Promise<void>;
182
- print: () => Promise<void>;
183
- exportAs: (format: string) => void;
184
- openPdfWindow: () => void;
185
- gotoPage: (n: number) => void;
186
- setParams: (values: Record<string, string>, opts?: {
187
- reload?: boolean;
188
- }) => void;
189
- }, {}, {}, {}, {
190
- height: string;
191
- gapPx: number;
192
- params: Record<string, string>;
193
- debug: boolean;
194
- showExport: boolean;
195
- showPrint: boolean;
196
- showPdfWindow: boolean;
197
- showParams: boolean;
198
- messages: Partial<import('./config').MachReportMessages>;
199
- reportId: string | string[] | null;
200
- autoLoad: boolean;
201
- preset: string;
202
- paramDefs: import('..').ReportParamDef[] | undefined;
203
- fetcher: PlanFetcher | null;
204
- }>;
205
- __isFragment?: never;
206
- __isTeleport?: never;
207
- __isSuspense?: never;
208
- } & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
209
- reportId: {
210
- type: import('vue').PropType<string | string[] | null>;
211
- default: null;
212
- };
213
- params: {
214
- type: import('vue').PropType<Record<string, string>>;
215
- default: () => {};
216
- };
217
- height: {
218
- type: StringConstructor;
219
- default: string;
220
- };
221
- autoLoad: {
222
- type: BooleanConstructor;
223
- default: boolean;
224
- };
225
- showExport: {
226
- type: BooleanConstructor;
227
- default: undefined;
228
- };
229
- showPrint: {
230
- type: BooleanConstructor;
231
- default: undefined;
232
- };
233
- showPdfWindow: {
234
- type: BooleanConstructor;
235
- default: undefined;
236
- };
237
- gapPx: {
238
- type: NumberConstructor;
239
- default: undefined;
240
- };
241
- messages: {
242
- type: import('vue').PropType<Partial<import('./config').MachReportMessages>>;
243
- default: undefined;
244
- };
245
- preset: {
246
- type: StringConstructor;
247
- default: undefined;
248
- };
249
- debug: {
250
- type: BooleanConstructor;
251
- default: boolean;
252
- };
253
- paramDefs: {
254
- type: import('vue').PropType<import('..').ReportParamDef[] | undefined>;
255
- default: undefined;
256
- };
257
- showParams: {
258
- type: BooleanConstructor;
259
- default: undefined;
260
- };
261
- fetcher: {
262
- type: import('vue').PropType<PlanFetcher | null>;
263
- default: null;
264
- };
265
- }>> & Readonly<{
266
- onError?: ((message: string, detail?: {
267
- code: string;
268
- cause?: unknown;
269
- } | undefined) => any) | undefined;
270
- onLoaded?: ((pageCount: number) => any) | undefined;
271
- onWarning?: ((message: string) => any) | undefined;
272
- }>, {
273
- reload: () => Promise<void>;
274
- print: () => Promise<void>;
275
- exportAs: (format: string) => void;
276
- openPdfWindow: () => void;
277
- gotoPage: (n: number) => void;
278
- setParams: (values: Record<string, string>, opts?: {
279
- reload?: boolean;
280
- }) => void;
281
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
282
- error: (message: string, detail?: {
283
- code: string;
284
- cause?: unknown;
285
- } | undefined) => any;
286
- loaded: (pageCount: number) => any;
287
- warning: (message: string) => any;
288
- }, string, {
289
- height: string;
290
- gapPx: number;
291
- params: Record<string, string>;
292
- debug: boolean;
293
- showExport: boolean;
294
- showPrint: boolean;
295
- showPdfWindow: boolean;
296
- showParams: boolean;
297
- messages: Partial<import('./config').MachReportMessages>;
298
- reportId: string | string[] | null;
299
- autoLoad: boolean;
300
- preset: string;
301
- paramDefs: import('..').ReportParamDef[] | undefined;
302
- fetcher: PlanFetcher | null;
303
- }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
304
- $slots: {
305
- default?(_: {}): any;
306
- };
307
- });
308
- export interface MachReportPluginOptions {
309
- /** 报表数据源;也可直接传给 ReportPreview 的 fetcher prop */
310
- fetcher?: PlanFetcher;
311
- /** 应用级配置中心(defaults/presets/文案/主题),见 defineMachReportConfig */
312
- config?: MachReportConfig;
313
- /** PDF 导出字体 URL(默认 /simhei.ttf;'' 跳过字体) */
314
- pdfFontUrl?: string;
315
- /** 自定义 PDF 导出器(缺省用懒加载引擎 /pdf 子路径的默认实现) */
316
- pdfExporter?: PdfExporter;
317
- /** 注册全局组件 <MachReportPreview>(默认 true;懒加载分片不影响首屏) */
318
- globalComponent?: boolean;
319
- }
320
- /**
321
- * Vue 插件:注册组件、配置和可选的数据源,不绑定任何后端接口。
322
- *
323
- * ```ts
324
- * app.use(machReportPlugin, { fetcher })
325
- * app.use(machReportPlugin, { config: defineMachReportConfig({...}) })
326
- * ```
327
- *
328
- * 之后业务模板直接写 `<MachReportPreview report-id="X" />`。
329
- */
330
- export declare const machReportPlugin: {
331
- install(app: App, options?: MachReportPluginOptions): void;
332
- };
@@ -1,20 +0,0 @@
1
- import { default as ExcelJS } from 'exceljs';
2
- import { RenderPlan } from '../schema/render-plan';
3
- /**
4
- * RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
5
- * - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
6
- * 加粗/对齐/底色/字号直译(resolveGridLayout 复用单真相源几何)
7
- * - 文本组件 → 合并标题行(顺序流式输出,保字号/加粗/对齐;非像素级定位,
8
- * 目标是"财务能直接用的对账表"而非复刻版面)
9
- * - 图片/条码/图表跳过并计入 warnings(与 PDF 保真告警同口径)
10
- */
11
- export interface XlsxRenderOptions {
12
- /** 工作表命名(默认 "Sheet1" 起序) */
13
- sheetName?: (pageIndex: number) => string;
14
- }
15
- export interface XlsxRenderResult {
16
- workbook: ExcelJS.Workbook;
17
- buffer: ExcelJS.Buffer;
18
- warnings: string[];
19
- }
20
- export declare function renderPlanToXlsx(plan: RenderPlan, options?: XlsxRenderOptions): Promise<XlsxRenderResult>;