@gct-paas/word 0.1.22 → 0.1.24

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 (47) hide show
  1. package/dist/capabilities/model-field-runtime/provider/FieldProviderRuntime.d.ts +4 -0
  2. package/dist/capabilities/model-field-runtime/service/FieldService.d.ts +2 -0
  3. package/dist/core/constants/index.d.ts +1 -0
  4. package/dist/core/cursor/types/cursor.d.ts +50 -0
  5. package/dist/core/index.d.ts +2 -0
  6. package/dist/core/layout/LayoutMapper.d.ts +2 -2
  7. package/dist/core/layout/handlers/{ImageHandler.d.ts → InlineImageLayoutHandler.d.ts} +2 -3
  8. package/dist/core/layout/handlers/fields/AttachmentHandler.d.ts +3 -2
  9. package/dist/core/layout/handlers/fields/{BaseHandler.d.ts → FieldBaseHandler.d.ts} +2 -5
  10. package/dist/core/layout/handlers/fields/FieldImageHandler.d.ts +7 -0
  11. package/dist/core/layout/handlers/fields/InputHandler.d.ts +3 -2
  12. package/dist/core/layout/handlers/fields/OptionHandler.d.ts +3 -2
  13. package/dist/core/layout/handlers/fields/SignatureHandler.d.ts +3 -2
  14. package/dist/core/layout/handlers/fields/index.d.ts +1 -2
  15. package/dist/core/layout/handlers/index.d.ts +1 -1
  16. package/dist/core/layout/handlers/pageWidgets/BarcodeHandler.d.ts +2 -2
  17. package/dist/core/layout/handlers/pageWidgets/DefaultHandler.d.ts +2 -2
  18. package/dist/core/layout/handlers/pageWidgets/DiagonalHandler.d.ts +2 -2
  19. package/dist/core/layout/handlers/pageWidgets/LineHandler.d.ts +2 -2
  20. package/dist/core/layout/handlers/pageWidgets/PageWidgetImageHandler.d.ts +5 -0
  21. package/dist/core/layout/handlers/pageWidgets/PaginationHandler.d.ts +2 -2
  22. package/dist/core/layout/handlers/pageWidgets/QrCodeHandler.d.ts +2 -2
  23. package/dist/core/layout/handlers/pageWidgets/SerialNumberHandler.d.ts +2 -2
  24. package/dist/core/layout/handlers/{base/BaseHandler.d.ts → pageWidgets/WidgetBaseHandler.d.ts} +2 -5
  25. package/dist/core/layout/handlers/pageWidgets/index.d.ts +1 -1
  26. package/dist/core/layout/logic/LayoutBuilder.d.ts +1 -1
  27. package/dist/core/layout/types/index.d.ts +23 -6
  28. package/dist/core/model/DocModel.d.ts +13 -1
  29. package/dist/core/model/types/index.d.ts +0 -1
  30. package/dist/core/view/Doc.d.ts +8 -1
  31. package/dist/core/view/base/LayoutNode.d.ts +4 -0
  32. package/dist/core/view/runs/TextRun.d.ts +4 -0
  33. package/dist/core/view/types/index.d.ts +2 -0
  34. package/dist/core/view/types/layout-node-by-component.d.ts +38 -0
  35. package/dist/core/view/utils/TextUtil.d.ts +89 -12
  36. package/dist/index.es.js +2145 -1805
  37. package/dist/runtime/_register_/runtime/SuiteRuntime.d.ts +4 -1
  38. package/dist/runtime/canvas/node/text-character.vue.d.ts +3 -1
  39. package/dist/runtime/interface/render.d.ts +1 -1
  40. package/dist/sdk/engine/index.d.ts +1 -1
  41. package/dist/sdk/types/field-model-query.d.ts +19 -0
  42. package/dist/sdk/types/index.d.ts +13 -0
  43. package/dist/utils/func/core.d.ts +15 -0
  44. package/package.json +1 -1
  45. package/dist/core/layout/handlers/fields/ImageHandler.d.ts +0 -5
  46. package/dist/core/layout/handlers/pageWidgets/ImageHandler.d.ts +0 -4
  47. package/dist/core/model/types/model.d.ts +0 -144
