@visactor/vrender-core 0.17.8 → 0.17.10

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 (147) hide show
  1. package/cjs/canvas/conical-gradient.d.ts +10 -5
  2. package/cjs/canvas/conical-gradient.js +21 -14
  3. package/cjs/canvas/conical-gradient.js.map +1 -1
  4. package/cjs/common/render-area.js +3 -15
  5. package/cjs/common/render-area.js.map +1 -1
  6. package/cjs/common/render-curve.js +6 -17
  7. package/cjs/common/render-curve.js.map +1 -1
  8. package/cjs/common/render-utils.d.ts +10 -0
  9. package/cjs/common/render-utils.js +22 -0
  10. package/cjs/common/render-utils.js.map +1 -0
  11. package/cjs/common/seg-context.js +1 -2
  12. package/cjs/common/segment/basis.js +2 -3
  13. package/cjs/common/segment/basis.js.map +1 -1
  14. package/cjs/common/segment/common.d.ts +4 -1
  15. package/cjs/common/segment/common.js +13 -3
  16. package/cjs/common/segment/common.js.map +1 -1
  17. package/cjs/common/segment/linear-closed.d.ts +2 -16
  18. package/cjs/common/segment/linear-closed.js +3 -34
  19. package/cjs/common/segment/linear-closed.js.map +1 -1
  20. package/cjs/common/segment/linear.d.ts +1 -1
  21. package/cjs/common/segment/linear.js +2 -3
  22. package/cjs/common/segment/linear.js.map +1 -1
  23. package/cjs/common/segment/monotone.d.ts +2 -2
  24. package/cjs/common/segment/monotone.js +10 -12
  25. package/cjs/common/segment/monotone.js.map +1 -1
  26. package/cjs/common/sort.js +2 -1
  27. package/cjs/core/constants.js +1 -1
  28. package/cjs/core/stage.js +2 -1
  29. package/cjs/core/stage.js.map +1 -1
  30. package/cjs/graphic/config.js +2 -0
  31. package/cjs/graphic/config.js.map +1 -1
  32. package/cjs/interface/graphic.d.ts +2 -0
  33. package/cjs/interface/graphic.js.map +1 -1
  34. package/cjs/render/contributions/render/area-render.js +16 -11
  35. package/cjs/render/contributions/render/area-render.js.map +1 -1
  36. package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +1 -1
  37. package/cjs/render/contributions/render/contributions/arc-contribution-render.js +2 -2
  38. package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  39. package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +1 -9
  40. package/cjs/render/contributions/render/contributions/area-contribution-render.js +3 -55
  41. package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  42. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.d.ts +9 -0
  43. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +26 -0
  44. package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -0
  45. package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +1 -19
  46. package/cjs/render/contributions/render/contributions/base-contribution-render.js +2 -120
  47. package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  48. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.d.ts +21 -0
  49. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +128 -0
  50. package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -0
  51. package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +1 -1
  52. package/cjs/render/contributions/render/contributions/circle-contribution-render.js +2 -2
  53. package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  54. package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  55. package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  56. package/cjs/render/contributions/render/contributions/index.d.ts +2 -0
  57. package/cjs/render/contributions/render/contributions/index.js +2 -1
  58. package/cjs/render/contributions/render/contributions/index.js.map +1 -1
  59. package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +1 -1
  60. package/cjs/render/contributions/render/contributions/path-contribution-render.js +2 -2
  61. package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  62. package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +1 -1
  63. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +2 -2
  64. package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  65. package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +1 -1
  66. package/cjs/render/contributions/render/contributions/rect-contribution-render.js +2 -2
  67. package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  68. package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -1
  69. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +2 -2
  70. package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  71. package/cjs/render/contributions/render/line-render.js +2 -2
  72. package/cjs/render/contributions/render/line-render.js.map +1 -1
  73. package/dist/index.js +112 -187
  74. package/dist/index.min.js +1 -1
  75. package/es/canvas/conical-gradient.d.ts +10 -5
  76. package/es/canvas/conical-gradient.js +21 -16
  77. package/es/canvas/conical-gradient.js.map +1 -1
  78. package/es/common/render-area.js +2 -12
  79. package/es/common/render-area.js.map +1 -1
  80. package/es/common/render-curve.js +1 -13
  81. package/es/common/render-curve.js.map +1 -1
  82. package/es/common/render-utils.d.ts +10 -0
  83. package/es/common/render-utils.js +14 -0
  84. package/es/common/render-utils.js.map +1 -0
  85. package/es/common/seg-context.js +1 -2
  86. package/es/common/segment/basis.js +2 -8
  87. package/es/common/segment/basis.js.map +1 -1
  88. package/es/common/segment/common.d.ts +4 -1
  89. package/es/common/segment/common.js +11 -0
  90. package/es/common/segment/common.js.map +1 -1
  91. package/es/common/segment/linear-closed.d.ts +2 -16
  92. package/es/common/segment/linear-closed.js +4 -38
  93. package/es/common/segment/linear-closed.js.map +1 -1
  94. package/es/common/segment/linear.d.ts +1 -1
  95. package/es/common/segment/linear.js +2 -8
  96. package/es/common/segment/linear.js.map +1 -1
  97. package/es/common/segment/monotone.d.ts +2 -2
  98. package/es/common/segment/monotone.js +7 -13
  99. package/es/common/segment/monotone.js.map +1 -1
  100. package/es/common/sort.js +2 -1
  101. package/es/core/constants.js +1 -1
  102. package/es/core/stage.js +2 -1
  103. package/es/core/stage.js.map +1 -1
  104. package/es/graphic/config.js +2 -0
  105. package/es/graphic/config.js.map +1 -1
  106. package/es/interface/graphic.d.ts +2 -0
  107. package/es/interface/graphic.js.map +1 -1
  108. package/es/render/contributions/render/area-render.js +16 -11
  109. package/es/render/contributions/render/area-render.js.map +1 -1
  110. package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +1 -1
  111. package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -1
  112. package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
  113. package/es/render/contributions/render/contributions/area-contribution-render.d.ts +1 -9
  114. package/es/render/contributions/render/contributions/area-contribution-render.js +2 -51
  115. package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
  116. package/es/render/contributions/render/contributions/area-texture-contribution-render.d.ts +9 -0
  117. package/es/render/contributions/render/contributions/area-texture-contribution-render.js +18 -0
  118. package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -0
  119. package/es/render/contributions/render/contributions/base-contribution-render.d.ts +1 -19
  120. package/es/render/contributions/render/contributions/base-contribution-render.js +0 -120
  121. package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
  122. package/es/render/contributions/render/contributions/base-texture-contribution-render.d.ts +21 -0
  123. package/es/render/contributions/render/contributions/base-texture-contribution-render.js +124 -0
  124. package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -0
  125. package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +1 -1
  126. package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -1
  127. package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
  128. package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
  129. package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
  130. package/es/render/contributions/render/contributions/index.d.ts +2 -0
  131. package/es/render/contributions/render/contributions/index.js +4 -0
  132. package/es/render/contributions/render/contributions/index.js.map +1 -1
  133. package/es/render/contributions/render/contributions/path-contribution-render.d.ts +1 -1
  134. package/es/render/contributions/render/contributions/path-contribution-render.js +3 -1
  135. package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
  136. package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +1 -1
  137. package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -1
  138. package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
  139. package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +1 -1
  140. package/es/render/contributions/render/contributions/rect-contribution-render.js +3 -1
  141. package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
  142. package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -1
  143. package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -1
  144. package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
  145. package/es/render/contributions/render/line-render.js +2 -2
  146. package/es/render/contributions/render/line-render.js.map +1 -1
  147. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2139,6 +2139,15 @@
