@univerjs-pro/engine-shape 0.15.3-insiders.20260131-cbd5fac

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 (219) hide show
  1. package/README.md +232 -0
  2. package/lib/cjs/index.js +1 -0
  3. package/lib/es/index.js +1 -0
  4. package/lib/index.js +1 -0
  5. package/lib/types/index.d.ts +200 -0
  6. package/lib/types/model/group-shape-model.d.ts +0 -0
  7. package/lib/types/model/shape-model.d.ts +107 -0
  8. package/lib/types/perset-shape-config.d.ts +2 -0
  9. package/lib/types/render-engine/base-shape-context.d.ts +9 -0
  10. package/lib/types/render-engine/bent-connector-router-util.d.ts +48 -0
  11. package/lib/types/render-engine/connector-points-util.d.ts +44 -0
  12. package/lib/types/render-engine/line-shape-render-model.d.ts +135 -0
  13. package/lib/types/render-engine/point-to-shape-transform.d.ts +13 -0
  14. package/lib/types/render-engine/shape-context-operator.d.ts +19 -0
  15. package/lib/types/render-engine/shape-render-model.d.ts +96 -0
  16. package/lib/types/shape-default.d.ts +27 -0
  17. package/lib/types/shape-enum.d.ts +314 -0
  18. package/lib/types/shape-type.d.ts +836 -0
  19. package/lib/types/shapes/accent-border-callout1-shape.d.ts +6 -0
  20. package/lib/types/shapes/accent-border-callout2-shape.d.ts +6 -0
  21. package/lib/types/shapes/accent-border-callout3-shape.d.ts +6 -0
  22. package/lib/types/shapes/accent-callout1-shape.d.ts +6 -0
  23. package/lib/types/shapes/accent-callout2-shape.d.ts +6 -0
  24. package/lib/types/shapes/accent-callout3-shape.d.ts +6 -0
  25. package/lib/types/shapes/action-button-back-previous-shape.d.ts +6 -0
  26. package/lib/types/shapes/action-button-beginning-shape.d.ts +6 -0
  27. package/lib/types/shapes/action-button-blank-shape.d.ts +6 -0
  28. package/lib/types/shapes/action-button-document-shape.d.ts +6 -0
  29. package/lib/types/shapes/action-button-end-shape.d.ts +6 -0
  30. package/lib/types/shapes/action-button-forward-next-shape.d.ts +6 -0
  31. package/lib/types/shapes/action-button-help-shape.d.ts +6 -0
  32. package/lib/types/shapes/action-button-home-shape.d.ts +6 -0
  33. package/lib/types/shapes/action-button-information-shape.d.ts +6 -0
  34. package/lib/types/shapes/action-button-movie-shape.d.ts +6 -0
  35. package/lib/types/shapes/action-button-return-shape.d.ts +6 -0
  36. package/lib/types/shapes/action-button-sound-shape.d.ts +6 -0
  37. package/lib/types/shapes/arc-shape.d.ts +6 -0
  38. package/lib/types/shapes/bent-arrow-shape.d.ts +6 -0
  39. package/lib/types/shapes/bent-connector2-shape.d.ts +7 -0
  40. package/lib/types/shapes/bent-connector3-shape.d.ts +7 -0
  41. package/lib/types/shapes/bent-connector4-shape.d.ts +7 -0
  42. package/lib/types/shapes/bent-connector5-shape.d.ts +7 -0
  43. package/lib/types/shapes/bent-up-arrow-shape.d.ts +6 -0
  44. package/lib/types/shapes/bevel-shape.d.ts +6 -0
  45. package/lib/types/shapes/block-arc-shape.d.ts +6 -0
  46. package/lib/types/shapes/border-callout1-shape.d.ts +6 -0
  47. package/lib/types/shapes/border-callout2-shape.d.ts +6 -0
  48. package/lib/types/shapes/border-callout3-shape.d.ts +6 -0
  49. package/lib/types/shapes/brace-pair-shape.d.ts +6 -0
  50. package/lib/types/shapes/bracket-pair-shape.d.ts +6 -0
  51. package/lib/types/shapes/callout1-shape.d.ts +6 -0
  52. package/lib/types/shapes/callout2-shape.d.ts +6 -0
  53. package/lib/types/shapes/callout3-shape.d.ts +6 -0
  54. package/lib/types/shapes/can-shape.d.ts +6 -0
  55. package/lib/types/shapes/chart-plus-shape.d.ts +6 -0
  56. package/lib/types/shapes/chart-star-shape.d.ts +6 -0
  57. package/lib/types/shapes/chart-x-shape.d.ts +6 -0
  58. package/lib/types/shapes/chevron-shape.d.ts +6 -0
  59. package/lib/types/shapes/chord-shape.d.ts +6 -0
  60. package/lib/types/shapes/circle-shape.d.ts +6 -0
  61. package/lib/types/shapes/circular-arrow-shape.d.ts +6 -0
  62. package/lib/types/shapes/cloud-callout-shape.d.ts +6 -0
  63. package/lib/types/shapes/cloud-callout1-shape.d.ts +6 -0
  64. package/lib/types/shapes/cloud-shape.d.ts +6 -0
  65. package/lib/types/shapes/corner-shape.d.ts +6 -0
  66. package/lib/types/shapes/corner-tabs-shape.d.ts +6 -0
  67. package/lib/types/shapes/cube-shape.d.ts +6 -0
  68. package/lib/types/shapes/curved-connector2-shape.d.ts +7 -0
  69. package/lib/types/shapes/curved-connector3-shape.d.ts +7 -0
  70. package/lib/types/shapes/curved-connector4-shape.d.ts +7 -0
  71. package/lib/types/shapes/curved-connector5-shape.d.ts +7 -0
  72. package/lib/types/shapes/curved-down-arrow-shape.d.ts +6 -0
  73. package/lib/types/shapes/curved-left-arrow-shape.d.ts +6 -0
  74. package/lib/types/shapes/curved-right-arrow-shape.d.ts +6 -0
  75. package/lib/types/shapes/curved-up-arrow-shape.d.ts +6 -0
  76. package/lib/types/shapes/decagon-shape.d.ts +6 -0
  77. package/lib/types/shapes/diagonal-stripe-shape.d.ts +6 -0
  78. package/lib/types/shapes/diamond-shape.d.ts +6 -0
  79. package/lib/types/shapes/dodecagon-shape.d.ts +6 -0
  80. package/lib/types/shapes/donut-shape.d.ts +6 -0
  81. package/lib/types/shapes/double-wave-shape.d.ts +6 -0
  82. package/lib/types/shapes/down-arrow-callout-shape.d.ts +6 -0
  83. package/lib/types/shapes/down-arrow-shape.d.ts +6 -0
  84. package/lib/types/shapes/ellipse-ribbon-shape.d.ts +6 -0
  85. package/lib/types/shapes/ellipse-ribbon2-shape.d.ts +6 -0
  86. package/lib/types/shapes/ellipse-shape.d.ts +6 -0
  87. package/lib/types/shapes/flow-chart-offline-storage-shape.d.ts +6 -0
  88. package/lib/types/shapes/flowchart-alternate-process-shape.d.ts +6 -0
  89. package/lib/types/shapes/flowchart-collate-shape.d.ts +6 -0
  90. package/lib/types/shapes/flowchart-connector-shape.d.ts +6 -0
  91. package/lib/types/shapes/flowchart-data-shape.d.ts +6 -0
  92. package/lib/types/shapes/flowchart-decision-shape.d.ts +6 -0
  93. package/lib/types/shapes/flowchart-delay-shape.d.ts +6 -0
  94. package/lib/types/shapes/flowchart-display-shape.d.ts +6 -0
  95. package/lib/types/shapes/flowchart-document-shape.d.ts +6 -0
  96. package/lib/types/shapes/flowchart-extract-shape.d.ts +6 -0
  97. package/lib/types/shapes/flowchart-internal-storage-shape.d.ts +6 -0
  98. package/lib/types/shapes/flowchart-magnetic-disk-shape.d.ts +6 -0
  99. package/lib/types/shapes/flowchart-magnetic-drum-shape.d.ts +6 -0
  100. package/lib/types/shapes/flowchart-magnetic-tape-shape.d.ts +6 -0
  101. package/lib/types/shapes/flowchart-manual-input-shape.d.ts +6 -0
  102. package/lib/types/shapes/flowchart-manual-operation-shape.d.ts +6 -0
  103. package/lib/types/shapes/flowchart-merge-shape.d.ts +6 -0
  104. package/lib/types/shapes/flowchart-multidocument-shape.d.ts +6 -0
  105. package/lib/types/shapes/flowchart-offpage-connector-shape.d.ts +6 -0
  106. package/lib/types/shapes/flowchart-online-storage-shape.d.ts +6 -0
  107. package/lib/types/shapes/flowchart-or-shape.d.ts +6 -0
  108. package/lib/types/shapes/flowchart-predefined-process-shape.d.ts +6 -0
  109. package/lib/types/shapes/flowchart-preparation-shape.d.ts +6 -0
  110. package/lib/types/shapes/flowchart-process-shape.d.ts +6 -0
  111. package/lib/types/shapes/flowchart-punched-card-shape.d.ts +6 -0
  112. package/lib/types/shapes/flowchart-punched-tape-shape.d.ts +6 -0
  113. package/lib/types/shapes/flowchart-sort-shape.d.ts +6 -0
  114. package/lib/types/shapes/flowchart-summing-junction-shape.d.ts +6 -0
  115. package/lib/types/shapes/flowchart-terminator-shape.d.ts +6 -0
  116. package/lib/types/shapes/folded-corner-shape.d.ts +6 -0
  117. package/lib/types/shapes/frame-shape.d.ts +6 -0
  118. package/lib/types/shapes/frame2-shape.d.ts +6 -0
  119. package/lib/types/shapes/funnel-shape.d.ts +6 -0
  120. package/lib/types/shapes/gear6-shape.d.ts +6 -0
  121. package/lib/types/shapes/gear9-shape.d.ts +6 -0
  122. package/lib/types/shapes/half-frame-shape.d.ts +6 -0
  123. package/lib/types/shapes/heart-shape.d.ts +6 -0
  124. package/lib/types/shapes/heptagon-shape.d.ts +6 -0
  125. package/lib/types/shapes/hexagon-shape.d.ts +6 -0
  126. package/lib/types/shapes/home-plate-shape.d.ts +6 -0
  127. package/lib/types/shapes/horizontal-scroll-shape.d.ts +6 -0
  128. package/lib/types/shapes/index.d.ts +3 -0
  129. package/lib/types/shapes/irregular-seal1-shape.d.ts +6 -0
  130. package/lib/types/shapes/irregular-seal2-shape.d.ts +6 -0
  131. package/lib/types/shapes/left-arrow-callout-shape.d.ts +6 -0
  132. package/lib/types/shapes/left-arrow-shape.d.ts +6 -0
  133. package/lib/types/shapes/left-brace-shape.d.ts +6 -0
  134. package/lib/types/shapes/left-bracket-shape.d.ts +6 -0
  135. package/lib/types/shapes/left-circular-arrow-shape.d.ts +6 -0
  136. package/lib/types/shapes/left-right-arrow-callout-shape.d.ts +6 -0
  137. package/lib/types/shapes/left-right-arrow-shape.d.ts +6 -0
  138. package/lib/types/shapes/left-right-circular-arrow-shape.d.ts +6 -0
  139. package/lib/types/shapes/left-right-ribbon-shape.d.ts +6 -0
  140. package/lib/types/shapes/left-right-up-arrow-shape.d.ts +6 -0
  141. package/lib/types/shapes/left-up-arrow-shape.d.ts +6 -0
  142. package/lib/types/shapes/lightning-bolt-shape.d.ts +6 -0
  143. package/lib/types/shapes/line-lnv-shape.d.ts +6 -0
  144. package/lib/types/shapes/line-shape.d.ts +7 -0
  145. package/lib/types/shapes/math-divide-shape.d.ts +6 -0
  146. package/lib/types/shapes/math-equal-shape.d.ts +6 -0
  147. package/lib/types/shapes/math-minus-shape.d.ts +6 -0
  148. package/lib/types/shapes/math-multiply-shape.d.ts +6 -0
  149. package/lib/types/shapes/math-not-equal-shape.d.ts +6 -0
  150. package/lib/types/shapes/math-plus-shape.d.ts +6 -0
  151. package/lib/types/shapes/moon-shape.d.ts +6 -0
  152. package/lib/types/shapes/no-smoking-shape.d.ts +6 -0
  153. package/lib/types/shapes/non-isosceles-trapezoid.d.ts +6 -0
  154. package/lib/types/shapes/notched-right-arrow-shape.d.ts +6 -0
  155. package/lib/types/shapes/octagon-shape.d.ts +6 -0
  156. package/lib/types/shapes/oval-callout1-shape.d.ts +6 -0
  157. package/lib/types/shapes/parallelogram-shape.d.ts +6 -0
  158. package/lib/types/shapes/pentagon-shape.d.ts +6 -0
  159. package/lib/types/shapes/pie-shape.d.ts +6 -0
  160. package/lib/types/shapes/pie-wedge-shape.d.ts +6 -0
  161. package/lib/types/shapes/plaque-shape.d.ts +6 -0
  162. package/lib/types/shapes/plaque-tabs-shape.d.ts +6 -0
  163. package/lib/types/shapes/plus-shape.d.ts +6 -0
  164. package/lib/types/shapes/quad-arrow-callout-shape.d.ts +6 -0
  165. package/lib/types/shapes/quad-arrow-shape.d.ts +6 -0
  166. package/lib/types/shapes/rectangle-callout1-shape.d.ts +6 -0
  167. package/lib/types/shapes/rectangle-shape.d.ts +6 -0
  168. package/lib/types/shapes/ribbon-shape.d.ts +6 -0
  169. package/lib/types/shapes/ribbon2-shape.d.ts +6 -0
  170. package/lib/types/shapes/right-arrow-callout-shape.d.ts +6 -0
  171. package/lib/types/shapes/right-arrow-shape.d.ts +6 -0
  172. package/lib/types/shapes/right-brace-shape.d.ts +6 -0
  173. package/lib/types/shapes/right-bracket-shape.d.ts +6 -0
  174. package/lib/types/shapes/right-triangle-shape.d.ts +6 -0
  175. package/lib/types/shapes/round-rectangle-shape.d.ts +6 -0
  176. package/lib/types/shapes/round-rectangle1-shape.d.ts +6 -0
  177. package/lib/types/shapes/round-rectangle2-diagonal-shape.d.ts +6 -0
  178. package/lib/types/shapes/round-rectangle2-shape.d.ts +6 -0
  179. package/lib/types/shapes/rounded-rectangular-callout1-shape.d.ts +6 -0
  180. package/lib/types/shapes/smiley-face-shape.d.ts +6 -0
  181. package/lib/types/shapes/snip-rectangle1-shape.d.ts +6 -0
  182. package/lib/types/shapes/snip-rectangle2-diagonal-shape.d.ts +6 -0
  183. package/lib/types/shapes/snip-rectangle2-same-shape.d.ts +6 -0
  184. package/lib/types/shapes/snip-round-rectangle1-shape.d.ts +6 -0
  185. package/lib/types/shapes/square-tabs-shape.d.ts +6 -0
  186. package/lib/types/shapes/star10-shape.d.ts +6 -0
  187. package/lib/types/shapes/star12-shape.d.ts +6 -0
  188. package/lib/types/shapes/star16-shape.d.ts +6 -0
  189. package/lib/types/shapes/star24-shape.d.ts +6 -0
  190. package/lib/types/shapes/star32-shape.d.ts +6 -0
  191. package/lib/types/shapes/star4-shape.d.ts +6 -0
  192. package/lib/types/shapes/star5-shape.d.ts +6 -0
  193. package/lib/types/shapes/star6-shape.d.ts +6 -0
  194. package/lib/types/shapes/star7-shape.d.ts +6 -0
  195. package/lib/types/shapes/star8-shape.d.ts +6 -0
  196. package/lib/types/shapes/straight-connector1-shape.d.ts +7 -0
  197. package/lib/types/shapes/striped-right-arrow-shape.d.ts +6 -0
  198. package/lib/types/shapes/sun-shape.d.ts +6 -0
  199. package/lib/types/shapes/swoosh-arrow-shape.d.ts +6 -0
  200. package/lib/types/shapes/teardrop-shape.d.ts +6 -0
  201. package/lib/types/shapes/text-box-shape.d.ts +6 -0
  202. package/lib/types/shapes/trapezoid-shape.d.ts +6 -0
  203. package/lib/types/shapes/triangle-shape.d.ts +6 -0
  204. package/lib/types/shapes/up-arrow-callout-shape.d.ts +6 -0
  205. package/lib/types/shapes/up-arrow-shape.d.ts +6 -0
  206. package/lib/types/shapes/up-down-arrow-callout-shape.d.ts +6 -0
  207. package/lib/types/shapes/up-down-arrow-shape.d.ts +6 -0
  208. package/lib/types/shapes/uturn-arrow-shape.d.ts +6 -0
  209. package/lib/types/shapes/vertical-scroll-shape.d.ts +6 -0
  210. package/lib/types/shapes/wave-shape.d.ts +6 -0
  211. package/lib/types/shapes/wedge-ellipse-callout-shape.d.ts +6 -0
  212. package/lib/types/shapes/wedge-rect-callout-shape.d.ts +6 -0
  213. package/lib/types/shapes/wedge-round-rect-callout-shape.d.ts +6 -0
  214. package/lib/types/util/color-util.d.ts +12 -0
  215. package/lib/types/util/connector-points-util.d.ts +56 -0
  216. package/lib/types/util/connector-transform.d.ts +119 -0
  217. package/lib/types/util/shape-util.d.ts +8 -0
  218. package/lib/umd/index.js +1 -0
  219. package/package.json +65 -0
