mxcad 1.0.301 → 1.0.303

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/mxcad.d.ts CHANGED
@@ -14,6 +14,10 @@ export declare function b64Encode(str: string): string;
14
14
  * @returns 原始数据
15
15
  */
16
16
  export declare function b64Decode(str: string): string;
17
+ /**
18
+ * 把字符串转成16进制格式编辑
19
+ */
20
+ export declare function crateHexString(str: string): string;
17
21
  export type FileTypes = {
18
22
  description?: string;
19
23
  accept: {
@@ -14132,7 +14136,7 @@ declare class MxCADMTextImp extends PubSub<{
14132
14136
  textAlignment: McDb.AttachmentPoint;
14133
14137
  actualHeight: number;
14134
14138
  actualWidth: number;
14135
- met: McGeMatrix3d;
14139
+ mat: McGeMatrix3d;
14136
14140
  angle: number;
14137
14141
  lineHeightRatio: number;
14138
14142
  entityType: "custom" | "mtext";
@@ -14211,7 +14215,7 @@ declare function convertSlatePointToCadPoint(this: MxCADMText, point: IMxEditorP
14211
14215
  point: McGePoint3d;
14212
14216
  lineIndex: number;
14213
14217
  } | null;
14214
- declare function transformBy(this: MxCADMText, met: McGeMatrix3d): boolean;
14218
+ declare function transformBy(this: MxCADMText, mat: McGeMatrix3d): boolean;
14215
14219
  declare function worldDraw(this: MxCADMText, draw: MxCADWorldDraw): void;
14216
14220
  /**
14217
14221
  * 自定义编辑器实体类
@@ -14259,6 +14263,410 @@ export declare class MxCADMText extends McDbCustomEntity {
14259
14263
  convertSlatePointToCadPoint: typeof convertSlatePointToCadPoint;
14260
14264
  transformBy: typeof transformBy;
14261
14265
  }
14266
+ /**
14267
+ * 合并单元格信息接口
14268
+ */
14269
+ export interface IMergeCellInfo {
14270
+ row: number;
14271
+ col: number;
14272
+ rowspan: number;
14273
+ colspan: number;
14274
+ }
14275
+ export interface ICellStyleInfo {
14276
+ data: any[][];
14277
+ mergeCells?: IMergeCellInfo[];
14278
+ colWidths?: IColumnWidth[];
14279
+ rowHeights?: IRowHeight[];
14280
+ cellStyles?: CellStyleInfo;
14281
+ }
14282
+ export interface CellStyleInfo {
14283
+ [key: string]: ICellStyle;
14284
+ }
14285
+ /**
14286
+ * 行高信息接口
14287
+ */
14288
+ export interface IRowHeight {
14289
+ row: number;
14290
+ height: number;
14291
+ }
14292
+ /**
14293
+ * 列宽信息接口
14294
+ */
14295
+ export interface IColumnWidth {
14296
+ col: number;
14297
+ width: number;
14298
+ }
14299
+ /**
14300
+ * 表格样式接口
14301
+ */
14302
+ export interface ITableStyle {
14303
+ rowHeight: number;
14304
+ colWidth: number;
14305
+ textHeight: number;
14306
+ borderColor: number;
14307
+ textColor: number;
14308
+ backgroundColor?: number | null;
14309
+ }
14310
+ /**
14311
+ * 单元格样式接口
14312
+ */
14313
+ export interface ICellStyle {
14314
+ backgroundColor?: number | null;
14315
+ textColor?: number | null;
14316
+ alignment?: "left" | "center" | "right";
14317
+ verticalAlignment?: "top" | "middle" | "bottom";
14318
+ }
14319
+ export declare class McDbXlsxTable extends McDbCustomEntity {
14320
+ position: McGePoint3d;
14321
+ style: ITableStyle;
14322
+ private _colWidths;
14323
+ private _rowHeights;
14324
+ private _xlsxData;
14325
+ private _mergeCells;
14326
+ private _selectedCells;
14327
+ private _cellTextDimensions;
14328
+ private _cellStyles;
14329
+ private _mat;
14330
+ constructor(imp?: any);
14331
+ create(imp: any): McDbXlsxTable;
14332
+ getTypeName(): string;
14333
+ get xlsxData(): string;
14334
+ set xlsxData(data: string);
14335
+ private getTableData;
14336
+ /**
14337
+ * 处理合并单元格数据,填充空值
14338
+ * 根据合并单元格信息,将合并区域内的空单元格填充为合并区域左上角的值
14339
+ */
14340
+ private processMergedCellData;
14341
+ dwgInFields(filter: IMcDbDwgFiler): boolean;
14342
+ dwgOutFields(filter: IMcDbDwgFiler): boolean;
14343
+ setPosition(position: McGePoint3d): void;
14344
+ getPosition(): McGePoint3d;
14345
+ private calculateTableDimensions;
14346
+ /**
14347
+ * 获取选中单元格的范围
14348
+ * @returns 包含选中范围的最小和最大行列索引
14349
+ */
14350
+ private getSelectionRange;
14351
+ /**
14352
+ * 设置当前选中的单元格
14353
+ * @param row 行索引 (0-based)
14354
+ * @param col 列索引 (0-based)
14355
+ */
14356
+ setSelectedCell(row: number, col: number): void;
14357
+ /**
14358
+ * 添加一个单元格到选中集合
14359
+ * @param row 行索引 (0-based)
14360
+ * @param col 列索引 (0-based)
14361
+ */
14362
+ addSelectedCell(row: number, col: number): void;
14363
+ /**
14364
+ * 设置多个选中的单元格
14365
+ * @param cells 单元格位置数组 [{row, col}, ...]
14366
+ */
14367
+ setSelectedCells(cells: {
14368
+ row: number;
14369
+ col: number;
14370
+ }[]): void;
14371
+ /**
14372
+ * 清除当前选中的单元格
14373
+ */
14374
+ clearSelectedCell(): void;
14375
+ /**
14376
+ * 获取当前选中的单元格
14377
+ * @returns 第一个选中的单元格,如果没有选中则返回null
14378
+ */
14379
+ getSelectedCell(): {
14380
+ row: number;
14381
+ col: number;
14382
+ } | null;
14383
+ /**
14384
+ * 获取所有选中的单元格
14385
+ * @returns 所有选中的单元格数组
14386
+ */
14387
+ getSelectedCells(): {
14388
+ row: number;
14389
+ col: number;
14390
+ }[];
14391
+ /**
14392
+ * 检查指定单元格是否被选中
14393
+ * @param row 行索引
14394
+ * @param col 列索引
14395
+ * @returns 是否被选中
14396
+ */
14397
+ isCellSelected(row: number, col: number): boolean;
14398
+ /**
14399
+ * 获取选中单元格的数量
14400
+ * @returns 选中的单元格数量
14401
+ */
14402
+ getSelectedCellCount(): number;
14403
+ worldDraw(draw: MxCADWorldDraw): void;
14404
+ setFromWorkbook(processedData: ICellStyleInfo): void;
14405
+ setFromJson(jsonArray: any[]): void;
14406
+ setFromArray(data: any[][]): void;
14407
+ /**
14408
+ * 设置合并单元格信息
14409
+ */
14410
+ setMergeCells(mergeCells: IMergeCellInfo[]): void;
14411
+ /**
14412
+ * 获取合并单元格信息
14413
+ */
14414
+ getMergeCells(): IMergeCellInfo[];
14415
+ /**
14416
+ * 设置表格样式
14417
+ */
14418
+ setStyle(style: Partial<ITableStyle>): void;
14419
+ /**
14420
+ * 获取表格样式
14421
+ */
14422
+ getStyle(): ITableStyle;
14423
+ /**
14424
+ * 设置指定列的宽度
14425
+ * @param col 列索引 (0-based)
14426
+ * @param width 列宽度(单位与style.colWidth一致)
14427
+ */
14428
+ setColumnWidth(col: number, width: number): void;
14429
+ /**
14430
+ * 获取指定列的宽度
14431
+ * @param col 列索引 (0-based)
14432
+ * @returns 列宽度,如果未设置则返回默认列宽
14433
+ */
14434
+ getColumnWidth(col: number): number;
14435
+ /**
14436
+ * 获取所有列宽设置
14437
+ */
14438
+ getAllColumnWidths(): IColumnWidth[];
14439
+ /**
14440
+ * 重置指定列的宽度为默认值
14441
+ * @param col 列索引 (0-based)
14442
+ */
14443
+ resetColumnWidth(col: number): void;
14444
+ /**
14445
+ * 设置指定行的高度
14446
+ * @param row 行索引 (0-based)
14447
+ * @param height 行高度(单位与style.rowHeight一致)
14448
+ */
14449
+ setRowHeight(row: number, height: number): void;
14450
+ /**
14451
+ * 获取指定行的高度
14452
+ * @param row 行索引 (0-based)
14453
+ * @returns 行高度,如果未设置则返回默认行高
14454
+ */
14455
+ getRowHeight(row: number): number;
14456
+ /**
14457
+ * 获取所有行高设置
14458
+ */
14459
+ getAllRowHeights(): IRowHeight[];
14460
+ /**
14461
+ * 重置指定行的高度为默认值
14462
+ * @param row 行索引 (0-based)
14463
+ */
14464
+ resetRowHeight(row: number): void;
14465
+ /**
14466
+ * 获取指定单元格的值
14467
+ * @param row 行索引 (0-based)
14468
+ * @param col 列索引 (0-based)
14469
+ * @returns 单元格值
14470
+ */
14471
+ getCellValue(row: number, col: number): any;
14472
+ /**
14473
+ * 设置指定单元格的值
14474
+ * @param row 行索引 (0-based)
14475
+ * @param col 列索引 (0-based)
14476
+ * @param value 单元格值(Slate格式或普通文本)
14477
+ */
14478
+ setCellValue(row: number, col: number, value: any): void;
14479
+ /**
14480
+ * 获取单元格的纯文本值(如果是Slate格式则提取文本)
14481
+ * @param row 行索引 (0-based)
14482
+ * @param col 列索引 (0-based)
14483
+ * @returns 单元格的纯文本值
14484
+ */
14485
+ getCellTextValue(row: number, col: number): string;
14486
+ /**
14487
+ * 获取指定单元格的几何范围
14488
+ * @param row 行索引 (0-based)
14489
+ * @param col 列索引 (0-based)
14490
+ * @returns 单元格的几何范围 { min: McGePoint3d, max: McGePoint3d } 或 null (当单元格不存在时)
14491
+ */
14492
+ getCellGeometry(row: number, col: number): {
14493
+ min: McGePoint3d;
14494
+ max: McGePoint3d;
14495
+ } | null;
14496
+ /**
14497
+ * 获取指定单元格的A1格式引用
14498
+ * @param row 行索引 (0-based)
14499
+ * @param col 列索引 (0-based)
14500
+ * @returns A1格式的单元格引用 (例如 "A1", "B2")
14501
+ */
14502
+ getCellReference(row: number, col: number): string;
14503
+ /**
14504
+ * 从A1格式引用获取单元格索引
14505
+ * @param cellRef A1格式的单元格引用 (例如 "A1", "B2")
14506
+ * @returns 单元格索引 {row, col} 或 null (当引用无效时)
14507
+ */
14508
+ getCellFromReference(cellRef: string): {
14509
+ row: number;
14510
+ col: number;
14511
+ } | null;
14512
+ /**
14513
+ * 设置表格全局背景颜色
14514
+ * @param color 背景颜色值
14515
+ * - 支持真彩色:0xRRGGBB,如 0x000000 黑色(RR是红色值,GG是绿色值,BB是蓝色值)
14516
+ * - 支持颜色索引:0-255
14517
+ * - 支持ColorMethod.kByLayer(1)表示随层
14518
+ * - 支持ColorMethod.kByBlock(2)表示随块
14519
+ * - 传入null可移除背景颜色
14520
+ */
14521
+ setBackgroundColor(color: number | null): void;
14522
+ /**
14523
+ * 获取表格全局背景颜色
14524
+ * @returns 背景颜色值,可能为null(表示无背景色)
14525
+ */
14526
+ getBackgroundColor(): number | null | undefined;
14527
+ /**
14528
+ * 设置单元格背景颜色
14529
+ * @param row 行索引 (0-based)
14530
+ * @param col 列索引 (0-based)
14531
+ * @param color 背景颜色值
14532
+ * - 支持真彩色:0xRRGGBB,如 0x000000 黑色(RR是红色值,GG是绿色值,BB是蓝色值)
14533
+ * - 支持颜色索引:0-255
14534
+ * - 支持ColorMethod.kByLayer(1)表示随层
14535
+ * - 支持ColorMethod.kByBlock(2)表示随块
14536
+ * - 传入null可移除背景颜色
14537
+ */
14538
+ setCellBackgroundColor(row: number, col: number, color: number | null | undefined): void;
14539
+ /**
14540
+ * 获取单元格背景颜色
14541
+ * @param row 行索引 (0-based)
14542
+ * @param col 列索引 (0-based)
14543
+ * @returns 单元格背景颜色,如果未设置则返回null
14544
+ */
14545
+ getCellBackgroundColor(row: number, col: number): number | null | undefined;
14546
+ /**
14547
+ * 通过A1引用格式设置单元格背景颜色
14548
+ * @param cellRef A1格式的单元格引用 (例如 "A1", "B2")
14549
+ * @param color 背景颜色值,null表示删除背景色
14550
+ * @returns 是否设置成功
14551
+ */
14552
+ setCellBackgroundColorByRef(cellRef: string, color: number | null | undefined): boolean;
14553
+ /**
14554
+ * 批量设置单元格背景颜色
14555
+ * @param cells 单元格位置数组 { row, col } 或 A1引用字符串数组
14556
+ * @param color 背景颜色值,null表示删除背景色
14557
+ */
14558
+ setBatchCellBackgroundColor(cells: (string | {
14559
+ row: number;
14560
+ col: number;
14561
+ })[], color: number | null | undefined): void;
14562
+ /**
14563
+ * 设置单元格文本颜色
14564
+ * @param row 行索引 (0-based)
14565
+ * @param col 列索引 (0-based)
14566
+ * @param color 文本颜色值
14567
+ * - 支持真彩色:0xRRGGBB,如 0x000000 黑色(RR是红色值,GG是绿色值,BB是蓝色值)
14568
+ * - 支持颜色索引:0-255
14569
+ * - 支持ColorMethod.kByLayer(1)表示随层
14570
+ * - 支持ColorMethod.kByBlock(2)表示随块
14571
+ * - 传入null可移除文本颜色
14572
+ */
14573
+ setCellTextColor(row: number, col: number, color: number | null | undefined): void;
14574
+ /**
14575
+ * 获取单元格文本颜色
14576
+ * @param row 行索引 (0-based)
14577
+ * @param col 列索引 (0-based)
14578
+ * @returns 单元格文本颜色,如果未设置则返回null
14579
+ */
14580
+ getCellTextColor(row: number, col: number): number | null | undefined;
14581
+ /**
14582
+ * 通过A1引用格式设置单元格文本颜色
14583
+ * @param cellRef A1格式的单元格引用 (例如 "A1", "B2")
14584
+ * @param color 文本颜色值,null表示删除文本颜色
14585
+ * @returns 是否设置成功
14586
+ */
14587
+ setCellTextColorByRef(cellRef: string, color: number | null | undefined): boolean;
14588
+ /**
14589
+ * 批量设置单元格文本颜色
14590
+ * @param cells 单元格位置数组 { row, col } 或 A1引用字符串数组
14591
+ * @param color 文本颜色值,null表示删除文本颜色
14592
+ */
14593
+ setBatchCellTextColor(cells: (string | {
14594
+ row: number;
14595
+ col: number;
14596
+ })[], color: number | null | undefined): void;
14597
+ /**
14598
+ * 设置单元格水平对齐方式
14599
+ * @param row 行索引 (0-based)
14600
+ * @param col 列索引 (0-based)
14601
+ * @param alignment 水平对齐方式
14602
+ */
14603
+ setCellAlignment(row: number, col: number, alignment: "left" | "center" | "right"): void;
14604
+ /**
14605
+ * 获取单元格水平对齐方式
14606
+ * @param row 行索引 (0-based)
14607
+ * @param col 列索引 (0-based)
14608
+ * @returns 水平对齐方式,如果未设置则返回'left'
14609
+ */
14610
+ getCellAlignment(row: number, col: number): "left" | "center" | "right" | undefined;
14611
+ /**
14612
+ * 通过A1引用格式设置单元格水平对齐方式
14613
+ * @param cellRef A1格式的单元格引用 (例如 "A1", "B2")
14614
+ * @param alignment 水平对齐方式
14615
+ * @returns 是否设置成功
14616
+ */
14617
+ setCellAlignmentByRef(cellRef: string, alignment: "left" | "center" | "right"): boolean;
14618
+ /**
14619
+ * 批量设置单元格水平对齐方式
14620
+ * @param cells 单元格位置数组 { row, col } 或 A1引用字符串数组
14621
+ * @param alignment 水平对齐方式
14622
+ */
14623
+ setBatchCellAlignment(cells: (string | {
14624
+ row: number;
14625
+ col: number;
14626
+ })[], alignment: "left" | "center" | "right"): void;
14627
+ /**
14628
+ * 设置单元格垂直对齐方式
14629
+ * @param row 行索引 (0-based)
14630
+ * @param col 列索引 (0-based)
14631
+ * @param verticalAlignment 垂直对齐方式
14632
+ */
14633
+ setCellVerticalAlignment(row: number, col: number, verticalAlignment: "top" | "middle" | "bottom"): void;
14634
+ /**
14635
+ * 获取单元格垂直对齐方式
14636
+ * @param row 行索引 (0-based)
14637
+ * @param col 列索引 (0-based)
14638
+ * @returns 垂直对齐方式,如果未设置则返回'top'
14639
+ */
14640
+ getCellVerticalAlignment(row: number, col: number): "top" | "middle" | "bottom" | undefined;
14641
+ /**
14642
+ * 通过A1引用格式设置单元格垂直对齐方式
14643
+ * @param cellRef A1格式的单元格引用 (例如 "A1", "B2")
14644
+ * @param verticalAlignment 垂直对齐方式
14645
+ * @returns 是否设置成功
14646
+ */
14647
+ setCellVerticalAlignmentByRef(cellRef: string, verticalAlignment: "top" | "middle" | "bottom"): boolean;
14648
+ /**
14649
+ * 批量设置单元格垂直对齐方式
14650
+ * @param cells 单元格位置数组 { row, col } 或 A1引用字符串数组
14651
+ * @param verticalAlignment 垂直对齐方式
14652
+ */
14653
+ setBatchCellVerticalAlignment(cells: (string | {
14654
+ row: number;
14655
+ col: number;
14656
+ })[], verticalAlignment: "top" | "middle" | "bottom"): void;
14657
+ /**
14658
+ * 将CAD坐标点转换为表格中的单元格位置
14659
+ * @param point CAD空间中的三维点
14660
+ * @returns 单元格位置 {row, col} 或 null (当点不在表格内时)
14661
+ */
14662
+ getCellAtPoint(point: McGePoint3d): {
14663
+ row: number;
14664
+ col: number;
14665
+ } | null;
14666
+ getGripPoints(): McGePoint3dArray;
14667
+ moveGripPointsAt(iIndex: number, dXOffset: number, dYOffset: number, dZOffset: number): void;
14668
+ transformBy(_mat: McGeMatrix3d): boolean;
14669
+ }
14262
14670
  export declare let MxCpp: MxCppType;
14263
14671
  /**
14264
14672
  * 异步加载 MxCAD assembly,并在加载完成后执行回调函数