2139
2139
  }
2140
2140
  }
2141
2141
  }
2142
+ function genSegContext(curveType, direction, points) {
2143
+ const curveDirection = direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2144
+ ? exports.Direction.ROW
2145
+ : exports.Direction.COLUMN);
2146
+ if (curveType === 'monotoneY') {
2147
+ return new ReflectSegContext(curveType, curveDirection);
2148
+ }
2149
+ return new SegContext(curveType, curveDirection);
2150
+ }
2142
2151
 
2143
2152
  class Linear {
2144
2153
  constructor(context, startPoint) {
@@ -2188,9 +2197,7 @@
2188
2197
  if (points.length < 2 - Number(!!startPoint)) {
2189
2198
  return null;
2190
2199
  }
2191
- const segContext = new SegContext('linear', direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2192
- ? exports.Direction.ROW
2193
- : exports.Direction.COLUMN));
2200
+ const segContext = genSegContext('linear', direction, points);
2194
2201
  const linear = new Linear(segContext, startPoint);
2195
2202
  genLinearTypeSegments(linear, points);
2196
2203
  return segContext;
@@ -2267,9 +2274,7 @@
2267
2274
  if (points.length < 3 - Number(!!startPoint)) {
2268
2275
  return genLinearSegments(points, params);
2269
2276
  }
2270
- const segContext = new SegContext('basis', direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2271
- ? exports.Direction.ROW
2272
- : exports.Direction.COLUMN));
2277
+ const segContext = genSegContext('basis', direction, points);
2273
2278
  const basis = new Basis(segContext, startPoint);
2274
2279
  genBasisTypeSegments(basis, points);
2275
2280
  return segContext;
