@agile-team/mach-report 2.8.4 → 2.9.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/README.md +27 -9
- package/dist/ExcelBindingWizard-DiaxvWpQ.cjs +1 -0
- package/dist/ExcelBindingWizard-RLJIXKKG.js +816 -0
- package/dist/{ReportPreview-DTWiCH5a.js → ReportPreview-B5ZNEasW.js} +22 -21
- package/dist/ReportPreview-DRtVPUYo.cjs +6 -0
- package/dist/RuleEditor-N4qnMZ-Z.cjs +1 -0
- package/dist/RuleEditor-ynnUEK0s.js +1575 -0
- package/dist/TemplateReviewPanel-C_Lmzis6.cjs +1 -0
- package/dist/TemplateReviewPanel-Cn32OY4_.js +173 -0
- package/dist/analytics.cjs +1 -1
- package/dist/analytics.d.cts +188 -5
- package/dist/analytics.d.ts +188 -5
- package/dist/analytics.js +68 -202
- package/dist/{assets-B9qJku3V.js → assets-DDsfEi8R.js} +3 -3
- package/dist/{assets-RZan7EyL.cjs → assets-ahTRUXRk.cjs} +1 -1
- package/dist/binding-preview-B5834rml.cjs +2 -0
- package/dist/binding-preview-ChXjN5L5.js +649 -0
- package/dist/{capabilities-joSutDF8.js → capabilities-Cm9hZ3uV.js} +5 -5
- package/dist/{capabilities-xGTpnPjJ.cjs → capabilities-DYzWL7KS.cjs} +1 -1
- package/dist/dataset-BkRmwgeJ.cjs +1 -0
- package/dist/dataset-H5pFuQGU.js +121 -0
- package/dist/defaults-DXhiM1ZD.js +10 -0
- package/dist/defaults-xhmcLLrf.cjs +1 -0
- package/dist/designer.cjs +2 -1
- package/dist/designer.d.cts +1373 -6
- package/dist/designer.d.ts +1373 -6
- package/dist/designer.js +2495 -767
- package/dist/grid-geometry-BNptEcMm.js +65 -0
- package/dist/grid-geometry-CZ_cYB6O.cjs +1 -0
- package/dist/import-template-CNMLJSQw.js +23030 -0
- package/dist/import-template-CpxunKVp.cjs +29 -0
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +202 -3
- package/dist/index.d.ts +202 -3
- package/dist/index.js +554 -535
- package/dist/matrix-CNPDJxED.js +745 -0
- package/dist/matrix-Div9Ilh3.cjs +1 -0
- package/dist/pdf.cjs +46 -46
- package/dist/pdf.d.cts +2 -0
- package/dist/pdf.d.ts +2 -0
- package/dist/pdf.js +17 -16
- package/dist/{plugin-CQmJXNcA.js → plugin-BWwIgZXV.js} +1 -1
- package/dist/{plugin-DSFu51Ua.cjs → plugin-Dg-J1Rbm.cjs} +1 -1
- package/dist/progress-7OSZbFok.js +39 -0
- package/dist/progress-BnLiS5eH.cjs +1 -0
- package/dist/render-plan-7xpGrCEl.cjs +1 -0
- package/dist/render-plan-Ck6koX9L.js +13 -0
- package/dist/server/node.d.cts +62 -0
- package/dist/server/node.d.ts +62 -0
- package/dist/server-node.cjs +1 -1
- package/dist/server-node.js +373 -145
- package/dist/server.cjs +1 -1
- package/dist/server.d.cts +311 -0
- package/dist/server.d.ts +311 -0
- package/dist/server.js +590 -186
- package/dist/{style-Dv5o_x6b.js → style-CQ1PK8ZB.js} +5 -5
- package/dist/style-UgIJSA1F.cjs +1 -0
- package/dist/style.css +1 -1
- package/dist/template-registry-CHMYZ7SD.cjs +1 -0
- package/dist/template-registry-R61AMCr0.js +433 -0
- package/dist/template-review-hvWWQFsi.js +1027 -0
- package/dist/template-review-jEcOfmGr.cjs +1 -0
- package/dist/textwrap-CWHyzkBH.cjs +4 -0
- package/dist/{textwrap-DOl04hCQ.js → textwrap-DE1kgcJB.js} +1 -1
- package/dist/{validate-DfHPD8wX.cjs → validate-BDiMqkJC.cjs} +1 -1
- package/dist/{validate-S6CgIm5d.js → validate-DWPF7icl.js} +13 -13
- package/dist/vue/async.d.cts +186 -0
- package/dist/vue/async.d.ts +186 -0
- package/dist/vue/index.d.cts +271 -3
- package/dist/vue/index.d.ts +271 -3
- package/dist/vue-async.cjs +1 -1
- package/dist/vue-async.js +3 -3
- package/dist/vue.cjs +1 -1
- package/dist/vue.js +4 -4
- package/dist/worker.cjs +1 -1
- package/dist/worker.d.cts +2 -0
- package/dist/worker.d.ts +2 -0
- package/dist/worker.js +1 -1
- package/dist/xlsx.cjs +2 -30
- package/dist/xlsx.d.cts +268 -0
- package/dist/xlsx.d.ts +268 -0
- package/dist/xlsx.js +220 -23440
- package/package.json +1 -1
- package/dist/ReportPreview-DjGeWHY-.cjs +0 -6
- package/dist/progress-DD964VAB.js +0 -102
- package/dist/progress-KvhwXZ1Q.cjs +0 -1
- package/dist/render-plan-CckPEQyf.cjs +0 -1
- package/dist/render-plan-uzZYYSy1.js +0 -19
- package/dist/report-source-BXHNy_AD.js +0 -755
- package/dist/report-source-CCAvFE3t.cjs +0 -1
- package/dist/style-CpwiOPyB.cjs +0 -1
- package/dist/template-registry-DWExx0gU.cjs +0 -1
- package/dist/template-registry-NpOakidD.js +0 -354
- package/dist/textwrap-CnGsEum6.cjs +0 -4
package/dist/designer.d.ts
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
import { ComponentOptionsMixin } from 'vue';
|
|
2
2
|
import { DefineComponent } from 'vue';
|
|
3
|
+
declare interface AggregateDefinition {
|
|
4
|
+
/** Output column; valueField defaults to this field. */
|
|
5
|
+
field: string;
|
|
6
|
+
op: AggregateOperation;
|
|
7
|
+
valueField?: string;
|
|
8
|
+
weightField?: string;
|
|
9
|
+
numeric?: "number" | "decimal";
|
|
10
|
+
digits?: number;
|
|
11
|
+
}
|
|
12
|
+
declare interface AggregateDefinition_2 {
|
|
13
|
+
/** Output column; valueField defaults to this field. */
|
|
14
|
+
field: string;
|
|
15
|
+
op: AggregateOperation_2;
|
|
16
|
+
valueField?: string;
|
|
17
|
+
weightField?: string;
|
|
18
|
+
numeric?: "number" | "decimal";
|
|
19
|
+
digits?: number;
|
|
20
|
+
}
|
|
21
|
+
declare interface AggregateDefinition_3 {
|
|
22
|
+
/** Output column; valueField defaults to this field. */
|
|
23
|
+
field: string;
|
|
24
|
+
op: AggregateOperation_3;
|
|
25
|
+
valueField?: string;
|
|
26
|
+
weightField?: string;
|
|
27
|
+
numeric?: "number" | "decimal";
|
|
28
|
+
digits?: number;
|
|
29
|
+
}
|
|
30
|
+
declare type AggregateOperation = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
|
|
31
|
+
declare type AggregateOperation_2 = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
|
|
32
|
+
declare type AggregateOperation_3 = "sum" | "count" | "avg" | "min" | "max" | "weightedAvg";
|
|
3
33
|
declare interface AssetRenderBudget {
|
|
4
34
|
/** Maximum newly rendered assets, default 1000. Existing imageData is kept unchanged. */
|
|
5
35
|
maxAssets?: number;
|
|
@@ -74,6 +104,50 @@ declare type ColumnFormat = {
|
|
|
74
104
|
kind: "date";
|
|
75
105
|
pattern?: string;
|
|
76
106
|
};
|
|
107
|
+
/**
|
|
108
|
+
* 列值格式化(声明式、JSON 可序列化)。
|
|
109
|
+
* 在 paginate 的 cellText 出口统一消费:格式化发生在进 RenderPlan 之前,
|
|
110
|
+
* 三后端(DOM/Canvas/PDF)零改动。
|
|
111
|
+
*
|
|
112
|
+
* 语义约定(v0.9 固化):
|
|
113
|
+
* - number.digits 显式给出 → 精确保留(12.5 + digits:2 → "12.50")
|
|
114
|
+
* - number.thousands 默认 false(千分位显式开启)
|
|
115
|
+
* - date 字符串按"本地时区的日历日"解析(YYYY-MM-DD / YYYY/MM/DD 直取年月日,
|
|
116
|
+
* 不经 Date 字符串构造——后者按 UTC 零点,负时区环境会少一天)
|
|
117
|
+
*/
|
|
118
|
+
declare type ColumnFormat_2 = {
|
|
119
|
+
kind: "number";
|
|
120
|
+
thousands?: boolean;
|
|
121
|
+
digits?: number;
|
|
122
|
+
} | {
|
|
123
|
+
kind: "percent";
|
|
124
|
+
digits?: number;
|
|
125
|
+
} | {
|
|
126
|
+
kind: "date";
|
|
127
|
+
pattern?: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* 列值格式化(声明式、JSON 可序列化)。
|
|
131
|
+
* 在 paginate 的 cellText 出口统一消费:格式化发生在进 RenderPlan 之前,
|
|
132
|
+
* 三后端(DOM/Canvas/PDF)零改动。
|
|
133
|
+
*
|
|
134
|
+
* 语义约定(v0.9 固化):
|
|
135
|
+
* - number.digits 显式给出 → 精确保留(12.5 + digits:2 → "12.50")
|
|
136
|
+
* - number.thousands 默认 false(千分位显式开启)
|
|
137
|
+
* - date 字符串按"本地时区的日历日"解析(YYYY-MM-DD / YYYY/MM/DD 直取年月日,
|
|
138
|
+
* 不经 Date 字符串构造——后者按 UTC 零点,负时区环境会少一天)
|
|
139
|
+
*/
|
|
140
|
+
declare type ColumnFormat_3 = {
|
|
141
|
+
kind: "number";
|
|
142
|
+
thousands?: boolean;
|
|
143
|
+
digits?: number;
|
|
144
|
+
} | {
|
|
145
|
+
kind: "percent";
|
|
146
|
+
digits?: number;
|
|
147
|
+
} | {
|
|
148
|
+
kind: "date";
|
|
149
|
+
pattern?: string;
|
|
150
|
+
};
|
|
77
151
|
declare interface ComponentImageContext {
|
|
78
152
|
readonly component: Readonly<PlanComponent>;
|
|
79
153
|
readonly pageIndex: number;
|
|
@@ -83,6 +157,8 @@ declare interface ComponentImageContext {
|
|
|
83
157
|
}
|
|
84
158
|
declare type ComponentImageRenderer = (context: ComponentImageContext) => string | Promise<string>;
|
|
85
159
|
declare type ComponentKind = "text" | "image" | "barcode" | "qrcode" | "chart" | "line" | "rect" | "ellipse";
|
|
160
|
+
declare type ComponentKind_2 = "text" | "image" | "barcode" | "qrcode" | "chart" | "line" | "rect" | "ellipse";
|
|
161
|
+
declare type ComponentKind_3 = "text" | "image" | "barcode" | "qrcode" | "chart" | "line" | "rect" | "ellipse";
|
|
86
162
|
declare interface ComponentStyle {
|
|
87
163
|
fontSizePx?: number;
|
|
88
164
|
fontSize?: number;
|
|
@@ -106,7 +182,245 @@ declare interface ComponentStyle {
|
|
|
106
182
|
opacity?: number;
|
|
107
183
|
rotateDeg?: number;
|
|
108
184
|
}
|
|
185
|
+
declare interface ComponentStyle_2 {
|
|
186
|
+
fontSizePx?: number;
|
|
187
|
+
fontSize?: number;
|
|
188
|
+
fontFamily?: string;
|
|
189
|
+
bold?: boolean;
|
|
190
|
+
italic?: boolean;
|
|
191
|
+
underline?: boolean;
|
|
192
|
+
color?: string;
|
|
193
|
+
backgroundColor?: string;
|
|
194
|
+
align?: "left" | "center" | "right" | "justify";
|
|
195
|
+
verticalAlign?: "top" | "middle" | "bottom";
|
|
196
|
+
lineColor?: string;
|
|
197
|
+
borderColor?: string;
|
|
198
|
+
lineWidthPt?: number;
|
|
199
|
+
borderTop?: boolean;
|
|
200
|
+
borderRight?: boolean;
|
|
201
|
+
borderBottom?: boolean;
|
|
202
|
+
borderLeft?: boolean;
|
|
203
|
+
lineHeight?: number;
|
|
204
|
+
letterSpacing?: number;
|
|
205
|
+
opacity?: number;
|
|
206
|
+
rotateDeg?: number;
|
|
207
|
+
}
|
|
208
|
+
declare interface ComponentStyle_3 {
|
|
209
|
+
fontSizePx?: number;
|
|
210
|
+
fontSize?: number;
|
|
211
|
+
fontFamily?: string;
|
|
212
|
+
bold?: boolean;
|
|
213
|
+
italic?: boolean;
|
|
214
|
+
underline?: boolean;
|
|
215
|
+
color?: string;
|
|
216
|
+
backgroundColor?: string;
|
|
217
|
+
align?: "left" | "center" | "right" | "justify";
|
|
218
|
+
verticalAlign?: "top" | "middle" | "bottom";
|
|
219
|
+
lineColor?: string;
|
|
220
|
+
borderColor?: string;
|
|
221
|
+
lineWidthPt?: number;
|
|
222
|
+
borderTop?: boolean;
|
|
223
|
+
borderRight?: boolean;
|
|
224
|
+
borderBottom?: boolean;
|
|
225
|
+
borderLeft?: boolean;
|
|
226
|
+
lineHeight?: number;
|
|
227
|
+
letterSpacing?: number;
|
|
228
|
+
opacity?: number;
|
|
229
|
+
rotateDeg?: number;
|
|
230
|
+
}
|
|
231
|
+
declare interface ComputedField extends ExpressionOptions {
|
|
232
|
+
field: string;
|
|
233
|
+
expression: ReportExpression | string;
|
|
234
|
+
/** Scope controls aggregate inputs; row expressions may reference the current row in any scope. */
|
|
235
|
+
scope?: "row" | "group" | "dataset";
|
|
236
|
+
groupBy?: readonly string[];
|
|
237
|
+
/** String adapter expressions cannot be inspected; declare dependencies explicitly. */
|
|
238
|
+
dependsOn?: readonly string[];
|
|
239
|
+
}
|
|
240
|
+
declare interface ComputedField_2 extends ExpressionOptions_2 {
|
|
241
|
+
field: string;
|
|
242
|
+
expression: ReportExpression_2 | string;
|
|
243
|
+
/** Scope controls aggregate inputs; row expressions may reference the current row in any scope. */
|
|
244
|
+
scope?: "row" | "group" | "dataset";
|
|
245
|
+
groupBy?: readonly string[];
|
|
246
|
+
/** String adapter expressions cannot be inspected; declare dependencies explicitly. */
|
|
247
|
+
dependsOn?: readonly string[];
|
|
248
|
+
}
|
|
249
|
+
declare interface ComputedField_3 extends ExpressionOptions_3 {
|
|
250
|
+
field: string;
|
|
251
|
+
expression: ReportExpression_3 | string;
|
|
252
|
+
/** Scope controls aggregate inputs; row expressions may reference the current row in any scope. */
|
|
253
|
+
scope?: "row" | "group" | "dataset";
|
|
254
|
+
groupBy?: readonly string[];
|
|
255
|
+
/** String adapter expressions cannot be inspected; declare dependencies explicitly. */
|
|
256
|
+
dependsOn?: readonly string[];
|
|
257
|
+
}
|
|
258
|
+
declare interface DatasetContract {
|
|
259
|
+
fields: readonly ReportFieldContract[];
|
|
260
|
+
rowKey?: string;
|
|
261
|
+
}
|
|
262
|
+
declare interface DatasetContract_2 {
|
|
263
|
+
fields: readonly ReportFieldContract_3[];
|
|
264
|
+
rowKey?: string;
|
|
265
|
+
}
|
|
266
|
+
declare interface DatasetContract_3 {
|
|
267
|
+
fields: readonly ReportFieldContract_2[];
|
|
268
|
+
rowKey?: string;
|
|
269
|
+
}
|
|
109
270
|
declare type DatasetRows = Record<string, Record<string, unknown>[]>;
|
|
271
|
+
declare type DatasetRows_2 = Record<string, Record<string, unknown>[]>;
|
|
272
|
+
declare type DatasetRows_3 = Record<string, Record<string, unknown>[]>;
|
|
273
|
+
/** Optional wizard labels remain independent of the general designer configuration. */
|
|
274
|
+
export declare const EXCEL_BINDING_MESSAGES: {
|
|
275
|
+
title: string;
|
|
276
|
+
intro: string;
|
|
277
|
+
upload: string;
|
|
278
|
+
replace: string;
|
|
279
|
+
loading: string;
|
|
280
|
+
cancel: string;
|
|
281
|
+
source: string;
|
|
282
|
+
sourceHint: string;
|
|
283
|
+
sourceOnly: string;
|
|
284
|
+
sheet: string;
|
|
285
|
+
dataset: string;
|
|
286
|
+
chooseDataset: string;
|
|
287
|
+
rowKey: string;
|
|
288
|
+
chooseRowKey: string;
|
|
289
|
+
titleRegion: string;
|
|
290
|
+
headerRegion: string;
|
|
291
|
+
detailRegion: string;
|
|
292
|
+
footerRegion: string;
|
|
293
|
+
optional: string;
|
|
294
|
+
selectRegion: string;
|
|
295
|
+
clear: string;
|
|
296
|
+
mapping: string;
|
|
297
|
+
coverage: string;
|
|
298
|
+
physical: string;
|
|
299
|
+
business: string;
|
|
300
|
+
chooseField: string;
|
|
301
|
+
selected: string;
|
|
302
|
+
previousRows: string;
|
|
303
|
+
nextRows: string;
|
|
304
|
+
previousColumns: string;
|
|
305
|
+
nextColumns: string;
|
|
306
|
+
rowStart: string;
|
|
307
|
+
columnStart: string;
|
|
308
|
+
apply: string;
|
|
309
|
+
check: string;
|
|
310
|
+
identity: string;
|
|
311
|
+
templateId: string;
|
|
312
|
+
templateName: string;
|
|
313
|
+
issues: string;
|
|
314
|
+
ready: string;
|
|
315
|
+
noSource: string;
|
|
316
|
+
noContract: string;
|
|
317
|
+
fieldType: string;
|
|
318
|
+
precision: string;
|
|
319
|
+
sample: string;
|
|
320
|
+
unnamed: string;
|
|
321
|
+
applied: string;
|
|
322
|
+
readonly: string;
|
|
323
|
+
invalidFile: string;
|
|
324
|
+
emptySelection: string;
|
|
325
|
+
footerHint: string;
|
|
326
|
+
inspectWarning: string;
|
|
327
|
+
session: string;
|
|
328
|
+
decimals: string;
|
|
329
|
+
selectionLabel: string;
|
|
330
|
+
regionLegend: string;
|
|
331
|
+
summary: string;
|
|
332
|
+
stepSource: string;
|
|
333
|
+
stepRegions: string;
|
|
334
|
+
stepFields: string;
|
|
335
|
+
stepValidate: string;
|
|
336
|
+
errors: string;
|
|
337
|
+
sourceError: string;
|
|
338
|
+
dimensions: string;
|
|
339
|
+
mappedTo: string;
|
|
340
|
+
sampleOnly: string;
|
|
341
|
+
schemaOnly: string;
|
|
342
|
+
};
|
|
343
|
+
declare interface ExcelBindingDataset {
|
|
344
|
+
id: string;
|
|
345
|
+
label?: string;
|
|
346
|
+
fields: readonly ExcelBindingField[];
|
|
347
|
+
rowKey?: string;
|
|
348
|
+
/** Optional representative API rows, used only for contract validation, never as live results. */
|
|
349
|
+
samples?: readonly Record<string, unknown>[];
|
|
350
|
+
}
|
|
351
|
+
declare interface ExcelBindingDocumentResult {
|
|
352
|
+
document: ReportTemplateDocument_2;
|
|
353
|
+
recipe: ExcelBindingRecipe;
|
|
354
|
+
warnings: string[];
|
|
355
|
+
}
|
|
356
|
+
declare interface ExcelBindingField extends ReportFieldContract_2 {
|
|
357
|
+
/** Display precision is explicit business metadata; decimal text is never coerced to number. */
|
|
358
|
+
digits?: number;
|
|
359
|
+
sample?: string | number | boolean | null;
|
|
360
|
+
}
|
|
361
|
+
export declare type ExcelBindingMessages = typeof EXCEL_BINDING_MESSAGES;
|
|
362
|
+
/** Explicit coordinates and mappings, independently persistable alongside the source asset. */
|
|
363
|
+
declare interface ExcelBindingRecipe {
|
|
364
|
+
version: "1.0";
|
|
365
|
+
sheet: string;
|
|
366
|
+
dataset: string;
|
|
367
|
+
regions: {
|
|
368
|
+
title?: string;
|
|
369
|
+
header: string;
|
|
370
|
+
detail: string;
|
|
371
|
+
footer?: string;
|
|
372
|
+
};
|
|
373
|
+
/** One mapping for every physical Excel column. Empty strings remain invalid until confirmed. */
|
|
374
|
+
fields: string[];
|
|
375
|
+
rowKey: string;
|
|
376
|
+
}
|
|
377
|
+
declare interface ExcelBindingSession {
|
|
378
|
+
version: "1.0";
|
|
379
|
+
/** Design source only. The compiled document never retains the sample detail rows. */
|
|
380
|
+
source: ExcelImportResult;
|
|
381
|
+
recipe: ExcelBindingRecipe;
|
|
382
|
+
identity: {
|
|
383
|
+
id: string;
|
|
384
|
+
name: string;
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
export declare const ExcelBindingWizard: DefineComponent<ExcelBindingWizardOptions, {
|
|
388
|
+
importFile: (file: File) => Promise<void>;
|
|
389
|
+
apply: () => void;
|
|
390
|
+
cancel: () => void;
|
|
391
|
+
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
392
|
+
apply: (result: ExcelBindingWizardApply) => any;
|
|
393
|
+
}, string, MachReportVuePublicProps, Readonly<ExcelBindingWizardOptions> & Readonly<{
|
|
394
|
+
onApply?: ((result: ExcelBindingWizardApply) => any) | undefined;
|
|
395
|
+
}>, {}>;
|
|
396
|
+
export declare interface ExcelBindingWizardApply extends ExcelBindingDocumentResult {
|
|
397
|
+
session: ExcelBindingSession;
|
|
398
|
+
}
|
|
399
|
+
export declare interface ExcelBindingWizardOptions {
|
|
400
|
+
datasets: readonly ExcelBindingDataset[];
|
|
401
|
+
/** Source + exact coordinates + mappings. No File, functions, network credentials, or live result rows. */
|
|
402
|
+
session?: ExcelBindingSession;
|
|
403
|
+
identity?: {
|
|
404
|
+
id: string;
|
|
405
|
+
name: string;
|
|
406
|
+
};
|
|
407
|
+
/** Editor replacement keeps the current persistent ID; standalone creation remains editable. */
|
|
408
|
+
lockId?: boolean;
|
|
409
|
+
readonly?: boolean;
|
|
410
|
+
importOptions?: Pick<ExcelImportOptions_2, "layout" | "landscape" | "limits">;
|
|
411
|
+
messages?: Partial<ExcelBindingMessages>;
|
|
412
|
+
}
|
|
413
|
+
declare interface ExcelImportedSheet {
|
|
414
|
+
name: string;
|
|
415
|
+
/** Original, one-based workbook position. */
|
|
416
|
+
index: number;
|
|
417
|
+
range: string;
|
|
418
|
+
rowCount: number;
|
|
419
|
+
columnCount: number;
|
|
420
|
+
/** Zero-based index into template.pages. */
|
|
421
|
+
pageStart: number;
|
|
422
|
+
pageCount: number;
|
|
423
|
+
}
|
|
110
424
|
/** Limits apply to the selected rectangular ranges, including their empty cells. */
|
|
111
425
|
declare interface ExcelImportLimits {
|
|
112
426
|
/** Compressed input, default 20 MiB. */
|
|
@@ -122,6 +436,21 @@ declare interface ExcelImportLimits {
|
|
|
122
436
|
/** Workbook sheets, default 32. */
|
|
123
437
|
maxSheets?: number;
|
|
124
438
|
}
|
|
439
|
+
/** Limits apply to the selected rectangular ranges, including their empty cells. */
|
|
440
|
+
declare interface ExcelImportLimits_2 {
|
|
441
|
+
/** Compressed input, default 20 MiB. */
|
|
442
|
+
maxFileBytes?: number;
|
|
443
|
+
/** Declared ZIP uncompressed total, default 64 MiB. */
|
|
444
|
+
maxUncompressedBytes?: number;
|
|
445
|
+
/** Total selected cells across sheets, default 250,000; hard ceiling 1,000,000. */
|
|
446
|
+
maxCells?: number;
|
|
447
|
+
/** Rows per selected sheet, default 100,000; hard ceiling 1,048,576. */
|
|
448
|
+
maxRows?: number;
|
|
449
|
+
/** Columns per selected sheet, default 2,048; hard ceiling 16,384. */
|
|
450
|
+
maxColumns?: number;
|
|
451
|
+
/** Workbook sheets, default 32. */
|
|
452
|
+
maxSheets?: number;
|
|
453
|
+
}
|
|
125
454
|
declare interface ExcelImportOptions extends OutputTaskOptions {
|
|
126
455
|
/** Sheet names or one-based workbook positions. Default: all visible sheets. */
|
|
127
456
|
sheets?: Array<string | number>;
|
|
@@ -136,6 +465,43 @@ declare interface ExcelImportOptions extends OutputTaskOptions {
|
|
|
136
465
|
/** Optional resource limits; hard ceilings prevent unbounded allocations. */
|
|
137
466
|
limits?: ExcelImportLimits;
|
|
138
467
|
}
|
|
468
|
+
declare interface ExcelImportOptions_2 extends OutputTaskOptions_2 {
|
|
469
|
+
/** Sheet names or one-based workbook positions. Default: all visible sheets. */
|
|
470
|
+
sheets?: Array<string | number>;
|
|
471
|
+
/** A1 range for every sheet, or ranges keyed by exact sheet name. */
|
|
472
|
+
range?: string | Record<string, string>;
|
|
473
|
+
/** Wide preserves natural column widths. A3/A4 scale the complete width to paper. */
|
|
474
|
+
layout?: "wide" | "a3" | "a4";
|
|
475
|
+
/** Only applies to A3/A4; default landscape. */
|
|
476
|
+
landscape?: boolean;
|
|
477
|
+
/** Vertical preview segment limit, default 80, maximum 200. Merges remain intact. */
|
|
478
|
+
maxRowsPerPage?: number;
|
|
479
|
+
/** Optional resource limits; hard ceilings prevent unbounded allocations. */
|
|
480
|
+
limits?: ExcelImportLimits_2;
|
|
481
|
+
}
|
|
482
|
+
declare interface ExcelImportResult {
|
|
483
|
+
template: ReportTemplate_2;
|
|
484
|
+
warnings: string[];
|
|
485
|
+
sheets: ExcelImportedSheet[];
|
|
486
|
+
}
|
|
487
|
+
declare interface ExpressionOptions {
|
|
488
|
+
numeric?: "number" | "decimal";
|
|
489
|
+
digits?: number;
|
|
490
|
+
nulls?: "propagate" | "error";
|
|
491
|
+
divisionByZero?: "null" | "error";
|
|
492
|
+
}
|
|
493
|
+
declare interface ExpressionOptions_2 {
|
|
494
|
+
numeric?: "number" | "decimal";
|
|
495
|
+
digits?: number;
|
|
496
|
+
nulls?: "propagate" | "error";
|
|
497
|
+
divisionByZero?: "null" | "error";
|
|
498
|
+
}
|
|
499
|
+
declare interface ExpressionOptions_3 {
|
|
500
|
+
numeric?: "number" | "decimal";
|
|
501
|
+
digits?: number;
|
|
502
|
+
nulls?: "propagate" | "error";
|
|
503
|
+
divisionByZero?: "null" | "error";
|
|
504
|
+
}
|
|
139
505
|
declare interface GridCell {
|
|
140
506
|
text?: string;
|
|
141
507
|
rawText?: string;
|
|
@@ -155,9 +521,51 @@ declare interface GridCell {
|
|
|
155
521
|
rowSpan?: number;
|
|
156
522
|
style?: ComponentStyle;
|
|
157
523
|
}
|
|
524
|
+
declare interface GridCell_2 {
|
|
525
|
+
text?: string;
|
|
526
|
+
rawText?: string;
|
|
527
|
+
/** 原始值,仅供 Excel raw 模式消费;不参与预览、分页与 PDF 绘制。 */
|
|
528
|
+
value?: string | number | boolean | null;
|
|
529
|
+
/** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
|
|
530
|
+
numberFormat?: string;
|
|
531
|
+
/** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
|
|
532
|
+
valueType?: "text" | "number" | "boolean";
|
|
533
|
+
/** 单元格级编辑控制;预览仍需显式开启 editing。 */
|
|
534
|
+
editable?: boolean;
|
|
535
|
+
source?: ReportCellSource_2;
|
|
536
|
+
/** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
|
|
537
|
+
formula?: string;
|
|
538
|
+
children?: PlanComponent_2[];
|
|
539
|
+
colSpan?: number;
|
|
540
|
+
rowSpan?: number;
|
|
541
|
+
style?: ComponentStyle_2;
|
|
542
|
+
}
|
|
543
|
+
declare interface GridCell_3 {
|
|
544
|
+
text?: string;
|
|
545
|
+
rawText?: string;
|
|
546
|
+
/** 原始值,仅供 Excel raw 模式消费;不参与预览、分页与 PDF 绘制。 */
|
|
547
|
+
value?: string | number | boolean | null;
|
|
548
|
+
/** Excel 数字格式(例如 #,##0.00 / 0.00%),不改变 text。 */
|
|
549
|
+
numberFormat?: string;
|
|
550
|
+
/** 编辑输入类型;省略时只按原始值推断,数字字符串不会被转换为数值。 */
|
|
551
|
+
valueType?: "text" | "number" | "boolean";
|
|
552
|
+
/** 单元格级编辑控制;预览仍需显式开启 editing。 */
|
|
553
|
+
editable?: boolean;
|
|
554
|
+
source?: ReportCellSource_3;
|
|
555
|
+
/** Excel 公式保留元数据;当前引擎不计算公式,公式格始终只读。 */
|
|
556
|
+
formula?: string;
|
|
557
|
+
children?: PlanComponent_3[];
|
|
558
|
+
colSpan?: number;
|
|
559
|
+
rowSpan?: number;
|
|
560
|
+
style?: ComponentStyle_3;
|
|
561
|
+
}
|
|
158
562
|
declare type ImageComponentKind = "image" | "chart" | "barcode" | "qrcode";
|
|
159
563
|
/** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
|
|
160
564
|
declare type ListAlignment = NonNullable<ComponentStyle["align"]> | "auto";
|
|
565
|
+
/** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
|
|
566
|
+
declare type ListAlignment_2 = NonNullable<ComponentStyle_2["align"]> | "auto";
|
|
567
|
+
/** auto:真实数字/显式数值格式居右,日期与布尔居中,其他内容居左。 */
|
|
568
|
+
declare type ListAlignment_3 = NonNullable<ComponentStyle_3["align"]> | "auto";
|
|
161
569
|
declare interface ListColumn {
|
|
162
570
|
header: string;
|
|
163
571
|
field: string;
|
|
@@ -179,6 +587,59 @@ declare interface ListColumn {
|
|
|
179
587
|
valueType?: GridCell["valueType"];
|
|
180
588
|
/** 字段语义用于 auto 对齐;明确声明编号,避免把数字编号当成度量。 */
|
|
181
589
|
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
590
|
+
hidden?: boolean;
|
|
591
|
+
/** Condition hides cell content, preserving its physical layout in preview and exports. */
|
|
592
|
+
visibleWhen?: StyleRule["when"];
|
|
593
|
+
}
|
|
594
|
+
declare interface ListColumn_2 {
|
|
595
|
+
header: string;
|
|
596
|
+
field: string;
|
|
597
|
+
widthMm: number;
|
|
598
|
+
style?: ComponentStyle_2;
|
|
599
|
+
/** 内容对齐,优先于 style.align;数值字符串不会自动判为数字。 */
|
|
600
|
+
align?: ListAlignment_2;
|
|
601
|
+
/** 独立的表头对齐,不改变内容对齐。 */
|
|
602
|
+
headerAlign?: ComponentStyle_2["align"];
|
|
603
|
+
/** 独立的表头样式,优先于列表级表头样式。 */
|
|
604
|
+
headerStyle?: ComponentStyle_2;
|
|
605
|
+
/** 值格式化(声明式):千分位/小数位、百分比、日期 pattern */
|
|
606
|
+
format?: ColumnFormat_2;
|
|
607
|
+
/** 条件格式规则(声明式,命中合并进单元格样式;如负数红字) */
|
|
608
|
+
rules?: StyleRule_2[];
|
|
609
|
+
/** 内容列编辑控制;仍需由预览显式开启 editing,不影响表头/小计只读规则。 */
|
|
610
|
+
editable?: boolean;
|
|
611
|
+
/** 空值列或特殊数据类型可显式声明编辑输入类型。 */
|
|
612
|
+
valueType?: GridCell_2["valueType"];
|
|
613
|
+
/** 字段语义用于 auto 对齐;明确声明编号,避免把数字编号当成度量。 */
|
|
614
|
+
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
615
|
+
hidden?: boolean;
|
|
616
|
+
/** Condition hides cell content, preserving its physical layout in preview and exports. */
|
|
617
|
+
visibleWhen?: StyleRule_2["when"];
|
|
618
|
+
}
|
|
619
|
+
declare interface ListColumn_3 {
|
|
620
|
+
header: string;
|
|
621
|
+
field: string;
|
|
622
|
+
widthMm: number;
|
|
623
|
+
style?: ComponentStyle_3;
|
|
624
|
+
/** 内容对齐,优先于 style.align;数值字符串不会自动判为数字。 */
|
|
625
|
+
align?: ListAlignment_3;
|
|
626
|
+
/** 独立的表头对齐,不改变内容对齐。 */
|
|
627
|
+
headerAlign?: ComponentStyle_3["align"];
|
|
628
|
+
/** 独立的表头样式,优先于列表级表头样式。 */
|
|
629
|
+
headerStyle?: ComponentStyle_3;
|
|
630
|
+
/** 值格式化(声明式):千分位/小数位、百分比、日期 pattern */
|
|
631
|
+
format?: ColumnFormat_3;
|
|
632
|
+
/** 条件格式规则(声明式,命中合并进单元格样式;如负数红字) */
|
|
633
|
+
rules?: StyleRule_3[];
|
|
634
|
+
/** 内容列编辑控制;仍需由预览显式开启 editing,不影响表头/小计只读规则。 */
|
|
635
|
+
editable?: boolean;
|
|
636
|
+
/** 空值列或特殊数据类型可显式声明编辑输入类型。 */
|
|
637
|
+
valueType?: GridCell_3["valueType"];
|
|
638
|
+
/** 字段语义用于 auto 对齐;明确声明编号,避免把数字编号当成度量。 */
|
|
639
|
+
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
640
|
+
hidden?: boolean;
|
|
641
|
+
/** Condition hides cell content, preserving its physical layout in preview and exports. */
|
|
642
|
+
visibleWhen?: StyleRule_3["when"];
|
|
182
643
|
}
|
|
183
644
|
declare interface ListComponent {
|
|
184
645
|
kind: "list";
|
|
@@ -212,14 +673,162 @@ declare interface ListComponent {
|
|
|
212
673
|
border?: boolean;
|
|
213
674
|
/** 分组小计(组头/组尾小计/组头防孤行) */
|
|
214
675
|
groupBy?: ListGroupBy;
|
|
676
|
+
/** Ordered outer-to-inner grouping; groupBy remains the single-level shorthand. */
|
|
677
|
+
groups?: ListGroupBy[];
|
|
678
|
+
computed?: ComputedField[];
|
|
679
|
+
/** Dynamic pivot of the current source dataset, with read-only derived identities. */
|
|
680
|
+
matrix?: MatrixTableOptions;
|
|
681
|
+
/** Explicit row visibility; hidden rows do not participate in summaries. */
|
|
682
|
+
rowVisibleWhen?: StyleRule["when"];
|
|
683
|
+
/** Master/detail relation is keyed by business identity, never by display row index. */
|
|
684
|
+
detail?: ListDetail;
|
|
215
685
|
/** 末尾总合计行(依赖 groupBy.subtotal 或显式 fields) */
|
|
216
686
|
grandTotal?: ListGrandTotal;
|
|
217
687
|
}
|
|
688
|
+
declare interface ListComponent_2 {
|
|
689
|
+
kind: "list";
|
|
690
|
+
id?: string;
|
|
691
|
+
/** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
|
|
692
|
+
layout?: "page" | "wide";
|
|
693
|
+
/** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
|
|
694
|
+
title?: string;
|
|
695
|
+
leftMm: number;
|
|
696
|
+
topMm: number;
|
|
697
|
+
widthMm: number;
|
|
698
|
+
dataset: string;
|
|
699
|
+
/** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
|
|
700
|
+
rowKey?: string;
|
|
701
|
+
revisionField?: string;
|
|
702
|
+
sourceTokenField?: string;
|
|
703
|
+
columns: ListColumn_2[];
|
|
704
|
+
fontSizePt?: number;
|
|
705
|
+
headerBold?: boolean;
|
|
706
|
+
rowHeightMm?: number;
|
|
707
|
+
paddingMm?: number;
|
|
708
|
+
headerEveryPage?: boolean;
|
|
709
|
+
headerBackgroundColor?: string;
|
|
710
|
+
/** 内容默认对齐,列配置可覆盖;低层模板缺省仍为 left。 */
|
|
711
|
+
align?: ListAlignment_2;
|
|
712
|
+
/** 表头默认对齐,列配置可覆盖。 */
|
|
713
|
+
headerAlign?: ComponentStyle_2["align"];
|
|
714
|
+
headerStyle?: ComponentStyle_2;
|
|
715
|
+
/** 可选多行合并表头;列宽按列表物理列对齐,供 Excel 业务模板复用。 */
|
|
716
|
+
headerGrid?: PlanGrid_2;
|
|
717
|
+
border?: boolean;
|
|
718
|
+
/** 分组小计(组头/组尾小计/组头防孤行) */
|
|
719
|
+
groupBy?: ListGroupBy_2;
|
|
720
|
+
/** Ordered outer-to-inner grouping; groupBy remains the single-level shorthand. */
|
|
721
|
+
groups?: ListGroupBy_2[];
|
|
722
|
+
computed?: ComputedField_2[];
|
|
723
|
+
/** Dynamic pivot of the current source dataset, with read-only derived identities. */
|
|
724
|
+
matrix?: MatrixTableOptions_2;
|
|
725
|
+
/** Explicit row visibility; hidden rows do not participate in summaries. */
|
|
726
|
+
rowVisibleWhen?: StyleRule_2["when"];
|
|
727
|
+
/** Master/detail relation is keyed by business identity, never by display row index. */
|
|
728
|
+
detail?: ListDetail_2;
|
|
729
|
+
/** 末尾总合计行(依赖 groupBy.subtotal 或显式 fields) */
|
|
730
|
+
grandTotal?: ListGrandTotal_2;
|
|
731
|
+
}
|
|
732
|
+
declare interface ListComponent_3 {
|
|
733
|
+
kind: "list";
|
|
734
|
+
id?: string;
|
|
735
|
+
/** 宽表标记用于连续 Excel;不改变低层列表的列宽和分页算法。 */
|
|
736
|
+
layout?: "page" | "wide";
|
|
737
|
+
/** 逻辑表名称,供 Excel Sheet 命名;不额外生成标题组件。 */
|
|
738
|
+
title?: string;
|
|
739
|
+
leftMm: number;
|
|
740
|
+
topMm: number;
|
|
741
|
+
widthMm: number;
|
|
742
|
+
dataset: string;
|
|
743
|
+
/** 数据集中稳定业务主键的字段名;省略时编辑仅有计划内坐标。 */
|
|
744
|
+
rowKey?: string;
|
|
745
|
+
revisionField?: string;
|
|
746
|
+
sourceTokenField?: string;
|
|
747
|
+
columns: ListColumn_3[];
|
|
748
|
+
fontSizePt?: number;
|
|
749
|
+
headerBold?: boolean;
|
|
750
|
+
rowHeightMm?: number;
|
|
751
|
+
paddingMm?: number;
|
|
752
|
+
headerEveryPage?: boolean;
|
|
753
|
+
headerBackgroundColor?: string;
|
|
754
|
+
/** 内容默认对齐,列配置可覆盖;低层模板缺省仍为 left。 */
|
|
755
|
+
align?: ListAlignment_3;
|
|
756
|
+
/** 表头默认对齐,列配置可覆盖。 */
|
|
757
|
+
headerAlign?: ComponentStyle_3["align"];
|
|
758
|
+
headerStyle?: ComponentStyle_3;
|
|
759
|
+
/** 可选多行合并表头;列宽按列表物理列对齐,供 Excel 业务模板复用。 */
|
|
760
|
+
headerGrid?: PlanGrid_3;
|
|
761
|
+
border?: boolean;
|
|
762
|
+
/** 分组小计(组头/组尾小计/组头防孤行) */
|
|
763
|
+
groupBy?: ListGroupBy_3;
|
|
764
|
+
/** Ordered outer-to-inner grouping; groupBy remains the single-level shorthand. */
|
|
765
|
+
groups?: ListGroupBy_3[];
|
|
766
|
+
computed?: ComputedField_3[];
|
|
767
|
+
/** Dynamic pivot of the current source dataset, with read-only derived identities. */
|
|
768
|
+
matrix?: MatrixTableOptions_3;
|
|
769
|
+
/** Explicit row visibility; hidden rows do not participate in summaries. */
|
|
770
|
+
rowVisibleWhen?: StyleRule_3["when"];
|
|
771
|
+
/** Master/detail relation is keyed by business identity, never by display row index. */
|
|
772
|
+
detail?: ListDetail_3;
|
|
773
|
+
/** 末尾总合计行(依赖 groupBy.subtotal 或显式 fields) */
|
|
774
|
+
grandTotal?: ListGrandTotal_3;
|
|
775
|
+
}
|
|
776
|
+
declare interface ListDetail {
|
|
777
|
+
dataset: string;
|
|
778
|
+
parentKey: string;
|
|
779
|
+
foreignKey: string;
|
|
780
|
+
rowKey?: string;
|
|
781
|
+
columns: ListColumn[];
|
|
782
|
+
rowHeightMm?: number;
|
|
783
|
+
header?: boolean;
|
|
784
|
+
label?: string;
|
|
785
|
+
/** Unmatched children fail by default; opt-in ignore is explicit. */
|
|
786
|
+
unmatched?: "error" | "ignore";
|
|
787
|
+
}
|
|
788
|
+
declare interface ListDetail_2 {
|
|
789
|
+
dataset: string;
|
|
790
|
+
parentKey: string;
|
|
791
|
+
foreignKey: string;
|
|
792
|
+
rowKey?: string;
|
|
793
|
+
columns: ListColumn_2[];
|
|
794
|
+
rowHeightMm?: number;
|
|
795
|
+
header?: boolean;
|
|
796
|
+
label?: string;
|
|
797
|
+
/** Unmatched children fail by default; opt-in ignore is explicit. */
|
|
798
|
+
unmatched?: "error" | "ignore";
|
|
799
|
+
}
|
|
800
|
+
declare interface ListDetail_3 {
|
|
801
|
+
dataset: string;
|
|
802
|
+
parentKey: string;
|
|
803
|
+
foreignKey: string;
|
|
804
|
+
rowKey?: string;
|
|
805
|
+
columns: ListColumn_3[];
|
|
806
|
+
rowHeightMm?: number;
|
|
807
|
+
header?: boolean;
|
|
808
|
+
label?: string;
|
|
809
|
+
/** Unmatched children fail by default; opt-in ignore is explicit. */
|
|
810
|
+
unmatched?: "error" | "ignore";
|
|
811
|
+
}
|
|
218
812
|
declare type ListGrandTotal = boolean | {
|
|
219
813
|
label?: string;
|
|
220
814
|
style?: ComponentStyle;
|
|
221
815
|
/** 合计列(缺省沿用 groupBy.subtotal) */
|
|
222
816
|
fields?: string[];
|
|
817
|
+
aggregates?: AggregateDefinition[];
|
|
818
|
+
};
|
|
819
|
+
declare type ListGrandTotal_2 = boolean | {
|
|
820
|
+
label?: string;
|
|
821
|
+
style?: ComponentStyle_2;
|
|
822
|
+
/** 合计列(缺省沿用 groupBy.subtotal) */
|
|
823
|
+
fields?: string[];
|
|
824
|
+
aggregates?: AggregateDefinition_2[];
|
|
825
|
+
};
|
|
826
|
+
declare type ListGrandTotal_3 = boolean | {
|
|
827
|
+
label?: string;
|
|
828
|
+
style?: ComponentStyle_3;
|
|
829
|
+
/** 合计列(缺省沿用 groupBy.subtotal) */
|
|
830
|
+
fields?: string[];
|
|
831
|
+
aggregates?: AggregateDefinition_3[];
|
|
223
832
|
};
|
|
224
833
|
/** 分组小计配置(声明式,见 ListComponent.groupBy) */
|
|
225
834
|
declare interface ListGroupBy {
|
|
@@ -234,6 +843,43 @@ declare interface ListGroupBy {
|
|
|
234
843
|
subtotalLabel?: string;
|
|
235
844
|
/** 组头防孤行(默认 true:页尾放不下"组头+首行"时整体换页) */
|
|
236
845
|
keepWithNext?: boolean;
|
|
846
|
+
aggregates?: AggregateDefinition[];
|
|
847
|
+
/** Repeat this group heading after page breaks within the group. */
|
|
848
|
+
repeatHeader?: boolean;
|
|
849
|
+
}
|
|
850
|
+
/** 分组小计配置(声明式,见 ListComponent.groupBy) */
|
|
851
|
+
declare interface ListGroupBy_2 {
|
|
852
|
+
/** 分组字段(值变化即切组) */
|
|
853
|
+
field: string;
|
|
854
|
+
/** 组头文案模板,{value} 占位(默认 "{value}") */
|
|
855
|
+
headerTemplate?: string;
|
|
856
|
+
headerStyle?: ComponentStyle_2;
|
|
857
|
+
/** 需要小计的列字段(组尾输出合计行;数值列求和,其余输出首值/留空) */
|
|
858
|
+
subtotal?: string[];
|
|
859
|
+
subtotalStyle?: ComponentStyle_2;
|
|
860
|
+
subtotalLabel?: string;
|
|
861
|
+
/** 组头防孤行(默认 true:页尾放不下"组头+首行"时整体换页) */
|
|
862
|
+
keepWithNext?: boolean;
|
|
863
|
+
aggregates?: AggregateDefinition_2[];
|
|
864
|
+
/** Repeat this group heading after page breaks within the group. */
|
|
865
|
+
repeatHeader?: boolean;
|
|
866
|
+
}
|
|
867
|
+
/** 分组小计配置(声明式,见 ListComponent.groupBy) */
|
|
868
|
+
declare interface ListGroupBy_3 {
|
|
869
|
+
/** 分组字段(值变化即切组) */
|
|
870
|
+
field: string;
|
|
871
|
+
/** 组头文案模板,{value} 占位(默认 "{value}") */
|
|
872
|
+
headerTemplate?: string;
|
|
873
|
+
headerStyle?: ComponentStyle_3;
|
|
874
|
+
/** 需要小计的列字段(组尾输出合计行;数值列求和,其余输出首值/留空) */
|
|
875
|
+
subtotal?: string[];
|
|
876
|
+
subtotalStyle?: ComponentStyle_3;
|
|
877
|
+
subtotalLabel?: string;
|
|
878
|
+
/** 组头防孤行(默认 true:页尾放不下"组头+首行"时整体换页) */
|
|
879
|
+
keepWithNext?: boolean;
|
|
880
|
+
aggregates?: AggregateDefinition_3[];
|
|
881
|
+
/** Repeat this group heading after page breaks within the group. */
|
|
882
|
+
repeatHeader?: boolean;
|
|
237
883
|
}
|
|
238
884
|
/** defaults 层可配置项(全部可选,均有内置缺省) */
|
|
239
885
|
declare interface MachReportDefaults {
|
|
@@ -465,6 +1111,51 @@ declare interface MachReportToolbarOptions {
|
|
|
465
1111
|
/** 未传时显示全部已有出口;空数组表示不提供导出工具。 */
|
|
466
1112
|
exportFormats?: ReportExportFormat[];
|
|
467
1113
|
}
|
|
1114
|
+
declare interface MatrixTableOptions {
|
|
1115
|
+
rowFields: readonly string[];
|
|
1116
|
+
columnFields: readonly string[];
|
|
1117
|
+
measures: readonly (AggregateDefinition & {
|
|
1118
|
+
label?: string;
|
|
1119
|
+
})[];
|
|
1120
|
+
totals?: boolean;
|
|
1121
|
+
rowHeader?: string;
|
|
1122
|
+
columnWidthMm?: number;
|
|
1123
|
+
rowWidthMm?: number;
|
|
1124
|
+
maxRows?: number;
|
|
1125
|
+
maxColumns?: number;
|
|
1126
|
+
maxInputRows?: number;
|
|
1127
|
+
maxCells?: number;
|
|
1128
|
+
}
|
|
1129
|
+
declare interface MatrixTableOptions_2 {
|
|
1130
|
+
rowFields: readonly string[];
|
|
1131
|
+
columnFields: readonly string[];
|
|
1132
|
+
measures: readonly (AggregateDefinition_2 & {
|
|
1133
|
+
label?: string;
|
|
1134
|
+
})[];
|
|
1135
|
+
totals?: boolean;
|
|
1136
|
+
rowHeader?: string;
|
|
1137
|
+
columnWidthMm?: number;
|
|
1138
|
+
rowWidthMm?: number;
|
|
1139
|
+
maxRows?: number;
|
|
1140
|
+
maxColumns?: number;
|
|
1141
|
+
maxInputRows?: number;
|
|
1142
|
+
maxCells?: number;
|
|
1143
|
+
}
|
|
1144
|
+
declare interface MatrixTableOptions_3 {
|
|
1145
|
+
rowFields: readonly string[];
|
|
1146
|
+
columnFields: readonly string[];
|
|
1147
|
+
measures: readonly (AggregateDefinition_3 & {
|
|
1148
|
+
label?: string;
|
|
1149
|
+
})[];
|
|
1150
|
+
totals?: boolean;
|
|
1151
|
+
rowHeader?: string;
|
|
1152
|
+
columnWidthMm?: number;
|
|
1153
|
+
rowWidthMm?: number;
|
|
1154
|
+
maxRows?: number;
|
|
1155
|
+
maxColumns?: number;
|
|
1156
|
+
maxInputRows?: number;
|
|
1157
|
+
maxCells?: number;
|
|
1158
|
+
}
|
|
468
1159
|
declare interface OutputDiagnostic {
|
|
469
1160
|
code: "missing-image" | "unsupported-component" | "unsupported-image-format" | "unsupported-style" | "rich-text-flattened" | "nested-components-omitted" | "async-image-required" | "image-decode-failed" | "asset-render-failed" | "asset-budget-exceeded";
|
|
470
1161
|
severity: "warning";
|
|
@@ -484,13 +1175,69 @@ declare interface OutputDiagnosticOptions extends OutputTaskOptions {
|
|
|
484
1175
|
fidelity?: "warn" | "strict";
|
|
485
1176
|
}
|
|
486
1177
|
declare type OutputFormat = "dom" | "canvas" | "pdf" | "xlsx";
|
|
1178
|
+
declare type OutputFormat_2 = "dom" | "canvas" | "pdf" | "xlsx";
|
|
487
1179
|
/** Stage counts are exact completed units; encoding libraries may remain indeterminate. */
|
|
488
1180
|
declare interface OutputTaskOptions {
|
|
489
1181
|
signal?: AbortSignal;
|
|
490
1182
|
onProgress?: (completed: number, total: number) => void;
|
|
491
1183
|
}
|
|
492
|
-
|
|
493
|
-
|
|
1184
|
+
/** Stage counts are exact completed units; encoding libraries may remain indeterminate. */
|
|
1185
|
+
declare interface OutputTaskOptions_2 {
|
|
1186
|
+
signal?: AbortSignal;
|
|
1187
|
+
onProgress?: (completed: number, total: number) => void;
|
|
1188
|
+
}
|
|
1189
|
+
declare interface PlanComponent {
|
|
1190
|
+
/** Template page furniture repeats per page and reserves its vertical band. */
|
|
1191
|
+
pageAnchor?: "header" | "footer";
|
|
1192
|
+
kind: ComponentKind;
|
|
1193
|
+
leftMm: number;
|
|
1194
|
+
topMm: number;
|
|
1195
|
+
widthMm: number;
|
|
1196
|
+
heightMm: number;
|
|
1197
|
+
nid?: string;
|
|
1198
|
+
rkey?: string;
|
|
1199
|
+
text?: string;
|
|
1200
|
+
rawText?: string;
|
|
1201
|
+
lines?: string[];
|
|
1202
|
+
richParagraphs?: RichParagraph[];
|
|
1203
|
+
imageData?: string;
|
|
1204
|
+
/** 明确指定线段方向;省略保持历史水平线行为。 */
|
|
1205
|
+
lineDirection?: "down" | "up";
|
|
1206
|
+
grid?: PlanGrid;
|
|
1207
|
+
table?: PlanTableFragment;
|
|
1208
|
+
style?: ComponentStyle;
|
|
1209
|
+
meta?: Record<string, unknown>;
|
|
1210
|
+
/** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
|
|
1211
|
+
fallbackText?: string;
|
|
1212
|
+
}
|
|
1213
|
+
declare interface PlanComponent_2 {
|
|
1214
|
+
/** Template page furniture repeats per page and reserves its vertical band. */
|
|
1215
|
+
pageAnchor?: "header" | "footer";
|
|
1216
|
+
kind: ComponentKind_2;
|
|
1217
|
+
leftMm: number;
|
|
1218
|
+
topMm: number;
|
|
1219
|
+
widthMm: number;
|
|
1220
|
+
heightMm: number;
|
|
1221
|
+
nid?: string;
|
|
1222
|
+
rkey?: string;
|
|
1223
|
+
text?: string;
|
|
1224
|
+
rawText?: string;
|
|
1225
|
+
lines?: string[];
|
|
1226
|
+
richParagraphs?: RichParagraph_2[];
|
|
1227
|
+
imageData?: string;
|
|
1228
|
+
/** 明确指定线段方向;省略保持历史水平线行为。 */
|
|
1229
|
+
lineDirection?: "down" | "up";
|
|
1230
|
+
grid?: PlanGrid_2;
|
|
1231
|
+
table?: PlanTableFragment_2;
|
|
1232
|
+
style?: ComponentStyle_2;
|
|
1233
|
+
meta?: Record<string, unknown>;
|
|
1234
|
+
/** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
|
|
1235
|
+
fallbackText?: string;
|
|
1236
|
+
}
|
|
1237
|
+
declare interface PlanComponent_3 {
|
|
1238
|
+
/** Template page furniture repeats per page and reserves its vertical band. */
|
|
1239
|
+
pageAnchor?: "header" | "footer";
|
|
1240
|
+
kind: ComponentKind_3;
|
|
494
1241
|
leftMm: number;
|
|
495
1242
|
topMm: number;
|
|
496
1243
|
widthMm: number;
|
|
@@ -500,13 +1247,13 @@ declare interface PlanComponent {
|
|
|
500
1247
|
text?: string;
|
|
501
1248
|
rawText?: string;
|
|
502
1249
|
lines?: string[];
|
|
503
|
-
richParagraphs?:
|
|
1250
|
+
richParagraphs?: RichParagraph_3[];
|
|
504
1251
|
imageData?: string;
|
|
505
1252
|
/** 明确指定线段方向;省略保持历史水平线行为。 */
|
|
506
1253
|
lineDirection?: "down" | "up";
|
|
507
|
-
grid?:
|
|
508
|
-
table?:
|
|
509
|
-
style?:
|
|
1254
|
+
grid?: PlanGrid_3;
|
|
1255
|
+
table?: PlanTableFragment_3;
|
|
1256
|
+
style?: ComponentStyle_3;
|
|
510
1257
|
meta?: Record<string, unknown>;
|
|
511
1258
|
/** MachReport 扩展字段:未知 kind 的兜底渲染标记 */
|
|
512
1259
|
fallbackText?: string;
|
|
@@ -520,6 +1267,24 @@ declare interface PlanGrid {
|
|
|
520
1267
|
/** 单元格四边内距;旧静态网格默认 0.5mm,分页列表使用其真实测量内距。 */
|
|
521
1268
|
paddingMm?: number;
|
|
522
1269
|
}
|
|
1270
|
+
declare interface PlanGrid_2 {
|
|
1271
|
+
/** 行内允许 null 空位;渲染器按空单元格处理 */
|
|
1272
|
+
cells: (GridCell_2 | null)[][];
|
|
1273
|
+
colWidthsMm?: number[];
|
|
1274
|
+
rowHeightsMm?: number[];
|
|
1275
|
+
gapMm?: number;
|
|
1276
|
+
/** 单元格四边内距;旧静态网格默认 0.5mm,分页列表使用其真实测量内距。 */
|
|
1277
|
+
paddingMm?: number;
|
|
1278
|
+
}
|
|
1279
|
+
declare interface PlanGrid_3 {
|
|
1280
|
+
/** 行内允许 null 空位;渲染器按空单元格处理 */
|
|
1281
|
+
cells: (GridCell_3 | null)[][];
|
|
1282
|
+
colWidthsMm?: number[];
|
|
1283
|
+
rowHeightsMm?: number[];
|
|
1284
|
+
gapMm?: number;
|
|
1285
|
+
/** 单元格四边内距;旧静态网格默认 0.5mm,分页列表使用其真实测量内距。 */
|
|
1286
|
+
paddingMm?: number;
|
|
1287
|
+
}
|
|
523
1288
|
/** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
|
|
524
1289
|
declare interface PlanTableFragment {
|
|
525
1290
|
/** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
|
|
@@ -536,7 +1301,97 @@ declare interface PlanTableFragment {
|
|
|
536
1301
|
rowKey?: string | number;
|
|
537
1302
|
};
|
|
538
1303
|
}
|
|
1304
|
+
/** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
|
|
1305
|
+
declare interface PlanTableFragment_2 {
|
|
1306
|
+
/** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
|
|
1307
|
+
id: string;
|
|
1308
|
+
/** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
|
|
1309
|
+
rowIndex: number;
|
|
1310
|
+
role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
|
|
1311
|
+
/** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
|
|
1312
|
+
columnKeys: string[];
|
|
1313
|
+
layout?: "page" | "wide";
|
|
1314
|
+
title?: string;
|
|
1315
|
+
/** 只有宿主声明稳定 rowKey 时生成,不能用显示顺序替代业务主键。 */
|
|
1316
|
+
source?: Omit<ReportCellSource_2, "field" | "rowKey"> & {
|
|
1317
|
+
rowKey?: string | number;
|
|
1318
|
+
};
|
|
1319
|
+
}
|
|
1320
|
+
/** 列表的逻辑行来源;用于连续 Excel 重组,避免按文本猜测重复表头。 */
|
|
1321
|
+
declare interface PlanTableFragment_3 {
|
|
1322
|
+
/** 在整个计划中唯一的逻辑表身份;同一表的分页片段共享身份。 */
|
|
1323
|
+
id: string;
|
|
1324
|
+
/** 表头固定 -1;其余行(包括组头/小计/总计)从 0 连续递增。 */
|
|
1325
|
+
rowIndex: number;
|
|
1326
|
+
role: "header" | "body" | "group-header" | "subtotal" | "grand-total";
|
|
1327
|
+
/** 按物理列顺序保存字段身份;不以表头显示文本判断列结构。 */
|
|
1328
|
+
columnKeys: string[];
|
|
1329
|
+
layout?: "page" | "wide";
|
|
1330
|
+
title?: string;
|
|
1331
|
+
/** 只有宿主声明稳定 rowKey 时生成,不能用显示顺序替代业务主键。 */
|
|
1332
|
+
source?: Omit<ReportCellSource_3, "field" | "rowKey"> & {
|
|
1333
|
+
rowKey?: string | number;
|
|
1334
|
+
};
|
|
1335
|
+
}
|
|
539
1336
|
declare const PRODUCT_TEMPLATE_EDITOR_MESSAGES: {
|
|
1337
|
+
repeatPage: string;
|
|
1338
|
+
repeatNone: string;
|
|
1339
|
+
repeatHeader: string;
|
|
1340
|
+
repeatFooter: string;
|
|
1341
|
+
textFormat: string;
|
|
1342
|
+
fontSize: string;
|
|
1343
|
+
fontBold: string;
|
|
1344
|
+
textColor: string;
|
|
1345
|
+
backgroundColor: string;
|
|
1346
|
+
canvasGridLimited: string;
|
|
1347
|
+
design: string;
|
|
1348
|
+
preview: string;
|
|
1349
|
+
componentSection: string;
|
|
1350
|
+
toolsSection: string;
|
|
1351
|
+
component: string;
|
|
1352
|
+
components: string;
|
|
1353
|
+
canvasHint: string;
|
|
1354
|
+
zoom: string;
|
|
1355
|
+
sampleRows: string;
|
|
1356
|
+
resizeComponent: string;
|
|
1357
|
+
resizeColumn: string;
|
|
1358
|
+
insertComponent: string;
|
|
1359
|
+
insertText: string;
|
|
1360
|
+
insertList: string;
|
|
1361
|
+
insertImage: string;
|
|
1362
|
+
insertRect: string;
|
|
1363
|
+
removeComponent: string;
|
|
1364
|
+
duplicateComponent: string;
|
|
1365
|
+
forward: string;
|
|
1366
|
+
backward: string;
|
|
1367
|
+
positionGroup: string;
|
|
1368
|
+
componentContent: string;
|
|
1369
|
+
componentText: string;
|
|
1370
|
+
imageSource: string;
|
|
1371
|
+
imageUpload: string;
|
|
1372
|
+
imageBudget: string;
|
|
1373
|
+
leftPosition: string;
|
|
1374
|
+
topPosition: string;
|
|
1375
|
+
componentWidth: string;
|
|
1376
|
+
componentHeight: string;
|
|
1377
|
+
noComponent: string;
|
|
1378
|
+
listDataset: string;
|
|
1379
|
+
columnOrder: string;
|
|
1380
|
+
moveColumnLeft: string;
|
|
1381
|
+
moveColumnRight: string;
|
|
1382
|
+
columnVisible: string;
|
|
1383
|
+
headerStructure: string;
|
|
1384
|
+
addHeaderRow: string;
|
|
1385
|
+
mergeHeader: string;
|
|
1386
|
+
splitHeader: string;
|
|
1387
|
+
headerRow: string;
|
|
1388
|
+
headerFirst: string;
|
|
1389
|
+
headerLast: string;
|
|
1390
|
+
excelTool: string;
|
|
1391
|
+
rulesTool: string;
|
|
1392
|
+
reviewTool: string;
|
|
1393
|
+
toolsDescription: string;
|
|
1394
|
+
rulesNeedList: string;
|
|
540
1395
|
undo: string;
|
|
541
1396
|
redo: string;
|
|
542
1397
|
columnsSearch: string;
|
|
@@ -684,6 +1539,22 @@ declare interface ReportCellSource {
|
|
|
684
1539
|
revision?: string | number;
|
|
685
1540
|
sourceToken?: string;
|
|
686
1541
|
}
|
|
1542
|
+
/** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
|
|
1543
|
+
declare interface ReportCellSource_2 {
|
|
1544
|
+
datasetId: string;
|
|
1545
|
+
rowKey: string | number;
|
|
1546
|
+
field: string;
|
|
1547
|
+
revision?: string | number;
|
|
1548
|
+
sourceToken?: string;
|
|
1549
|
+
}
|
|
1550
|
+
/** 可持久化的业务身份与计划坐标独立;权限及并发校验仍由业务服务器执行。 */
|
|
1551
|
+
declare interface ReportCellSource_3 {
|
|
1552
|
+
datasetId: string;
|
|
1553
|
+
rowKey: string | number;
|
|
1554
|
+
field: string;
|
|
1555
|
+
revision?: string | number;
|
|
1556
|
+
sourceToken?: string;
|
|
1557
|
+
}
|
|
687
1558
|
declare interface ReportCellTableIdentity {
|
|
688
1559
|
id: string;
|
|
689
1560
|
/** 逻辑表行索引;跨分页的同一行保持不变。 */
|
|
@@ -735,6 +1606,84 @@ declare interface ReportEditResult {
|
|
|
735
1606
|
}
|
|
736
1607
|
/** 输出能力仍由宿主授权;工具偏好只决定当前预览实例的可见与启用状态。 */
|
|
737
1608
|
declare type ReportExportFormat = "html" | "pdf" | "xlsx" | "png" | "word";
|
|
1609
|
+
declare type ReportExpression = {
|
|
1610
|
+
field: string;
|
|
1611
|
+
} | {
|
|
1612
|
+
value: string | number | boolean | null;
|
|
1613
|
+
} | {
|
|
1614
|
+
aggregate: AggregateOperation;
|
|
1615
|
+
field?: string;
|
|
1616
|
+
weightField?: string;
|
|
1617
|
+
} | {
|
|
1618
|
+
op: "add" | "subtract" | "multiply" | "divide" | "coalesce";
|
|
1619
|
+
args: readonly ReportExpression[];
|
|
1620
|
+
};
|
|
1621
|
+
declare type ReportExpression_2 = {
|
|
1622
|
+
field: string;
|
|
1623
|
+
} | {
|
|
1624
|
+
value: string | number | boolean | null;
|
|
1625
|
+
} | {
|
|
1626
|
+
aggregate: AggregateOperation_2;
|
|
1627
|
+
field?: string;
|
|
1628
|
+
weightField?: string;
|
|
1629
|
+
} | {
|
|
1630
|
+
op: "add" | "subtract" | "multiply" | "divide" | "coalesce";
|
|
1631
|
+
args: readonly ReportExpression_2[];
|
|
1632
|
+
};
|
|
1633
|
+
declare type ReportExpression_3 = {
|
|
1634
|
+
field: string;
|
|
1635
|
+
} | {
|
|
1636
|
+
value: string | number | boolean | null;
|
|
1637
|
+
} | {
|
|
1638
|
+
aggregate: AggregateOperation_3;
|
|
1639
|
+
field?: string;
|
|
1640
|
+
weightField?: string;
|
|
1641
|
+
} | {
|
|
1642
|
+
op: "add" | "subtract" | "multiply" | "divide" | "coalesce";
|
|
1643
|
+
args: readonly ReportExpression_3[];
|
|
1644
|
+
};
|
|
1645
|
+
declare interface ReportFieldContract {
|
|
1646
|
+
field: string;
|
|
1647
|
+
label?: string;
|
|
1648
|
+
type: "text" | "number" | "boolean" | "date" | "decimal";
|
|
1649
|
+
required?: boolean;
|
|
1650
|
+
nullable?: boolean;
|
|
1651
|
+
enum?: readonly (string | number | boolean)[];
|
|
1652
|
+
min?: number;
|
|
1653
|
+
max?: number;
|
|
1654
|
+
minLength?: number;
|
|
1655
|
+
maxLength?: number;
|
|
1656
|
+
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
1657
|
+
unit?: string;
|
|
1658
|
+
}
|
|
1659
|
+
declare interface ReportFieldContract_2 {
|
|
1660
|
+
field: string;
|
|
1661
|
+
label?: string;
|
|
1662
|
+
type: "text" | "number" | "boolean" | "date" | "decimal";
|
|
1663
|
+
required?: boolean;
|
|
1664
|
+
nullable?: boolean;
|
|
1665
|
+
enum?: readonly (string | number | boolean)[];
|
|
1666
|
+
min?: number;
|
|
1667
|
+
max?: number;
|
|
1668
|
+
minLength?: number;
|
|
1669
|
+
maxLength?: number;
|
|
1670
|
+
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
1671
|
+
unit?: string;
|
|
1672
|
+
}
|
|
1673
|
+
declare interface ReportFieldContract_3 {
|
|
1674
|
+
field: string;
|
|
1675
|
+
label?: string;
|
|
1676
|
+
type: "text" | "number" | "boolean" | "date" | "decimal";
|
|
1677
|
+
required?: boolean;
|
|
1678
|
+
nullable?: boolean;
|
|
1679
|
+
enum?: readonly (string | number | boolean)[];
|
|
1680
|
+
min?: number;
|
|
1681
|
+
max?: number;
|
|
1682
|
+
minLength?: number;
|
|
1683
|
+
maxLength?: number;
|
|
1684
|
+
semanticRole?: "identifier" | "dimension" | "measure" | "date" | "text";
|
|
1685
|
+
unit?: string;
|
|
1686
|
+
}
|
|
738
1687
|
declare interface ReportInteractionOptions {
|
|
739
1688
|
/** 只读选区计算,默认关闭;不写回业务值或执行导入的 Excel 公式。 */
|
|
740
1689
|
calculations?: boolean;
|
|
@@ -770,6 +1719,48 @@ declare interface ReportParamDef {
|
|
|
770
1719
|
minLength?: number;
|
|
771
1720
|
maxLength?: number;
|
|
772
1721
|
}
|
|
1722
|
+
/** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
|
|
1723
|
+
declare interface ReportParamDef_2 {
|
|
1724
|
+
/** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
|
|
1725
|
+
field: string;
|
|
1726
|
+
/** 显示名(缺省用 field) */
|
|
1727
|
+
label?: string;
|
|
1728
|
+
type?: "text" | "number" | "date" | "select";
|
|
1729
|
+
/** select 选项 */
|
|
1730
|
+
options?: Array<{
|
|
1731
|
+
label: string;
|
|
1732
|
+
value: string;
|
|
1733
|
+
}>;
|
|
1734
|
+
defaultValue?: string;
|
|
1735
|
+
required?: boolean;
|
|
1736
|
+
placeholder?: string;
|
|
1737
|
+
/** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
|
|
1738
|
+
min?: number | string;
|
|
1739
|
+
max?: number | string;
|
|
1740
|
+
minLength?: number;
|
|
1741
|
+
maxLength?: number;
|
|
1742
|
+
}
|
|
1743
|
+
/** 报表参数定义(声明式,模板自描述参数面:渲染组件据此生成查询面板) */
|
|
1744
|
+
declare interface ReportParamDef_3 {
|
|
1745
|
+
/** 参数名(传入 params,与数据集 SQL #{field} 绑定对应) */
|
|
1746
|
+
field: string;
|
|
1747
|
+
/** 显示名(缺省用 field) */
|
|
1748
|
+
label?: string;
|
|
1749
|
+
type?: "text" | "number" | "date" | "select";
|
|
1750
|
+
/** select 选项 */
|
|
1751
|
+
options?: Array<{
|
|
1752
|
+
label: string;
|
|
1753
|
+
value: string;
|
|
1754
|
+
}>;
|
|
1755
|
+
defaultValue?: string;
|
|
1756
|
+
required?: boolean;
|
|
1757
|
+
placeholder?: string;
|
|
1758
|
+
/** 数字上下界;date 参数使用 YYYY-MM-DD 字符串(含边界)。 */
|
|
1759
|
+
min?: number | string;
|
|
1760
|
+
max?: number | string;
|
|
1761
|
+
minLength?: number;
|
|
1762
|
+
maxLength?: number;
|
|
1763
|
+
}
|
|
773
1764
|
declare interface ReportPreferencesAdapter {
|
|
774
1765
|
load(key: string): Partial<ReportPreviewPreferences> | null | Promise<Partial<ReportPreviewPreferences> | null>;
|
|
775
1766
|
save(key: string, value: Readonly<Partial<ReportPreviewPreferences>>): void | Promise<void>;
|
|
@@ -788,6 +1779,18 @@ declare interface ReportTemplate {
|
|
|
788
1779
|
params?: ReportParamDef[];
|
|
789
1780
|
pages: TemplatePage[];
|
|
790
1781
|
}
|
|
1782
|
+
declare interface ReportTemplate_2 {
|
|
1783
|
+
schemaVersion?: string;
|
|
1784
|
+
/** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
|
|
1785
|
+
params?: ReportParamDef_2[];
|
|
1786
|
+
pages: TemplatePage_2[];
|
|
1787
|
+
}
|
|
1788
|
+
declare interface ReportTemplate_3 {
|
|
1789
|
+
schemaVersion?: string;
|
|
1790
|
+
/** 参数定义(可选;宿主也可经 ReportPreview 的 paramDefs prop 提供,prop 优先) */
|
|
1791
|
+
params?: ReportParamDef_3[];
|
|
1792
|
+
pages: TemplatePage_3[];
|
|
1793
|
+
}
|
|
791
1794
|
/** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
|
|
792
1795
|
declare interface ReportTemplateDocument {
|
|
793
1796
|
schemaVersion: "1.0";
|
|
@@ -798,6 +1801,26 @@ declare interface ReportTemplateDocument {
|
|
|
798
1801
|
description?: string;
|
|
799
1802
|
template: ReportTemplate;
|
|
800
1803
|
}
|
|
1804
|
+
/** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
|
|
1805
|
+
declare interface ReportTemplateDocument_2 {
|
|
1806
|
+
schemaVersion: "1.0";
|
|
1807
|
+
id: string;
|
|
1808
|
+
name: string;
|
|
1809
|
+
/** 宿主的发布版本/乐观锁标识,不由引擎自动递增。 */
|
|
1810
|
+
revision?: string;
|
|
1811
|
+
description?: string;
|
|
1812
|
+
template: ReportTemplate_2;
|
|
1813
|
+
}
|
|
1814
|
+
/** 可存入数据库/文件的纯 JSON 模板;数据、接口与鉴权仍由宿主提供。 */
|
|
1815
|
+
declare interface ReportTemplateDocument_3 {
|
|
1816
|
+
schemaVersion: "1.0";
|
|
1817
|
+
id: string;
|
|
1818
|
+
name: string;
|
|
1819
|
+
/** 宿主的发布版本/乐观锁标识,不由引擎自动递增。 */
|
|
1820
|
+
revision?: string;
|
|
1821
|
+
description?: string;
|
|
1822
|
+
template: ReportTemplate_3;
|
|
1823
|
+
}
|
|
801
1824
|
export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions, {
|
|
802
1825
|
pendingLocalChanges: boolean;
|
|
803
1826
|
saving: boolean;
|
|
@@ -808,10 +1831,22 @@ export declare const ReportTemplateEditor: DefineComponent<TemplateEditorOptions
|
|
|
808
1831
|
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
809
1832
|
"update:modelValue": (document: ReportTemplateDocument) => any;
|
|
810
1833
|
saved: (document: ReportTemplateDocument) => any;
|
|
1834
|
+
"excel-bound": (result: ExcelBindingWizardApply) => any;
|
|
811
1835
|
}, string, MachReportVuePublicProps, Readonly<TemplateEditorOptions> & Readonly<{
|
|
812
1836
|
"onUpdate:modelValue"?: ((document: ReportTemplateDocument) => any) | undefined;
|
|
813
1837
|
onSaved?: ((document: ReportTemplateDocument) => any) | undefined;
|
|
1838
|
+
"onExcel-bound"?: ((result: ExcelBindingWizardApply) => any) | undefined;
|
|
814
1839
|
}>, {}>;
|
|
1840
|
+
declare interface ReportTemplateReviewIssue {
|
|
1841
|
+
code: "template" | "compatibility" | "dataset" | "field" | "sample" | "layout" | "output";
|
|
1842
|
+
severity: "error" | "warning";
|
|
1843
|
+
path: string;
|
|
1844
|
+
message: string;
|
|
1845
|
+
fixture?: string;
|
|
1846
|
+
pageIndex?: number;
|
|
1847
|
+
componentIndex?: number;
|
|
1848
|
+
field?: string;
|
|
1849
|
+
}
|
|
815
1850
|
declare interface RichParagraph {
|
|
816
1851
|
segments: RichSegment[];
|
|
817
1852
|
align?: ComponentStyle["align"];
|
|
@@ -820,23 +1855,266 @@ declare interface RichParagraph {
|
|
|
820
1855
|
spaceAfterMm?: number;
|
|
821
1856
|
indentMm?: number;
|
|
822
1857
|
}
|
|
1858
|
+
declare interface RichParagraph_2 {
|
|
1859
|
+
segments: RichSegment_2[];
|
|
1860
|
+
align?: ComponentStyle_2["align"];
|
|
1861
|
+
lineHeight?: number;
|
|
1862
|
+
spaceBeforeMm?: number;
|
|
1863
|
+
spaceAfterMm?: number;
|
|
1864
|
+
indentMm?: number;
|
|
1865
|
+
}
|
|
1866
|
+
declare interface RichParagraph_3 {
|
|
1867
|
+
segments: RichSegment_3[];
|
|
1868
|
+
align?: ComponentStyle_3["align"];
|
|
1869
|
+
lineHeight?: number;
|
|
1870
|
+
spaceBeforeMm?: number;
|
|
1871
|
+
spaceAfterMm?: number;
|
|
1872
|
+
indentMm?: number;
|
|
1873
|
+
}
|
|
823
1874
|
declare interface RichSegment {
|
|
824
1875
|
kind?: "text" | "field";
|
|
825
1876
|
text?: string;
|
|
826
1877
|
field?: string;
|
|
827
1878
|
style?: ComponentStyle;
|
|
828
1879
|
}
|
|
1880
|
+
declare interface RichSegment_2 {
|
|
1881
|
+
kind?: "text" | "field";
|
|
1882
|
+
text?: string;
|
|
1883
|
+
field?: string;
|
|
1884
|
+
style?: ComponentStyle_2;
|
|
1885
|
+
}
|
|
1886
|
+
declare interface RichSegment_3 {
|
|
1887
|
+
kind?: "text" | "field";
|
|
1888
|
+
text?: string;
|
|
1889
|
+
field?: string;
|
|
1890
|
+
style?: ComponentStyle_3;
|
|
1891
|
+
}
|
|
1892
|
+
/** Optional rule-editor copy; hosts can override without changing core/report messages. */
|
|
1893
|
+
export declare const RULE_EDITOR_MESSAGES: {
|
|
1894
|
+
detail: string;
|
|
1895
|
+
matrix: string;
|
|
1896
|
+
measureLabel: string;
|
|
1897
|
+
childDataset: string;
|
|
1898
|
+
parentKey: string;
|
|
1899
|
+
foreignKey: string;
|
|
1900
|
+
rowKey: string;
|
|
1901
|
+
noRowKey: string;
|
|
1902
|
+
childColumns: string;
|
|
1903
|
+
title: string;
|
|
1904
|
+
unmatched: string;
|
|
1905
|
+
ignore: string;
|
|
1906
|
+
childHeader: string;
|
|
1907
|
+
rowFields: string;
|
|
1908
|
+
columnFields: string;
|
|
1909
|
+
totals: string;
|
|
1910
|
+
widthSettings: string;
|
|
1911
|
+
dimensionWidth: string;
|
|
1912
|
+
measureWidth: string;
|
|
1913
|
+
detailHint: string;
|
|
1914
|
+
matrixHint: string;
|
|
1915
|
+
computations: string;
|
|
1916
|
+
groups: string;
|
|
1917
|
+
conditions: string;
|
|
1918
|
+
target: string;
|
|
1919
|
+
newField: string;
|
|
1920
|
+
select: string;
|
|
1921
|
+
row: string;
|
|
1922
|
+
group: string;
|
|
1923
|
+
dataset: string;
|
|
1924
|
+
scope: string;
|
|
1925
|
+
numeric: string;
|
|
1926
|
+
number: string;
|
|
1927
|
+
decimal: string;
|
|
1928
|
+
digits: string;
|
|
1929
|
+
groupFields: string;
|
|
1930
|
+
field: string;
|
|
1931
|
+
constant: string;
|
|
1932
|
+
operation: string;
|
|
1933
|
+
aggregate: string;
|
|
1934
|
+
text: string;
|
|
1935
|
+
boolean: string;
|
|
1936
|
+
null: string;
|
|
1937
|
+
true: string;
|
|
1938
|
+
false: string;
|
|
1939
|
+
add: string;
|
|
1940
|
+
subtract: string;
|
|
1941
|
+
multiply: string;
|
|
1942
|
+
divide: string;
|
|
1943
|
+
coalesce: string;
|
|
1944
|
+
sum: string;
|
|
1945
|
+
count: string;
|
|
1946
|
+
avg: string;
|
|
1947
|
+
min: string;
|
|
1948
|
+
max: string;
|
|
1949
|
+
weightedAvg: string;
|
|
1950
|
+
subtotalLabel: string;
|
|
1951
|
+
weight: string;
|
|
1952
|
+
argument: string;
|
|
1953
|
+
addArgument: string;
|
|
1954
|
+
remove: string;
|
|
1955
|
+
apply: string;
|
|
1956
|
+
check: string;
|
|
1957
|
+
addGroup: string;
|
|
1958
|
+
noGroups: string;
|
|
1959
|
+
header: string;
|
|
1960
|
+
footer: string;
|
|
1961
|
+
repeat: string;
|
|
1962
|
+
orphan: string;
|
|
1963
|
+
outer: string;
|
|
1964
|
+
inner: string;
|
|
1965
|
+
addAggregate: string;
|
|
1966
|
+
measure: string;
|
|
1967
|
+
output: string;
|
|
1968
|
+
condition: string;
|
|
1969
|
+
comparison: string;
|
|
1970
|
+
threshold: string;
|
|
1971
|
+
effect: string;
|
|
1972
|
+
style: string;
|
|
1973
|
+
cell: string;
|
|
1974
|
+
rowVisibility: string;
|
|
1975
|
+
color: string;
|
|
1976
|
+
background: string;
|
|
1977
|
+
bold: string;
|
|
1978
|
+
column: string;
|
|
1979
|
+
newCondition: string;
|
|
1980
|
+
removeCondition: string;
|
|
1981
|
+
advanced: string;
|
|
1982
|
+
nulls: string;
|
|
1983
|
+
propagate: string;
|
|
1984
|
+
error: string;
|
|
1985
|
+
division: string;
|
|
1986
|
+
dependencies: string;
|
|
1987
|
+
noData: string;
|
|
1988
|
+
sample: string;
|
|
1989
|
+
preview: string;
|
|
1990
|
+
existing: string;
|
|
1991
|
+
ready: string;
|
|
1992
|
+
allRows: string;
|
|
1993
|
+
noFields: string;
|
|
1994
|
+
resultType: string;
|
|
1995
|
+
settings: string;
|
|
1996
|
+
moveUp: string;
|
|
1997
|
+
moveDown: string;
|
|
1998
|
+
missingTarget: string;
|
|
1999
|
+
noSelection: string;
|
|
2000
|
+
countHint: string;
|
|
2001
|
+
decimalHint: string;
|
|
2002
|
+
readonly: string;
|
|
2003
|
+
formatMode: string;
|
|
2004
|
+
rule: string;
|
|
2005
|
+
sampleError: string;
|
|
2006
|
+
new: string;
|
|
2007
|
+
enabled: string;
|
|
2008
|
+
};
|
|
2009
|
+
export declare const RuleEditor: DefineComponent<RuleEditorOptions, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
2010
|
+
change: (value: ListComponent_3) => any;
|
|
2011
|
+
}, string, MachReportVuePublicProps, Readonly<RuleEditorOptions> & Readonly<{
|
|
2012
|
+
onChange?: ((value: ListComponent_3) => any) | undefined;
|
|
2013
|
+
}>, {}>;
|
|
2014
|
+
export declare type RuleEditorMessages = typeof RULE_EDITOR_MESSAGES;
|
|
2015
|
+
export declare interface RuleEditorOptions {
|
|
2016
|
+
list: ListComponent_2;
|
|
2017
|
+
datasets?: DatasetRows_3;
|
|
2018
|
+
datasetSchema?: DatasetContract_3;
|
|
2019
|
+
datasetSchemas?: Record<string, DatasetContract_3>;
|
|
2020
|
+
readonly?: boolean;
|
|
2021
|
+
messages?: Partial<RuleEditorMessages>;
|
|
2022
|
+
}
|
|
829
2023
|
/** 条件格式规则求值(声明式,见 ListColumn.rules) */
|
|
830
2024
|
declare interface StyleRule {
|
|
831
2025
|
when: {
|
|
832
2026
|
field: string;
|
|
833
2027
|
op: ">" | ">=" | "<" | "<=" | "==" | "!=";
|
|
834
2028
|
value: number | string;
|
|
2029
|
+
/** Explicit decimal comparisons retain decimal thresholds as text. */
|
|
2030
|
+
numeric?: "number" | "decimal";
|
|
2031
|
+
};
|
|
2032
|
+
/** 命中时合并进单元格样式(color/bold/backgroundColor 等) */
|
|
2033
|
+
style: Record<string, unknown>;
|
|
2034
|
+
}
|
|
2035
|
+
/** 条件格式规则求值(声明式,见 ListColumn.rules) */
|
|
2036
|
+
declare interface StyleRule_2 {
|
|
2037
|
+
when: {
|
|
2038
|
+
field: string;
|
|
2039
|
+
op: ">" | ">=" | "<" | "<=" | "==" | "!=";
|
|
2040
|
+
value: number | string;
|
|
2041
|
+
/** Explicit decimal comparisons retain decimal thresholds as text. */
|
|
2042
|
+
numeric?: "number" | "decimal";
|
|
2043
|
+
};
|
|
2044
|
+
/** 命中时合并进单元格样式(color/bold/backgroundColor 等) */
|
|
2045
|
+
style: Record<string, unknown>;
|
|
2046
|
+
}
|
|
2047
|
+
/** 条件格式规则求值(声明式,见 ListColumn.rules) */
|
|
2048
|
+
declare interface StyleRule_3 {
|
|
2049
|
+
when: {
|
|
2050
|
+
field: string;
|
|
2051
|
+
op: ">" | ">=" | "<" | "<=" | "==" | "!=";
|
|
2052
|
+
value: number | string;
|
|
2053
|
+
/** Explicit decimal comparisons retain decimal thresholds as text. */
|
|
2054
|
+
numeric?: "number" | "decimal";
|
|
835
2055
|
};
|
|
836
2056
|
/** 命中时合并进单元格样式(color/bold/backgroundColor 等) */
|
|
837
2057
|
style: Record<string, unknown>;
|
|
838
2058
|
}
|
|
839
2059
|
export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
2060
|
+
repeatPage: string;
|
|
2061
|
+
repeatNone: string;
|
|
2062
|
+
repeatHeader: string;
|
|
2063
|
+
repeatFooter: string;
|
|
2064
|
+
textFormat: string;
|
|
2065
|
+
fontSize: string;
|
|
2066
|
+
fontBold: string;
|
|
2067
|
+
textColor: string;
|
|
2068
|
+
backgroundColor: string;
|
|
2069
|
+
canvasGridLimited: string;
|
|
2070
|
+
design: string;
|
|
2071
|
+
preview: string;
|
|
2072
|
+
componentSection: string;
|
|
2073
|
+
toolsSection: string;
|
|
2074
|
+
component: string;
|
|
2075
|
+
components: string;
|
|
2076
|
+
canvasHint: string;
|
|
2077
|
+
zoom: string;
|
|
2078
|
+
sampleRows: string;
|
|
2079
|
+
resizeComponent: string;
|
|
2080
|
+
resizeColumn: string;
|
|
2081
|
+
insertComponent: string;
|
|
2082
|
+
insertText: string;
|
|
2083
|
+
insertList: string;
|
|
2084
|
+
insertImage: string;
|
|
2085
|
+
insertRect: string;
|
|
2086
|
+
removeComponent: string;
|
|
2087
|
+
duplicateComponent: string;
|
|
2088
|
+
forward: string;
|
|
2089
|
+
backward: string;
|
|
2090
|
+
positionGroup: string;
|
|
2091
|
+
componentContent: string;
|
|
2092
|
+
componentText: string;
|
|
2093
|
+
imageSource: string;
|
|
2094
|
+
imageUpload: string;
|
|
2095
|
+
imageBudget: string;
|
|
2096
|
+
leftPosition: string;
|
|
2097
|
+
topPosition: string;
|
|
2098
|
+
componentWidth: string;
|
|
2099
|
+
componentHeight: string;
|
|
2100
|
+
noComponent: string;
|
|
2101
|
+
listDataset: string;
|
|
2102
|
+
columnOrder: string;
|
|
2103
|
+
moveColumnLeft: string;
|
|
2104
|
+
moveColumnRight: string;
|
|
2105
|
+
columnVisible: string;
|
|
2106
|
+
headerStructure: string;
|
|
2107
|
+
addHeaderRow: string;
|
|
2108
|
+
mergeHeader: string;
|
|
2109
|
+
splitHeader: string;
|
|
2110
|
+
headerRow: string;
|
|
2111
|
+
headerFirst: string;
|
|
2112
|
+
headerLast: string;
|
|
2113
|
+
excelTool: string;
|
|
2114
|
+
rulesTool: string;
|
|
2115
|
+
reviewTool: string;
|
|
2116
|
+
toolsDescription: string;
|
|
2117
|
+
rulesNeedList: string;
|
|
840
2118
|
undo: string;
|
|
841
2119
|
redo: string;
|
|
842
2120
|
columnsSearch: string;
|
|
@@ -911,7 +2189,50 @@ export declare const TEMPLATE_EDITOR_MESSAGES: {
|
|
|
911
2189
|
note: string;
|
|
912
2190
|
invalid: string;
|
|
913
2191
|
};
|
|
2192
|
+
export declare const TEMPLATE_REVIEW_MESSAGES: {
|
|
2193
|
+
title: string;
|
|
2194
|
+
run: string;
|
|
2195
|
+
running: string;
|
|
2196
|
+
samples: string;
|
|
2197
|
+
none: string;
|
|
2198
|
+
first20: string;
|
|
2199
|
+
first100: string;
|
|
2200
|
+
all: string;
|
|
2201
|
+
changes: string;
|
|
2202
|
+
issues: string;
|
|
2203
|
+
results: string;
|
|
2204
|
+
noChanges: string;
|
|
2205
|
+
noIssues: string;
|
|
2206
|
+
empty: string;
|
|
2207
|
+
baseline: string;
|
|
2208
|
+
errors: string;
|
|
2209
|
+
warnings: string;
|
|
2210
|
+
locate: string;
|
|
2211
|
+
before: string;
|
|
2212
|
+
after: string;
|
|
2213
|
+
breaking: string;
|
|
2214
|
+
acknowledge: string;
|
|
2215
|
+
truncated: string;
|
|
2216
|
+
pages: string;
|
|
2217
|
+
rows: string;
|
|
2218
|
+
checked: string;
|
|
2219
|
+
categories: {
|
|
2220
|
+
metadata: string;
|
|
2221
|
+
structure: string;
|
|
2222
|
+
binding: string;
|
|
2223
|
+
calculation: string;
|
|
2224
|
+
format: string;
|
|
2225
|
+
};
|
|
2226
|
+
kinds: {
|
|
2227
|
+
added: string;
|
|
2228
|
+
removed: string;
|
|
2229
|
+
modified: string;
|
|
2230
|
+
moved: string;
|
|
2231
|
+
};
|
|
2232
|
+
};
|
|
914
2233
|
declare type TemplateComponent = PlanComponent | ListComponent;
|
|
2234
|
+
declare type TemplateComponent_2 = PlanComponent_2 | ListComponent_2;
|
|
2235
|
+
declare type TemplateComponent_3 = PlanComponent_3 | ListComponent_3;
|
|
915
2236
|
export declare type TemplateEditorBeforeDiscard = (context: TemplateEditorBeforeDiscardContext) => boolean | Promise<boolean>;
|
|
916
2237
|
export declare interface TemplateEditorBeforeDiscardContext {
|
|
917
2238
|
reason: "reset" | "replace";
|
|
@@ -933,6 +2254,10 @@ export declare type TemplateEditorMessages = typeof BASE_TEMPLATE_EDITOR_MESSAGE
|
|
|
933
2254
|
export declare interface TemplateEditorOptions {
|
|
934
2255
|
modelValue: ReportTemplateDocument;
|
|
935
2256
|
datasets?: DatasetRows;
|
|
2257
|
+
dataSchemas?: Record<string, DatasetContract>;
|
|
2258
|
+
bindingDatasets?: ExcelBindingDataset[];
|
|
2259
|
+
/** Optional independently persisted Excel source and binding recipe. */
|
|
2260
|
+
bindingSession?: ExcelBindingSession;
|
|
936
2261
|
readonly?: boolean;
|
|
937
2262
|
messages?: Partial<TemplateEditorMessages>;
|
|
938
2263
|
preview?: Pick<MachReportDefaults, "showExport" | "showPrint" | "showPdfWindow" | "theme" | "assets" | "pdfFontUrl" | "toolbar">;
|
|
@@ -954,6 +2279,48 @@ declare interface TemplatePage {
|
|
|
954
2279
|
marginRightMm?: number;
|
|
955
2280
|
components: TemplateComponent[];
|
|
956
2281
|
}
|
|
2282
|
+
declare interface TemplatePage_2 {
|
|
2283
|
+
widthMm: number;
|
|
2284
|
+
heightMm: number;
|
|
2285
|
+
/** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
|
|
2286
|
+
layout?: "page" | "wide";
|
|
2287
|
+
marginTopMm?: number;
|
|
2288
|
+
marginBottomMm?: number;
|
|
2289
|
+
marginLeftMm?: number;
|
|
2290
|
+
marginRightMm?: number;
|
|
2291
|
+
components: TemplateComponent_2[];
|
|
2292
|
+
}
|
|
2293
|
+
declare interface TemplatePage_3 {
|
|
2294
|
+
widthMm: number;
|
|
2295
|
+
heightMm: number;
|
|
2296
|
+
/** 宽表保持全列自然宽度,页高只控制内部纵向分段。 */
|
|
2297
|
+
layout?: "page" | "wide";
|
|
2298
|
+
marginTopMm?: number;
|
|
2299
|
+
marginBottomMm?: number;
|
|
2300
|
+
marginLeftMm?: number;
|
|
2301
|
+
marginRightMm?: number;
|
|
2302
|
+
components: TemplateComponent_3[];
|
|
2303
|
+
}
|
|
2304
|
+
export declare type TemplateReviewMessages = typeof TEMPLATE_REVIEW_MESSAGES;
|
|
2305
|
+
export declare const TemplateReviewPanel: DefineComponent<{
|
|
2306
|
+
document: ReportTemplateDocument_3;
|
|
2307
|
+
previous?: ReportTemplateDocument_3;
|
|
2308
|
+
datasets?: DatasetRows_2;
|
|
2309
|
+
dataSchemas?: Readonly<Record<string, DatasetContract_2>>;
|
|
2310
|
+
formats?: readonly OutputFormat_2[];
|
|
2311
|
+
messages?: Partial<TemplateReviewMessages>;
|
|
2312
|
+
}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
|
|
2313
|
+
locate: (value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any;
|
|
2314
|
+
}, string, MachReportVuePublicProps, Readonly<{
|
|
2315
|
+
document: ReportTemplateDocument_3;
|
|
2316
|
+
previous?: ReportTemplateDocument_3;
|
|
2317
|
+
datasets?: DatasetRows_2;
|
|
2318
|
+
dataSchemas?: Readonly<Record<string, DatasetContract_2>>;
|
|
2319
|
+
formats?: readonly OutputFormat_2[];
|
|
2320
|
+
messages?: Partial<TemplateReviewMessages>;
|
|
2321
|
+
}> & Readonly<{
|
|
2322
|
+
onLocate?: ((value: Pick<ReportTemplateReviewIssue, "field" | "path" | "pageIndex" | "componentIndex">) => any) | undefined;
|
|
2323
|
+
}>, {}>;
|
|
957
2324
|
/**
|
|
958
2325
|
* RenderPlan → xlsx 导出(B 端第二出口,对齐家族 @agile-team/mach-table-xlsx 路线):
|
|
959
2326
|
* - 网格组件 → 真表格:列宽(mm→Excel 宽度)、行高(mm→pt)、colSpan/rowSpan 合并、
|