@gct-paas/word 0.2.7-beta.2 → 0.2.7-beta.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.
Files changed (27) hide show
  1. package/dist/base/dropdown/src/dropdown-basic-select.vue.d.ts +4 -0
  2. package/dist/base/utils/image-size-util.d.ts +11 -7
  3. package/dist/core/command/commands/SetTableBorder.d.ts +14 -0
  4. package/dist/core/command/types.d.ts +5 -0
  5. package/dist/core/model/document/WtblPr.d.ts +2 -0
  6. package/dist/core/model/document/Wtc.d.ts +2 -0
  7. package/dist/core/model/types/table-border.d.ts +18 -0
  8. package/dist/core/table/border-selection.d.ts +9 -0
  9. package/dist/core/table/borders.d.ts +42 -0
  10. package/dist/core/view/TableCell.d.ts +3 -0
  11. package/dist/domain/table/business/material/material-consume/profile/fields.d.ts +2 -0
  12. package/dist/domain/table/registry.d.ts +4 -1
  13. package/dist/index.es.js +2833 -1812
  14. package/dist/runtime/canvas/doc-layout.vue.d.ts +1 -2
  15. package/dist/runtime/canvas/print-capture.d.ts +12 -0
  16. package/dist/runtime/canvas/table/render/material-consume/material-consume-group-merge.d.ts +1 -0
  17. package/dist/runtime/canvas/table/shared/table-lines.vue.d.ts +1 -0
  18. package/dist/runtime/canvas/table/table-presentation.d.ts +16 -0
  19. package/dist/runtime/canvas/table/utils/paint-table-borders.d.ts +4 -0
  20. package/dist/runtime/designer/ribbon/svg/table-border-icon.vue.d.ts +6 -0
  21. package/dist/sdk/doc-runtime/queries/template-placed-fields.d.ts +7 -0
  22. package/dist/sdk/engine/index.d.ts +3 -1
  23. package/dist/sdk/types/index.d.ts +1 -0
  24. package/dist/sdk/types/placed-form-field.d.ts +6 -0
  25. package/dist/suites/edhr/manifest/field/_common_/basic.d.ts +3 -3
  26. package/dist/word.css +346 -126
  27. package/package.json +1 -1