@@ -2370,7 +2375,7 @@
2370
2375
  return super.point({ y: p.x, x: p.y, defined: p.defined });
2371
2376
  }
2372
2377
  }
2373
- function genMonotpneXTypeSegments(path, points) {
2378
+ function genMonotoneXTypeSegments(path, points) {
2374
2379
  return genCurveSegments(path, points, 2);
2375
2380
  }
2376
2381
  function genMonotoneXSegments(points, params = {}) {
@@ -2381,14 +2386,12 @@
2381
2386
  if (points.length < 3 - Number(!!startPoint)) {
2382
2387
  return genLinearSegments(points, params);
2383
2388
  }
2384
- const segContext = new SegContext('monotoneX', direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2385
- ? exports.Direction.ROW
2386
- : exports.Direction.COLUMN));
2389
+ const segContext = genSegContext('monotoneX', direction, points);
2387
2390
  const monotoneX = new MonotoneX(segContext, startPoint);
2388
- genMonotpneXTypeSegments(monotoneX, points);
2391
+ genMonotoneXTypeSegments(monotoneX, points);
2389
2392
  return segContext;
2390
2393
  }
2391
- function genMonotpneYTypeSegments(path, points) {
2394
+ function genMonotoneYTypeSegments(path, points) {
2392
2395
  return genCurveSegments(path, points, 2);
2393
2396
  }
2394
2397
  function genMonotoneYSegments(points, params = {}) {
@@ -2399,11 +2402,9 @@
2399
2402
  if (points.length < 3 - Number(!!startPoint)) {
2400
2403
  return genLinearSegments(points, params);
2401
2404
  }
2402
- const segContext = new ReflectSegContext('monotoneY', direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2403
- ? exports.Direction.ROW
2404
- : exports.Direction.COLUMN));
2405
+ const segContext = genSegContext('monotoneY', direction, points);
2405
2406
  const monotoneY = new MonotoneY(segContext, startPoint);
2406
- genMonotpneYTypeSegments(monotoneY, points);
2407
+ genMonotoneYTypeSegments(monotoneY, points);
2407
2408
  return segContext;
2408
2409
  }
2409
2410
 
@@ -2484,54 +2485,17 @@
2484
2485
  return genCurveSegments(path, points, 1);
2485
2486
  }
2486
2487
 
2487
- class LinearClosed {
2488
- constructor(context, startPoint) {
2489
- this.context = context;
2490
- startPoint && (this.startPoint = startPoint);
2491
- }
2492
- areaStart() {
2493
- this._line = 0;
2494
- }
2495
- areaEnd() {
2496
- this._line = NaN;
2497
- }
2498
- lineStart() {
2499
- this._point = 0;
2500
- this.startPoint && this.point(this.startPoint);
2501
- }
2488
+ class LinearClosed extends Linear {
2502
2489
  lineEnd() {
2503
2490
  this.context.closePath();
2504
2491
  }
2505
- point(p) {
2506
- const x = p.x;
2507
- const y = p.y;
2508
- switch (this._point) {
2509
- case 0:
2510
- this._point = 1;
2511
- this._line
2512
- ? this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p)
2513
- : this.context.moveTo(x, y, p);
2514
- break;
2515
- case 1:
2516
- this._point = 2;
2517
- default:
2518
- this.context.lineTo(x, y, this._lastDefined !== false && p.defined !== false, p);
2519
- break;
2520
- }
2521
- this._lastDefined = p.defined;
2522
- }
2523
- tryUpdateLength() {
2524
- return this.context.tryUpdateLength();
2525
- }
2526
2492
  }