@@ -0,0 +1,836 @@
1
+ import { BasicShapeEnum, ShapeArrowSizeEnum, ShapeArrowTypeEnum, ShapeFillEnum, ShapeGradientTypeEnum, ShapeLineCapEnum, ShapeLineDashEnum, ShapeLineJoinEnum, ShapeLineTypeEnum, ShapeOperatorEnum, ShapeRenderModeEnum, ShapeTypeEnum } from './shape-enum';
2
+ /**
3
+ * GdContext 用来计算 OOXML Shape 的 Geometry Definitions (gd)
4
+ * 包含:
5
+ * - 基本绘制尺寸(宽 w、高 h)
6
+ * - 固定点位(左 l、右 r、顶 t、底 b、中心等)
7
+ * - 调整值(adjust values)
8
+ * - 临时计算缓存
9
+ * - gd 公式系统需要的数学方法
10
+ *
11
+ * 所有值都按 Office 的规则:1000 = 1px 的 EMU 转换前坐标系。
12
+ * 公式计算遵循 OOXML 的 ST_AdjCoordinate 体系。
13
+ */
14
+ export interface IGdContextBase {
15
+ /**
16
+ * shape 的最终显示宽度(OOXML 使用的坐标值,非 CSS 像素)
17
+ * 例如:Excel 中 w = 100000 表示宽度 100%。
18
+ */
19
+ w: number;
20
+ /**
21
+ * shape 的最终显示高度
22
+ */
23
+ h: number;
24
+ /**
25
+ * w / 2,OOXML 常用
26
+ */
27
+ wd2: number;
28
+ /**
29
+ * h / 2,常用
30
+ */
31
+ hd2: number;
32
+ /**
33
+ * 左侧(一般为 0)
34
+ */
35
+ l: number;
36
+ /**
37
+ * 顶部(一般为 0)
38
+ */
39
+ t: number;
40
+ /**
41
+ * 右侧 = w
42
+ */
43
+ r: number;
44
+ /**
45
+ * 底部 = h
46
+ */
47
+ b: number;
48
+ /**
49
+ * 垂直中心 = h / 2
50
+ */
51
+ vc: number;
52
+ /**
53
+ * 水平中心 = w / 2
54
+ */
55
+ hc: number;
56
+ wd3: number;
57
+ wd4: number;
58
+ wd5: number;
59
+ wd6: number;
60
+ wd8: number;
61
+ wd10: number;
62
+ hd3: number;
63
+ hd4: number;
64
+ hd5: number;
65
+ hd6: number;
66
+ hd8: number;
67
+ hd10: number;
68
+ wd32: number;
69
+ hd32: number;
70
+ /**
71
+ * circle division by 2 (180° in DrawingML angle unit)
72
+ */
73
+ cd2: number;
74
+ /**
75
+ * circle division by 4 (90° in DrawingML angle unit)
76
+ */
77
+ cd4: number;
78
+ /**
79
+ * circle division by 8 (45° in DrawingML angle unit)
80
+ */
81
+ cd8: number;
82
+ /**
83
+ * circle division by 16 (22.5° in DrawingML angle unit)
84
+ */
85
+ cd16: number;
86
+ /**
87
+ * shortest side of the shape (w and h)
88
+ */
89
+ ss: number;
90
+ /**
91
+ * longest side of the shape (w and h)
92
+ */
93
+ ls: number;
94
+ ssd2: number;
95
+ ssd4: number;
96
+ ssd6: number;
97
+ ssd8: number;
98
+ ssd16: number;
99
+ ssd32: number;
100
+ lsd2: number;
101
+ lsd4: number;
102
+ lsd8: number;
103
+ lsd16: number;
104
+ lsd32: number;
105
+ }
106
+ export interface IGdContext extends IGdContextBase {
107
+ x0?: number;
108
+ x1?: number;
109
+ x2?: number;
110
+ x3?: number;
111
+ x4?: number;
112
+ x5?: number;
113
+ x6?: number;
114
+ x7?: number;
115
+ x8?: number;
116
+ x9?: number;
117
+ x10?: number;
118
+ x11?: number;
119
+ x12?: number;
120
+ x13?: number;
121
+ x14?: number;
122
+ x15?: number;
123
+ x16?: number;
124
+ x17?: number;
125
+ x18?: number;
126
+ x23?: number;
127
+ x24?: number;
128
+ x25?: number;
129
+ y1?: number;
130
+ y2?: number;
131
+ y3?: number;
132
+ y4?: number;
133
+ y5?: number;
134
+ y6?: number;
135
+ y7?: number;
136
+ y8?: number;
137
+ y9?: number;
138
+ y10?: number;
139
+ y11?: number;
140
+ y12?: number;
141
+ y13?: number;
142
+ y14?: number;
143
+ y15?: number;
144
+ y16?: number;
145
+ y17?: number;
146
+ y18?: number;
147
+ y24?: number;
148
+ sx1?: number;
149
+ sx2?: number;
150
+ sx3?: number;
151
+ sx4?: number;
152
+ sx5?: number;
153
+ sx6?: number;
154
+ sx7?: number;
155
+ sx8?: number;
156
+ sx9?: number;
157
+ sx10?: number;
158
+ sx11?: number;
159
+ sx12?: number;
160
+ sx13?: number;
161
+ sx14?: number;
162
+ sx15?: number;
163
+ sx16?: number;
164
+ /**
165
+ * g5–g8 are vertically symmetric guideline values used in many preset shapes.
166
+ * They represent positions above/below the vertical center (vc) using offsets.
167
+ *
168
+ * g5:vc 上方 g3 距离
169
+ * g6:vc 下方 g3 距离
170
+ * g7:vc 上方 g4 距离
171
+ * g8:vc 下方 g4 距离
172
+ *
173
+ * These are commonly used to build arcs, eyes, mouth curves, or rounded corners
174
+ * in shapes such as smileyFace, cloud, heart, blockArrows.
175
+ *
176
+ * g5–g8用于构造图形的上下对称控制点,例如笑脸的眼睛位置、嘴巴曲线、
177
+ * 或者箭头、云朵等的圆角结构。
178
+ */
179
+ g2?: number;
180
+ g3?: number;
181
+ g4?: number;
182
+ g5?: number;
183
+ g6?: number;
184
+ g7?: number;
185
+ g8?: number;
186
+ g9?: number;
187
+ g10?: number;
188
+ g11?: number;
189
+ g12?: number;
190
+ g13?: number;
191
+ g14?: number;
192
+ g15?: number;
193
+ g16?: number;
194
+ g17?: number;
195
+ g18?: number;
196
+ g19?: number;
197
+ g20?: number;
198
+ g21?: number;
199
+ g22?: number;
200
+ g23?: number;
201
+ g24?: number;
202
+ g25?: number;
203
+ g26?: number;
204
+ sy1?: number;
205
+ sy2?: number;
206
+ sy3?: number;
207
+ sy4?: number;
208
+ sy5?: number;
209
+ sy6?: number;
210
+ sy7?: number;
211
+ sy8?: number;
212
+ sy9?: number;
213
+ sy10?: number;
214
+ sy11?: number;
215
+ sy12?: number;
216
+ sy13?: number;
217
+ sy14?: number;
218
+ sy15?: number;
219
+ sy16?: number;
220
+ dx?: number;
221
+ dx1?: number;
222
+ dx2?: number;
223
+ dx3?: number;
224
+ dx4?: number;
225
+ dx5?: number;
226
+ dx6?: number;
227
+ dy?: number;
228
+ dy1?: number;
229
+ dy2?: number;
230
+ dy3?: number;
231
+ idx?: number;
232
+ il?: number;
233
+ ir?: number;
234
+ idy?: number;
235
+ it?: number;
236
+ ib?: number;
237
+ wR?: number;
238
+ hR?: number;
239
+ tx1?: number;
240
+ tx2?: number;
241
+ bx1?: number;
242
+ bx2?: number;
243
+ by1?: number;
244
+ d?: number;
245
+ tdx?: number;
246
+ bdx?: number;
247
+ ilx?: number;
248
+ irx?: number;
249
+ lx?: number;
250
+ lx1: number;
251
+ ly1: number;
252
+ lx2: number;
253
+ ly2: number;
254
+ rx?: number;
255
+ rx1: number;
256
+ rx2: number;
257
+ rx3: number;
258
+ rx4: number;
259
+ rx5: number;
260
+ rx6: number;
261
+ ry: number;
262
+ ry1: number;
263
+ ry2: number;
264
+ ly?: number;
265
+ ly3?: number;
266
+ ly4?: number;
267
+ ry3?: number;
268
+ ry4?: number;
269
+ a: number;
270
+ a1: number;
271
+ a2: number;
272
+ a3?: number;
273
+ ang1?: number;
274
+ maxAdj1?: number;
275
+ maxAdj2?: number;
276
+ maxAdj3?: number;
277
+ q1?: number;
278
+ stAng: number;
279
+ swAng: number;
280
+ dxI: number;
281
+ dyI: number;
282
+ xE: number;
283
+ yE: number;
284
+ xD: number;
285
+ yD: number;
286
+ rw2: number;
287
+ rh2: number;
288
+ istAng: number;
289
+ iswAng: number;
290
+ xBp: number;
291
+ yBp: number;
292
+ xA: number;
293
+ yA: number;
294
+ xGp: number;
295
+ yGp: number;
296
+ xF: number;
297
+ yF: number;
298
+ rw1: number;
299
+ rh1: number;
300
+ stAng0: number;
301
+ swAng0: number;
302
+ xL: number;
303
+ yL: number;
304
+ xKp: number;
305
+ yKp: number;
306
+ st2: number;
307
+ xC: number;
308
+ yC: number;
309
+ xJp: number;
310
+ yJp: number;
311
+ aI?: number;
312
+ _dxI?: number;
313
+ _dyI?: number;
314
+ th?: number;
315
+ aw2?: number;
316
+ th2?: number;
317
+ dh2?: number;
318
+ ah?: number;
319
+ bw?: number;
320
+ bh?: number;
321
+ bs?: number;
322
+ maxAdj4?: number;
323
+ a4?: number;
324
+ bd?: number;
325
+ bd3?: number;
326
+ bd2?: number;
327
+ q2?: number;
328
+ q3?: number;
329
+ minAdj5?: number;
330
+ a5?: number;
331
+ cx?: number;
332
+ cx1?: number;
333
+ cy1?: number;
334
+ aw?: number;
335
+ dh?: number;
336
+ mswAng?: number;
337
+ ix?: number;
338
+ iy?: number;
339
+ dang2?: number;
340
+ swAng2?: number;
341
+ swAng3?: number;
342
+ stAng3?: number;
343
+ q4?: number;
344
+ q5?: number;
345
+ q6?: number;
346
+ q7?: number;
347
+ q8?: number;
348
+ q9?: number;
349
+ q10?: number;
350
+ q11?: number;
351
+ q12?: number;
352
+ q13?: number;
353
+ q14?: number;
354
+ mswAng2?: number;
355
+ stAng2?: number;
356
+ hf?: number;
357
+ vf?: number;
358
+ swd2?: number;
359
+ shd2?: number;
360
+ svc?: number;
361
+ xB?: number;
362
+ yB?: number;
363
+ yG?: number;
364
+ yI?: number;
365
+ yH?: number;
366
+ rad?: number;
367
+ drx?: number;
368
+ dry?: number;
369
+ dlx?: number;
370
+ dly?: number;
371
+ yWave1?: number;
372
+ yWave2?: number;
373
+ yWave3?: number;
374
+ yWave4?: number;
375
+ yWave5?: number;
376
+ yWave6?: number;
377
+ xWave1?: number;
378
+ xWave2?: number;
379
+ xOff1?: number;
380
+ xOff2?: number;
381
+ xOff3?: number;
382
+ yOff1?: number;
383
+ xt?: number;
384
+ yt?: number;
385
+ xr?: number;
386
+ yr?: number;
387
+ xb?: number;
388
+ yb?: number;
389
+ xl?: number;
390
+ yl?: number;
391
+ u1?: number;
392
+ u2?: number;
393
+ v2?: number;
394
+ xPos?: number;
395
+ yPos?: number;
396
+ stAng1?: number;
397
+ cy3?: number;
398
+ cx2?: number;
399
+ rh?: number;
400
+ cx5?: number;
401
+ cy4?: number;
402
+ cy6?: number;
403
+ cx4?: number;
404
+ cy7?: number;
405
+ ch?: number;
406
+ ch2?: number;
407
+ ch4?: number;
408
+ ox1?: number;
409
+ oy1?: number;
410
+ ox2?: number;
411
+ oy2?: number;
412
+ x19?: number;
413
+ g18w?: number;
414
+ swAng1?: number;
415
+ swAng4?: number;
416
+ swAng5?: number;
417
+ iwd2?: number;
418
+ ihd2?: number;
419
+ dr?: number;
420
+ g27?: number;
421
+ g28?: number;
422
+ g29?: number;
423
+ g30?: number;
424
+ g31?: number;
425
+ g32?: number;
426
+ g33?: number;
427
+ g34?: number;
428
+ g35?: number;
429
+ g36?: number;
430
+ g37?: number;
431
+ g38?: number;
432
+ g39?: number;
433
+ g40?: number;
434
+ g41?: number;
435
+ g42?: number;
436
+ g43?: number;
437
+ g44?: number;
438
+ g45?: number;
439
+ g46?: number;
440
+ g47?: number;
441
+ g48?: number;
442
+ rh3?: number;
443
+ rw3?: number;
444
+ da?: number;
445
+ rw?: number;
446
+ xA1?: number;
447
+ yA1?: number;
448
+ xB1?: number;
449
+ yB1?: number;
450
+ xC1?: number;
451
+ yC1?: number;
452
+ xD1?: number;
453
+ yD1?: number;
454
+ bD1?: number;
455
+ yD2?: number;
456
+ bD2?: number;
457
+ yB3?: number;
458
+ xA6?: number;
459
+ yD3?: number;
460
+ bD3?: number;
461
+ xB4?: number;
462
+ yC2?: number;
463
+ xC4?: number;
464
+ yB2?: number;
465
+ xD4?: number;
466
+ yA2?: number;
467
+ bD4?: number;
468
+ xB5?: number;
469
+ xC5?: number;
470
+ xD5?: number;
471
+ bD5?: number;
472
+ xE6?: number;
473
+ xF6?: number;
474
+ yC6?: number;
475
+ xD6?: number;
476
+ yD6?: number;
477
+ bD6?: number;
478
+ xB2?: number;
479
+ xC2?: number;
480
+ xD2?: number;
481
+ xB3?: number;
482
+ xC3?: number;
483
+ xD3?: number;
484
+ yB4?: number;
485
+ yC4?: number;
486
+ yD4?: number;
487
+ yA4?: number;
488
+ xB6?: number;
489
+ yC3?: number;
490
+ xC6?: number;
491
+ yA3?: number;
492
+ xB7?: number;
493
+ xC7?: number;
494
+ xD7?: number;
495
+ bD7?: number;
496
+ xB8?: number;
497
+ xC8?: number;
498
+ xD8?: number;
499
+ bD8?: number;
500
+ xE9?: number;
501
+ yC9?: number;
502
+ xF9?: number;
503
+ xD9?: number;
504
+ yD9?: number;
505
+ bD9?: number;
506
+ xP1?: number;
507
+ yP1?: number;
508
+ xP2?: number;
509
+ yP2?: number;
510
+ g0w?: number;
511
+ _cd4?: number;
512
+ _cd2?: number;
513
+ }
514
+ export type IGdContextKey = keyof IGdContext;
515
+ export type ShapeOperatorValue = [ShapeOperatorEnum, ...Array<string | number>];
516
+ type PathCommandType = 'M' | 'L' | 'C' | 'Q' | 'A' | 'z';
517
+ /** Individual path command with its parameters */
518
+ export interface IPathCommand {
519
+ /** Command type */
520
+ command: PathCommandType;
521
+ /** Command points/parameters */
522
+ points: Array<IGdContextKey | number>;
523
+ center?: [IGdContextKey | number, IGdContextKey | number, boolean];
524
+ /** Start position of this command segment */
525
+ start?: {
526
+ x: number;
527
+ y: number;
528
+ };
529
+ /** Calculated length of this path segment */
530
+ pathLength?: number;
531
+ }
532
+ /** Single path definition for shape rendering */
533
+ export interface IShapePath {
534
+ /** Virtual canvas width (default: shape width) - used for coordinate system scaling */
535
+ w?: number;
536
+ /** Virtual canvas height (default: shape height) - used for coordinate system scaling */
537
+ h?: number;
538
+ /** Fill mode */
539
+ fill?: 'none' | 'norm' | 'lighten' | 'lightenLess' | 'darken' | 'darkenLess' | 'evenodd';
540
+ /** Stroke mode */
541
+ stroke?: boolean;
542
+ /** Whether extrusion is allowed (3D) */
543
+ extrusionOk?: boolean;
544
+ /**
545
+ * Path data - can be either:
546
+ * 1. SVG path string (e.g., "M 0 0 L 100 100")
547
+ * 2. Parsed data array for direct rendering
548
+ */
549
+ data?: string;
550
+ /** Parsed path data array (alternative to data string) */
551
+ dataArray?: IPathCommand[];
552
+ }
553
+ export interface IShapeTextAlign {
554
+ isHorizontal: boolean;
555
+ }
556
+ export interface IShapeText extends IShapeTextAlign {
557
+ isRichText: false;
558
+ text?: string;
559
+ color?: string;
560
+ fontFamily?: string;
561
+ fontSize?: number;
562
+ bold?: boolean;
563
+ italic?: boolean;
564
+ underline?: boolean;
565
+ }
566
+ export interface ICustomShapeTextData extends IShapeTextAlign {
567
+ dataModel?: unknown;
568
+ }
569
+ /**
570
+ * This interface defines the shape data structure , and this part will save in json
571
+ */
572
+ export interface IBasicShapeData {
573
+ shapeType?: ShapeTypeEnum;
574
+ fill?: {
575
+ color?: string;
576
+ fillType?: ShapeFillEnum;
577
+ opacity?: number;
578
+ gradientType?: ShapeGradientTypeEnum;
579
+ gradientAngle?: number;
580
+ gradientStops?: Array<{
581
+ position: number;
582
+ color: string;
583
+ }>;
584
+ };
585
+ stroke?: IShapeLineStyle;
586
+ adjustValues?: Record<string, number>;
587
+ shapeText?: IShapeText | ICustomShapeTextData;
588
+ }
589
+ export interface ICxnShapeData extends IBasicShapeData {
590
+ points?: Array<{
591
+ x: number;
592
+ y: number;
593
+ }>;
594
+ relation?: IShapeRelation;
595
+ ln?: IShapeLineStyle & {
596
+ startArrow?: {
597
+ type?: ShapeArrowTypeEnum;
598
+ size?: ShapeArrowSizeEnum;
599
+ };
600
+ endArrow?: {
601
+ type?: ShapeArrowTypeEnum;
602
+ size?: ShapeArrowSizeEnum;
603
+ };
604
+ };
605
+ }
606
+ export interface IGroupShapeData {
607
+ childShapeIds: string[];
608
+ shapeData?: Record<string, IShapeData>;
609
+ }
610
+ export type IShapeData = IBasicShapeData | ICxnShapeData;
611
+ export interface IShapeJSONData {
612
+ id: string;
613
+ shapeData: IShapeData;
614
+ shapeType: ShapeTypeEnum;
615
+ }
616
+ export declare enum ShapeHitTestHitTypeEnum {
617
+ None = 0,
618
+ Body = 1,
619
+ ConnectionSite = 2,
620
+ AdjustHandle = 3,
621
+ TextBox = 4
622
+ }
623
+ export declare enum ShapeAdjustHandleTypeEnum {
624
+ AH_XY = 1,
625
+ AH_Polar = 2
626
+ }
627
+ export interface IShapeHitTestResult {
628
+ adjustHandleIndex?: number;
629
+ connectionSiteIndex?: number;
630
+ hitType: ShapeHitTestHitTypeEnum;
631
+ }
632
+ export interface IPresetShapeConfig {
633
+ /** Adjustment values for shape parameters, each value typically ranges from 0 to 100000 */
634
+ adjustValues?: Record<string, ShapeOperatorValue>;
635
+ /** Guide definitions - formulas for calculating shape geometry */
636
+ gd?: Record<string, ShapeOperatorValue>;
637
+ gdKeyList?: string[];
638
+ /** Adjustment handles - defines how users can modify the shape */
639
+ ahLst?: Array<IShapeAdjustItem>;
640
+ /** Connection sites for connecting lines to the shape */
641
+ cxnLst?: Array<{
642
+ /** Angle in degrees (cd4 = 90°, cd2 = 180°, 3cd4 = 270°) */
643
+ ang: string | number;
644
+ /** X coordinate */
645
+ x?: string | number;
646
+ /** Y coordinate */
647
+ y?: string | number;
648
+ }>;
649
+ /** Text rectangle definition */
650
+ rect?: {
651
+ /** Left position */
652
+ l: string | number;
653
+ /** Top position */
654
+ t: string | number;
655
+ /** Right position */
656
+ r: string | number;
657
+ /** Bottom position */
658
+ b: string | number;
659
+ };
660
+ /**
661
+ * Path list - can have multiple paths for complex shapes
662
+ * For example: one for fill, one for stroke, one for shadow
663
+ */
664
+ pathLst?: IShapePath[];
665
+ }
666
+ export type IPresetShapeConfigMap = Record<string, IPresetShapeConfig>;
667
+ export interface IShapeContextOptions {
668
+ width: number;
669
+ height: number;
670
+ adjustValues?: Record<string, number>;
671
+ presetShapeConfig?: IPresetShapeConfig;
672
+ }
673
+ export interface IShapeRect {
674
+ left: number;
675
+ top: number;
676
+ width: number;
677
+ height: number;
678
+ }
679
+ export interface IShapePoint {
680
+ x: number;
681
+ y: number;
682
+ }
683
+ export interface IShapeGdContextKeyPoint {
684
+ x: IGdContextKey | number;
685
+ y: IGdContextKey | number;
686
+ }
687
+ export interface IShapePointWithAdjName extends IShapePoint {
688
+ adjName: string;
689
+ }
690
+ export interface IShapeAdjustItem {
691
+ /** Handle type: XY or polar */
692
+ type: 'ahXY' | 'ahPolar';
693
+ /** Guide reference for X or radius */
694
+ gdRefX?: string;
695
+ /** Guide reference for radius , 控制半径*/
696
+ gdRefR?: string;
697
+ /** Min/Max values for X or radius */
698
+ minX?: string | number;
699
+ maxX?: string | number;
700
+ minR?: string | number;
701
+ maxR?: string | number;
702
+ /** Guide reference for Y or angle */
703
+ gdRefY?: string;
704
+ /** Guide reference for angle, 控制角度 */
705
+ gdRefAng?: string;
706
+ /** Min/Max values for Y or angle */
707
+ minY?: string | number;
708
+ maxY?: string | number;
709
+ minAng?: string | number;
710
+ maxAng?: string | number;
711
+ /** Position (for ahXY) or polar coordinates (for ahPolar) */
712
+ pos: {
713
+ x: string | number;
714
+ y: string | number;
715
+ };
716
+ }
717
+ export interface IShapeAdjustItemResolved extends IShapeAdjustItem {
718
+ resolvedMinX?: number;
719
+ resolvedMaxX?: number;
720
+ resolvedMinY?: number;
721
+ resolvedMaxY?: number;
722
+ resolvedMinR?: number;
723
+ resolvedMaxR?: number;
724
+ resolvedMinAng?: number;
725
+ resolvedMaxAng?: number;
726
+ resolvedPos?: {
727
+ x: number;
728
+ y: number;
729
+ };
730
+ /** Center point for polar coordinates (hc, vc) */
731
+ resolvedCenter?: {
732
+ x: number;
733
+ y: number;
734
+ };
735
+ /** Current value of the adj parameter being controlled */
736
+ currentAdjValue?: number;
737
+ /**
738
+ * Indicates inverse relationship between adj value and position.
739
+ * Calculated at runtime by analyzing gd formulas.
740
+ * When true, increasing adj value will decrease the position value.
741
+ */
742
+ inverse?: boolean;
743
+ }
744
+ export interface IShapeRenderParameters {
745
+ renderMode?: ShapeRenderModeEnum;
746
+ flipH?: boolean;
747
+ flipV?: boolean;
748
+ angle?: number;
749
+ }
750
+ export interface IShapeRelationItem {
751
+ shapeId: string;
752
+ cxnIndex: number;
753
+ }
754
+ /**
755
+ * Shape relation interface for connecting shapes
756
+ * from: starting shape and connection point index
757
+ * to: ending shape and connection point index
758
+ */
759
+ export interface IShapeRelation {
760
+ from?: IShapeRelationItem;
761
+ to?: IShapeRelationItem;
762
+ }
763
+ export interface IShapeLineStyle {
764
+ color?: string;
765
+ width?: number;
766
+ opacity?: number;
767
+ dashType?: ShapeLineDashEnum;
768
+ capType?: ShapeLineCapEnum;
769
+ lineJoinType?: ShapeLineJoinEnum;
770
+ lineStrokeType?: ShapeLineTypeEnum;
771
+ }
772
+ export interface IShapeModel {
773
+ getBasicShapeType(): BasicShapeEnum;
774
+ getId(): string;
775
+ dispose(): void;
776
+ getShapeData(): IShapeData;
777
+ }
778
+ export interface IBentConnectorRect {
779
+ left: number;
780
+ top: number;
781
+ width: number;
782
+ height: number;
783
+ }
784
+ export interface IBentConnectorResult {
785
+ points: IShapePoint[];
786
+ rect: IBentConnectorRect;
787
+ flipH: boolean;
788
+ flipV: boolean;
789
+ }
790
+ export interface IConnectPointInfo {
791
+ point: IShapePoint;
792
+ /**
793
+ * Angle in degrees, 0 is to the right, 90 is down, 180 is left, 270 is up
794
+ */
795
+ angle: number;
796
+ bounds: IShapeRect;
797
+ }
798
+ export interface IConnectorRouteLayoutResult {
799
+ /** Local points in normalized space (0,0 to width,height, no flip) */
800
+ localPoints: IShapePoint[];
801
+ /** World rect including position, size, and flip flags */
802
+ worldRect: IDrawingRect;
803
+ adjustValues: Record<string, number>;
804
+ lineType: ILineType;
805
+ /**
806
+ * Rotation angle in degrees (0, 90, 180, 270).
807
+ * Used when the connector is rotated to account for flip + rotation scenarios.
808
+ * For example, when width > height becomes height > width after flip.
809
+ */
810
+ rotation: number;
811
+ }
812
+ /**
813
+ * Represents the drawing rect in world coordinates.
814
+ */
815
+ export interface IDrawingRect {
816
+ left: number;
817
+ top: number;
818
+ width: number;
819
+ height: number;
820
+ flipX?: boolean;
821
+ flipY?: boolean;
822
+ angle?: number;
823
+ }
824
+ /**
825
+ * Result from computing a new connector line layout.
826
+ * Contains both the normalized local points and the world rect.
827
+ */
828
+ export interface IConnectorLayoutResult {
829
+ /** Local points in normalized space (0,0 to width,height, no flip) */
830
+ localPoints: IShapePoint[];
831
+ /** World rect including position, size, and flip flags */
832
+ worldRect: IDrawingRect;
833
+ worldPoints: IShapePoint[];
834
+ }
835
+ export type ILineType = ShapeTypeEnum.Line | ShapeTypeEnum.StraightConnector1 | ShapeTypeEnum.BentConnector2 | ShapeTypeEnum.BentConnector3 | ShapeTypeEnum.BentConnector4 | ShapeTypeEnum.BentConnector5 | ShapeTypeEnum.CurvedConnector2 | ShapeTypeEnum.CurvedConnector3 | ShapeTypeEnum.CurvedConnector4 | ShapeTypeEnum.CurvedConnector5;
836
+ export {};