@canvas-components/print-design 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -384,6 +384,15 @@ interface PrintDesignTableColumn {
384
384
  headerAlign?: "left" | "center" | "right";
385
385
  hidden?: boolean;
386
386
  ellipsis?: boolean;
387
+ /** 列级文本溢出方式;优先于旧版 ellipsis 和表格默认值。 */
388
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
389
+ /** 单元格四边内边距,单位为 96 DPI 逻辑像素。 */
390
+ cellPadding?: {
391
+ top?: number;
392
+ right?: number;
393
+ bottom?: number;
394
+ left?: number;
395
+ };
387
396
  cellType?: string;
388
397
  cellStyle?: {
389
398
  textAlign?: "left" | "center" | "right";
@@ -416,6 +425,32 @@ interface PrintDesignTableColumn {
416
425
  };
417
426
  render?: (value: unknown, record: Record<string, unknown>, rowIndex: number, column: PrintDesignTableColumn) => unknown;
418
427
  }
428
+ /** 表体单元格的打印样式及合并配置,行列索引均从零开始。 */
429
+ interface PrintDesignTableCell {
430
+ rowIndex: number;
431
+ columnIndex: number;
432
+ rowSpan?: number;
433
+ colSpan?: number;
434
+ backgroundColor?: string;
435
+ color?: string;
436
+ /** 单元格边框覆盖;透明色可在打印时隐藏边框。 */
437
+ borderColor?: string;
438
+ /** 动态数据字段为 false、0 或空字符串时隐藏边框。 */
439
+ borderPath?: string;
440
+ diagonal?: "down" | "up";
441
+ diagonalStart?: string;
442
+ diagonalEnd?: string;
443
+ }
444
+ /** 与 ListTable 的 mergeCell 配置一致,按绑定记录自动合并连续行或相邻列。 */
445
+ interface PrintDesignTableMergeCell {
446
+ row?: {
447
+ keys: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
448
+ columns?: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
449
+ };
450
+ column?: {
451
+ keys: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
452
+ };
453
+ }
419
454
  /** 表格组件。行高单位毫米,列宽沿用 ListTable 的逻辑像素。 */
420
455
  interface PrintDesignTableElement extends PrintDesignElementBase {
421
456
  type: "table";
@@ -434,12 +469,28 @@ interface PrintDesignTableElement extends PrintDesignElementBase {
434
469
  color?: string;
435
470
  width?: number;
436
471
  };
472
+ /** 全表边框控制;绑定值为 false、0 或空字符串时隐藏。 */
473
+ borderMode?: "show" | "hide" | "binding";
474
+ borderPath?: string;
475
+ /** 单元格样式和合并区域;区域内仅左上角单元格绘制内容。 */
476
+ cells?: PrintDesignTableCell[];
477
+ /** 表头手动合并区域,行号按表头层级从零开始。 */
478
+ headerCells?: PrintDesignTableCell[];
479
+ /** 根据绑定记录动态合并连续行或同一行的相邻列。 */
480
+ mergeCell?: PrintDesignTableMergeCell;
437
481
  /** 默认水平对齐,列级配置优先。 */
438
482
  cellAlign?: "left" | "center" | "right";
439
483
  /** 默认垂直对齐,列级配置优先。 */
440
484
  cellVerticalAlign?: "top" | "middle" | "bottom";
441
485
  /** 单元格超出方式,沿用 ListTable 的换行与省略号模式。 */
442
- cellOverflow?: "wrap" | "ellipsis";
486
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
487
+ /** 表格级单元格内边距默认值;列级 cellPadding 可逐边覆盖。 */
488
+ cellPadding?: {
489
+ top?: number;
490
+ right?: number;
491
+ bottom?: number;
492
+ left?: number;
493
+ };
443
494
  /** 是否显示列配置生成的汇总行,默认显示。 */
444
495
  showSummary?: boolean;
445
496
  /** 汇总行高,单位毫米,默认沿用数据行高。 */
@@ -751,10 +802,27 @@ interface PrintDesignHtmlOptions {
751
802
  /** 省略时输出文档中的所有页面。 */
752
803
  pageIds?: readonly string[];
753
804
  }
754
- /** 将设计文档及数据转换为可直接交给浏览器打印的 HTML。 */
755
- declare function transformPrintDesignToHtml(document: PrintDesignDocument, options?: PrintDesignHtmlOptions): string;
756
805
  /** 将转换后的 HTML 写入打印窗口,等待图片加载后唤起浏览器打印。 */
757
806
  declare function printPrintDesignHtml(popup: Window, html: string): void;
807
+ /** 同步生成打印 HTML,保留原有调用方式。 */
808
+ declare function transformPrintDesignToHtml(document: PrintDesignDocument, options?: PrintDesignHtmlOptions): string;
809
+ /** 分时间片生成打印页面,支持取消和实际处理进度。 */
810
+ declare function transformPrintDesignToHtmlAsync(document: PrintDesignDocument, options?: PrintDesignHtmlOptions & {
811
+ signal?: AbortSignal;
812
+ onProgress?: (progress: number) => void;
813
+ }): Promise<string>;
814
+ /** 按实际物理页限制生成 HTML,调用方消费一批后才生成下一批。 */
815
+ declare function transformPrintDesignToHtmlBatches(document: PrintDesignDocument, options: {
816
+ data?: Record<string, unknown>;
817
+ pagesPerBatch: number;
818
+ signal?: AbortSignal;
819
+ onProgress?: (progress: number) => void;
820
+ }): AsyncGenerator<{
821
+ html: string;
822
+ firstPage: number;
823
+ lastPage: number;
824
+ hasMore: boolean;
825
+ }, void, unknown>;
758
826
 
759
827
  type ResizeHandle = "nw" | "ne" | "se" | "sw" | "n" | "s" | "w" | "e";
760
828
  type Rect = Pick<PrintDesignElement, "x" | "y" | "width" | "height">;
@@ -921,6 +989,32 @@ declare abstract class PrintDesignBase {
921
989
 
922
990
  /** 静态表格单元格编辑会话与文档历史,独立于文本元素编辑。 */
923
991
  declare abstract class PrintDesignTableEditing extends PrintDesignBase {
992
+ protected tableCellSelection: {
993
+ elementId: string;
994
+ area: "header" | "body";
995
+ selectorKind?: "row" | "column" | "all";
996
+ startRow: number;
997
+ endRow: number;
998
+ startColumn: number;
999
+ endColumn: number;
1000
+ } | null;
1001
+ /** 返回表格单元格选区,供右键菜单与选区绘制使用。 */
1002
+ getTableCellSelection(): {
1003
+ elementId: string;
1004
+ area: "header" | "body";
1005
+ selectorKind?: "row" | "column" | "all";
1006
+ startRow: number;
1007
+ endRow: number;
1008
+ startColumn: number;
1009
+ endColumn: number;
1010
+ } | null;
1011
+ /** 选择表格整行、整列或全部单元格。 */
1012
+ selectTableSelector(elementId: string, kind: "row" | "column" | "all", index?: number, area?: "header" | "body"): this;
1013
+ /** 选中一个单元格,按 Shift 扩展为矩形区域。 */
1014
+ protected selectTableCellAtPoint(element: PrintDesignTableElement, point: {
1015
+ x: number;
1016
+ y: number;
1017
+ }, extend?: boolean): boolean;
924
1018
  private tableEditing;
925
1019
  protected beginTableEditing(element: PrintDesignTableElement, point: {
926
1020
  x: number;
@@ -984,6 +1078,7 @@ declare abstract class PrintDesignRenderer extends PrintDesignTextEditing {
984
1078
  render(): this;
985
1079
  private drawGrid;
986
1080
  private drawSelection;
1081
+ private drawTableCellSelection;
987
1082
  /** 组合四边控制柄与外部图层重叠时,优先保留其它图层的选择。 */
988
1083
  protected hitTestGroupResizeHandle(point: {
989
1084
  x: number;
@@ -996,7 +1091,7 @@ declare abstract class PrintDesignRenderer extends PrintDesignTextEditing {
996
1091
  x: number;
997
1092
  y: number;
998
1093
  }, page: PrintDesignPage, scale: number): {
999
- element: PrintDesignElement;
1094
+ element: PrintDesignTextElement | PrintDesignListElement | PrintDesignDateTimeElement | PrintDesignMoneyUpperElement | PrintDesignPageNumberElement | PrintDesignWatermarkElement | PrintDesignShapeElement | PrintDesignDividerElement | PrintDesignRulerElement | PrintDesignGridElement | PrintDesignProgressElement | PrintDesignClockElement | PrintDesignImageElement | PrintDesignBarcodeElement | PrintDesignQrCodeElement | PrintDesignChartElement | PrintDesignTableElement | PrintDesignPivotTableElement | PrintDesignGanttElement;
1000
1095
  handle: ResizeHandle;
1001
1096
  } | undefined;
1002
1097
  protected hitTestRotateHandle(point: {
@@ -1052,6 +1147,28 @@ declare function getPrintDesignAlignmentUnits(elements: PrintDesignElement[], id
1052
1147
  /** 菜单批量操作与实例内剪贴板;每次文档操作只提交一条历史。 */
1053
1148
  declare abstract class PrintDesignActions extends PrintDesignGrouping {
1054
1149
  private elementClipboard;
1150
+ /** 定位画布中的行、列或全选选择器。 */
1151
+ tableSelectorAtClientPoint(clientX: number, clientY: number): {
1152
+ elementId: string;
1153
+ kind: "column" | "row" | "all";
1154
+ index: number;
1155
+ area: "header" | "body" | undefined;
1156
+ } | null;
1157
+ /** 定位画布右键所指的表头或表体单元格。 */
1158
+ tableCellAtClientPoint(clientX: number, clientY: number): {
1159
+ elementId: string;
1160
+ area: "header" | "body";
1161
+ rowIndex: number;
1162
+ columnIndex: number;
1163
+ } | null;
1164
+ /** 合并右键单元格与相邻单元格;变更纳入撤销历史。 */
1165
+ mergeTableCell(elementId: string, rowIndex: number, columnIndex: number, rowSpan: number, colSpan: number): this;
1166
+ /** 合并表头选区,保留左上角单元格标题。 */
1167
+ mergeTableHeaderCell(elementId: string, rowIndex: number, columnIndex: number, rowSpan: number, colSpan: number): this;
1168
+ /** 在静态表格指定数据行的上方或下方插入空行。 */
1169
+ insertTableRow(elementId: string, rowIndex: number, after?: boolean): this;
1170
+ /** 在可见叶列的左侧或右侧插入空白列。 */
1171
+ insertTableColumn(elementId: string, columnIndex: number, after?: boolean): this;
1055
1172
  /** 画布右键命中选区;点中已选项保留多选,空白清空选区。 */
1056
1173
  selectAtClientPoint(clientX: number, clientY: number): this;
1057
1174
  /** 复制选中元素,保留组合、数据及样式,不使用系统剪贴板。 */
@@ -1089,6 +1206,11 @@ declare abstract class PrintDesignActions extends PrintDesignGrouping {
1089
1206
 
1090
1207
  /** 负责打印文档、页面与导出 API 的原生设计器实例。 */
1091
1208
  declare class PrintDesign extends PrintDesignActions {
1209
+ private temporaryDocumentSnapshot;
1210
+ /** 临时显示演示文档;原文档、选区与撤销记录保留在实例中。 */
1211
+ showTemporaryDocument(document: PrintDesignDocument, pageId?: string, elementId?: string): this;
1212
+ /** 恢复临时演示前的文档和选区,保留原有撤销记录。 */
1213
+ restoreTemporaryDocument(): this;
1092
1214
  /** 获取文档副本。 */
1093
1215
  getDocument(): PrintDesignDocument;
1094
1216
  /** 替换当前文档并清空撤销历史。 */
@@ -1120,6 +1242,13 @@ declare class PrintDesign extends PrintDesignActions {
1120
1242
  x: number;
1121
1243
  y: number;
1122
1244
  } | null;
1245
+ /** 获取当前页元素在浏览器视口中的包围盒,包含旋转后的占用范围。 */
1246
+ getElementClientRect(elementId: string): {
1247
+ left: number;
1248
+ top: number;
1249
+ width: number;
1250
+ height: number;
1251
+ } | null;
1123
1252
  /** 新增元素并选中。 */
1124
1253
  addElement<T extends PrintDesignElement>(element: Omit<T, "id"> & {
1125
1254
  id?: string;
@@ -1288,4 +1417,4 @@ declare function isPrintDesignTableDataSource(value: unknown): value is PrintDes
1288
1417
  /** 兼容 ReactListTable 图表弹窗所使用的 ListTableChartData。 */
1289
1418
  declare function isPrintDesignChartDataSource(value: unknown): value is PrintDesignChartDataSource;
1290
1419
 
1291
- export { DEFAULT_PRINT_DESIGN_DEBUG_OPTIONS, PRINT_DESIGN_CSS_DPI, PRINT_DESIGN_MM_PER_INCH, PRINT_DESIGN_SCHEMA_VERSION, PRINT_DESIGN_UNIT_MM, PrintDesign, type PrintDesignBarcodeElement, type PrintDesignChartData, type PrintDesignChartDataSource, type PrintDesignChartElement, type PrintDesignClockElement, type PrintDesignDataField, type PrintDesignDebugOptions, type PrintDesignDividerElement, type PrintDesignDocument, type PrintDesignElement, type PrintDesignElementBase, type PrintDesignExportOptions, type PrintDesignGanttElement, type PrintDesignGridCell, type PrintDesignGridElement, type PrintDesignGridMark, type PrintDesignHtmlOptions, type PrintDesignImageElement, type PrintDesignLayerAlignment, type PrintDesignLayerNode, type PrintDesignListElement, type PrintDesignOptions, type PrintDesignOrientation, type PrintDesignPage, type PrintDesignPageMargins, type PrintDesignPivotTableElement, type PrintDesignProgressElement, type PrintDesignQrCodeElement, type PrintDesignRulerElement, type PrintDesignSelection, type PrintDesignShapeElement, type PrintDesignTableColumn, type PrintDesignTableDataSource, type PrintDesignTableElement, type PrintDesignTextElement, type PrintDesignUnit, type PrintGanttDependency, type PrintGanttScale, type PrintGanttTask, type PrintPivotAggregator, type PrintPivotField, type PrintPivotFieldArea, type PrintPivotFieldLayout, type PrintPivotFilterState, buildPrintDesignLayerTree, canvasPointToPageMillimeters, computePrintTableSummaryValues, createPrintDesignDocument, createPrintDesignId, createPrintDesignPage, drawPrintDesignElement, drawPrintDesignPage, findPrintPivotFieldArea, formatDisplayUnit, fromDisplayUnit, getPrintDesignAlignmentUnits, getPrintDesignDataFields, getPrintDesignElementDataConfig, getPrintDesignPageSize, hitTestPrintDesignPage, isGanttTasks, isPrintDesignChartDataSource, isPrintDesignTableDataSource, materializePivotTable, millimetersToPixels, movePrintPivotField, normalizeGridCount, paginatePrintDesignDocument, parsePrintDesignDocument, pixelsToMillimeters, printPivotFieldHeaderTitle, printPivotFieldTitle, printPivotValueTitle, printPrintDesignHtml, readChartData, readTableCell, removePrintPivotField, renderPrintDesignPageToCanvas, resizeGridCells, resolveChartOption, resolveDesignText, resolveGanttDependencies, resolveGanttTasks, resolveGridCells, resolvePivotRows, resolvePrintDesignBinding, resolvePrintDesignDataPath, resolvePrintDesignDebugOptions, resolvePrintDesignElementData, resolvePrintDesignElementVisible, resolveTableDataSource, resolveTableRows, serializePrintDesignDocument, tableLeafColumns, toDisplayUnit, transformPrintDesignToHtml, writeTableCell };
1420
+ export { DEFAULT_PRINT_DESIGN_DEBUG_OPTIONS, PRINT_DESIGN_CSS_DPI, PRINT_DESIGN_MM_PER_INCH, PRINT_DESIGN_SCHEMA_VERSION, PRINT_DESIGN_UNIT_MM, PrintDesign, type PrintDesignBarcodeElement, type PrintDesignChartData, type PrintDesignChartDataSource, type PrintDesignChartElement, type PrintDesignClockElement, type PrintDesignDataField, type PrintDesignDebugOptions, type PrintDesignDividerElement, type PrintDesignDocument, type PrintDesignElement, type PrintDesignElementBase, type PrintDesignExportOptions, type PrintDesignGanttElement, type PrintDesignGridCell, type PrintDesignGridElement, type PrintDesignGridMark, type PrintDesignHtmlOptions, type PrintDesignImageElement, type PrintDesignLayerAlignment, type PrintDesignLayerNode, type PrintDesignListElement, type PrintDesignOptions, type PrintDesignOrientation, type PrintDesignPage, type PrintDesignPageMargins, type PrintDesignPivotTableElement, type PrintDesignProgressElement, type PrintDesignQrCodeElement, type PrintDesignRulerElement, type PrintDesignSelection, type PrintDesignShapeElement, type PrintDesignTableCell, type PrintDesignTableColumn, type PrintDesignTableDataSource, type PrintDesignTableElement, type PrintDesignTableMergeCell, type PrintDesignTextElement, type PrintDesignUnit, type PrintGanttDependency, type PrintGanttScale, type PrintGanttTask, type PrintPivotAggregator, type PrintPivotField, type PrintPivotFieldArea, type PrintPivotFieldLayout, type PrintPivotFilterState, buildPrintDesignLayerTree, canvasPointToPageMillimeters, computePrintTableSummaryValues, createPrintDesignDocument, createPrintDesignId, createPrintDesignPage, drawPrintDesignElement, drawPrintDesignPage, findPrintPivotFieldArea, formatDisplayUnit, fromDisplayUnit, getPrintDesignAlignmentUnits, getPrintDesignDataFields, getPrintDesignElementDataConfig, getPrintDesignPageSize, hitTestPrintDesignPage, isGanttTasks, isPrintDesignChartDataSource, isPrintDesignTableDataSource, materializePivotTable, millimetersToPixels, movePrintPivotField, normalizeGridCount, paginatePrintDesignDocument, parsePrintDesignDocument, pixelsToMillimeters, printPivotFieldHeaderTitle, printPivotFieldTitle, printPivotValueTitle, printPrintDesignHtml, readChartData, readTableCell, removePrintPivotField, renderPrintDesignPageToCanvas, resizeGridCells, resolveChartOption, resolveDesignText, resolveGanttDependencies, resolveGanttTasks, resolveGridCells, resolvePivotRows, resolvePrintDesignBinding, resolvePrintDesignDataPath, resolvePrintDesignDebugOptions, resolvePrintDesignElementData, resolvePrintDesignElementVisible, resolveTableDataSource, resolveTableRows, serializePrintDesignDocument, tableLeafColumns, toDisplayUnit, transformPrintDesignToHtml, transformPrintDesignToHtmlAsync, transformPrintDesignToHtmlBatches, writeTableCell };
package/dist/index.d.ts CHANGED
@@ -384,6 +384,15 @@ interface PrintDesignTableColumn {
384
384
  headerAlign?: "left" | "center" | "right";
385
385
  hidden?: boolean;
386
386
  ellipsis?: boolean;
387
+ /** 列级文本溢出方式;优先于旧版 ellipsis 和表格默认值。 */
388
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
389
+ /** 单元格四边内边距,单位为 96 DPI 逻辑像素。 */
390
+ cellPadding?: {
391
+ top?: number;
392
+ right?: number;
393
+ bottom?: number;
394
+ left?: number;
395
+ };
387
396
  cellType?: string;
388
397
  cellStyle?: {
389
398
  textAlign?: "left" | "center" | "right";
@@ -416,6 +425,32 @@ interface PrintDesignTableColumn {
416
425
  };
417
426
  render?: (value: unknown, record: Record<string, unknown>, rowIndex: number, column: PrintDesignTableColumn) => unknown;
418
427
  }
428
+ /** 表体单元格的打印样式及合并配置,行列索引均从零开始。 */
429
+ interface PrintDesignTableCell {
430
+ rowIndex: number;
431
+ columnIndex: number;
432
+ rowSpan?: number;
433
+ colSpan?: number;
434
+ backgroundColor?: string;
435
+ color?: string;
436
+ /** 单元格边框覆盖;透明色可在打印时隐藏边框。 */
437
+ borderColor?: string;
438
+ /** 动态数据字段为 false、0 或空字符串时隐藏边框。 */
439
+ borderPath?: string;
440
+ diagonal?: "down" | "up";
441
+ diagonalStart?: string;
442
+ diagonalEnd?: string;
443
+ }
444
+ /** 与 ListTable 的 mergeCell 配置一致,按绑定记录自动合并连续行或相邻列。 */
445
+ interface PrintDesignTableMergeCell {
446
+ row?: {
447
+ keys: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
448
+ columns?: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
449
+ };
450
+ column?: {
451
+ keys: NonNullable<PrintDesignTableColumn["dataIndex"]>[];
452
+ };
453
+ }
419
454
  /** 表格组件。行高单位毫米,列宽沿用 ListTable 的逻辑像素。 */
420
455
  interface PrintDesignTableElement extends PrintDesignElementBase {
421
456
  type: "table";
@@ -434,12 +469,28 @@ interface PrintDesignTableElement extends PrintDesignElementBase {
434
469
  color?: string;
435
470
  width?: number;
436
471
  };
472
+ /** 全表边框控制;绑定值为 false、0 或空字符串时隐藏。 */
473
+ borderMode?: "show" | "hide" | "binding";
474
+ borderPath?: string;
475
+ /** 单元格样式和合并区域;区域内仅左上角单元格绘制内容。 */
476
+ cells?: PrintDesignTableCell[];
477
+ /** 表头手动合并区域,行号按表头层级从零开始。 */
478
+ headerCells?: PrintDesignTableCell[];
479
+ /** 根据绑定记录动态合并连续行或同一行的相邻列。 */
480
+ mergeCell?: PrintDesignTableMergeCell;
437
481
  /** 默认水平对齐,列级配置优先。 */
438
482
  cellAlign?: "left" | "center" | "right";
439
483
  /** 默认垂直对齐,列级配置优先。 */
440
484
  cellVerticalAlign?: "top" | "middle" | "bottom";
441
485
  /** 单元格超出方式,沿用 ListTable 的换行与省略号模式。 */
442
- cellOverflow?: "wrap" | "ellipsis";
486
+ cellOverflow?: "nowrap" | "wrap" | "ellipsis" | "shrink";
487
+ /** 表格级单元格内边距默认值;列级 cellPadding 可逐边覆盖。 */
488
+ cellPadding?: {
489
+ top?: number;
490
+ right?: number;
491
+ bottom?: number;
492
+ left?: number;
493
+ };
443
494
  /** 是否显示列配置生成的汇总行,默认显示。 */
444
495
  showSummary?: boolean;
445
496
  /** 汇总行高,单位毫米,默认沿用数据行高。 */
@@ -751,10 +802,27 @@ interface PrintDesignHtmlOptions {
751
802
  /** 省略时输出文档中的所有页面。 */
752
803
  pageIds?: readonly string[];
753
804
  }
754
- /** 将设计文档及数据转换为可直接交给浏览器打印的 HTML。 */
755
- declare function transformPrintDesignToHtml(document: PrintDesignDocument, options?: PrintDesignHtmlOptions): string;
756
805
  /** 将转换后的 HTML 写入打印窗口,等待图片加载后唤起浏览器打印。 */
757
806
  declare function printPrintDesignHtml(popup: Window, html: string): void;
807
+ /** 同步生成打印 HTML,保留原有调用方式。 */
808
+ declare function transformPrintDesignToHtml(document: PrintDesignDocument, options?: PrintDesignHtmlOptions): string;
809
+ /** 分时间片生成打印页面,支持取消和实际处理进度。 */
810
+ declare function transformPrintDesignToHtmlAsync(document: PrintDesignDocument, options?: PrintDesignHtmlOptions & {
811
+ signal?: AbortSignal;
812
+ onProgress?: (progress: number) => void;
813
+ }): Promise<string>;
814
+ /** 按实际物理页限制生成 HTML,调用方消费一批后才生成下一批。 */
815
+ declare function transformPrintDesignToHtmlBatches(document: PrintDesignDocument, options: {
816
+ data?: Record<string, unknown>;
817
+ pagesPerBatch: number;
818
+ signal?: AbortSignal;
819
+ onProgress?: (progress: number) => void;
820
+ }): AsyncGenerator<{
821
+ html: string;
822
+ firstPage: number;
823
+ lastPage: number;
824
+ hasMore: boolean;
825
+ }, void, unknown>;
758
826
 
759
827
  type ResizeHandle = "nw" | "ne" | "se" | "sw" | "n" | "s" | "w" | "e";
760
828
  type Rect = Pick<PrintDesignElement, "x" | "y" | "width" | "height">;
@@ -921,6 +989,32 @@ declare abstract class PrintDesignBase {
921
989
 
922
990
  /** 静态表格单元格编辑会话与文档历史,独立于文本元素编辑。 */
923
991
  declare abstract class PrintDesignTableEditing extends PrintDesignBase {
992
+ protected tableCellSelection: {
993
+ elementId: string;
994
+ area: "header" | "body";
995
+ selectorKind?: "row" | "column" | "all";
996
+ startRow: number;
997
+ endRow: number;
998
+ startColumn: number;
999
+ endColumn: number;
1000
+ } | null;
1001
+ /** 返回表格单元格选区,供右键菜单与选区绘制使用。 */
1002
+ getTableCellSelection(): {
1003
+ elementId: string;
1004
+ area: "header" | "body";
1005
+ selectorKind?: "row" | "column" | "all";
1006
+ startRow: number;
1007
+ endRow: number;
1008
+ startColumn: number;
1009
+ endColumn: number;
1010
+ } | null;
1011
+ /** 选择表格整行、整列或全部单元格。 */
1012
+ selectTableSelector(elementId: string, kind: "row" | "column" | "all", index?: number, area?: "header" | "body"): this;
1013
+ /** 选中一个单元格,按 Shift 扩展为矩形区域。 */
1014
+ protected selectTableCellAtPoint(element: PrintDesignTableElement, point: {
1015
+ x: number;
1016
+ y: number;
1017
+ }, extend?: boolean): boolean;
924
1018
  private tableEditing;
925
1019
  protected beginTableEditing(element: PrintDesignTableElement, point: {
926
1020
  x: number;
@@ -984,6 +1078,7 @@ declare abstract class PrintDesignRenderer extends PrintDesignTextEditing {
984
1078
  render(): this;
985
1079
  private drawGrid;
986
1080
  private drawSelection;
1081
+ private drawTableCellSelection;
987
1082
  /** 组合四边控制柄与外部图层重叠时,优先保留其它图层的选择。 */
988
1083
  protected hitTestGroupResizeHandle(point: {
989
1084
  x: number;
@@ -996,7 +1091,7 @@ declare abstract class PrintDesignRenderer extends PrintDesignTextEditing {
996
1091
  x: number;
997
1092
  y: number;
998
1093
  }, page: PrintDesignPage, scale: number): {
999
- element: PrintDesignElement;
1094
+ element: PrintDesignTextElement | PrintDesignListElement | PrintDesignDateTimeElement | PrintDesignMoneyUpperElement | PrintDesignPageNumberElement | PrintDesignWatermarkElement | PrintDesignShapeElement | PrintDesignDividerElement | PrintDesignRulerElement | PrintDesignGridElement | PrintDesignProgressElement | PrintDesignClockElement | PrintDesignImageElement | PrintDesignBarcodeElement | PrintDesignQrCodeElement | PrintDesignChartElement | PrintDesignTableElement | PrintDesignPivotTableElement | PrintDesignGanttElement;
1000
1095
  handle: ResizeHandle;
1001
1096
  } | undefined;
1002
1097
  protected hitTestRotateHandle(point: {
@@ -1052,6 +1147,28 @@ declare function getPrintDesignAlignmentUnits(elements: PrintDesignElement[], id
1052
1147
  /** 菜单批量操作与实例内剪贴板;每次文档操作只提交一条历史。 */
1053
1148
  declare abstract class PrintDesignActions extends PrintDesignGrouping {
1054
1149
  private elementClipboard;
1150
+ /** 定位画布中的行、列或全选选择器。 */
1151
+ tableSelectorAtClientPoint(clientX: number, clientY: number): {
1152
+ elementId: string;
1153
+ kind: "column" | "row" | "all";
1154
+ index: number;
1155
+ area: "header" | "body" | undefined;
1156
+ } | null;
1157
+ /** 定位画布右键所指的表头或表体单元格。 */
1158
+ tableCellAtClientPoint(clientX: number, clientY: number): {
1159
+ elementId: string;
1160
+ area: "header" | "body";
1161
+ rowIndex: number;
1162
+ columnIndex: number;
1163
+ } | null;
1164
+ /** 合并右键单元格与相邻单元格;变更纳入撤销历史。 */
1165
+ mergeTableCell(elementId: string, rowIndex: number, columnIndex: number, rowSpan: number, colSpan: number): this;
1166
+ /** 合并表头选区,保留左上角单元格标题。 */
1167
+ mergeTableHeaderCell(elementId: string, rowIndex: number, columnIndex: number, rowSpan: number, colSpan: number): this;
1168
+ /** 在静态表格指定数据行的上方或下方插入空行。 */
1169
+ insertTableRow(elementId: string, rowIndex: number, after?: boolean): this;
1170
+ /** 在可见叶列的左侧或右侧插入空白列。 */
1171
+ insertTableColumn(elementId: string, columnIndex: number, after?: boolean): this;
1055
1172
  /** 画布右键命中选区;点中已选项保留多选,空白清空选区。 */
1056
1173
  selectAtClientPoint(clientX: number, clientY: number): this;
1057
1174
  /** 复制选中元素,保留组合、数据及样式,不使用系统剪贴板。 */
@@ -1089,6 +1206,11 @@ declare abstract class PrintDesignActions extends PrintDesignGrouping {
1089
1206
 
1090
1207
  /** 负责打印文档、页面与导出 API 的原生设计器实例。 */
1091
1208
  declare class PrintDesign extends PrintDesignActions {
1209
+ private temporaryDocumentSnapshot;
1210
+ /** 临时显示演示文档;原文档、选区与撤销记录保留在实例中。 */
1211
+ showTemporaryDocument(document: PrintDesignDocument, pageId?: string, elementId?: string): this;
1212
+ /** 恢复临时演示前的文档和选区,保留原有撤销记录。 */
1213
+ restoreTemporaryDocument(): this;
1092
1214
  /** 获取文档副本。 */
1093
1215
  getDocument(): PrintDesignDocument;
1094
1216
  /** 替换当前文档并清空撤销历史。 */
@@ -1120,6 +1242,13 @@ declare class PrintDesign extends PrintDesignActions {
1120
1242
  x: number;
1121
1243
  y: number;
1122
1244
  } | null;
1245
+ /** 获取当前页元素在浏览器视口中的包围盒,包含旋转后的占用范围。 */
1246
+ getElementClientRect(elementId: string): {
1247
+ left: number;
1248
+ top: number;
1249
+ width: number;
1250
+ height: number;
1251
+ } | null;
1123
1252
  /** 新增元素并选中。 */
1124
1253
  addElement<T extends PrintDesignElement>(element: Omit<T, "id"> & {
1125
1254
  id?: string;
@@ -1288,4 +1417,4 @@ declare function isPrintDesignTableDataSource(value: unknown): value is PrintDes
1288
1417
  /** 兼容 ReactListTable 图表弹窗所使用的 ListTableChartData。 */
1289
1418
  declare function isPrintDesignChartDataSource(value: unknown): value is PrintDesignChartDataSource;
1290
1419
 
1291
- export { DEFAULT_PRINT_DESIGN_DEBUG_OPTIONS, PRINT_DESIGN_CSS_DPI, PRINT_DESIGN_MM_PER_INCH, PRINT_DESIGN_SCHEMA_VERSION, PRINT_DESIGN_UNIT_MM, PrintDesign, type PrintDesignBarcodeElement, type PrintDesignChartData, type PrintDesignChartDataSource, type PrintDesignChartElement, type PrintDesignClockElement, type PrintDesignDataField, type PrintDesignDebugOptions, type PrintDesignDividerElement, type PrintDesignDocument, type PrintDesignElement, type PrintDesignElementBase, type PrintDesignExportOptions, type PrintDesignGanttElement, type PrintDesignGridCell, type PrintDesignGridElement, type PrintDesignGridMark, type PrintDesignHtmlOptions, type PrintDesignImageElement, type PrintDesignLayerAlignment, type PrintDesignLayerNode, type PrintDesignListElement, type PrintDesignOptions, type PrintDesignOrientation, type PrintDesignPage, type PrintDesignPageMargins, type PrintDesignPivotTableElement, type PrintDesignProgressElement, type PrintDesignQrCodeElement, type PrintDesignRulerElement, type PrintDesignSelection, type PrintDesignShapeElement, type PrintDesignTableColumn, type PrintDesignTableDataSource, type PrintDesignTableElement, type PrintDesignTextElement, type PrintDesignUnit, type PrintGanttDependency, type PrintGanttScale, type PrintGanttTask, type PrintPivotAggregator, type PrintPivotField, type PrintPivotFieldArea, type PrintPivotFieldLayout, type PrintPivotFilterState, buildPrintDesignLayerTree, canvasPointToPageMillimeters, computePrintTableSummaryValues, createPrintDesignDocument, createPrintDesignId, createPrintDesignPage, drawPrintDesignElement, drawPrintDesignPage, findPrintPivotFieldArea, formatDisplayUnit, fromDisplayUnit, getPrintDesignAlignmentUnits, getPrintDesignDataFields, getPrintDesignElementDataConfig, getPrintDesignPageSize, hitTestPrintDesignPage, isGanttTasks, isPrintDesignChartDataSource, isPrintDesignTableDataSource, materializePivotTable, millimetersToPixels, movePrintPivotField, normalizeGridCount, paginatePrintDesignDocument, parsePrintDesignDocument, pixelsToMillimeters, printPivotFieldHeaderTitle, printPivotFieldTitle, printPivotValueTitle, printPrintDesignHtml, readChartData, readTableCell, removePrintPivotField, renderPrintDesignPageToCanvas, resizeGridCells, resolveChartOption, resolveDesignText, resolveGanttDependencies, resolveGanttTasks, resolveGridCells, resolvePivotRows, resolvePrintDesignBinding, resolvePrintDesignDataPath, resolvePrintDesignDebugOptions, resolvePrintDesignElementData, resolvePrintDesignElementVisible, resolveTableDataSource, resolveTableRows, serializePrintDesignDocument, tableLeafColumns, toDisplayUnit, transformPrintDesignToHtml, writeTableCell };
1420
+ export { DEFAULT_PRINT_DESIGN_DEBUG_OPTIONS, PRINT_DESIGN_CSS_DPI, PRINT_DESIGN_MM_PER_INCH, PRINT_DESIGN_SCHEMA_VERSION, PRINT_DESIGN_UNIT_MM, PrintDesign, type PrintDesignBarcodeElement, type PrintDesignChartData, type PrintDesignChartDataSource, type PrintDesignChartElement, type PrintDesignClockElement, type PrintDesignDataField, type PrintDesignDebugOptions, type PrintDesignDividerElement, type PrintDesignDocument, type PrintDesignElement, type PrintDesignElementBase, type PrintDesignExportOptions, type PrintDesignGanttElement, type PrintDesignGridCell, type PrintDesignGridElement, type PrintDesignGridMark, type PrintDesignHtmlOptions, type PrintDesignImageElement, type PrintDesignLayerAlignment, type PrintDesignLayerNode, type PrintDesignListElement, type PrintDesignOptions, type PrintDesignOrientation, type PrintDesignPage, type PrintDesignPageMargins, type PrintDesignPivotTableElement, type PrintDesignProgressElement, type PrintDesignQrCodeElement, type PrintDesignRulerElement, type PrintDesignSelection, type PrintDesignShapeElement, type PrintDesignTableCell, type PrintDesignTableColumn, type PrintDesignTableDataSource, type PrintDesignTableElement, type PrintDesignTableMergeCell, type PrintDesignTextElement, type PrintDesignUnit, type PrintGanttDependency, type PrintGanttScale, type PrintGanttTask, type PrintPivotAggregator, type PrintPivotField, type PrintPivotFieldArea, type PrintPivotFieldLayout, type PrintPivotFilterState, buildPrintDesignLayerTree, canvasPointToPageMillimeters, computePrintTableSummaryValues, createPrintDesignDocument, createPrintDesignId, createPrintDesignPage, drawPrintDesignElement, drawPrintDesignPage, findPrintPivotFieldArea, formatDisplayUnit, fromDisplayUnit, getPrintDesignAlignmentUnits, getPrintDesignDataFields, getPrintDesignElementDataConfig, getPrintDesignPageSize, hitTestPrintDesignPage, isGanttTasks, isPrintDesignChartDataSource, isPrintDesignTableDataSource, materializePivotTable, millimetersToPixels, movePrintPivotField, normalizeGridCount, paginatePrintDesignDocument, parsePrintDesignDocument, pixelsToMillimeters, printPivotFieldHeaderTitle, printPivotFieldTitle, printPivotValueTitle, printPrintDesignHtml, readChartData, readTableCell, removePrintPivotField, renderPrintDesignPageToCanvas, resizeGridCells, resolveChartOption, resolveDesignText, resolveGanttDependencies, resolveGanttTasks, resolveGridCells, resolvePivotRows, resolvePrintDesignBinding, resolvePrintDesignDataPath, resolvePrintDesignDebugOptions, resolvePrintDesignElementData, resolvePrintDesignElementVisible, resolveTableDataSource, resolveTableRows, serializePrintDesignDocument, tableLeafColumns, toDisplayUnit, transformPrintDesignToHtml, transformPrintDesignToHtmlAsync, transformPrintDesignToHtmlBatches, writeTableCell };