2527
2493
  function genLinearClosedSegments(points, params = {}) {
2528
2494
  const { direction, startPoint } = params;
2529
2495
  if (points.length < 2 - Number(!!startPoint)) {
2530
2496
  return null;
2531
2497
  }
2532
- const segContext = new SegContext('linear', direction !== null && direction !== void 0 ? direction : (vutils.abs(points[points.length - 1].x - points[0].x) > vutils.abs(points[points.length - 1].y - points[0].y)
2533
- ? exports.Direction.ROW
2534
- : exports.Direction.COLUMN));
2498
+ const segContext = genSegContext('linear', direction, points);
2535
2499
  const linear = new LinearClosed(segContext, startPoint);
2536
2500
  genLinearClosedTypeSegments(linear, points);
2537
2501
  return segContext;
@@ -3174,7 +3138,7 @@
3174
3138
  const DefaultDebugAttribute = {
3175
3139
  _debug_bounds: false
3176
3140
  };
3177
- 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, globalZIndex: 1, globalCompositeOperation: '', overflow: 'hidden' }, DefaultDebugAttribute), DefaultStyle), DefaultTransform);
3141
+ const DefaultAttribute = Object.assign(Object.assign(Object.assign({ strokeSeg: null, pickable: true, childrenPickable: true, fillPickable: true, strokePickable: true, visible: true, zIndex: 0, layout: null, boundsPadding: 0, pickMode: 'accurate', customPickShape: null, boundsMode: 'accurate', keepDirIn3d: true, shadowRootIdx: 1, globalZIndex: 1, globalCompositeOperation: '', overflow: 'hidden' }, DefaultDebugAttribute), DefaultStyle), DefaultTransform);
3178
3142
  function addAttributeToPrototype(obj, c, keys) {
3179
3143
  keys.forEach(key => {
3180
3144
  c.prototype[key] = obj[key];
@@ -13124,8 +13088,17 @@
13124
13088
  return ConicalCanvas.ctx;
13125
13089
  }
13126
13090
  }
13127
- class ColorInterpolate {
13091
+ class ColorInterpolate extends vutils.LRU {
13092
+ static getInstance() {
13093
+ if (!ColorInterpolate._instance) {
13094
+ ColorInterpolate._instance = new ColorInterpolate();
13095
+ }
13096
+ return ColorInterpolate._instance;
13097
+ }
13128
13098
  constructor(stops = [], precision = 100) {
13099
+ super();
13100
+ this.cacheParams = { CLEAN_THRESHOLD: 100, L_TIME: 1e3 };
13101
+ this.dataMap = new Map();
13129
13102
  const canvas = ConicalCanvas.GetCanvas();
13130
13103
  const conicalCtx = ConicalCanvas.GetCtx();
13131
13104
  canvas.width = precision;
@@ -13149,25 +13122,21 @@
13149
13122
  const rgba = this.rgbaSet.slice(4 * offset, 4 * offset + 4);
13150
13123
  return `rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, ${rgba[3] / 255})`;
13151
13124
  }
13152
- static GetOrCreate(stops = [], precision = 100) {
13153
- let str = '';
13125
+ GetOrCreate(x, y, w, h, stops = [], precision = 100) {
13126
+ let str = `${x}${y}${w}${h}`;
13154
13127
  stops.forEach(item => (str += item.join()));
13155
13128
  str += precision;
13156
- let colorInter = ColorInterpolate.dataMap.get(str);
13129
+ let colorInter = this.dataMap.get(str);
13157
13130
  if (!colorInter) {
13158
- colorInter = new ColorInterpolate(stops, precision);
13159
- ColorInterpolate.dataMap.set(str, colorInter);
13131
+ const data = new ColorInterpolate(stops, precision);
13132
+ colorInter = { data, timestamp: [] };
13133
+ this.addLimitedTimestamp(colorInter, Date.now(), {});
13134
+ this.dataMap.set(str, colorInter);
13160
13135
  }
13161
- return colorInter;
13162
- }
13163
- static SetColorInterpolateInstance(stops, ins) {
13164
- ColorInterpolate.dataMap.set(stops, ins);
13165
- }
13166
- static GetColorInterpolateInstance(stops) {
13167
- return ColorInterpolate.dataMap.get(stops);
13136
+ this.clearCache(this.dataMap, this.cacheParams);
13137
+ return colorInter.data;
13168
13138
  }
13169
13139
  }
13170
- ColorInterpolate.dataMap = new Map();
13171
13140
  class ConicalPatternStore {
13172
13141
  static GetSize(minSize) {
13173
13142
  for (let i = 0; i < ConicalPatternStore.ImageSize.length; i++) {
@@ -13258,7 +13227,7 @@
13258
13227
  const r = Math.sqrt(Math.max(Math.max(Math.pow(x, 2) + Math.pow(y, 2), Math.pow(width - x, 2) + Math.pow(y, 2)), Math.max(Math.pow(width - x, 2) + Math.pow(height - y, 2), Math.pow(x, 2) + Math.pow(height - y, 2))));
13259
13228
  const stepNum = deltaDeg + 1;
13260
13229
  const step = deltaAngle / Math.max(1, stepNum - 1);
13261
- const colorInter = ColorInterpolate.GetOrCreate(stops, stepNum);
13230
+ const colorInter = ColorInterpolate.getInstance().GetOrCreate(x, y, width, height, stops, stepNum);
13262
13231
  const lineWidth = (2 * Math.PI * r) / 360;
13263
13232
  conicalCanvas.width = width;
13264
13233
  conicalCanvas.height = height;
@@ -18867,6 +18836,7 @@
18867
18836
  __param(0, named(InteractiveSubRenderContribution)),
18868
18837
  __metadata("design:paramtypes", [Object])
18869
18838
  ], exports.DefaultBaseInteractiveRenderContribution);
18839
+
18870
18840
  class DefaultBaseTextureRenderContribution {
18871
18841
  constructor() {
18872
18842
  this.time = exports.BaseRenderContributionTime.afterFillStroke;
@@ -18985,6 +18955,9 @@
18985
18955
  if (!texture) {
18986
18956
  return;
18987
18957
  }
18958
+ this.drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding);
18959
+ }
18960
+ drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding) {
18988
18961
  let pattern = this.textureMap.get(texture);
18989
18962
  if (!pattern) {
18990
18963
  switch (texture) {
@@ -19586,6 +19559,25 @@
19586
19559
  const defaultSymbolTextureRenderContribution = defaultBaseTextureRenderContribution;
19587
19560
  const defaultSymbolBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;
19588
19561
 
19562
+ class DefaultAreaTextureRenderContribution extends DefaultBaseTextureRenderContribution {
19563
+ constructor() {
19564
+ super(...arguments);
19565
+ this.time = exports.BaseRenderContributionTime.afterFillStroke;
19566
+ }
19567
+ drawShape(graphic, context, x, y, doFill, doStroke, fVisible, sVisible, graphicAttribute, drawContext, fillCb, strokeCb, options) {
19568
+ var _a, _b, _c, _d;
19569
+ if (!this.textureMap) {
19570
+ this.initTextureMap(context, graphic.stage);
19571
+ }
19572
+ const { attribute = graphic.attribute } = options || {};
19573
+ const { texture = (_a = graphic.attribute.texture) !== null && _a !== void 0 ? _a : getAttributeFromDefaultAttrList(graphicAttribute, 'texture'), textureColor = (_b = graphic.attribute.textureColor) !== null && _b !== void 0 ? _b : getAttributeFromDefaultAttrList(graphicAttribute, 'textureColor'), textureSize = (_c = graphic.attribute.textureSize) !== null && _c !== void 0 ? _c : getAttributeFromDefaultAttrList(graphicAttribute, 'textureSize'), texturePadding = (_d = graphic.attribute.texturePadding) !== null && _d !== void 0 ? _d : getAttributeFromDefaultAttrList(graphicAttribute, 'texturePadding') } = attribute;
19574
+ if (!texture) {
19575
+ return;
19576
+ }
19577
+ this.drawTexture(texture, graphic, context, x, y, graphicAttribute, textureColor, textureSize, texturePadding);
19578
+ }
19579
+ }
19580
+
19589
19581
  exports.DefaultCanvasArcRender = class DefaultCanvasArcRender extends BaseRender {
19590
19582
  constructor(arcRenderContribitions) {
19591
19583
  super();
@@ -19865,6 +19857,31 @@
19865
19857
  __metadata("design:paramtypes", [Object])
19866
19858
  ], exports.DefaultCanvasCircleRender);
19867
19859
 
19860
+ function drawSegItem(ctx, curve, endPercent, params) {
19861
+ if (!curve.p1) {
19862
+ return;
19863
+ }
19864
+ const { offsetX = 0, offsetY = 0, offsetZ = 0 } = params || {};
19865
+ if (endPercent === 1) {
19866
+ if (curve.p2 && curve.p3) {
19867
+ ctx.bezierCurveTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetX + curve.p2.x, offsetY + curve.p2.y, offsetX + curve.p3.x, offsetY + curve.p3.y, offsetZ);
19868
+ }
19869
+ else {
19870
+ ctx.lineTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetZ);
19871
+ }
19872
+ }
19873
+ else {
19874
+ if (curve.p2 && curve.p3) {
19875
+ const [curve1] = divideCubic(curve, endPercent);
19876
+ ctx.bezierCurveTo(offsetX + curve1.p1.x, offsetY + curve1.p1.y, offsetX + curve1.p2.x, offsetY + curve1.p2.y, offsetX + curve1.p3.x, offsetY + curve1.p3.y, offsetZ);
19877
+ }
19878
+ else {
19879
+ const p = curve.getPointAt(endPercent);
19880
+ ctx.lineTo(offsetX + p.x, offsetY + p.y, offsetZ);
19881
+ }
19882
+ }
19883
+ }
19884
+
19868
19885
  function drawSegments(path, segPath, percent, clipRangeByDimension, params) {
19869
19886
  var _a;
19870
19887
  const { offsetX = 0, offsetY = 0, offsetZ = 0, mode = 'none', drawConnect = false, zeroX = 0, zeroY = 0 } = params || {};
@@ -19930,7 +19947,7 @@
19930
19947
  if (needMoveTo) {
19931
19948
  path.moveTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ);
19932
19949
  }
19933
- drawSegItem$1(path, curve, 1, params);
19950
+ drawSegItem(path, curve, 1, params);
19934
19951
  needMoveTo = false;
19935
19952
  });
19936
19953
  }
@@ -20009,7 +20026,7 @@
20009
20026
  if (needMoveTo) {
20010
20027
  path.moveTo(curve.p0.x + offsetX, curve.p0.y + offsetY, offsetZ);
20011
20028
  }
20012
- drawSegItem$1(path, curve, vutils.min(_p, 1), params);
20029
+ drawSegItem(path, curve, vutils.min(_p, 1), params);
20013
20030
  needMoveTo = false;
20014
20031
  }
