@visactor/vrender 0.15.1 → 0.15.3-alpha.0

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 (243) hide show
  1. package/cjs/canvas/contributions/browser/context.d.ts +1 -0
  2. package/cjs/common/polygon.d.ts +3 -3
  3. package/cjs/common/polygon.js +8 -4
  4. package/cjs/common/polygon.js.map +1 -1
  5. package/cjs/core/contributions/env/wx-contribution.d.ts +1 -1
  6. package/cjs/core/contributions/env/wx-contribution.js +3 -3
  7. package/cjs/core/contributions/env/wx-contribution.js.map +1 -1
  8. package/cjs/core/stage.d.ts +2 -5
  9. package/cjs/core/stage.js.map +1 -1
  10. package/cjs/graphic/arc.d.ts +31 -0
  11. package/cjs/graphic/arc.js +6 -1
  12. package/cjs/graphic/arc.js.map +1 -1
  13. package/cjs/graphic/arc3d.d.ts +31 -0
  14. package/cjs/graphic/arc3d.js +7 -2
  15. package/cjs/graphic/arc3d.js.map +1 -1
  16. package/cjs/graphic/area.d.ts +32 -0
  17. package/cjs/graphic/area.js +7 -1
  18. package/cjs/graphic/area.js.map +1 -1
  19. package/cjs/graphic/circle.d.ts +30 -0
  20. package/cjs/graphic/circle.js +4 -1
  21. package/cjs/graphic/circle.js.map +1 -1
  22. package/cjs/graphic/config.d.ts +2 -1
  23. package/cjs/graphic/config.js +11 -6
  24. package/cjs/graphic/config.js.map +1 -1
  25. package/cjs/graphic/glyph.d.ts +30 -0
  26. package/cjs/graphic/glyph.js +4 -1
  27. package/cjs/graphic/glyph.js.map +1 -1
  28. package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -0
  29. package/cjs/graphic/graphic-service/graphic-service.js +4 -0
  30. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  31. package/cjs/graphic/graphic.d.ts +30 -0
  32. package/cjs/graphic/graphic.js +32 -2
  33. package/cjs/graphic/graphic.js.map +1 -1
  34. package/cjs/graphic/group.d.ts +30 -0
  35. package/cjs/graphic/group.js +4 -1
  36. package/cjs/graphic/group.js.map +1 -1
  37. package/cjs/graphic/image.d.ts +33 -0
  38. package/cjs/graphic/image.js +8 -1
  39. package/cjs/graphic/image.js.map +1 -1
  40. package/cjs/graphic/line.d.ts +32 -0
  41. package/cjs/graphic/line.js +7 -1
  42. package/cjs/graphic/line.js.map +1 -1
  43. package/cjs/graphic/node-tree.d.ts +1 -1
  44. package/cjs/graphic/node-tree.js +2 -2
  45. package/cjs/graphic/node-tree.js.map +1 -1
  46. package/cjs/graphic/path.d.ts +32 -0
  47. package/cjs/graphic/path.js +7 -1
  48. package/cjs/graphic/path.js.map +1 -1
  49. package/cjs/graphic/polygon.d.ts +30 -0
  50. package/cjs/graphic/polygon.js +4 -1
  51. package/cjs/graphic/polygon.js.map +1 -1
  52. package/cjs/graphic/pyramid3d.d.ts +30 -0
  53. package/cjs/graphic/pyramid3d.js +5 -2
  54. package/cjs/graphic/pyramid3d.js.map +1 -1
  55. package/cjs/graphic/rect.d.ts +30 -0
  56. package/cjs/graphic/rect.js +4 -1
  57. package/cjs/graphic/rect.js.map +1 -1
  58. package/cjs/graphic/rect3d.d.ts +30 -0
  59. package/cjs/graphic/rect3d.js +5 -2
  60. package/cjs/graphic/rect3d.js.map +1 -1
  61. package/cjs/graphic/richtext.d.ts +37 -0
  62. package/cjs/graphic/richtext.js +12 -1
  63. package/cjs/graphic/richtext.js.map +1 -1
  64. package/cjs/graphic/symbol.d.ts +31 -0
  65. package/cjs/graphic/symbol.js +6 -1
  66. package/cjs/graphic/symbol.js.map +1 -1
  67. package/cjs/graphic/text.d.ts +49 -0
  68. package/cjs/graphic/text.js +43 -6
  69. package/cjs/graphic/text.js.map +1 -1
  70. package/cjs/graphic/wrap-text.d.ts +1 -0
  71. package/cjs/graphic/wrap-text.js +3 -0
  72. package/cjs/graphic/wrap-text.js.map +1 -1
  73. package/cjs/index.d.ts +1 -1
  74. package/cjs/index.js +1 -1
  75. package/cjs/index.js.map +1 -1
  76. package/cjs/interface/graphic/polygon.d.ts +1 -0
  77. package/cjs/interface/graphic/polygon.js.map +1 -1
  78. package/cjs/interface/graphic/text.d.ts +3 -0
  79. package/cjs/interface/graphic/text.js.map +1 -1
  80. package/cjs/interface/graphic-service.d.ts +2 -0
  81. package/cjs/interface/graphic-service.js.map +1 -1
  82. package/cjs/interface/graphic.d.ts +5 -1
  83. package/cjs/interface/graphic.js.map +1 -1
  84. package/cjs/interface/picker.d.ts +5 -5
  85. package/cjs/interface/picker.js.map +1 -1
  86. package/cjs/interface/stage.d.ts +2 -7
  87. package/cjs/interface/stage.js.map +1 -1
  88. package/cjs/picker/canvas-picker-service.d.ts +2 -2
  89. package/cjs/picker/canvas-picker-service.js +6 -4
  90. package/cjs/picker/canvas-picker-service.js.map +1 -1
  91. package/cjs/picker/contributions/canvas-picker/rect-picker.js +2 -2
  92. package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  93. package/cjs/picker/global-picker-service.d.ts +1 -1
  94. package/cjs/picker/global-picker-service.js +14 -4
  95. package/cjs/picker/global-picker-service.js.map +1 -1
  96. package/cjs/picker/math-picker-service.d.ts +2 -2
  97. package/cjs/picker/math-picker-service.js +5 -1
  98. package/cjs/picker/math-picker-service.js.map +1 -1
  99. package/cjs/picker/pick-interceptor.d.ts +3 -3
  100. package/cjs/picker/pick-interceptor.js +4 -4
  101. package/cjs/picker/pick-interceptor.js.map +1 -1
  102. package/cjs/picker/picker-service.d.ts +1 -1
  103. package/cjs/picker/picker-service.js +5 -4
  104. package/cjs/picker/picker-service.js.map +1 -1
  105. package/cjs/plugins/builtin-plugin/html-attribute-plugin.d.ts +1 -0
  106. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +7 -0
  107. package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  108. package/cjs/render/contributions/render/draw-interceptor.d.ts +6 -0
  109. package/cjs/render/contributions/render/draw-interceptor.js +27 -1
  110. package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
  111. package/cjs/render/contributions/render/line-render.js +1 -1
  112. package/cjs/render/contributions/render/line-render.js.map +1 -1
  113. package/cjs/render/contributions/render/module.js +2 -0
  114. package/cjs/render/contributions/render/module.js.map +1 -1
  115. package/cjs/render/contributions/render/polygon-render.js +3 -3
  116. package/cjs/render/contributions/render/polygon-render.js.map +1 -1
  117. package/cjs/render/contributions/render/text-render.js +9 -2
  118. package/cjs/render/contributions/render/text-render.js.map +1 -1
  119. package/cjs/render/contributions/render/utils.js +4 -3
  120. package/cjs/render/contributions/render/utils.js.map +1 -1
  121. package/dist/index.js +279 -46
  122. package/dist/index.min.js +1 -1
  123. package/es/canvas/contributions/browser/context.d.ts +1 -0
  124. package/es/common/polygon.d.ts +3 -3
  125. package/es/common/polygon.js +8 -4
  126. package/es/common/polygon.js.map +1 -1
  127. package/es/core/contributions/env/wx-contribution.d.ts +1 -1
  128. package/es/core/contributions/env/wx-contribution.js +3 -3
  129. package/es/core/contributions/env/wx-contribution.js.map +1 -1
  130. package/es/core/stage.d.ts +2 -5
  131. package/es/core/stage.js.map +1 -1
  132. package/es/graphic/arc.d.ts +31 -0
  133. package/es/graphic/arc.js +8 -1
  134. package/es/graphic/arc.js.map +1 -1
  135. package/es/graphic/arc3d.d.ts +31 -0
  136. package/es/graphic/arc3d.js +9 -0
  137. package/es/graphic/arc3d.js.map +1 -1
  138. package/es/graphic/area.d.ts +32 -0
  139. package/es/graphic/area.js +9 -1
  140. package/es/graphic/area.js.map +1 -1
  141. package/es/graphic/circle.d.ts +30 -0
  142. package/es/graphic/circle.js +6 -1
  143. package/es/graphic/circle.js.map +1 -1
  144. package/es/graphic/config.d.ts +2 -1
  145. package/es/graphic/config.js +10 -4
  146. package/es/graphic/config.js.map +1 -1
  147. package/es/graphic/glyph.d.ts +30 -0
  148. package/es/graphic/glyph.js +6 -1
  149. package/es/graphic/glyph.js.map +1 -1
  150. package/es/graphic/graphic-service/graphic-service.d.ts +2 -0
  151. package/es/graphic/graphic-service/graphic-service.js +4 -0
  152. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  153. package/es/graphic/graphic.d.ts +30 -0
  154. package/es/graphic/graphic.js +31 -1
  155. package/es/graphic/graphic.js.map +1 -1
  156. package/es/graphic/group.d.ts +30 -0
  157. package/es/graphic/group.js +6 -1
  158. package/es/graphic/group.js.map +1 -1
  159. package/es/graphic/image.d.ts +33 -0
  160. package/es/graphic/image.js +10 -1
  161. package/es/graphic/image.js.map +1 -1
  162. package/es/graphic/line.d.ts +32 -0
  163. package/es/graphic/line.js +9 -1
  164. package/es/graphic/line.js.map +1 -1
  165. package/es/graphic/node-tree.d.ts +1 -1
  166. package/es/graphic/node-tree.js +2 -2
  167. package/es/graphic/node-tree.js.map +1 -1
  168. package/es/graphic/path.d.ts +32 -0
  169. package/es/graphic/path.js +9 -1
  170. package/es/graphic/path.js.map +1 -1
  171. package/es/graphic/polygon.d.ts +30 -0
  172. package/es/graphic/polygon.js +6 -1
  173. package/es/graphic/polygon.js.map +1 -1
  174. package/es/graphic/pyramid3d.d.ts +30 -0
  175. package/es/graphic/pyramid3d.js +7 -0
  176. package/es/graphic/pyramid3d.js.map +1 -1
  177. package/es/graphic/rect.d.ts +30 -0
  178. package/es/graphic/rect.js +6 -1
  179. package/es/graphic/rect.js.map +1 -1
  180. package/es/graphic/rect3d.d.ts +30 -0
  181. package/es/graphic/rect3d.js +7 -0
  182. package/es/graphic/rect3d.js.map +1 -1
  183. package/es/graphic/richtext.d.ts +37 -0
  184. package/es/graphic/richtext.js +14 -1
  185. package/es/graphic/richtext.js.map +1 -1
  186. package/es/graphic/symbol.d.ts +31 -0
  187. package/es/graphic/symbol.js +7 -2
  188. package/es/graphic/symbol.js.map +1 -1
  189. package/es/graphic/text.d.ts +49 -0
  190. package/es/graphic/text.js +45 -6
  191. package/es/graphic/text.js.map +1 -1
  192. package/es/graphic/wrap-text.d.ts +1 -0
  193. package/es/graphic/wrap-text.js +3 -0
  194. package/es/graphic/wrap-text.js.map +1 -1
  195. package/es/index.d.ts +1 -1
  196. package/es/index.js +1 -1
  197. package/es/index.js.map +1 -1
  198. package/es/interface/graphic/polygon.d.ts +1 -0
  199. package/es/interface/graphic/polygon.js.map +1 -1
  200. package/es/interface/graphic/text.d.ts +3 -0
  201. package/es/interface/graphic/text.js.map +1 -1
  202. package/es/interface/graphic-service.d.ts +2 -0
  203. package/es/interface/graphic-service.js.map +1 -1
  204. package/es/interface/graphic.d.ts +5 -1
  205. package/es/interface/graphic.js.map +1 -1
  206. package/es/interface/picker.d.ts +5 -5
  207. package/es/interface/picker.js.map +1 -1
  208. package/es/interface/stage.d.ts +2 -7
  209. package/es/interface/stage.js.map +1 -1
  210. package/es/picker/canvas-picker-service.d.ts +2 -2
  211. package/es/picker/canvas-picker-service.js +6 -4
  212. package/es/picker/canvas-picker-service.js.map +1 -1
  213. package/es/picker/contributions/canvas-picker/rect-picker.js +2 -2
  214. package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
  215. package/es/picker/global-picker-service.d.ts +1 -1
  216. package/es/picker/global-picker-service.js +14 -4
  217. package/es/picker/global-picker-service.js.map +1 -1
  218. package/es/picker/math-picker-service.d.ts +2 -2
  219. package/es/picker/math-picker-service.js +5 -1
  220. package/es/picker/math-picker-service.js.map +1 -1
  221. package/es/picker/pick-interceptor.d.ts +3 -3
  222. package/es/picker/pick-interceptor.js +4 -4
  223. package/es/picker/pick-interceptor.js.map +1 -1
  224. package/es/picker/picker-service.d.ts +1 -1
  225. package/es/picker/picker-service.js +4 -4
  226. package/es/picker/picker-service.js.map +1 -1
  227. package/es/plugins/builtin-plugin/html-attribute-plugin.d.ts +1 -0
  228. package/es/plugins/builtin-plugin/html-attribute-plugin.js +7 -0
  229. package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
  230. package/es/render/contributions/render/draw-interceptor.d.ts +6 -0
  231. package/es/render/contributions/render/draw-interceptor.js +27 -0
  232. package/es/render/contributions/render/draw-interceptor.js.map +1 -1
  233. package/es/render/contributions/render/line-render.js +1 -1
  234. package/es/render/contributions/render/line-render.js.map +1 -1
  235. package/es/render/contributions/render/module.js +2 -1
  236. package/es/render/contributions/render/module.js.map +1 -1
  237. package/es/render/contributions/render/polygon-render.js +3 -3
  238. package/es/render/contributions/render/polygon-render.js.map +1 -1
  239. package/es/render/contributions/render/text-render.js +9 -2
  240. package/es/render/contributions/render/text-render.js.map +1 -1
  241. package/es/render/contributions/render/utils.js +2 -2
  242. package/es/render/contributions/render/utils.js.map +1 -1
  243. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -9371,7 +9371,8 @@