@@ -2,14 +2,30 @@ import { default as Konva } from 'konva';
2
2
  export declare class TextUtil {
3
3
  /** 字体度量缓存限制 */
4
4
  private static readonly FONT_METRICS_CACHE_LIMIT;
5
- /** 布局大小缓存限制 */
5
+ /** 布局大小缓存限制(按「样式 + 单段文本」键,长文档可提高命中率) */
6
6
  private static readonly LAYOUT_SIZE_CACHE_LIMIT;
7
7
  /** 东亚常见全宽字符块 */
8
8
  private static readonly EAST_ASIAN_FULL_WIDTH_REGEX;
9
9
  /** 表单/文档中常见的几何符号 */
10
10
  private static readonly FULL_WIDTH_SYMBOL_REGEX;
11
+ /**
12
+ * 视觉间距系数
13
+ * 值 = fontSize * ratio
14
+ *
15
+ * 解决:
16
+ * - N·m
17
+ * - N/A
18
+ * - kg·m²
19
+ * 等符号贴太近的问题
20
+ */
21
+ private static readonly VISUAL_SPACING_MAP;
11
22
  private static fontMetricsCache;
12
23
  private static layoutSizeCache;
24
+ /**
25
+ * 等待文档字体就绪后再做 Canvas 度量,可减轻 Mac/Windows 因 Web 字体未加载导致的度量差异。
26
+ * 无 Font Loading API 时立即 resolve。
27
+ */
28
+ static awaitDocumentFonts(): Promise<void>;
13
29
  /**
14
30
  * 验证中文字符
15
31
  * @param char
@@ -23,16 +39,53 @@ export declare class TextUtil {
23
39
  */
24
40
  static isFullWidthChar(char: string): boolean;
25
41
  /**
26
- * 生成文本度量缓存键
27
- * @param payload
28
- * @param includeText
42
+ * 获取字符视觉间距
43
+ *
44
+ * 注意:
45
+ * 这里不是 glyph width
46
+ * 而是用于排版推进的额外 advance width
47
+ *
48
+ * 例如:
49
+ * - N·m
50
+ * - N/A
51
+ *
52
+ * 中间符号真实宽度很小,
53
+ * 但视觉上需要 breathing space
54
+ *
55
+ * @param char
56
+ * @param fontSize
29
57
  * @returns
30
58
  */
31
- private static getMeasureCacheKey;
59
+ static getVisualSpacing(char: string, fontSize: number): number;
60
+ /** 与度量路径一致:lineHeight 固定为 1 的样式副本 */
61
+ private static measureBase;
62
+ /**
63
+ * 字体级缓存键(不含 text),与 getFontMetrics 语义一致
64
+ */
65
+ private static measureStyleKey;
66
+ /**
67
+ * 布局缓存键:样式签名 + 编码后的文本
68
+ */
69
+ private static layoutCacheKey;
70
+ private static touchLru;
71
+ private static evictOldestIfFull;
72
+ /**
73
+ * 单次 Konva.Text 计算 width / height(advance width 含视觉间距)
74
+ */
75
+ private static computeLayoutSizeUncached;
32
76
  /**
33
- * 计算度量 - 基于 JSON 序列化的缓存(LRU
34
- * 将最终的 config 序列化为缓存键,相同配置直接返回缓存结果
35
- * 最近使用的项会被移到末尾,超限时删除最古老的项
77
+ * 一次度量:布局宽高 + 字体 ascent/descent(双缓存均未命中时只创建一个 Konva.Text
78
+ */
79
+ static measureTextComplete(payload: Konva.TextConfig): {
80
+ width: number;
81
+ height: number;
82
+ ascent: number;
83
+ descent: number;
84
+ };
85
+ /**
86
+ * 计算字体度量
87
+ * ascent / descent
88
+ *
36
89
  * @param payload
37
90
  * @returns
38
91
  */
@@ -41,7 +94,31 @@ export declare class TextUtil {
41
94
  descent: number;
42
95
  };
43
96
  /**
44
- * 计算单个字符布局大小 - 基于 JSON 序列化的缓存(LRU)
97
+ * 获取字符排版推进宽度
98
+ *
99
+ * 注意:
100
+ * 这里返回的是:
101
+ * advance width
102
+ *
103
+ * 而不是:
104
+ * glyph width
105
+ *
106
+ * 用于:
107
+ * - 自动换行
108
+ * - 光标推进
109
+ * - 文本布局
110
+ * - selection
111
+ *
112
+ * @param payload
113
+ * @returns
114
+ */
115
+ static getAdvanceWidth(payload: Konva.TextConfig): number;
116
+ /**
117
+ * 计算单字符布局大小
118
+ *
119
+ * 注意:
120
+ * width 使用 advance width
121
+ *
45
122
  * @param payload
46
123
  * @returns
47
124
  */
@@ -50,12 +127,12 @@ export declare class TextUtil {
50
127
  height: number;
51
128
  };
52
129
  /**
53
- * 清除度量结果缓存
130
+ * 清除度量缓存
54
131
  */
55
132
  static clearMeasureCache(): void;
56
133
  /**
57
- * 获取缓存大小信息
58
- * @returns 返回测量缓存的大小 {fontMetrics, layoutSize}
134
+ * 获取缓存大小
135
+ * @returns
59
136
  */
60
137
  static getMeasureCacheSize(): {
61
138
  fontMetrics: number;