20015
20032
  }
@@ -20053,30 +20070,6 @@
20053
20070
  path.closePath();
20054
20071
  });
20055
20072
  }
20056
- function drawSegItem$1(ctx, curve, endPercent, params) {
20057
- if (!curve.p1) {
20058
- return;
20059
- }
20060
- const { offsetX = 0, offsetY = 0, offsetZ = 0 } = params || {};
20061
- if (endPercent === 1) {
20062
- if (curve.p2 && curve.p3) {
20063
- ctx.bezierCurveTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetX + curve.p2.x, offsetY + curve.p2.y, offsetX + curve.p3.x, offsetY + curve.p3.y, offsetZ);
20064
- }
20065
- else {
20066
- ctx.lineTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetZ);
20067
- }
20068
- }
20069
- else {
20070
- if (curve.p2 && curve.p3) {
20071
- const [curve1] = divideCubic(curve, endPercent);
20072
- ctx.bezierCurveTo(offsetX + curve1.p1.x, offsetY + curve1.p1.y, offsetX + curve1.p2.x, offsetY + curve1.p2.y, offsetX + curve1.p3.x, offsetY + curve1.p3.y, offsetZ);
20073
- }
20074
- else {
20075
- const p = curve.getPointAt(endPercent);
20076
- ctx.lineTo(offsetX + p.x, offsetY + p.y, offsetZ);
20077
- }
20078
- }
20079
- }
20080
20073
 
