@canvas-components/print-design-plugin 0.0.0-stage → 0.1.4

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.
@@ -0,0 +1,1080 @@
1
+ import { PrintDesignElement, PrintDesignComponentRenderer, PrintDesignElementBase, PrintDesignCropRect, PrintDesignPluginRenderer, PrintDesignComponentCellSelectionState, PrintDesignUnit } from '@canvas-components/print-design';
2
+ import { BarcodeFormat } from '@canvas-components/barcode';
3
+ import { QrCodeLevel, QrCodeFormat, QrCodeMode, QrCodeContentTemplate, QrCodeContentFields } from '@canvas-components/qrcode';
4
+
5
+ /** 单个组件插件的原生部分。 */
6
+ interface PrintDesignNativePlugin {
7
+ id: string;
8
+ /** 单个组件插件的语义版本;修改此插件时单独升级。 */
9
+ version: string;
10
+ type: PrintDesignElement["type"];
11
+ renderer: PrintDesignComponentRenderer;
12
+ /** 运行前必须安装的组件插件及最低版本。 */
13
+ dependencies?: readonly {
14
+ id: string;
15
+ minVersion: string;
16
+ }[];
17
+ }
18
+ /** 使用插件目录提供的原生绘制与交互实现建立注册项。 */
19
+ declare function defineNativePlugin(type: PrintDesignElement["type"], version: string, renderer: PrintDesignComponentRenderer, dependencies?: readonly {
20
+ id: string;
21
+ minVersion: string;
22
+ }[]): PrintDesignNativePlugin;
23
+ declare function defineNativePlugin<Type extends PrintDesignElement["type"], Element extends PrintDesignElementBase & {
24
+ type: Type;
25
+ }, Crop extends PrintDesignCropRect = PrintDesignCropRect>(type: Type, version: string, renderer: PrintDesignPluginRenderer<Element, Crop>, dependencies?: readonly {
26
+ id: string;
27
+ minVersion: string;
28
+ }[]): PrintDesignNativePlugin;
29
+ /** 装配原生组件前校验插件间的声明式依赖。 */
30
+ declare function assertNativePluginDependencies(plugins: readonly PrintDesignNativePlugin[]): void;
31
+
32
+ /** 图片裁剪范围以原图宽高的比例保存。 */
33
+ interface ImageCrop {
34
+ x: number;
35
+ y: number;
36
+ width: number;
37
+ height: number;
38
+ sourceWidth?: number;
39
+ sourceHeight?: number;
40
+ }
41
+ /** 图片插件持有的元素配置;核心仅负责通用元素字段。 */
42
+ interface ImageElement extends PrintDesignElementBase {
43
+ type: "image";
44
+ src: string;
45
+ fit?: "contain" | "cover" | "fill";
46
+ crop?: ImageCrop;
47
+ }
48
+ declare module "@canvas-components/print-design" {
49
+ interface PrintDesignElementTypeMap {
50
+ image: ImageElement;
51
+ }
52
+ }
53
+
54
+ /** 列表组件的独立模板配置。 */
55
+ interface ListElement extends PrintDesignElementBase {
56
+ type: "list";
57
+ listStyle: "ordered" | "unordered" | "radio" | "checkbox";
58
+ items: {
59
+ text: string;
60
+ checked?: boolean;
61
+ }[];
62
+ fontSize?: number;
63
+ color?: string;
64
+ rowHeight?: number;
65
+ }
66
+ declare module "@canvas-components/print-design" {
67
+ interface PrintDesignElementTypeMap {
68
+ list: ListElement;
69
+ }
70
+ }
71
+
72
+ /** 连接点可选边中点或多边形顶点。 */
73
+ interface ConnectorEndpoint {
74
+ elementId?: string;
75
+ anchor?: "auto" | "top" | "right" | "bottom" | "left" | "top-left" | "top-right" | "bottom-right" | "bottom-left" | `edge:${number}` | `vertex:${number}`;
76
+ }
77
+ /** 连接线插件自己的可序列化配置。 */
78
+ interface ConnectorElement extends PrintDesignElementBase {
79
+ type: "connector";
80
+ lineType?: "straight" | "curve" | "polyline";
81
+ polylinePoints?: Array<{
82
+ x: number;
83
+ y: number;
84
+ }>;
85
+ start?: ConnectorEndpoint;
86
+ end?: ConnectorEndpoint;
87
+ stroke?: string;
88
+ strokeWidth?: number;
89
+ arrowSize?: number;
90
+ showStartArrow?: boolean;
91
+ showEndArrow?: boolean;
92
+ text?: string;
93
+ fontSize?: number;
94
+ textColor?: string;
95
+ textPosition?: number;
96
+ }
97
+ declare module "@canvas-components/print-design" {
98
+ interface PrintDesignElementTypeMap {
99
+ connector: ConnectorElement;
100
+ }
101
+ }
102
+
103
+ /** 表格插件自己的行列选区,核心只保存 elementId 和其余不透明数据。 */
104
+ type TableCellSelectionState = PrintDesignComponentCellSelectionState & {
105
+ area: "header" | "body" | "summary";
106
+ selectorKind?: "row" | "column" | "all";
107
+ startRow: number;
108
+ endRow: number;
109
+ startColumn: number;
110
+ endColumn: number;
111
+ sourceRowOffset?: number;
112
+ sourceColumnOffset?: number;
113
+ };
114
+ /** 打印表格列配置,保留常用显示、汇总与编辑字段。 */
115
+ interface TableBorder {
116
+ style?: "none" | "solid" | "dashed" | "dotted";
117
+ width?: number;
118
+ color?: string;
119
+ mode?: "show" | "hide" | "binding" | "preprint";
120
+ path?: string;
121
+ }
122
+ /** all 设定默认线条;inner 设定所属区域的内部网格线;四边配置设定区域外边。 */
123
+ type TableBorders = Partial<Record<"all" | "inner" | "top" | "right" | "bottom" | "left", TableBorder>>;
124
+ /** 打印表格列配置,保留常用显示、汇总与编辑字段。 */
125
+ interface TableColumn {
126
+ key?: string;
127
+ title?: string | number | {
128
+ type: string;
129
+ text?: string;
130
+ alt?: string;
131
+ } | Array<{
132
+ type: string;
133
+ text?: string;
134
+ alt?: string;
135
+ }>;
136
+ dataIndex?: string | number | Array<string | number>;
137
+ children?: TableColumn[];
138
+ width?: number;
139
+ minWidth?: number;
140
+ maxWidth?: number;
141
+ align?: "left" | "center" | "right";
142
+ headerAlign?: "left" | "center" | "right";
143
+ hidden?: boolean;
144
+ /** 表体文字方向;只作用于文字绘制。 */
145
+ textDirection?: "horizontal" | "vertical";
146
+ /** 按原始记录的值依次匹配;首条命中规则覆盖当前列单元格外观。 */
147
+ conditionalFormats?: TableConditionalFormat[];
148
+ borders?: TableBorders;
149
+ ellipsis?: boolean;
150
+ /** 列级文本溢出方式;优先于旧版 ellipsis 和表格默认值。 */
151
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
152
+ /** 单元格四边内边距,单位为 96 DPI 逻辑像素。 */
153
+ cellPadding?: {
154
+ top?: number;
155
+ right?: number;
156
+ bottom?: number;
157
+ left?: number;
158
+ };
159
+ cellType?: string;
160
+ cellStyle?: {
161
+ textAlign?: "left" | "center" | "right";
162
+ verticalAlign?: "top" | "middle" | "bottom";
163
+ backgroundColor?: string;
164
+ color?: string;
165
+ fontSize?: number;
166
+ fontFamily?: string;
167
+ fontWeight?: "normal" | "bold";
168
+ };
169
+ headerStyle?: {
170
+ backgroundColor?: string;
171
+ color?: string;
172
+ fontSize?: number;
173
+ fontFamily?: string;
174
+ fontWeight?: "normal" | "bold";
175
+ };
176
+ summaryStyle?: {
177
+ backgroundColor?: string;
178
+ color?: string;
179
+ fontSize?: number;
180
+ fontFamily?: string;
181
+ fontWeight?: "normal" | "bold";
182
+ };
183
+ /** 无需函数即可保存到模板的数字与日期格式。 */
184
+ valueFormat?: {
185
+ type: "number" | "percent" | "date" | "dateTime" | "time";
186
+ decimalPlaces?: number;
187
+ thousandsSeparator?: boolean;
188
+ /** 百分比默认把 0.25 显示为 25%,设为 false 时直接附加百分号。 */
189
+ percentIsFraction?: boolean;
190
+ /** 日期时间格式使用明确的固定模式,避免运行环境区域设置影响打印。 */
191
+ datePattern?: "YYYY-MM-DD" | "YYYY/MM/DD" | "YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH:mm:ss" | "HH:mm" | "HH:mm:ss";
192
+ };
193
+ summary?: boolean | {
194
+ type?: string;
195
+ precision?: number;
196
+ /** 汇总值的小数取整方式。 */
197
+ roundingMode?: "round" | "floor" | "ceil" | "truncate";
198
+ showTypePrefix?: boolean;
199
+ preserveTrailingZeros?: boolean;
200
+ valueGetter?: (record: Record<string, unknown>) => string | number | null | undefined;
201
+ formatter?: (value: string | number, records: Record<string, unknown>[], column: TableColumn) => string;
202
+ };
203
+ summaryTitle?: string;
204
+ moneyFormat?: {
205
+ symbol?: string;
206
+ thousandsSeparator?: boolean | string;
207
+ decimalPlaces?: number;
208
+ precision?: number;
209
+ };
210
+ render?: (value: unknown, record: Record<string, unknown>, rowIndex: number, column: TableColumn) => unknown;
211
+ }
212
+ /** 表体单元格的可序列化条件格式规则。 */
213
+ interface TableConditionalFormat {
214
+ /** 留空时比较当前列的原始值,否则读取当前记录中的字段路径。 */
215
+ path?: string;
216
+ operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "empty" | "notEmpty";
217
+ value?: string;
218
+ color?: string;
219
+ backgroundColor?: string;
220
+ fontWeight?: "normal" | "bold";
221
+ }
222
+ /** 对角线分区中文字的独立样式,字号单位为 pt。 */
223
+ interface TableDiagonalTextStyle {
224
+ fontSize?: number;
225
+ fontFamily?: string;
226
+ color?: string;
227
+ bold?: boolean;
228
+ italic?: boolean;
229
+ textAlign?: "left" | "center" | "right";
230
+ }
231
+ /** 表体单元格的打印样式及合并配置,行列索引均从零开始。 */
232
+ interface TableCell {
233
+ rowIndex: number;
234
+ columnIndex: number;
235
+ /** 当前单元格的打印值格式,优先于列配置。 */
236
+ valueFormat?: TableColumn["valueFormat"] | null;
237
+ /** 当前单元格的布局配置,未设置时继承列与表格。 */
238
+ align?: TableColumn["align"];
239
+ cellVerticalAlign?: "top" | "middle" | "bottom";
240
+ cellOverflow?: TableColumn["cellOverflow"];
241
+ /** 覆盖当前格的文字方向。 */
242
+ textDirection?: TableColumn["textDirection"];
243
+ cellPadding?: TableColumn["cellPadding"];
244
+ /** 当前区域的文字样式,未设置时继承列与表格。 */
245
+ textStyle?: TableColumn["cellStyle"] & {
246
+ fontStyle?: "normal" | "italic";
247
+ };
248
+ /** 静态表格中指定格子的取值方式;绑定值缺失时保留原静态值。 */
249
+ valueMode?: "static" | "binding";
250
+ /** 相对于打印数据根对象的字段路径或插值表达式。 */
251
+ valuePath?: string;
252
+ rowSpan?: number;
253
+ colSpan?: number;
254
+ backgroundColor?: string;
255
+ color?: string;
256
+ borders?: TableBorders;
257
+ /** 套打模式下内容在设计和预览中显示,实际打印时透明度为 0。 */
258
+ contentMode?: "show" | "preprint";
259
+ diagonal?: "down" | "up";
260
+ /** 多条对角线的共用角点;未设置时沿用旧版左侧角点。 */
261
+ diagonalCorner?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
262
+ /** 对角线套打模式下,设计时显示线条,打印时线条透明。 */
263
+ diagonalMode?: "show" | "preprint";
264
+ /** 对角线数量,默认 1;多条线从同一角点扇形等分。 */
265
+ diagonalCount?: number;
266
+ diagonalStart?: string;
267
+ diagonalEnd?: string;
268
+ diagonalStartStyle?: TableDiagonalTextStyle;
269
+ diagonalEndStyle?: TableDiagonalTextStyle;
270
+ /** 按角点对侧边缘顺序配置各分区文本和样式。 */
271
+ diagonalSections?: {
272
+ text?: string;
273
+ style?: TableDiagonalTextStyle;
274
+ }[];
275
+ }
276
+ /** 与 ListTable 的 mergeCell 配置一致,按绑定记录自动合并连续行或相邻列。 */
277
+ interface TableMergeCell {
278
+ row?: {
279
+ keys: NonNullable<TableColumn["dataIndex"]>[];
280
+ columns?: NonNullable<TableColumn["dataIndex"]>[];
281
+ };
282
+ column?: {
283
+ keys: NonNullable<TableColumn["dataIndex"]>[];
284
+ };
285
+ }
286
+ /** 表格组件。行高单位毫米,列宽沿用 ListTable 的逻辑像素。 */
287
+ interface TableElement extends PrintDesignElementBase {
288
+ type: "table";
289
+ columns: TableColumn[];
290
+ dataSource: Record<string, unknown>[];
291
+ dataMode?: "static" | "binding";
292
+ dataPath?: string;
293
+ /** 仅用于分页预览副本,将局部行号映射回源表格。 */
294
+ sourceRowOffset?: number;
295
+ /** 横向续页副本的首列在源表格中的可见列索引。 */
296
+ sourceColumnOffset?: number;
297
+ /** 从原始明细生成横向分组行、每组小计及每页尾行。 */
298
+ packedReport?: PackedReport;
299
+ /** 数据源缺失时使用 dataSource 作为默认内容,空数组仍视为有效数据。 */
300
+ fallbackToStatic?: boolean;
301
+ /** 手动设置的画布占用高度;超出该高度的内容在设计画布中裁切。 */
302
+ manualHeight?: boolean;
303
+ rowHeight?: number;
304
+ /** 自动模式按每条记录的内容计算行高;固定模式沿用 rowHeight。 */
305
+ rowHeightMode?: "fixed" | "auto";
306
+ /** 模板中手工调整的数据行最小高度,键为静态数据的零基行号。 */
307
+ rowHeightOverrides?: Record<number, number>;
308
+ /** 分页副本中已计算的行高,单位毫米。 */
309
+ rowHeights?: number[];
310
+ /** 多层表头共用的单层行高,单位毫米。 */
311
+ headerRowHeight?: number;
312
+ showHeader?: boolean;
313
+ fontSize?: number;
314
+ fontFamily?: string;
315
+ fontWeight?: "normal" | "bold";
316
+ /** 列宽按比例拉伸或保持配置的逻辑像素宽度。 */
317
+ columnWidthMode?: "proportional" | "fixed";
318
+ /** 固定列宽超过页面时缩小至可用宽度或拆成横向续页。 */
319
+ wideTableMode?: "fit" | "paginate";
320
+ /** 全表默认边框;四边配置可覆盖默认值。 */
321
+ borders?: TableBorders;
322
+ /** 数据行边框,键为源表格的零基行号。 */
323
+ rowBorders?: Record<number, TableBorders>;
324
+ /** 单元格样式和合并区域;区域内仅左上角单元格绘制内容。 */
325
+ cells?: TableCell[];
326
+ /** 汇总行单元格样式,行号固定为零,与表体单元格配置分开保存。 */
327
+ summaryCells?: TableCell[];
328
+ /** 表头手动合并区域,行号按表头层级从零开始。 */
329
+ headerCells?: TableCell[];
330
+ /** 根据绑定记录动态合并连续行或同一行的相邻列。 */
331
+ mergeCell?: TableMergeCell;
332
+ /** 默认水平对齐,列级配置优先。 */
333
+ cellAlign?: "left" | "center" | "right";
334
+ /** 默认垂直对齐,列级配置优先。 */
335
+ cellVerticalAlign?: "top" | "middle" | "bottom";
336
+ /** 单元格超出方式,沿用 ListTable 的换行与省略号模式。 */
337
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
338
+ /** 表格级单元格内边距默认值;列级 cellPadding 可逐边覆盖。 */
339
+ cellPadding?: {
340
+ top?: number;
341
+ right?: number;
342
+ bottom?: number;
343
+ left?: number;
344
+ };
345
+ /** 是否显示列配置生成的汇总行,默认显示。 */
346
+ showSummary?: boolean;
347
+ /** 汇总显示全表结果,或在每张物理页显示当页小计。 */
348
+ summaryScope?: "all" | "page";
349
+ /** 分页副本预计算的汇总结果,防止占位行和续页改变统计范围。 */
350
+ summaryValues?: Record<string, string>;
351
+ /** 汇总行高,单位毫米,默认沿用数据行高。 */
352
+ summaryRowHeight?: number;
353
+ /** 每张物理页的数据行上限,0 或未设置表示仅按纸张容量分页。 */
354
+ printRowCount?: number;
355
+ /** 按打印行数补齐空白行,不修改原始数据,也不计入汇总。 */
356
+ fillEmptyRows?: boolean;
357
+ /** 各区域默认透明,列级样式可覆盖对应区域配置。 */
358
+ colors?: Partial<Record<"header" | "body" | "summary", {
359
+ backgroundColor?: string;
360
+ color?: string;
361
+ }>>;
362
+ }
363
+ /** 原始明细转为多列报表的可序列化规则,分页容量由纸张和模板位置计算。 */
364
+ interface PackedReport {
365
+ /** 跟随表格底部移动的页面元素;未设置时自动选择表格下方元素。 */
366
+ footerElementIds?: string[];
367
+ groupBy: string[];
368
+ itemsPerRow: number;
369
+ groupFields: Record<string, string>;
370
+ groupMergeColumns: number[];
371
+ itemFields: {
372
+ prefix: string;
373
+ path?: string;
374
+ mode?: "index" | "value";
375
+ }[];
376
+ subtotal: Record<string, PackedReportValue>;
377
+ subtotalMerges: Pick<TableCell, "columnIndex" | "colSpan">[];
378
+ total: Record<string, PackedReportValue>;
379
+ /** 总计的统计范围;默认对全部原始记录求和。 */
380
+ totalScope?: "all" | "page";
381
+ totalMerges: Pick<TableCell, "columnIndex" | "colSpan">[];
382
+ /** 每页汇总行后的自定义行,空数组表示不追加。 */
383
+ appendRows: PackedReportAppendRow[];
384
+ }
385
+ /** 报表自定义行的字段内容与合并区域。 */
386
+ interface PackedReportAppendRow {
387
+ fields: Record<string, PackedReportValue>;
388
+ merges: Pick<TableCell, "columnIndex" | "colSpan">[];
389
+ }
390
+ /** 报表小计、总计与自定义行的文字、数据绑定或数值求和规则。 */
391
+ interface PackedReportValue {
392
+ text?: string;
393
+ path?: string;
394
+ prefix?: string;
395
+ sumPath?: string;
396
+ decimals?: number;
397
+ suffix?: string;
398
+ unitPath?: string;
399
+ }
400
+ declare module "@canvas-components/print-design" {
401
+ interface PrintDesignElementTypeMap {
402
+ table: TableElement;
403
+ }
404
+ }
405
+
406
+ /** 透视字段所属区域。 */
407
+ type PivotFieldArea = "filter" | "column" | "row" | "value";
408
+ /** 透视值字段的统计方式。 */
409
+ type PivotAggregator = "sum" | "avg" | "count" | "distinctCount" | "rowCount" | "mergedRowCount" | "min" | "max";
410
+ /** 透视字段配置。 */
411
+ interface PivotField {
412
+ key: string;
413
+ title?: string;
414
+ headerTitle?: string;
415
+ dataIndex?: string | (string | number)[];
416
+ defaultArea?: PivotFieldArea;
417
+ indicator?: {
418
+ title?: string;
419
+ aggregator?: PivotAggregator;
420
+ showAggregatorPrefix?: boolean;
421
+ };
422
+ }
423
+ /** 透视字段在四个区域中的顺序。 */
424
+ interface PivotFieldLayout {
425
+ filters: string[];
426
+ columns: string[];
427
+ rows: string[];
428
+ values: string[];
429
+ }
430
+ /** 透视行列及筛选区域的条件。 */
431
+ interface PivotFilterState {
432
+ rows: Record<string, {
433
+ condition?: {
434
+ operator: "equals";
435
+ value?: unknown;
436
+ };
437
+ }>;
438
+ columns: Record<string, {
439
+ condition?: {
440
+ operator: "equals";
441
+ value?: unknown;
442
+ };
443
+ }>;
444
+ filters?: Record<string, {
445
+ condition?: {
446
+ operator: "equals";
447
+ value?: unknown;
448
+ };
449
+ }>;
450
+ }
451
+ /** 透视表插件自己的可序列化配置。 */
452
+ interface PivotTableElement extends PrintDesignElementBase {
453
+ type: "pivotTable";
454
+ columnWidths?: Record<string, number>;
455
+ dataSource: Record<string, unknown>[];
456
+ dataMode?: "static" | "binding";
457
+ dataPath?: string;
458
+ fallbackToStatic?: boolean;
459
+ fields: PivotField[];
460
+ layout: PivotFieldLayout;
461
+ filters?: PivotFilterState;
462
+ rowHeight?: number;
463
+ headerRowHeight?: number;
464
+ showHeader?: boolean;
465
+ fontSize?: number;
466
+ cellBorder?: {
467
+ color?: string;
468
+ width?: number;
469
+ };
470
+ colors?: TableElement["colors"];
471
+ showSummary?: boolean;
472
+ summaryScope?: "all" | "page";
473
+ summaryRowHeight?: number;
474
+ showGrandTotal?: boolean;
475
+ }
476
+ declare module "@canvas-components/print-design" {
477
+ interface PrintDesignElementTypeMap {
478
+ pivotTable: PivotTableElement;
479
+ }
480
+ }
481
+
482
+ /** 金额大写插件自己的配置。 */
483
+ interface MoneyUpperElement extends PrintDesignElementBase {
484
+ type: "moneyUpper";
485
+ value: string | number;
486
+ amountFormat?: "chinese" | "formal" | "number" | "chineseNumber";
487
+ prefix?: string;
488
+ suffix?: string;
489
+ fontSize?: number;
490
+ color?: string;
491
+ }
492
+ declare module "@canvas-components/print-design" {
493
+ interface PrintDesignElementTypeMap {
494
+ moneyUpper: MoneyUpperElement;
495
+ }
496
+ }
497
+
498
+ /** 分割线插件自己的配置。 */
499
+ interface DividerElement extends PrintDesignElementBase {
500
+ type: "divider";
501
+ orientation?: "horizontal" | "vertical";
502
+ stroke?: string;
503
+ strokeWidth?: number;
504
+ lineStyle?: "solid" | "dashed" | "dotted";
505
+ }
506
+ declare module "@canvas-components/print-design" {
507
+ interface PrintDesignElementTypeMap {
508
+ divider: DividerElement;
509
+ }
510
+ }
511
+
512
+ /** 水印插件自己的配置。 */
513
+ interface WatermarkElement extends PrintDesignElementBase {
514
+ type: "watermark";
515
+ text: string;
516
+ fontSize?: number;
517
+ color?: string;
518
+ textRotation?: number;
519
+ rows?: number;
520
+ columns?: number;
521
+ }
522
+ declare module "@canvas-components/print-design" {
523
+ interface PrintDesignElementTypeMap {
524
+ watermark: WatermarkElement;
525
+ }
526
+ }
527
+
528
+ /** 日期时间插件自己的配置。 */
529
+ interface DateTimeElement extends PrintDesignElementBase {
530
+ type: "dateTime";
531
+ format?: string;
532
+ value?: string;
533
+ fontSize?: number;
534
+ color?: string;
535
+ }
536
+ declare module "@canvas-components/print-design" {
537
+ interface PrintDesignElementTypeMap {
538
+ dateTime: DateTimeElement;
539
+ }
540
+ }
541
+
542
+ /** 页码插件自己的配置。 */
543
+ interface PageNumberElement extends PrintDesignElementBase {
544
+ type: "pageNumber";
545
+ prefix?: string;
546
+ format?: "default" | "pageTotal" | "fraction" | "number" | "custom";
547
+ template?: string;
548
+ fontSize?: number;
549
+ color?: string;
550
+ }
551
+ declare module "@canvas-components/print-design" {
552
+ interface PrintDesignElementTypeMap {
553
+ pageNumber: PageNumberElement;
554
+ }
555
+ }
556
+
557
+ /** 条形或环形打印进度。尺寸、边框与圆角以毫米表示。 */
558
+ interface ProgressElement extends PrintDesignElementBase {
559
+ type: "progress";
560
+ variant: "bar" | "ring";
561
+ /** 完成百分比,范围 0–100。 */
562
+ value: number;
563
+ /** 动态完成百分比字段,缺失或无效时使用静态 value。 */
564
+ valuePath?: string;
565
+ completedColor?: string;
566
+ remainingColor?: string;
567
+ borderColor?: string;
568
+ borderWidth?: number;
569
+ /** 条形圆角或环形进度端点圆角半径。 */
570
+ borderRadius?: number;
571
+ /** 环形轨道厚度。 */
572
+ thickness?: number;
573
+ /** 条形右侧或环形中心显示完成百分比。 */
574
+ showPercent?: boolean;
575
+ /** 百分比字号,单位 pt。 */
576
+ percentFontSize?: number;
577
+ percentColor?: string;
578
+ /** 按最高命中的阈值覆盖当前进度与百分比文字颜色。 */
579
+ colorRules?: Array<{
580
+ min: number;
581
+ completedColor: string;
582
+ percentColor: string;
583
+ }>;
584
+ }
585
+ declare module "@canvas-components/print-design" {
586
+ interface PrintDesignElementTypeMap {
587
+ progress: ProgressElement;
588
+ }
589
+ }
590
+
591
+ /** 纵向流程节点,沿用 list-table 时间轴的标题、内容和状态语义。 */
592
+ interface FlowItem {
593
+ title?: string;
594
+ content: string;
595
+ color?: string;
596
+ position?: "start" | "end";
597
+ loading?: boolean;
598
+ icon?: "circle" | "check" | "clock" | "cross";
599
+ }
600
+ /** 可独立放置在纸张上的纵向流程。 */
601
+ interface FlowElement extends PrintDesignElementBase {
602
+ type: "flow";
603
+ items: FlowItem[];
604
+ dataMode?: "static" | "binding";
605
+ /** 动态节点数组路径,数组项可以是对象或直接可显示的值。 */
606
+ dataPath?: string;
607
+ /** 将数组项字段映射为节点属性;空路径使用同名属性。 */
608
+ itemFields?: Partial<Record<"title" | "content" | "color" | "position" | "loading" | "icon", string>>;
609
+ /** 动态路径缺失或不是数组时显示静态节点。 */
610
+ fallbackToStatic?: boolean;
611
+ mode?: "start" | "end" | "alternate";
612
+ reverse?: boolean;
613
+ variant?: "outlined" | "filled";
614
+ itemGap?: number;
615
+ dotSize?: number;
616
+ lineColor?: string;
617
+ textColor?: string;
618
+ titleColor?: string;
619
+ fontSize?: number;
620
+ }
621
+ declare module "@canvas-components/print-design" {
622
+ interface PrintDesignElementTypeMap {
623
+ flow: FlowElement;
624
+ }
625
+ }
626
+
627
+ /** 模拟时钟;颜色分别控制表盘、刻度、数字和三根指针。 */
628
+ interface ClockElement extends PrintDesignElementBase {
629
+ type: "clock";
630
+ /** ISO 日期时间或 HH:mm[:ss];为空时使用系统时间。 */
631
+ value?: string;
632
+ /** 自动刷新间隔;none 固定显示传入时间。 */
633
+ refreshInterval?: "none" | "second" | "minute" | "hour";
634
+ /** 传入时间开始运行的时间戳,修改 value 时同步更新。 */
635
+ startedAt?: string;
636
+ showHourHand?: boolean;
637
+ showMinuteHand?: boolean;
638
+ showSecondHand?: boolean;
639
+ hourHandColor?: string;
640
+ minuteHandColor?: string;
641
+ secondHandColor?: string;
642
+ ringColor?: string;
643
+ /** 旧版统一刻度颜色;各级颜色未设置时作为回退值。 */
644
+ tickColor?: string;
645
+ showSmallTicks?: boolean;
646
+ showMediumTicks?: boolean;
647
+ showLargeTicks?: boolean;
648
+ smallTickColor?: string;
649
+ mediumTickColor?: string;
650
+ largeTickColor?: string;
651
+ numberColor?: string;
652
+ /** 刻度数字字号,单位 pt。 */
653
+ numberFontSize?: number;
654
+ }
655
+ declare module "@canvas-components/print-design" {
656
+ interface PrintDesignElementTypeMap {
657
+ clock: ClockElement;
658
+ }
659
+ }
660
+
661
+ /** 条形码元素。 */
662
+ interface BarcodeElement extends PrintDesignElementBase {
663
+ type: "barcode";
664
+ value: string;
665
+ format?: BarcodeFormat;
666
+ color?: string;
667
+ backgroundColor?: string;
668
+ displayValue?: boolean;
669
+ }
670
+ declare module "@canvas-components/print-design" {
671
+ interface PrintDesignElementTypeMap {
672
+ barcode: BarcodeElement;
673
+ }
674
+ }
675
+
676
+ /** 二维码元素。 */
677
+ interface QrCodeElement extends PrintDesignElementBase {
678
+ type: "qrcode";
679
+ value: string;
680
+ level?: QrCodeLevel;
681
+ format?: QrCodeFormat;
682
+ mode?: QrCodeMode;
683
+ contentTemplate?: QrCodeContentTemplate;
684
+ templateFields?: QrCodeContentFields;
685
+ color?: string;
686
+ backgroundColor?: string;
687
+ }
688
+ declare module "@canvas-components/print-design" {
689
+ interface PrintDesignElementTypeMap {
690
+ qrcode: QrCodeElement;
691
+ }
692
+ }
693
+
694
+ /** 图表数据编辑与绑定配置,字段路径相对于数据源中的每条记录。 */
695
+ interface ChartData {
696
+ mode: "static" | "binding";
697
+ source?: string;
698
+ /** 数据源缺失时使用静态分类和系列作为默认内容。 */
699
+ fallbackToStatic?: boolean;
700
+ categoryField?: string;
701
+ categories: string[];
702
+ series: Array<{
703
+ name: string;
704
+ field?: string;
705
+ values: number[];
706
+ }>;
707
+ /** 雷达图指标上限。 */
708
+ max?: number;
709
+ }
710
+ /** 使用 chart 包现有渲染器绘制的静态图表元素。 */
711
+ interface ChartElement extends PrintDesignElementBase {
712
+ type: "chart";
713
+ chartType: string;
714
+ chartData?: ChartData;
715
+ option: unknown;
716
+ simple?: boolean;
717
+ }
718
+ declare module "@canvas-components/print-design" {
719
+ interface PrintDesignElementTypeMap {
720
+ chart: ChartElement;
721
+ }
722
+ }
723
+
724
+ /** 文本元素。 */
725
+ interface TextElement extends PrintDesignElementBase {
726
+ type: "text";
727
+ text: string;
728
+ fontSize?: number;
729
+ fontFamily?: string;
730
+ fontWeight?: string;
731
+ color?: string;
732
+ /** 文字颜色的静态或字段绑定模式。@default "static" */
733
+ colorMode?: "static" | "binding";
734
+ /** 文字颜色字段路径;字段需直接提供可用的 CSS 色值。 */
735
+ colorPath?: string;
736
+ /** 字号的静态或字段绑定模式。@default "static" */
737
+ fontSizeMode?: "static" | "binding";
738
+ /** 字号字段路径;字段可提供数字或带 mm/cm/in/pt/px 单位的值。 */
739
+ fontSizePath?: string;
740
+ /** 字号字段无单位时采用的单位;切换绑定时记录全局单位。@default "mm" */
741
+ fontSizeBindingUnit?: PrintDesignUnit;
742
+ /** 文本框边界线,单位毫米;用于打印时核对排版区域。 */
743
+ borderColor?: string;
744
+ borderWidth?: number;
745
+ textAlign?: CanvasTextAlign | "justify" | "distributed";
746
+ /** 文字排列方向。 */
747
+ textDirection?: "horizontal" | "vertical";
748
+ verticalAlign?: "top" | "middle" | "bottom";
749
+ lineHeight?: number;
750
+ /** 下划线条数;0 表示不绘制。 */
751
+ underlineCount?: number;
752
+ underlineStyle?: "solid" | "dashed" | "dotted" | "wavy";
753
+ underlineColor?: string;
754
+ /** 下划线宽度与间距,单位毫米。 */
755
+ underlineWidth?: number;
756
+ underlineGap?: number;
757
+ /** 文本超出固定高度时的处理方式。 */
758
+ heightOverflow?: "clip" | "flow" | "ellipsis";
759
+ /** 按字数上限选择字号;超过所有区间时使用最大上限的字号。 */
760
+ fontSizeRules?: Array<{
761
+ maxChars: number;
762
+ fontSize: number;
763
+ }>;
764
+ /** 可选字体文件地址,与 fontFamily 配合加载。 */
765
+ fontSource?: string;
766
+ /** 分页生成的文本已按目标宽度断行,绘制时保留这些断行。 */
767
+ prewrapped?: boolean;
768
+ }
769
+ declare module "@canvas-components/print-design" {
770
+ interface PrintDesignElementTypeMap {
771
+ text: TextElement;
772
+ }
773
+ }
774
+
775
+ /** 形状元素。 */
776
+ interface ShapeElement extends PrintDesignElementBase {
777
+ type: "shape";
778
+ shape: "rect" | "ellipse" | "line" | "triangle" | "circle" | "polygon" | "sector" | "star" | "bracket-left-square" | "bracket-right-square" | "bracket-left-curly" | "bracket-right-curly" | "bracket-pair-square" | "bracket-pair-curly" | "curve-quadratic" | "curve-cubic" | "curve-multi" | "curve-path";
779
+ fill?: string;
780
+ stroke?: string;
781
+ strokeWidth?: number;
782
+ /** 括号线型。 */
783
+ lineStyle?: "solid" | "dashed" | "dotted";
784
+ radius?: number;
785
+ /** 正多边形边数,范围 3–12。@default 5 */
786
+ sides?: number;
787
+ /** 三角形、多边形或五角星各顶点的归一化位置。 */
788
+ polygonPoints?: Array<{
789
+ x: number;
790
+ y: number;
791
+ }>;
792
+ /** 扇形圆心角,范围 1–359 度。@default 120 */
793
+ sectorAngle?: number;
794
+ /** 形状内部居中的文本。 */
795
+ text?: string;
796
+ fontSize?: number;
797
+ textColor?: string;
798
+ /** 曲线锚点和控制点的元素内归一化坐标。 */
799
+ curvePoints?: Array<{
800
+ x: number;
801
+ y: number;
802
+ }>;
803
+ /** 自定义路径的节点,使用元素内归一化坐标。 */
804
+ pathPoints?: Array<{
805
+ x: number;
806
+ y: number;
807
+ }>;
808
+ /** 自定义路径是否闭合。 */
809
+ pathClosed?: boolean;
810
+ /** 控制点相对锚点连线的偏移倍率,0–2。 */
811
+ curvature?: number;
812
+ /** 文本在曲线法线方向的位置。 */
813
+ curveTextTrack?: "above" | "middle" | "below";
814
+ /** 文本中心沿曲线路径的位置,0–1。 */
815
+ curveTextPosition?: number;
816
+ }
817
+ declare module "@canvas-components/print-design" {
818
+ interface PrintDesignElementTypeMap {
819
+ shape: ShapeElement;
820
+ }
821
+ }
822
+
823
+ /** 画笔图层;每组归一化坐标对应一次独立笔画。 */
824
+ interface BrushStrokeStyle {
825
+ stroke?: string;
826
+ strokeWidth?: number;
827
+ brushStyle?: "hard" | "brush" | "fountain";
828
+ dynamics?: number;
829
+ nibAngle?: number;
830
+ edge?: "hard" | "soft";
831
+ lineCap?: "round" | "square";
832
+ }
833
+ /** 画笔图层中每笔保留绘制时的外观。 */
834
+ interface BrushElement extends PrintDesignElementBase {
835
+ type: "brush";
836
+ strokes: Array<Array<{
837
+ x: number;
838
+ y: number;
839
+ pressure?: number;
840
+ }>>;
841
+ strokeStyles?: BrushStrokeStyle[];
842
+ stroke?: string;
843
+ strokeWidth?: number;
844
+ /** 硬笔为等宽线,毛笔为压力笔锋,钢笔为倾斜的扁平笔尖。 */
845
+ brushStyle?: "hard" | "brush" | "fountain";
846
+ /** 压力与速度对笔画粗细的影响,0–1。 */
847
+ dynamics?: number;
848
+ /** 钢笔笔尖相对水平轴的角度。 */
849
+ nibAngle?: number;
850
+ /** 硬边保持清晰轮廓,柔边增加模糊边缘。 */
851
+ edge?: "hard" | "soft";
852
+ lineCap?: "round" | "square";
853
+ }
854
+ declare module "@canvas-components/print-design" {
855
+ interface PrintDesignElementTypeMap {
856
+ brush: BrushElement;
857
+ }
858
+ }
859
+
860
+ /** 打印甘特图的时间精度。 */
861
+ type GanttScale = "second" | "minute" | "hour" | "day" | "week" | "month";
862
+ /** 打印甘特图任务。 */
863
+ interface GanttTask {
864
+ id: string;
865
+ title: string;
866
+ start?: string | number;
867
+ end?: string | number;
868
+ progress?: number;
869
+ color?: string;
870
+ progressColor?: string;
871
+ /** 当前任务的前置任务连线,to 默认为当前任务 ID。 */
872
+ dependencies?: Omit<GanttDependency, "to">[];
873
+ tasks?: GanttTask[];
874
+ }
875
+ /** 打印甘特图任务依赖。 */
876
+ interface GanttDependency {
877
+ from: string;
878
+ to: string;
879
+ type?: "finish-to-start" | "start-to-start" | "finish-to-finish";
880
+ color?: string;
881
+ }
882
+ /** 可打印的甘特图快照。 */
883
+ interface GanttElement extends PrintDesignElementBase {
884
+ type: "gantt";
885
+ tasks: GanttTask[];
886
+ showDependencies?: boolean;
887
+ dependencyColor?: string;
888
+ /** 依赖连线宽度,单位为逻辑像素。 */
889
+ dependencyLineWidth?: number;
890
+ dependencyArrow?: boolean;
891
+ dataMode?: "static" | "binding";
892
+ dataPath?: string;
893
+ fallbackToStatic?: boolean;
894
+ scale?: GanttScale;
895
+ startDate?: string;
896
+ endDate?: string;
897
+ taskColumnTitle?: string;
898
+ taskColumnRatio?: number;
899
+ /** 任务列正文文字的水平对齐方式。 */
900
+ taskAlign?: "left" | "center" | "right";
901
+ taskColor?: string;
902
+ progressColor?: string;
903
+ /** 任务进度条圆角半径,单位毫米。 */
904
+ progressRadius?: number;
905
+ /** 任务进度条高度,单位毫米;不超过当前行高。 */
906
+ progressHeight?: number;
907
+ /** 每条任务的行高,单位毫米;未配置时平均填充组件高度。 */
908
+ rowHeight?: number;
909
+ /** 表头可关闭;表头高度以毫米保存。 */
910
+ showHeader?: boolean;
911
+ headerHeight?: number;
912
+ headerBackgroundColor?: string;
913
+ headerTextColor?: string;
914
+ /** 任务列标题和时间轴刻度的水平对齐方式。 */
915
+ headerAlign?: "left" | "center" | "right";
916
+ cellBackgroundColor?: string;
917
+ cellTextColor?: string;
918
+ /** 边框宽度沿用表格的逻辑像素单位;0 表示隐藏。 */
919
+ frameBorder?: {
920
+ color?: string;
921
+ width?: number;
922
+ };
923
+ headerBorder?: {
924
+ color?: string;
925
+ width?: number;
926
+ };
927
+ cellBorder?: {
928
+ color?: string;
929
+ width?: number;
930
+ };
931
+ }
932
+ declare module "@canvas-components/print-design" {
933
+ interface PrintDesignElementTypeMap {
934
+ gantt: GanttElement;
935
+ }
936
+ }
937
+
938
+ /** 可打印刻度尺。边界模式按 0 到总刻度编号,逐格模式按 1 到总刻度编号。 */
939
+ interface RulerElement extends PrintDesignElementBase {
940
+ type: "ruler";
941
+ orientation: "horizontal" | "vertical";
942
+ /** 数字与刻度位于基线的哪一侧:横向为上/下,纵向为左/右。@default "after" */
943
+ labelPosition?: "before" | "after";
944
+ /** 刻度线位于基线的哪一侧;可让左侧刻度线朝外。@default "after" */
945
+ tickPosition?: "before" | "after";
946
+ /** 反向编号,编号从总刻度向起始值递减。 */
947
+ reverseLabels?: boolean;
948
+ /** 刻度位于区间边界、每格起始线、末端线或格子中心。@default "boundary" */
949
+ tickPlacement?: "boundary" | "cell-start" | "cell-end" | "cell-center";
950
+ /** 数字对齐刻度线,或放在相邻两条刻度线之间。@default "tick" */
951
+ labelAlignment?: "tick" | "between";
952
+ /** 首尾刻度与组件边界对齐,适用于与网格线共用坐标。 */
953
+ fullBoundaries?: boolean;
954
+ /** 保留 0 标签,但不绘制 0 刻度线。 */
955
+ omitZeroTick?: boolean;
956
+ /** 不显示 0 标签,用于共享原点的坐标轴。 */
957
+ omitZeroLabel?: boolean;
958
+ totalTicks: number;
959
+ middleEvery?: number;
960
+ majorEvery?: number;
961
+ minorHeight?: number;
962
+ middleHeight?: number;
963
+ majorHeight?: number;
964
+ lineColor?: string;
965
+ labelColor?: string;
966
+ strokeWidth?: number;
967
+ fontSize?: number;
968
+ }
969
+ declare module "@canvas-components/print-design" {
970
+ interface PrintDesignElementTypeMap {
971
+ ruler: RulerElement;
972
+ }
973
+ }
974
+
975
+ /** 网格单元格中的静态标记。 */
976
+ type GridMark = "none" | "x" | "*";
977
+ /** 单格静态标记及独立数据绑定;动态值无效时沿用静态值。 */
978
+ interface GridCell {
979
+ content?: GridMark;
980
+ contentMode?: "static" | "binding";
981
+ contentPath?: string;
982
+ backgroundColor?: string;
983
+ }
984
+ /** 纹版图中的纵向循环区间;行号起点由网格配置决定,结束行超出网格时裁切。 */
985
+ interface GridLoop {
986
+ startRow: number;
987
+ endRow: number;
988
+ count: number;
989
+ }
990
+ /** 纹版图中的横向列循环区间;列号起点由网格配置决定。 */
991
+ interface GridColumnLoop {
992
+ startColumn: number;
993
+ endColumn: number;
994
+ count: number;
995
+ }
996
+ /** 循环结束位置被网格裁切时的括号端点样式。 */
997
+ type GridLoopOverflowMarker = "cap" | "open" | "arrow" | "wave";
998
+ /** 可按单元格显示标记与背景色的打印网格。 */
999
+ interface GridElement extends PrintDesignElementBase {
1000
+ type: "grid";
1001
+ rows: number;
1002
+ columns: number;
1003
+ /** 在画布点击单元格时使用的标记。 */
1004
+ paintMark?: "x" | "*";
1005
+ /** 二维 0/1 选中数组的默认绑定路径;单元格可覆盖。 */
1006
+ contentPath?: string;
1007
+ /** 循环区间数组路径;数组项包含 startRow、endRow 和 count。 */
1008
+ loopsPath?: string;
1009
+ /** 数据路径缺失时使用的静态循环区间。 */
1010
+ loops?: GridLoop[];
1011
+ /** 列循环区间数组路径;数组项包含 startColumn、endColumn 和 count。 */
1012
+ columnLoopsPath?: string;
1013
+ /** 数据路径缺失时使用的静态列循环区间。 */
1014
+ columnLoops?: GridColumnLoop[];
1015
+ /** 行循环编号起点。@default 0 */
1016
+ loopRowIndexBase?: 0 | 1;
1017
+ /** 列循环编号起点。@default 0 */
1018
+ loopColumnIndexBase?: 0 | 1;
1019
+ /** 行循环编号递增方向;从底往上可与左侧反向刻度对应。@default "top-down" */
1020
+ loopRowDirection?: "top-down" | "bottom-up";
1021
+ /** 列循环编号递增方向。@default "left-right" */
1022
+ loopColumnDirection?: "left-right" | "right-left";
1023
+ /** 网格右侧为循环括号预留的宽度,单位毫米。 */
1024
+ loopGutter?: number;
1025
+ /** 网格上方为列循环括号预留的高度,单位毫米。 */
1026
+ columnLoopGutter?: number;
1027
+ /** 坐标组件的箭头需要独立占用预留区,即使没有循环括号。 */
1028
+ reserveGutters?: boolean;
1029
+ /** 行列循环超出网格时,裁切端的样式。@default "cap" */
1030
+ loopOverflowMarker?: GridLoopOverflowMarker;
1031
+ loopColor?: string;
1032
+ /** 按行优先排列;每格可独立绑定选中状态。 */
1033
+ cells?: GridCell[];
1034
+ backgroundColor?: string;
1035
+ /** 带有 X 或米字标记的单元格背景色;独立背景配置优先。 */
1036
+ selectedBackgroundColor?: string;
1037
+ lineColor?: string;
1038
+ lineWidth?: number;
1039
+ markColor?: string;
1040
+ }
1041
+ declare module "@canvas-components/print-design" {
1042
+ interface PrintDesignElementTypeMap {
1043
+ grid: GridElement;
1044
+ }
1045
+ }
1046
+
1047
+ /** 网格与左、下刻度尺共用行列和单格尺寸的坐标组件。 */
1048
+ interface CoordinateElement extends Omit<GridElement, "type"> {
1049
+ type: "coordinate";
1050
+ leftRulerWidth?: number;
1051
+ bottomRulerHeight?: number;
1052
+ rulerGap?: number;
1053
+ rulerFontSize?: number;
1054
+ rulerTickLength?: number;
1055
+ rulerColor?: string;
1056
+ /** 左侧行编号从下往上递增时为 true。 */
1057
+ reverseRowLabels?: boolean;
1058
+ /** 底部列编号从右往左递增时为 true。 */
1059
+ reverseColumnLabels?: boolean;
1060
+ /** 纵轴上端、下端和横轴左端、右端的尖头。 */
1061
+ arrowTop?: boolean;
1062
+ arrowBottom?: boolean;
1063
+ arrowLeft?: boolean;
1064
+ arrowRight?: boolean;
1065
+ /** 箭头三角部分与网格边框的距离,单位毫米。@default 0.5 */
1066
+ arrowGridGap?: number;
1067
+ /** 将两根轴线连接到左下角交点,并标注 0。 */
1068
+ showZeroCrossing?: boolean;
1069
+ /** 在 0 点交叉处绘制纵横两根轴的刻度线。 */
1070
+ showZeroTick?: boolean;
1071
+ /** 0 标签显示在横轴、纵轴、两轴各一个,或共用一个原点标签。@default "shared" */
1072
+ zeroLabelMode?: "horizontal" | "vertical" | "both" | "shared";
1073
+ }
1074
+ declare module "@canvas-components/print-design" {
1075
+ interface PrintDesignElementTypeMap {
1076
+ coordinate: CoordinateElement;
1077
+ }
1078
+ }
1079
+
1080
+ export { assertNativePluginDependencies as $, type PivotFieldLayout as A, type BarcodeElement as B, type ChartData as C, type DateTimeElement as D, type PivotFilterState as E, type FlowElement as F, type GanttDependency as G, type PivotTableElement as H, type ImageCrop as I, type ProgressElement as J, type TableBorder as K, type ListElement as L, type MoneyUpperElement as M, type TableBorders as N, type TableCell as O, type PrintDesignNativePlugin as P, type QrCodeElement as Q, type RulerElement as R, type ShapeElement as S, type TextElement as T, type TableCellSelectionState as U, type TableColumn as V, type TableConditionalFormat as W, type TableDiagonalTextStyle as X, type TableElement as Y, type TableMergeCell as Z, type WatermarkElement as _, type BrushElement as a, defineNativePlugin as a0, type BrushStrokeStyle as b, type ChartElement as c, type ClockElement as d, type ConnectorElement as e, type ConnectorEndpoint as f, type CoordinateElement as g, type DividerElement as h, type FlowItem as i, type GanttElement as j, type GanttScale as k, type GanttTask as l, type GridCell as m, type GridColumnLoop as n, type GridElement as o, type GridLoop as p, type GridLoopOverflowMarker as q, type GridMark as r, type ImageElement as s, type PackedReport as t, type PackedReportAppendRow as u, type PackedReportValue as v, type PageNumberElement as w, type PivotAggregator as x, type PivotField as y, type PivotFieldArea as z };