9371
9371
  scaleIn3d: false,
9372
9372
  direction: 'horizontal',
9373
9373
  wordBreak: 'break-all',
9374
- ignoreBuf: false
9374
+ ignoreBuf: false,
9375
+ verticalMode: 0
9375
9376
  };
9376
9377
  const DefaultStyle = Object.assign(Object.assign(Object.assign({ opacity: 1, background: null, texture: null, textureColor: 'black', textureSize: 10, texturePadding: 2, backgroundMode: 0, blur: 0, cursor: null, html: null }, DefaultFillStyle), DefaultStrokeStyle), DefaultLayout);
9377
9378
  const DefaultConnectAttribute = {
@@ -9380,7 +9381,10 @@
9380
9381
  connectedX: NaN,
9381
9382
  connectedY: NaN
9382
9383
  };
9383
- const DefaultAttribute = Object.assign(Object.assign({ strokeSeg: null, pickable: true, childrenPickable: true, visible: true, zIndex: 0, layout: null, boundsPadding: 0, pickMode: 'accurate', customPickShape: null, boundsMode: 'accurate', keepDirIn3d: true, shadowRootIdx: 1 }, DefaultStyle), DefaultTransform);
9384
+ const DefaultDebugAttribute = {
9385
+ _debug_bounds: false
9386
+ };
9387
+ const DefaultAttribute = Object.assign(Object.assign(Object.assign({ strokeSeg: null, pickable: true, childrenPickable: true, visible: true, zIndex: 0, layout: null, boundsPadding: 0, pickMode: 'accurate', customPickShape: null, boundsMode: 'accurate', keepDirIn3d: true, shadowRootIdx: 1 }, DefaultDebugAttribute), DefaultStyle), DefaultTransform);
9384
9388
  function addAttributeToPrototype(obj, c, keys) {
9385
9389
  keys.forEach(key => {
9386
9390
  c.prototype[key] = obj[key];
@@ -9398,7 +9402,7 @@
9398
9402
  const DefaultPathAttribute = Object.assign(Object.assign({}, DefaultAttribute), { path: new CustomPath2D(), customPath: () => {
9399
9403
  console.warn('空函数');
9400
9404
  } });
9401
- const DefaultPolygonAttribute = Object.assign(Object.assign({}, DefaultAttribute), { points: [], cornerRadius: 0 });
9405
+ const DefaultPolygonAttribute = Object.assign(Object.assign({}, DefaultAttribute), { points: [], cornerRadius: 0, closePath: true });
9402
9406
  const DefaultRectAttribute = Object.assign(Object.assign({}, DefaultAttribute), { width: 0, height: 0, strokeBoundsBuffer: 0, cornerRadius: 0 });
9403
9407
  const DefaultRect3dAttribute = Object.assign(Object.assign({}, DefaultAttribute), { width: 0, height: 0, cornerRadius: 0, length: 0 });
9404
9408
  const DefaultSymbolAttribute = Object.assign(Object.assign({}, DefaultAttribute), { symbolType: 'circle', size: 10, keepDirIn3d: true });
@@ -10980,11 +10984,11 @@
10980
10984
  forEach(cb) {
10981
10985
  return this.forEachChildren(cb);
10982
10986
  }
10983
- appendChild(node) {
10987
+ appendChild(node, highPerformance = true) {
10984
10988
  if (this._uid === node._uid) {
10985
10989
  return null;
10986
10990
  }
10987
- if (node.isAncestorsOf(this)) {
10991
+ if (!highPerformance && node.isAncestorsOf(this)) {
10988
10992
  throw new Error('【Node::appendChild】不能将父辈元素append为子元素');
10989
10993
  }
10990
10994
  node.parent && node.parent.removeChild(node);
@@ -17130,6 +17134,35 @@
17130
17134
  const tempConstantScaleXYKey = ['scaleX', 'scaleY'];
17131
17135
  const tempConstantAngleKey = ['angle'];
17132
17136
  const point = new Point();
17137
+ const NOWORK_ANIMATE_ATTR = {
17138
+ strokeSeg: 1,
17139
+ boundsPadding: 2,
17140
+ pickMode: 1,
17141
+ boundsMode: 1,
17142
+ customPickShape: 1,
17143
+ pickable: 1,
17144
+ childrenPickable: 1,
17145
+ visible: 1,
17146
+ zIndex: 1,
17147
+ layout: 1,
17148
+ keepDirIn3d: 1,
17149
+ outerBorder: 1,
17150
+ innerBorder: 1,
17151
+ lineDash: 1,
17152
+ lineCap: 1,
17153
+ lineJoin: 1,
17154
+ miterLimit: 2,
17155
+ strokeBoundsBuffer: 2,
17156
+ scaleCenter: 1,
17157
+ anchor: 1,
17158
+ anchor3d: 1,
17159
+ postMatrix: 1,
17160
+ backgroundMode: 2,
17161
+ background: 1,
17162
+ texture: 1,
17163
+ cursor: 1,
17164
+ html: 1
17165
+ };
17133
17166
  class Graphic extends Node {
17134
17167
  static mixin(source) {
17135
17168
  const keys = Object.keys(source);
@@ -18058,6 +18091,7 @@
18058
18091
  }
18059
18092
  release() {
18060
18093
  this.releaseStatus = 'released';
18094
+ application.graphicService.onRelease(this);
18061
18095
  }
18062
18096
  _emitCustomEvent(type, context) {
18063
18097
  var _a, _b;
@@ -20417,7 +20451,11 @@
20417
20451
  clone() {
20418
20452
  return new Group(Object.assign({}, this.attribute));
20419
20453
  }
20454
+ getNoWorkAnimateAttr() {
20455
+ return Group.NOWORK_ANIMATE_ATTR;
20456
+ }
20420
20457
  }
20458
+ Group.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
20421
20459
 
20422
20460
  const LayerHandlerContribution = Symbol.for('LayerHandlerContribution');
20423
20461
  class Layer extends Group {
@@ -20972,6 +21010,9 @@
20972
21010
  context.moveTo(cx + xors, cy + yors);
20973
21011
  context.arc(cx, cy, outerRadius, outerStartAngle, outerEndAngle, !clockwise);
20974
21012
  }
21013
+ else {
21014
+ context.moveTo(cx + outerRadius * cos(outerEndAngle), cy + outerRadius * sin(outerEndAngle));
21015
+ }
20975
21016
  }
20976
21017
  if (!(innerRadius > epsilon) || innerDeltaAngle < 0.001) {
20977
21018
  if (!partStroke || partStroke[1]) {
@@ -21039,7 +21080,7 @@
21039
21080
  context.closePath();
21040
21081
  }
21041
21082
  else if (partStroke[3]) {
21042
- context.lineTo(cx + outerRadius * cos(endAngle), cy + outerRadius * cos(endAngle));
21083
+ context.lineTo(cx + outerRadius * cos(startAngle), cy + outerRadius * sin(startAngle));
21043
21084
  }
21044
21085
  return collapsedToLine;
21045
21086
  }
@@ -21697,7 +21738,11 @@
21697
21738
  clone() {
21698
21739
  return new Circle(Object.assign({}, this.attribute));
21699
21740
  }
21741
+ getNoWorkAnimateAttr() {
21742
+ return Circle.NOWORK_ANIMATE_ATTR;
21743
+ }
21700
21744
  }
21745
+ Circle.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
21701
21746
 
21702
21747
  function getContextFont(text, defaultAttr = {}, fontSizeScale) {
21703
21748
  if (!fontSizeScale) {
@@ -21903,6 +21948,8 @@
21903
21948
  'fontWeight',
21904
21949
  'ellipsis',
21905
21950
  'lineHeight',
21951
+ 'direction',
21952
+ 'wordBreak',
21906
21953
  ...GRAPHIC_UPDATE_TAG_KEY
21907
21954
  ];
21908
21955
  class Text extends Graphic {
@@ -22047,15 +22094,27 @@
22047
22094
  }
22048
22095
  return this._AABBBounds;
22049
22096
  }
22097
+ getBaselineMapAlign() {
22098
+ return Text.baselineMapAlign;
22099
+ }
22100
+ getAlignMapBaseline() {
22101
+ return Text.alignMapBaseline;
22102
+ }
22050
22103
  updateVerticalSinglelineAABBBounds(text) {
22051
- var _a;
22104
+ var _a, _b, _c;
22052
22105
  const textTheme = getTheme(this).text;
22053
22106
  const textMeasure = application.graphicUtil.textMeasure;
22054
22107
  let width;
22055
22108
  const attribute = this.attribute;
22056
22109
  const { ignoreBuf = textTheme.ignoreBuf } = attribute;
22057
22110
  const buf = ignoreBuf ? 0 : 2;
22058
- const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, fontFamily = textTheme.fontFamily, stroke = textTheme.stroke, lineHeight = (_a = attribute.lineHeight) !== null && _a !== void 0 ? _a : (attribute.fontSize || textTheme.fontSize) + buf, lineWidth = textTheme.lineWidth, wordBreak = textTheme.wordBreak } = attribute;
22111
+ const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, fontFamily = textTheme.fontFamily, stroke = textTheme.stroke, lineHeight = (_a = attribute.lineHeight) !== null && _a !== void 0 ? _a : (attribute.fontSize || textTheme.fontSize) + buf, lineWidth = textTheme.lineWidth, verticalMode = textTheme.verticalMode } = attribute;
22112
+ let { textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline } = attribute;
22113
+ if (!verticalMode) {
22114
+ const t = textAlign;
22115
+ textAlign = (_b = Text.baselineMapAlign[textBaseline]) !== null && _b !== void 0 ? _b : 'left';
22116
+ textBaseline = (_c = Text.alignMapBaseline[t]) !== null && _c !== void 0 ? _c : 'top';
22117
+ }
22059
22118
  if (!this.shouldUpdateShape() && this.cache) {
22060
22119
  width = this.cache.clipedWidth;
22061
22120
  const dx = textDrawOffsetX(textAlign, width);
@@ -22131,14 +22190,20 @@
22131
22190
  return this._AABBBounds;
22132
22191
  }
22133
22192
  updateVerticalMultilineAABBBounds(text) {
22134
- var _a;
22193
+ var _a, _b, _c;
22135
22194
  const textTheme = getTheme(this).text;
22136
22195
  const textMeasure = application.graphicUtil.textMeasure;
22137
22196
  let width;
22138
22197
  const attribute = this.attribute;
22139
22198
  const { ignoreBuf = textTheme.ignoreBuf } = attribute;
22140
22199
  const buf = ignoreBuf ? 0 : 2;
22141
- const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline, fontFamily = textTheme.fontFamily, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, stroke = textTheme.stroke, lineHeight = (_a = attribute.lineHeight) !== null && _a !== void 0 ? _a : (attribute.fontSize || textTheme.fontSize) + buf, lineWidth = textTheme.lineWidth, wordBreak = textTheme.wordBreak } = attribute;
22200
+ const { maxLineWidth = textTheme.maxLineWidth, ellipsis = textTheme.ellipsis, fontFamily = textTheme.fontFamily, fontSize = textTheme.fontSize, fontWeight = textTheme.fontWeight, stroke = textTheme.stroke, lineHeight = (_a = attribute.lineHeight) !== null && _a !== void 0 ? _a : (attribute.fontSize || textTheme.fontSize) + buf, lineWidth = textTheme.lineWidth, verticalMode = textTheme.verticalMode } = attribute;
22201
+ let { textAlign = textTheme.textAlign, textBaseline = textTheme.textBaseline } = attribute;
22202
+ if (!verticalMode) {
22203
+ const t = textAlign;
22204
+ textAlign = (_b = Text.baselineMapAlign[textBaseline]) !== null && _b !== void 0 ? _b : 'left';
22205
+ textBaseline = (_c = Text.alignMapBaseline[t]) !== null && _c !== void 0 ? _c : 'top';
22206
+ }
22142
22207
  width = 0;
22143
22208
  if (!this.shouldUpdateShape() && this.cache) {
22144
22209
  this.cache.verticalList.forEach(item => {
@@ -22225,7 +22290,21 @@
22225
22290
  clone() {
22226
22291
  return new Text(Object.assign({}, this.attribute));
22227
22292
  }
22293
+ getNoWorkAnimateAttr() {
22294
+ return Text.NOWORK_ANIMATE_ATTR;
22295
+ }
22228
22296
  }
22297
+ Text.NOWORK_ANIMATE_ATTR = Object.assign({ ellipsis: 1, wordBreak: 1, direction: 1, textAlign: 1, textBaseline: 1, fontFamily: 1, fontWeight: 1 }, NOWORK_ANIMATE_ATTR);
22298
+ Text.baselineMapAlign = {
22299
+ top: 'left',
22300
+ bottom: 'right',
22301
+ middle: 'center'
22302
+ };
22303
+ Text.alignMapBaseline = {
22304
+ left: 'top',
22305
+ right: 'bottom',
22306
+ center: 'middle'
22307
+ };
22229
22308
 
22230
22309
  const WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp'];
22231
22310
  class WrapText extends Text {
@@ -22360,6 +22439,9 @@
22360
22439
  }
22361
22440
  return super.needUpdateTag(key);
22362
22441
  }
22442
+ getNoWorkAnimateAttr() {
22443
+ return WrapText.NOWORK_ANIMATE_ATTR;
22444
+ }
22363
22445
  }
22364
22446
 
22365
22447
  function circle(ctx, r, x, y, z) {
@@ -23366,8 +23448,12 @@
23366
23448
  clone() {
23367
23449
  return new Symbol(Object.assign({}, this.attribute));
23368
23450
  }
23451
+ getNoWorkAnimateAttr() {
23452
+ return Symbol.NOWORK_ANIMATE_ATTR;
23453
+ }
23369
23454
  };
23370
23455
  Symbol$1.userSymbolMap = {};
23456
+ Symbol$1.NOWORK_ANIMATE_ATTR = Object.assign({ symbolType: 1 }, NOWORK_ANIMATE_ATTR);
23371
23457
 
23372
23458
  const LINE_UPDATE_TAG_KEY = ['segments', 'points', 'curveType', ...GRAPHIC_UPDATE_TAG_KEY];
23373
23459
  let Line$1 = class Line extends Graphic {
@@ -23472,7 +23558,11 @@
23472
23558
  clone() {
23473
23559
  return new Line(Object.assign({}, this.attribute));
23474
23560
  }
23561
+ getNoWorkAnimateAttr() {
23562
+ return Line.NOWORK_ANIMATE_ATTR;
23563
+ }
23475
23564
  };
23565
+ Line$1.NOWORK_ANIMATE_ATTR = Object.assign({ segments: 1, curveType: 1 }, NOWORK_ANIMATE_ATTR);
23476
23566
 
23477
23567
  const RECT_UPDATE_TAG_KEY = ['width', 'height', 'cornerRadius', ...GRAPHIC_UPDATE_TAG_KEY];
23478
23568
  class Rect extends Graphic {
@@ -23540,7 +23630,11 @@
23540
23630
  clone() {
23541
23631
  return new Rect(Object.assign({}, this.attribute));
23542
23632
  }
23633
+ getNoWorkAnimateAttr() {
23634
+ return Rect.NOWORK_ANIMATE_ATTR;
23635
+ }
23543
23636
  }
23637
+ Rect.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
23544
23638
 
23545
23639
  const CUBE_VERTICES = [
23546
23640
  [0, 0, 0],
@@ -23588,7 +23682,11 @@
23588
23682
  ];
23589
23683
  return faces;
23590
23684
  }
23685
+ getNoWorkAnimateAttr() {
23686
+ return Rect3d.NOWORK_ANIMATE_ATTR;
23687
+ }
23591
23688
  }
23689
+ Rect3d.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
23592
23690
 
23593
23691
  class Glyph extends Graphic {
23594
23692
  constructor(params) {
@@ -23754,7 +23852,11 @@
23754
23852
  glyph.setSubGraphic(this.subGraphic.map(g => g.clone()));
23755
23853
  return glyph;
23756
23854
  }
23855
+ getNoWorkAnimateAttr() {
23856
+ return Glyph.NOWORK_ANIMATE_ATTR;
23857
+ }
23757
23858
  }
23859
+ Glyph.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
23758
23860
 
23759
23861
  class Frame {
23760
23862
  constructor(left, top, width, height, ellipsis, wordBreak, verticalDirection, globalAlign, globalBaseline, layoutDirection, isWidthMax, isHeightMax, singleLine, icons) {
@@ -24306,7 +24408,11 @@
24306
24408
  clone() {
24307
24409
  return new Image(Object.assign({}, this.attribute));
24308
24410
  }
24411
+ getNoWorkAnimateAttr() {
24412
+ return Image.NOWORK_ANIMATE_ATTR;
24413
+ }
24309
24414
  }
24415
+ Image.NOWORK_ANIMATE_ATTR = Object.assign({ image: 1, repeatX: 1, repeatY: 1 }, NOWORK_ANIMATE_ATTR);
24310
24416
 
24311
24417
  class RichTextIcon extends Image {
24312
24418
  constructor(params) {
@@ -24914,7 +25020,11 @@
24914
25020
  });
24915
25021
  return pickIcon;
24916
25022
  }
25023
+ getNoWorkAnimateAttr() {
25024
+ return RichText.NOWORK_ANIMATE_ATTR;
25025
+ }
24917
25026
  }
25027
+ RichText.NOWORK_ANIMATE_ATTR = Object.assign({ ellipsis: 1, wordBreak: 1, verticalDirection: 1, textAlign: 1, textBaseline: 1, textConfig: 1, layoutDirection: 1 }, NOWORK_ANIMATE_ATTR);
24918
25028
 
24919
25029
  const PATH_UPDATE_TAG_KEY = ['path', 'customPath', ...GRAPHIC_UPDATE_TAG_KEY];
24920
25030
  class Path extends Graphic {
@@ -25008,7 +25118,11 @@
25008
25118
  clone() {
25009
25119
  return new Path(Object.assign({}, this.attribute));
25010
25120
  }
25121
+ getNoWorkAnimateAttr() {
25122
+ return Path.NOWORK_ANIMATE_ATTR;
25123
+ }
25011
25124
  }
25125
+ Path.NOWORK_ANIMATE_ATTR = Object.assign({ path: 1, customPath: 1 }, NOWORK_ANIMATE_ATTR);
25012
25126
 
25013
25127
  const AREA_UPDATE_TAG_KEY = ['segments', 'points', 'curveType', ...GRAPHIC_UPDATE_TAG_KEY];
25014
25128
  class Area extends Graphic {
@@ -25122,7 +25236,11 @@
25122
25236
  clone() {
25123
25237
  return new Area(Object.assign({}, this.attribute));
25124
25238
  }
25239
+ getNoWorkAnimateAttr() {
25240
+ return Area.NOWORK_ANIMATE_ATTR;
25241
+ }
25125
25242
  }
25243
+ Area.NOWORK_ANIMATE_ATTR = Object.assign({ segments: 1, curveType: 1 }, NOWORK_ANIMATE_ATTR);
25126
25244
 
25127
25245
  const ARC_UPDATE_TAG_KEY = [
25128
25246
  'innerRadius',
@@ -25326,7 +25444,11 @@
25326
25444
  clone() {
25327
25445
  return new Arc(Object.assign({}, this.attribute));
25328
25446
  }
25447
+ getNoWorkAnimateAttr() {
25448
+ return Arc.NOWORK_ANIMATE_ATTR;
25449
+ }
25329
25450
  }
25451
+ Arc.NOWORK_ANIMATE_ATTR = Object.assign({ cap: 1 }, NOWORK_ANIMATE_ATTR);
25330
25452
 
25331
25453
  class Arc3d extends Arc {
25332
25454
  constructor(params) {
@@ -25347,7 +25469,11 @@
25347
25469
  this.clearUpdateBoundTag();
25348
25470
  return this._AABBBounds;
25349
25471
  }
25472
+ getNoWorkAnimateAttr() {
25473
+ return Arc3d.NOWORK_ANIMATE_ATTR;
25474
+ }
25350
25475
  }
25476
+ Arc3d.NOWORK_ANIMATE_ATTR = Object.assign({ cap: 1 }, NOWORK_ANIMATE_ATTR);
25351
25477
 
25352
25478
  const POLYGON_UPDATE_TAG_KEY = ['points', 'cornerRadius', ...GRAPHIC_UPDATE_TAG_KEY];
25353
25479
  class Polygon extends Graphic {
@@ -25423,7 +25549,11 @@
25423
25549
  clone() {
25424
25550
  return new Polygon(Object.assign({}, this.attribute));
25425
25551
  }
25552
+ getNoWorkAnimateAttr() {
25553
+ return Polygon.NOWORK_ANIMATE_ATTR;
25554
+ }
25426
25555
  }
25556
+ Polygon.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
25427
25557
 
25428
25558
  class Pyramid3d extends Polygon {
25429
25559
  constructor(params) {
@@ -25519,7 +25649,11 @@
25519
25649
  _isValid() {
25520
25650
  return super._isValid() && this.attribute.points.length === 4;
25521
25651
  }
25652
+ getNoWorkAnimateAttr() {
25653
+ return Pyramid3d.NOWORK_ANIMATE_ATTR;
25654
+ }
25522
25655
  }
25656
+ Pyramid3d.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
25523
25657
 
25524
25658
  let DefaultOuterBorderBoundsContribution = class DefaultOuterBorderBoundsContribution {
25525
25659
  updateBounds(attribute, theme, aabbBounds, graphic) {
@@ -26105,6 +26239,7 @@
26105
26239
  onAttributeUpdate: new SyncHook(['graphic']),
26106
26240
  onSetStage: new SyncHook(['graphic', 'stage']),
26107
26241
  onRemove: new SyncHook(['graphic']),
26242
+ onRelease: new SyncHook(['graphic']),
26108
26243
  onAddIncremental: new SyncHook(['graphic', 'group', 'stage']),
26109
26244
  onClearIncremental: new SyncHook(['graphic', 'group', 'stage']),
26110
26245
  beforeUpdateAABBBounds: new SyncHook([
@@ -26139,6 +26274,11 @@
26139
26274
  this.hooks.onRemove.call(graphic);
26140
26275
  }
26141
26276
  }
26277
+ onRelease(graphic) {
26278
+ if (this.hooks.onRelease.taps.length) {
26279
+ this.hooks.onRelease.call(graphic);
26280
+ }
26281
+ }
26142
26282
  onAddIncremental(graphic, group, stage) {
26143
26283
  if (this.hooks.onAddIncremental.taps.length) {
26144
26284
  this.hooks.onAddIncremental.call(graphic, group, stage);
@@ -27121,7 +27261,11 @@
27121
27261
  offsetY,
27122
27262
  offsetZ: z
27123
27263
  });
27124
- if (line.cache && !isArray$1(line.cache) && line.attribute.curveType && line.attribute.curveType.includes('Closed')) {
27264
+ if (line.cache &&
27265
+ !isArray$1(line.cache) &&
27266
+ line.cache.curves.every(c => c.defined) &&
27267
+ line.attribute.curveType &&
27268
+ line.attribute.curveType.includes('Closed')) {
27125
27269
  context.closePath();
27126
27270
  }
27127
27271
  context.setShadowStyle && context.setShadowStyle(line, attribute, defaultAttribute);
@@ -28387,10 +28531,16 @@
28387
28531
  this.numberType = TEXT_NUMBER_TYPE;
28388
28532
  }
28389
28533
  drawShape(text, context, x, y, drawContext, params, fillCb, strokeCb) {
28390
- var _a;
28534
+ var _a, _b, _c;
28391
28535
  const textAttribute = getTheme(text, params === null || params === void 0 ? void 0 : params.theme).text;
28392
- const { text: str, fill = textAttribute.fill, stroke = textAttribute.stroke, fillOpacity = textAttribute.fillOpacity, strokeOpacity = textAttribute.strokeOpacity, opacity = textAttribute.opacity, lineWidth = textAttribute.lineWidth, visible = textAttribute.visible, underline = textAttribute.underline, lineThrough = textAttribute.lineThrough, keepDirIn3d = textAttribute.keepDirIn3d, direction = textAttribute.direction, fontSize = textAttribute.fontSize, textBaseline = textAttribute.textBaseline, textAlign = textAttribute.textAlign, x: originX = textAttribute.x, y: originY = textAttribute.y } = text.attribute;
28393
- const lineHeight = (_a = text.attribute.lineHeight) !== null && _a !== void 0 ? _a : fontSize;
28536
+ const { text: str, fill = textAttribute.fill, stroke = textAttribute.stroke, fillOpacity = textAttribute.fillOpacity, strokeOpacity = textAttribute.strokeOpacity, opacity = textAttribute.opacity, lineWidth = textAttribute.lineWidth, visible = textAttribute.visible, underline = textAttribute.underline, lineThrough = textAttribute.lineThrough, keepDirIn3d = textAttribute.keepDirIn3d, direction = textAttribute.direction, fontSize = textAttribute.fontSize, verticalMode = textAttribute.verticalMode, x: originX = textAttribute.x, y: originY = textAttribute.y } = text.attribute;
28537
+ let { textAlign = textAttribute.textAlign, textBaseline = textAttribute.textBaseline } = text.attribute;
28538
+ if (!verticalMode) {
28539
+ const t = textAlign;
28540
+ textAlign = (_a = text.getBaselineMapAlign()[textBaseline]) !== null && _a !== void 0 ? _a : 'left';
28541
+ textBaseline = (_b = text.getAlignMapBaseline()[t]) !== null && _b !== void 0 ? _b : 'top';
28542
+ }
28543
+ const lineHeight = (_c = text.attribute.lineHeight) !== null && _c !== void 0 ? _c : fontSize;
28394
28544
  const fVisible = fillVisible(opacity, fillOpacity, fill);
28395
28545
  const sVisible = strokeVisible(opacity, strokeOpacity);
28396
28546
  const doFill = runFill(fill);
@@ -28678,23 +28828,30 @@
28678
28828
  path.lineTo(points[i].x + x, points[i].y + y);
28679
28829
  }
28680
28830
  }
28681
- function drawRoundedPolygon(path, points, x, y, cornerRadius) {
28831
+ function drawRoundedPolygon(path, points, x, y, cornerRadius, closePath = true) {
28682
28832
  var _a;
28683
28833
  if (points.length < 3) {
28684
28834
  drawPolygon(path, points, x, y);
28685
28835
  return;
28686
28836
  }
28687
- for (let i = 0; i < points.length; i++) {
28688
- const p1 = points[i];
28689
- const angularPoint = points[(i + 1) % points.length];
28690
- const p2 = points[(i + 2) % points.length];
28837
+ let startI = 0;
28838
+ let endI = points.length - 1;
28839
+ if (!closePath) {
28840
+ startI += 1;
28841
+ endI -= 1;
28842
+ path.moveTo(points[0].x + x, points[0].y + y);
28843
+ }
28844
+ for (let i = startI; i <= endI; i++) {
28845
+ const p1 = points[i === 0 ? endI : (i - 1) % points.length];
28846
+ const angularPoint = points[i % points.length];
28847
+ const p2 = points[(i + 1) % points.length];
28691
28848
  const dx1 = angularPoint.x - p1.x;
28692
28849
  const dy1 = angularPoint.y - p1.y;
28693
28850
  const dx2 = angularPoint.x - p2.x;
28694
28851
  const dy2 = angularPoint.y - p2.y;
28695
28852
  const angle = (Math.atan2(dy1, dx1) - Math.atan2(dy2, dx2)) / 2;
28696
28853
  const tan = Math.abs(Math.tan(angle));
28697
- let radius = Array.isArray(cornerRadius) ? (_a = cornerRadius[(i + 1) % points.length]) !== null && _a !== void 0 ? _a : 0 : cornerRadius;
28854
+ let radius = Array.isArray(cornerRadius) ? (_a = cornerRadius[i % points.length]) !== null && _a !== void 0 ? _a : 0 : cornerRadius;
28698
28855
  let segment = radius / tan;
28699
28856
  const length1 = getLength(dx1, dy1);
28700
28857
  const length2 = getLength(dx2, dy2);
@@ -28731,6 +28888,9 @@
28731
28888
  }
28732
28889
  path.lineTo(p2Cross.x + x, p2Cross.y + y);
28733
28890
  }
28891
+ if (!closePath) {
28892
+ path.lineTo(points[endI + 1].x + x, points[endI + 1].y + y);
28893
+ }
28734
28894
  }
28735
28895
  function getLength(dx, dy) {
28736
28896
  return Math.sqrt(dx * dx + dy * dy);
@@ -28750,7 +28910,7 @@
28750
28910
  }
28751
28911
  drawShape(polygon, context, x, y, drawContext, params, fillCb, strokeCb) {
28752
28912
  const polygonAttribute = getTheme(polygon, params === null || params === void 0 ? void 0 : params.theme).polygon;
28753
- const { points = polygonAttribute.points, fill = polygonAttribute.fill, stroke = polygonAttribute.stroke, cornerRadius = polygonAttribute.cornerRadius, fillOpacity = polygonAttribute.fillOpacity, background, strokeOpacity = polygonAttribute.strokeOpacity, lineWidth = polygonAttribute.lineWidth, opacity = polygonAttribute.opacity, visible = polygonAttribute.visible, x: originX = polygonAttribute.x, y: originY = polygonAttribute.y } = polygon.attribute;
28913
+ const { points = polygonAttribute.points, fill = polygonAttribute.fill, stroke = polygonAttribute.stroke, cornerRadius = polygonAttribute.cornerRadius, fillOpacity = polygonAttribute.fillOpacity, background, strokeOpacity = polygonAttribute.strokeOpacity, lineWidth = polygonAttribute.lineWidth, opacity = polygonAttribute.opacity, visible = polygonAttribute.visible, x: originX = polygonAttribute.x, y: originY = polygonAttribute.y, closePath = polygonAttribute.closePath } = polygon.attribute;
28754
28914
  const fVisible = fillVisible(opacity, fillOpacity, fill);
28755
28915
  const sVisible = strokeVisible(opacity, strokeOpacity);
28756
28916
  const doFill = runFill(fill, background);
@@ -28769,9 +28929,9 @@
28769
28929
  drawPolygon(context.camera ? context : context.nativeContext, points, x, y);
28770
28930
  }
28771
28931
  else {
28772
- drawRoundedPolygon(context.camera ? context : context.nativeContext, points, x, y, cornerRadius);
28932
+ drawRoundedPolygon(context.camera ? context : context.nativeContext, points, x, y, cornerRadius, closePath);
28773
28933
  }
28774
- context.closePath();
28934
+ closePath && context.closePath();
28775
28935
  if (!this._polygonRenderContribitions) {
28776
28936
  this._polygonRenderContribitions = this.polygonRenderContribitions.getContributions() || [];
28777
28937
  this._polygonRenderContribitions.sort((a, b) => b.order - a.order);
@@ -30071,21 +30231,21 @@
30071
30231
  if (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) {
30072
30232
  return this._pickItem(graphic, pickerService, point, pickParams, params);
30073
30233
  }
30074
- return false;
30234
+ return null;
30075
30235
  }
30076
30236
  beforePickItem(graphic, pickerService, point, pickParams, params) {
30077
30237
  if (graphic.attribute.shadowRootIdx < 0) {
30078
30238
  return this._pickItem(graphic, pickerService, point, pickParams, params);
30079
30239
  }
30080
- return false;
30240
+ return null;
30081
30241
  }
30082
30242
  _pickItem(graphic, pickerService, point, pickParams, params) {
30083
30243
  if (!graphic.shadowRoot) {
30084
- return false;
30244
+ return null;
30085
30245
  }
30086
30246
  const { parentMatrix } = params || {};
30087
30247
  if (!parentMatrix) {
30088
- return false;
30248
+ return null;
30089
30249
  }
30090
30250
  const context = pickerService.pickContext;
30091
30251
  context.highPerformanceSave();
@@ -30269,7 +30429,7 @@
30269
30429
  result = this.pickGroup(graphics[i], point, parentMatrix, params);
30270
30430
  }
30271
30431
  else {
30272
- result.graphic = this.pickItem(graphics[i], point, parentMatrix, params);
30432
+ result = this.pickItem(graphics[i], point, parentMatrix, params);
30273
30433
  }
30274
30434
  if (result.graphic) {
30275
30435
  break;
@@ -30351,12 +30511,13 @@
30351
30511
  return result;
30352
30512
  }
30353
30513
  const pickedItem = this.pickItem(group, newPoint.clone(), parentMatrix, params);
30354
- if (pickedItem) {
30355
- result.graphic = pickedItem;
30514
+ if (pickedItem && pickedItem.graphic) {
30515
+ result.graphic = pickedItem.graphic;
30516
+ result.params = pickedItem.params;
30356
30517
  }
30357
30518
  const groupPicked = group.attribute.pickable !== false && insideGroup;
30358
30519
  currentGroupMatrix.multiply(transMatrix.a, transMatrix.b, transMatrix.c, transMatrix.d, transMatrix.e, transMatrix.f);
30359
- if (group.attribute.childrenPickable !== false && !pickedItem) {
30520
+ if (group.attribute.childrenPickable !== false && !(pickedItem && pickedItem.graphic)) {
30360
30521
  foreach(group, DefaultAttribute.zIndex, (graphic) => {
30361
30522
  if (graphic.isContainer) {
30362
30523
  const newPoint = new Point(point.x, point.y);
@@ -30374,7 +30535,10 @@
30374
30535
  newPoint.x -= scrollX;
30375
30536
  newPoint.y -= scrollY;
30376
30537
  const pickedItem = this.pickItem(graphic, newPoint, parentMatrix, params);
30377
- result.graphic = pickedItem;
30538
+ if (pickedItem && pickedItem.graphic) {
30539
+ result.graphic = pickedItem.graphic;
30540
+ result.params = pickedItem.params;
30541
+ }
30378
30542
  }
30379
30543
  return !!result.graphic || !!result.group;
30380
30544
  }, true, !!context.camera);
@@ -30429,7 +30593,11 @@
30429
30593
  result = this.pickGroup(graphics[i], point, parentMatrix, params);
30430
30594
  }
30431
30595
  else {
30432
- result.graphic = this.pickItem(graphics[i], point, parentMatrix, params);
30596
+ const data = this.pickItem(graphics[i], point, parentMatrix, params);
30597
+ if (data) {
30598
+ result.graphic = data.graphic;
30599
+ result.params = data.params;
30600
+ }
30433
30601
  }
30434
30602
  if (result.graphic) {
30435
30603
  break;
@@ -30483,7 +30651,11 @@
30483
30651
  else {
30484
30652
  const newPoint = new Point(point.x, point.y);
30485
30653
  parentMatrix.transformPoint(newPoint, newPoint);
30486
- result.graphic = this.pickItem(graphic, newPoint, parentMatrix, params);
30654
+ const data = this.pickItem(graphic, newPoint, parentMatrix, params);
30655
+ if (data) {
30656
+ result.graphic = data.graphic;
30657
+ result.params = data.params;
30658
+ }
30487
30659
  }
30488
30660
  return !!result.graphic || !!result.group;
30489
30661
  });
@@ -30498,7 +30670,9 @@
30498
30670
  return null;
30499
30671
  }
30500
30672
  if (graphic.AABBBounds.containsPoint(point)) {
30501
- return graphic;
30673
+ return {
30674
+ graphic: graphic
30675
+ };
30502
30676
  }
30503
30677
  return null;
30504
30678
  }
@@ -31783,7 +31957,7 @@
31783
31957
  if (drawContribution.beforePickItem) {
31784
31958
  const ret = drawContribution.beforePickItem(graphic, this, point, params, { parentMatrix });
31785
31959
  if (ret) {
31786
- return ret === true ? graphic : ret.graphic;
31960
+ return ret;
31787
31961
  }
31788
31962
  }
31789
31963
  }
@@ -31792,8 +31966,11 @@
31792
31966
  if (!picker) {
31793
31967
  return null;
31794
31968
  }
31795
- const data = picker.contains(graphic, point, params) ? graphic : null;
31796
- if (data) {
31969
+ const g = picker.contains(graphic, point, params) ? graphic : null;
31970
+ const data = {
31971
+ graphic: g
31972
+ };
31973
+ if (g) {
31797
31974
  return data;
31798
31975
  }
31799
31976
  if (this.InterceptorContributions.length) {
@@ -31802,7 +31979,7 @@
31802
31979
  if (drawContribution.afterPickItem) {
31803
31980
  const ret = drawContribution.afterPickItem(graphic, this, point, params, { parentMatrix });
31804
31981
  if (ret) {
31805
- return ret === true ? graphic : ret.graphic;
31982
+ return ret;
31806
31983
  }
31807
31984
  }
31808
31985
  }
@@ -32120,7 +32297,13 @@
32120
32297
  if (!picker) {
32121
32298
  return null;
32122
32299
  }
32123
- return picker.contains(graphic, point, params) ? graphic : null;
32300
+ const g = picker.contains(graphic, point, params) ? graphic : null;
32301
+ if (g) {
32302
+ return {
32303
+ graphic: g
32304
+ };
32305
+ }
32306
+ return null;
32124
32307
  }
32125
32308
  };
32126
32309
  __decorate([
@@ -33159,15 +33342,15 @@
33159
33342
  injectable()
33160
33343
  ], NodeEnvContribution);
33161
33344
 
33162
- function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, compoient) {
33345
+ function makeUpCanvas(domref, canvasIdLists, canvasMap, freeCanvasIdx, freeCanvasList, component) {
33163
33346
  return __awaiter(this, void 0, void 0, function* () {
33164
33347
  const dpr = wx.getSystemInfoSync().pixelRatio;
33165
33348
  for (let i = 0; i < canvasIdLists.length; i++) {
33166
33349
  const id = canvasIdLists[i];
33167
33350
  yield new Promise(resolve => {
33168
33351
  let data = wx.createSelectorQuery();
33169
- if (compoient) {
33170
- data = data.in(compoient);
33352
+ if (component) {
33353
+ data = data.in(component);
33171
33354
  }
33172
33355
  data
33173
33356
  .select(`#${id}`)
@@ -33213,7 +33396,7 @@
33213
33396
  configure(service, params) {
33214
33397
  if (service.env === this.type) {
33215
33398
  service.setActiveEnvContribution(this);
33216
- return makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList, params.compoient).then(() => {
33399
+ return makeUpCanvas(params.domref, params.canvasIdLists, this.canvasMap, params.freeCanvasIdx, this.freeCanvasList, params.component).then(() => {
33217
33400
  loadFeishuContributions();
33218
33401
  });
33219
33402
  }
@@ -35502,6 +35685,40 @@
35502
35685
  ShadowRootDrawItemInterceptorContribution = __decorate([
35503
35686
  injectable()
35504
35687
  ], ShadowRootDrawItemInterceptorContribution);
35688
+ let CommonDrawItemInterceptorContribution = class CommonDrawItemInterceptorContribution {
35689
+ constructor() {
35690
+ this.order = 1;
35691
+ }
35692
+ afterDrawItem(graphic, renderService, drawContext, drawContribution, params) {
35693
+ if (graphic.attribute.shadowRootIdx > 0 || !graphic.attribute.shadowRootIdx) {
35694
+ this.drawItem(graphic, renderService, drawContext, drawContribution, params);
35695
+ }
35696
+ return false;
35697
+ }
35698
+ beforeDrawItem(graphic, renderService, drawContext, drawContribution, params) {
35699
+ if (graphic.attribute.shadowRootIdx < 0) {
35700
+ this.drawItem(graphic, renderService, drawContext, drawContribution, params);
35701
+ }
35702
+ return false;
35703
+ }
35704
+ drawItem(graphic, renderService, drawContext, drawContribution, params) {
35705
+ if (!graphic.attribute._debug_bounds) {
35706
+ return false;
35707
+ }
35708
+ const { context } = drawContext;
35709
+ context.highPerformanceSave();
35710
+ const b = graphic.AABBBounds;
35711
+ if (graphic.attribute._debug_bounds !== true) {
35712
+ graphic.attribute._debug_bounds(context, graphic);
35713
+ }
35714
+ context.strokeRect(b.x1, b.y1, b.width(), b.height());
35715
+ context.highPerformanceRestore();
35716
+ return true;
35717
+ }
35718
+ };
35719
+ CommonDrawItemInterceptorContribution = __decorate([
35720
+ injectable()
35721
+ ], CommonDrawItemInterceptorContribution);
35505
35722
  let Canvas3DDrawItemInterceptor = class Canvas3DDrawItemInterceptor {
35506
35723
  constructor() {
35507
35724
  this.order = 1;
@@ -37264,6 +37481,8 @@
37264
37481
  bindContributionProvider(bind, GraphicRender);
37265
37482
  bind(ShadowRootDrawItemInterceptorContribution).toSelf().inSingletonScope();
37266
37483
  bind(DrawItemInterceptor).toService(ShadowRootDrawItemInterceptorContribution);
37484
+ bind(CommonDrawItemInterceptorContribution).toSelf().inSingletonScope();
37485
+ bind(DrawItemInterceptor).toService(CommonDrawItemInterceptorContribution);
37267
37486
  bind(Canvas3DDrawItemInterceptor).toSelf().inSingletonScope();
37268
37487
  bind(DrawItemInterceptor).toService(Canvas3DDrawItemInterceptor);
37269
37488
  bindContributionProvider(bind, DrawItemInterceptor);
@@ -37367,6 +37586,7 @@
37367
37586
  }
37368
37587
  let picked = true;
37369
37588
  if (!onlyTranslate ||
37589
+ rect.shadowRoot ||
37370
37590
  (isNumber$2(cornerRadius, true) && cornerRadius !== 0) ||
37371
37591
  (isArray$1(cornerRadius) && cornerRadius.some(num => num !== 0))) {
37372
37592
  picked = false;
@@ -37386,7 +37606,7 @@
37386
37606
  return picked;
37387
37607
  });
37388
37608
  }
37389
- else if (picked) {
37609
+ else {
37390
37610
  const { fill = rectAttribute.fill, stroke = rectAttribute.stroke, lineWidth = rectAttribute.lineWidth } = rect.attribute;
37391
37611
  if (fill) {
37392
37612
  picked = true;
@@ -38973,6 +39193,9 @@
38973
39193
  }
38974
39194
  this.drawHTML(context.stage.renderService);
38975
39195
  });
39196
+ application.graphicService.hooks.onRelease.tap(this.key, graphic => {
39197
+ this.removeDom(graphic);
39198
+ });
38976
39199
  }
38977
39200
  deactivate(context) {
38978
39201
  context.stage.hooks.afterRender.taps = context.stage.hooks.afterRender.taps.filter(item => {
@@ -39002,6 +39225,14 @@
39002
39225
  }
39003
39226
  });
39004
39227
  }
39228
+ removeDom(graphic) {
39229
+ if (graphic.bindDom && graphic.bindDom.size) {
39230
+ graphic.bindDom.forEach(item => {
39231
+ item.dom && item.dom.parentElement.removeChild(item.dom);
39232
+ });
39233
+ graphic.bindDom.clear();
39234
+ }
39235
+ }
39005
39236
  renderGraphicHTML(graphic) {
39006
39237
  const { html } = graphic.attribute;
39007
39238
  if (!html) {
@@ -40266,7 +40497,7 @@
40266
40497
  }
40267
40498
  const Fragment = Group;
40268
40499
 
40269
- const version = "0.15.1";
40500
+ const version = "0.15.3-alpha.0";
40270
40501
 
40271
40502
  exports.ACustomAnimate = ACustomAnimate;
40272
40503
  exports.ARC3D_NUMBER_TYPE = ARC3D_NUMBER_TYPE;
@@ -40312,6 +40543,7 @@
40312
40543
  exports.DefaultAttribute = DefaultAttribute;
40313
40544
  exports.DefaultCircleAttribute = DefaultCircleAttribute;
40314
40545
  exports.DefaultConnectAttribute = DefaultConnectAttribute;
40546
+ exports.DefaultDebugAttribute = DefaultDebugAttribute;
40315
40547
  exports.DefaultFillStyle = DefaultFillStyle;
40316
40548
  exports.DefaultGlyphAttribute = DefaultGlyphAttribute;
40317
40549
  exports.DefaultGroupAttribute = DefaultGroupAttribute;
@@ -40395,6 +40627,7 @@
40395
40627
  exports.MorphingPath = MorphingPath;
40396
40628
  exports.MotionPath = MotionPath;
40397
40629
  exports.MultiToOneMorphingPath = MultiToOneMorphingPath;
40630
+ exports.NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;
40398
40631
  exports.Node = Node;
40399
40632
  exports.PATH_NUMBER_TYPE = PATH_NUMBER_TYPE;
40400
40633
  exports.POLYGON_NUMBER_TYPE = POLYGON_NUMBER_TYPE;