20081
20074
  exports.DefaultCanvasLineRender = class DefaultCanvasLineRender extends BaseRender {
20082
20075
  constructor() {
@@ -20189,10 +20182,10 @@
20189
20182
  const z = (_a = this.z) !== null && _a !== void 0 ? _a : 0;
20190
20183
  const { points } = line.attribute;
20191
20184
  const startP = points[0];
20192
- context.moveTo(startP.x, startP.y, z);
20185
+ context.moveTo(startP.x + offsetX, startP.y + offsetY, z);
20193
20186
  for (let i = 1; i < points.length; i++) {
20194
20187
  const p = points[i];
20195
- context.lineTo(p.x, p.y, z);
20188
+ context.lineTo(p.x + offsetX, p.y + offsetY, z);
20196
20189
  }
20197
20190
  context.setShadowBlendStyle && context.setShadowBlendStyle(line, line.attribute, lineAttribute);
20198
20191
  const { x: originX = 0, x: originY = 0 } = line.attribute;
@@ -20619,84 +20612,7 @@
20619
20612
  }
20620
20613
  path.closePath();
20621
20614
  }
20622
- function drawSegItem(ctx, curve, endPercent, params) {
20623
- if (!curve.p1) {
20624
- return;
20625
- }
20626
- const { offsetX = 0, offsetY = 0, offsetZ = 0 } = params || {};
20627
- if (endPercent === 1) {
20628
- if (curve.p2 && curve.p3) {
20629
- ctx.bezierCurveTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetX + curve.p2.x, offsetY + curve.p2.y, offsetX + curve.p3.x, offsetY + curve.p3.y, offsetZ);
20630
- }
20631
- else {
20632
- ctx.lineTo(offsetX + curve.p1.x, offsetY + curve.p1.y, offsetZ);
20633
- }
20634
- }
20635
- else {
20636
- if (curve.p2 && curve.p3) {
20637
- const [curve1] = divideCubic(curve, endPercent);
20638
- ctx.bezierCurveTo(offsetX + curve1.p1.x, offsetY + curve1.p1.y, offsetX + curve1.p2.x, offsetY + curve1.p2.y, offsetX + curve1.p3.x, offsetY + curve1.p3.y, offsetZ);
20639
- }
20640
- else {
20641
- const p = curve.getPointAt(endPercent);
20642
- ctx.lineTo(offsetX + p.x, offsetY + p.y, offsetZ);
20643
- }
20644
- }
20645
- }
20646
20615
 