@@ -10,6 +10,8 @@ type __VLS_Props = {
10
10
  modelValue?: string | number | Array<string | number>;
11
11
  /** 是否多选 */
12
12
  multiple?: boolean;
13
+ /** 左侧触发动作,右侧箭头展开菜单 */
14
+ split?: boolean;
13
15
  /** 是否显示勾选 icon */
14
16
  showCheck?: boolean;
15
17
  /** 是否显示编辑 icon(全局开关,可被 option.editable 覆盖) */
@@ -67,10 +69,12 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {
67
69
  edit: (...args: any[]) => void;
68
70
  "update:modelValue": (...args: any[]) => void;
69
71
  change: (...args: any[]) => void;
72
+ "left-btn-click": (...args: any[]) => void;
70
73
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
71
74
  onEdit?: ((...args: any[]) => any) | undefined;
72
75
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
73
76
  onChange?: ((...args: any[]) => any) | undefined;
77
+ "onLeft-btn-click"?: ((...args: any[]) => any) | undefined;
74
78
  }>, {
75
79
  options: DropdownOption[] | DropdownOptionGroup[];
76
80
  showCheck: boolean;
@@ -18,10 +18,10 @@ export interface ImageCropRect {
18
18
  width: number;
19
19
  height: number;
20
20
  }
21
- /** 固定 360×204 兜底图同一比例,按 2 倍像素绘制 */
21
+ /** 无图签名的默认尺寸;已有字段沿用各自配置的宽高 */
22
22
  export declare const FALLBACK_SIGN_DISPLAY_SIZE: {
23
- readonly width: 180;
24
- readonly height: 102;
23
+ readonly width: 120;
24
+ readonly height: 68;
25
25
  };
26
26
  /**
27
27
  * 根据图片原始尺寸 + 配置,计算最终显示尺寸
@@ -39,11 +39,15 @@ export declare function computeContainLayout(natural: ImageSize, box: ImageSize)
39
39
  * 在目标框内等比缩放(contain),不压缩、不拉伸
40
40
  */
41
41
  export declare function computeContainDisplaySize(natural: ImageSize, box: ImageSize): ImageSize;
42
- /** 同步取无图签名缓存(布局重建时可避免先闪占位再异步补图)。宽高参数仅为兼容现有调用。 */
43
- export declare function getCachedSignatureImage(name: string, _width?: number, _height?: number, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): HTMLImageElement | null;
42
+ /** 横向“姓名 + 日期”兜底签名按文字内容决定宽度,高度沿用字段配置。 */
43
+ export declare function getFormSignFallbackSize(name: string, time?: number | string, height?: 68): ImageSize;
44
+ /** 仅姓名兜底签名按最长一行文字宽度和左右各 8px 留白确定画布宽度。 */
45
+ export declare function getSimpleNameFallbackSize(name: string, height: number): ImageSize;
46
+ /** 同步取无图签名缓存(布局重建时可避免先闪占位再异步补图)。 */
47
+ export declare function getCachedSignatureImage(name: string, width?: 120, height?: 68, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): HTMLImageElement | null;
44
48
  /**
45
49
  * 创建无图签名兜底图
46
50
  * 默认仅绘制用户名;显式配置用户名 + 签署日期时绘制完整兜底签名
47
51
  */
48
- export declare function createSignatureImageDataUrl(name: string, _width?: number, _height?: number, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): string;
49
- export declare function createSignatureImage(name: string, width?: number, height?: number, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): Promise<HTMLImageElement>;
52
+ export declare function createSignatureImageDataUrl(name: string, imageWidth?: 120, imageHeight?: 68, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): string;
53
+ export declare function createSignatureImage(name: string, width?: 120, height?: 68, time?: number | string, fallbackSignType?: string, signatureImageDirection?: string): Promise<HTMLImageElement>;
@@ -0,0 +1,14 @@
1
+ import { CommandBase, PostCommandContext } from '../base/CommandBase';
2
+ import { CommandPayloadMap } from '../types';
3
+ import { Doc } from '../../view/Doc';
4
+ export declare class SetTableBorder extends CommandBase<'setTableBorder'> {
5
+ private target?;
6
+ private previousBorders?;
7
+ private savedCursors;
8
+ constructor(doc: Doc, payload: CommandPayloadMap['setTableBorder']);
9
+ private saveCursor;
10
+ private restoreContext;
11
+ protected execute(): Promise<PostCommandContext>;
12
+ protected restoreSnapshot(): void;
13
+ protected afterUndo(): import('../types').CommandResult;
14
+ }
@@ -1,3 +1,4 @@
1
+ import { TableBorderPreset } from '../model/types/table-border';
1
2
  import { VOrientationType } from '../../domain/constants/enum';
2
3
  import { FIELD_TYPE } from '../../domain/field/field-type';
3
4
  import { Doc } from '../view/Doc';
@@ -73,6 +74,7 @@ export declare const CommandType: {
73
74
  readonly deleteRow: "deleteRow";
74
75
  readonly deleteCol: "deleteCol";
75
76
  readonly deleteTable: "deleteTable";
77
+ readonly setTableBorder: "setTableBorder";
76
78
  readonly mergeCells: "mergeCells";
77
79
  readonly unmergeCells: "unmergeCells";
78
80
  readonly snapshot: "snapshot";
@@ -247,6 +249,9 @@ export type CommandPayloadMap = {
247
249
  deleteTable: CommandPayload & {
248
250
  tableId: string;
249
251
  };
252
+ setTableBorder: CommandPayload & {
253
+ preset: TableBorderPreset;
254
+ };
250
255
  mergeCells: CommandPayload & Record<string, never>;
251
256
  unmergeCells: CommandPayload & Record<string, never>;
252
257
  snapshot: CommandPayload & Record<string, never>;
@@ -1,4 +1,5 @@
1
1
  import { RawElement } from '../types/raw';
2
+ import { TableBorders } from '../types/table-border';
2
3
  import { ModelNode, ModelNodeOptions } from '../base';
3
4
  /**
4
5
  * 段落属性节点 - 保存 w:pPr 及其子元素
@@ -10,6 +11,7 @@ export declare class WtblPr extends ModelNode {
10
11
  name: 'w:tblPr';
11
12
  /** 节点类型 */
12
13
  type: "element";
14
+ borders: TableBorders;
13
15
  elements: RawElement[];
14
16
  constructor(options: ModelNodeOptions & {
15
17
  elements?: RawElement[];
@@ -1,3 +1,4 @@
1
+ import { CellBorders } from '../types/table-border';
1
2
  import { RawElement } from '../types/raw';
2
3
  import { Wtr } from './Wtr';
3
4
  import { Wp } from './Wp';
@@ -15,6 +16,7 @@ export declare class Wtc extends ModelGroup {
15
16
  type: "element";
16
17
  parent?: Wtr;
17
18
  tcPrRaw?: RawElement;
19
+ borders: CellBorders;
18
20
  colspan?: number;
19
21
  rowspan?: number;
20
22
  backgroundColor?: string;
@@ -0,0 +1,18 @@
1
+ import { RawElement } from './raw';
2
+ export declare const TABLE_BORDER_COLOR = "#808080";
3
+ /** undefined inherits; 0 explicitly hides the edge. */
4
+ export type TableBorderWidth = 0 | 1 | 2;
5
+ export declare const CELL_BORDER_SIDES: readonly ["top", "bottom", "left", "right"];
6
+ export type CellBorderSide = (typeof CELL_BORDER_SIDES)[number];
7
+ export type CellBorders = Partial<Record<CellBorderSide, TableBorderWidth>>;
8
+ export type TableBorders = CellBorders & Partial<Record<'insideH' | 'insideV', TableBorderWidth>>;
9
+ export type TableBorderPreset = 'none' | 'all' | 'outer' | 'thickOuter' | 'top' | 'bottom' | 'left' | 'right' | 'inside';
10
+ export interface ResolvedBorder {
11
+ width: TableBorderWidth;
12
+ priority: number;
13
+ }
14
+ export type ResolvedCellBorders = Partial<Record<CellBorderSide, ResolvedBorder>>;
15
+ export declare function readTableBorders(node?: RawElement): TableBorders;
16
+ export declare function writeTableBorders(name: 'w:tcBorders' | 'w:tblBorders', borders: TableBorders): RawElement | undefined;
17
+ /** Never let an inherited visible edge override an explicit clear. */
18
+ export declare function chooseBorder(a?: ResolvedBorder, b?: ResolvedBorder): ResolvedBorder | undefined;
@@ -0,0 +1,9 @@
1
+ import { Doc } from '../view/Doc';
2
+ import { Wtc } from '../model/document/Wtc';
3
+ import { TableBorderBounds } from './borders';
4
+ import { ICursorPosition } from '../cursor/types/cursor';
5
+ export declare function modelCellAt(doc: Doc, cursor?: ICursorPosition | null): Wtc | undefined;
6
+ export declare function resolveTableBorderSelection(doc: Doc): {
7
+ table: import('..').Wtbl;
8
+ bounds: TableBorderBounds;
9
+ } | undefined;
@@ -0,0 +1,42 @@
1
+ import { Wtbl } from '../model/document/Wtbl';
2
+ import { Wtc } from '../model/document/Wtc';
3
+ import { TableBorderPreset, ResolvedCellBorders } from '../model/types/table-border';
4
+ export interface TableBorderBounds {
5
+ top: number;
6
+ bottom: number;
7
+ left: number;
8
+ right: number;
9
+ }
10
+ /** Expand until every intersecting merge is fully included. */
11
+ export declare function expandBorderBounds(table: Wtbl, bounds: TableBorderBounds): TableBorderBounds;
12
+ export declare function resolveCellBorders(cell: Wtc): ResolvedCellBorders;
13
+ export declare function applyTableBorderPreset(table: Wtbl, input: TableBorderBounds, preset: TableBorderPreset): boolean;
14
+ export interface BorderGridRow {
15
+ y: number;
16
+ height: number;
17
+ cells: readonly {
18
+ borderEdges?: ResolvedCellBorders;
19
+ }[];
20
+ }
21
+ export interface BorderMergeRect {
22
+ x: number;
23
+ y: number;
24
+ width: number;
25
+ height: number;
26
+ }
27
+ export interface TableBorderSegment {
28
+ x1: number;
29
+ y1: number;
30
+ x2: number;
31
+ y2: number;
32
+ width: 1 | 2;
33
+ color: string;
34
+ }
35
+ /** Use one document pixel grid for bitmap and vector output, including fractional column widths. */
36
+ export declare function getTableBorderDrawSegment(line: TableBorderSegment): TableBorderSegment;
37
+ /** Canvas and PDF share the same physical grid, conflict resolution and merge clipping. */
38
+ export declare function collectTableBorderSegments(rows: readonly BorderGridRow[], colWidths: readonly number[], merges?: readonly BorderMergeRect[]): TableBorderSegment[];
39
+ /** Design-only hints for explicitly hidden edges. Never serialize or export these lines. */
40
+ export declare function collectTableBorderGuideSegments(rows: readonly BorderGridRow[], colWidths: readonly number[], merges?: readonly BorderMergeRect[]): TableBorderSegment[];
41
+ /** Join only touching collinear strokes of the same style; never bridge hidden edges. */
42
+ export declare function joinTableBorderSegments(lines: readonly TableBorderSegment[]): TableBorderSegment[];
@@ -1,4 +1,5 @@
1
1
  import { Paragraph } from './Paragraph';
2
+ import { ResolvedCellBorders } from '../model/types/table-border';
2
3
  import { LayoutGroup, LayoutGroupOptions } from './base';
3
4
  import { IContainerMetrics, Border } from './types';
4
5
  import { Table } from './Table';
@@ -13,6 +14,7 @@ export interface TableCellOptions extends LayoutGroupOptions {
13
14
  mergeRefRowOffset?: number;
14
15
  mergeRefColOffset?: number;
15
16
  backgroundColor?: string;
17
+ borderEdges?: ResolvedCellBorders;
16
18
  subRenderer?: SubRenderer;
17
19
  }
18
20
  export type SubRenderer = {
@@ -36,6 +38,7 @@ export declare class TableCell extends LayoutGroup<TableCellContent> implements
36
38
  mergeRefRowOffset?: number;
37
39
  mergeRefColOffset?: number;
38
40
  backgroundColor?: string;
41
+ borderEdges?: ResolvedCellBorders;
39
42
  border?: Border;
40
43
  /** 设计渲染时 */
41
44
  subRenderer?: SubRenderer;
@@ -0,0 +1,2 @@
1
+ import { BusinessFieldProfile } from '../../../../types';
2
+ export declare const fields: BusinessFieldProfile[];
@@ -1,4 +1,5 @@
1
- import { BusinessSubTableProfile, TableCategory, TableProfile } from './types';
1
+ import { BusinessFieldProfile, BusinessSubTableProfile, TableCategory, TableProfile } from './types';
2
+ import { FieldMeta } from '../../capabilities/model-field-runtime';
2
3
  /** 所有已注册的子表 Profile */
3
4
  declare const ALL_TABLE_PROFILES: TableProfile[];
4
5
  /** 按分类获取 Profile 列表 */
@@ -16,4 +17,6 @@ export declare function getProfileByLayoutType(layoutType: string): TableProfile
16
17
  export declare function getAllBusinessRefModelTypes(): string[];
17
18
  /** 按 refModelType 获取业务表 Profile */
18
19
  export declare function getBusinessProfileByRefModelType(refModelType: string | undefined | null): BusinessSubTableProfile | undefined;
20
+ /** 与设计态使用同一匹配顺序,读取业务表字段配置。 */
21
+ export declare function getBusinessFieldProfileByRefModelType(refModelType: string | undefined | null, field: Pick<FieldMeta, 'key' | 'type' | 'bizType'>): BusinessFieldProfile | undefined;
19
22
  export { ALL_TABLE_PROFILES };