20647
- class DefaultAreaTextureRenderContribution extends DefaultBaseTextureRenderContribution {
20648
- constructor() {
20649
- super(...arguments);
20650
- this.time = exports.BaseRenderContributionTime.afterFillStroke;
20651
- }
20652
- drawShape(graphic, context, x, y, doFill, doStroke, fVisible, sVisible, graphicAttribute, drawContext, fillCb, strokeCb, options) {
20653
- var _a, _b, _c, _d;
20654
- if (!this.textureMap) {
20655
- this.initTextureMap(context, graphic.stage);
20656
- }
20657
- const { attribute = graphic.attribute } = options || {};
20658
- const { texture = (_a = graphic.attribute.texture) !== null && _a !== void 0 ? _a : getAttributeFromDefaultAttrList(graphicAttribute, 'texture'), textureColor = (_b = graphic.attribute.textureColor) !== null && _b !== void 0 ? _b : getAttributeFromDefaultAttrList(graphicAttribute, 'textureColor'), textureSize = (_c = graphic.attribute.textureSize) !== null && _c !== void 0 ? _c : getAttributeFromDefaultAttrList(graphicAttribute, 'textureSize'), texturePadding = (_d = graphic.attribute.texturePadding) !== null && _d !== void 0 ? _d : getAttributeFromDefaultAttrList(graphicAttribute, 'texturePadding') } = attribute;
20659
- if (!texture) {
20660
- return;
20661
- }
20662
- let pattern = this.textureMap.get(texture);
20663
- if (!pattern) {
20664
- switch (texture) {
20665
- case 'circle':
20666
- pattern = this.createCirclePattern(textureSize, texturePadding, textureColor, context);
20667
- break;
20668
- case 'diamond':
20669
- pattern = this.createDiamondPattern(textureSize, texturePadding, textureColor, context);
20670
- break;
20671
- case 'rect':
20672
- pattern = this.createRectPattern(textureSize, texturePadding, textureColor, context);
20673
- break;
20674
- case 'vertical-line':
20675
- pattern = this.createVerticalLinePattern(textureSize, texturePadding, textureColor, context);
20676
- break;
20677
- case 'horizontal-line':
20678
- pattern = this.createHorizontalLinePattern(textureSize, texturePadding, textureColor, context);
20679
- break;
20680
- case 'bias-lr':
20681
- pattern = this.createBiasLRLinePattern(textureSize, texturePadding, textureColor, context);
20682
- break;
20683
- case 'bias-rl':
20684
- pattern = this.createBiasRLLinePattern(textureSize, texturePadding, textureColor, context);
20685
- break;
20686
- case 'grid':
20687
- pattern = this.createGridPattern(textureSize, texturePadding, textureColor, context);
20688
- break;
20689
- }
20690
- }
20691
- if (pattern) {
20692
- context.highPerformanceSave();
20693
- context.setCommonStyle(graphic, graphic.attribute, x, y, graphicAttribute);
20694
- context.fillStyle = pattern;
20695
- context.fill();
20696
- context.highPerformanceRestore();
20697
- }
20698
- }
20699
- }
20700
20616
  const defaultAreaTextureRenderContribution = new DefaultAreaTextureRenderContribution();
20701
20617
  const defaultAreaBackgroundRenderContribution = defaultBaseBackgroundRenderContribution;
20702
20618
 
@@ -20736,17 +20652,18 @@
20736
20652
  const z = (_a = this.z) !== null && _a !== void 0 ? _a : 0;
20737
20653
  const { points } = area.attribute;
20738
20654
  const startP = points[0];
20739
- context.moveTo(startP.x, startP.y, z);
20655
+ context.moveTo(startP.x + offsetX, startP.y + offsetY, z);
20740
20656
  for (let i = 1; i < points.length; i++) {
20741
20657
  const p = points[i];
20742
- context.lineTo(p.x, p.y, z);
20658
+ context.lineTo(p.x + offsetX, p.y + offsetY, z);
20743
20659
  }
20744
20660
  for (let i = points.length - 1; i >= 0; i--) {
20745
20661
  const p = points[i];
20746
- context.lineTo((_b = p.x1) !== null && _b !== void 0 ? _b : p.x, (_c = p.y1) !== null && _c !== void 0 ? _c : p.y, z);
20662
+ context.lineTo(((_b = p.x1) !== null && _b !== void 0 ? _b : p.x) + offsetX, ((_c = p.y1) !== null && _c !== void 0 ? _c : p.y) + offsetY, z);
20747
20663
  }
20748
20664
  context.closePath();
20749
20665
  context.setShadowBlendStyle && context.setShadowBlendStyle(area, area.attribute, areaAttribute);
20666
+ this.beforeRenderStep(area, context, offsetX, offsetY, !!fillOpacity, false, fill, false, areaAttribute, drawContext, fillCb, null, { attribute: area.attribute });
20750
20667
  const { x: originX = 0, x: originY = 0 } = area.attribute;
20751
20668
  if (fill !== false) {
20752
20669
  if (fillCb) {
@@ -20757,28 +20674,34 @@
20757
20674
  context.fill();
20758
20675
  }
20759
20676
  }
20677
+ this.afterRenderStep(area, context, offsetX, offsetY, !!fillOpacity, false, fill, false, areaAttribute, drawContext, fillCb, null, { attribute: area.attribute });
20760
20678
  if (stroke) {
20761
20679
  const { stroke = areaAttribute && areaAttribute.stroke } = area.attribute;
20762
20680
  if (vutils.isArray(stroke) && (stroke[0] || stroke[2]) && stroke[1] === false) {
20763
20681
  context.beginPath();
20764
20682
  if (stroke[0]) {
20765
- context.moveTo(startP.x, startP.y, z);
20683
+ context.moveTo(startP.x + offsetX, startP.y + offsetY, z);
20766
20684
  for (let i = 1; i < points.length; i++) {
20767
20685
  const p = points[i];
20768
- context.lineTo(p.x, p.y, z);
20686
+ context.lineTo(p.x + offsetX, p.y + offsetY, z);
20769
20687
  }
20770
20688
  }
20771
20689
  else if (stroke[2]) {
20772
20690
  const endP = points[points.length - 1];
20773
- context.moveTo(endP.x, endP.y, z);
20691
+ context.moveTo(endP.x + offsetX, endP.y + offsetY, z);
20774
20692
  for (let i = points.length - 2; i >= 0; i--) {
20775
20693
  const p = points[i];
20776
- context.lineTo((_d = p.x1) !== null && _d !== void 0 ? _d : p.x, (_e = p.y1) !== null && _e !== void 0 ? _e : p.y, z);
20694
+ context.lineTo(((_d = p.x1) !== null && _d !== void 0 ? _d : p.x) + offsetX, ((_e = p.y1) !== null && _e !== void 0 ? _e : p.y) + offsetY, z);
20777
20695
  }
20778
20696
  }
20779
20697
  }
20780
- context.setStrokeStyle(area, area.attribute, originX - offsetX, originY - offsetY, areaAttribute);
20781
- context.stroke();
20698
+ if (strokeCb) {
20699
+ strokeCb(context, area.attribute, areaAttribute);
20700
+ }
20701
+ else {
20702
+ context.setStrokeStyle(area, area.attribute, originX - offsetX, originY - offsetY, areaAttribute);
20703
+ context.stroke();
20704
+ }
20782
20705
  }
20783
20706
  }
20784
20707
  drawShape(area, context, x, y, drawContext, params, fillCb, strokeCb) {
@@ -25202,6 +25125,7 @@
25202
25125
  if (this.supportInteractiveLayer && !this.interactiveLayer) {
25203
25126
  this.interactiveLayer = this.createLayer();
25204
25127
  this.interactiveLayer.name = '_builtin_interactive';
25128
+ this.interactiveLayer.attribute.pickable = false;
25205
25129
  this.nextFrameRenderLayerSet.add(this.interactiveLayer);
25206
25130
  }
25207
25131
  }
@@ -27300,6 +27224,7 @@
27300
27224
  exports.DefaultArcRenderContribution = DefaultArcRenderContribution;
27301
27225
  exports.DefaultAreaAllocate = DefaultAreaAllocate;
27302
27226
  exports.DefaultAreaAttribute = DefaultAreaAttribute;
27227
+ exports.DefaultAreaTextureRenderContribution = DefaultAreaTextureRenderContribution;
27303
27228
  exports.DefaultAttribute = DefaultAttribute;
27304
27229
  exports.DefaultBaseBackgroundRenderContribution = DefaultBaseBackgroundRenderContribution;
27305
27230
  exports.DefaultBaseTextureRenderContribution = DefaultBaseTextureRenderContribution;
@@ -27569,9 +27494,9 @@
27569
27494
  exports.genLinearSegments = genLinearSegments;
27570
27495
  exports.genLinearTypeSegments = genLinearTypeSegments;
27571
27496
  exports.genMonotoneXSegments = genMonotoneXSegments;
27497
+ exports.genMonotoneXTypeSegments = genMonotoneXTypeSegments;
27572
27498
  exports.genMonotoneYSegments = genMonotoneYSegments;
27573
- exports.genMonotpneXTypeSegments = genMonotpneXTypeSegments;
27574
- exports.genMonotpneYTypeSegments = genMonotpneYTypeSegments;
27499
+ exports.genMonotoneYTypeSegments = genMonotoneYTypeSegments;
27575
27500
  exports.genNumberType = genNumberType;
27576
27501
  exports.genStepSegments = genStepSegments;
27577
27502
  exports.genStepTypeSegments = genStepTypeSegments;