@visactor/vrender-components 0.22.9-alpha.2 → 0.22.10-alpha.1

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.
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { tau, halfPi as halfPi$1, AABBBounds, degreeToRadian, Point, PointService, abs, max, min, atan2, epsilon, Matrix, pi2, Logger, pi, isArray, isNumberClose, TextMeasure, EventEmitter, isBoolean, isObject, isFunction, cos, sin, isString, pointAt, isNumber, getDecimalPlaces, isNil, Color, sqrt, OBBBounds, has, normalTransform, isValidUrl, isBase64, acos, transformBoundsWithMatrix, getContextFont, rotatePoint, clampAngleByRadian, asin, arrayEqual, Bounds, getRectIntersect, isRectIntersect, isPlainObject, merge, clamp, clampRange, normalizePadding, debounce, throttle, hexToRgb, crossProduct, isValid, isEmpty, array, rectInsideAnotherRect, radianToDegree, getAngleByPoint, polarToCartesian, normalizeAngle, isValidNumber, flattenArray, isRotateAABBIntersect, isLess, isGreater, aabbSeparation, obbSeparation, cloneDeep, get, last, mixin, isEqual, interpolateString, minInArray, maxInArray, binaryFuzzySearchInNumberRange, pointInRect, calculateAnchorOfBounds, computeQuadrant, polygonContainPoint } from '@visactor/vutils';
1
+ import { tau, halfPi as halfPi$1, AABBBounds, degreeToRadian, Point, PointService, abs, max, min, atan2, epsilon, Matrix, pi2, Logger, pi, isArray, isNumberClose, TextMeasure, EventEmitter, isBoolean, isObject, isFunction, cos, sin, isString, pointAt, isNumber, getDecimalPlaces, isNil, Color, sqrt, OBBBounds, has, normalTransform, isValidUrl, isBase64, acos, transformBoundsWithMatrix, getContextFont, rotatePoint, clampAngleByRadian, asin, arrayEqual, Bounds, getRectIntersect, isRectIntersect, isPlainObject, merge, isValid, clamp, clampRange, normalizePadding, debounce, throttle, hexToRgb, crossProduct, isEmpty, array, rectInsideAnotherRect, radianToDegree, getAngleByPoint, polarToCartesian, normalizeAngle, isValidNumber, flattenArray, isRotateAABBIntersect, isLess, isGreater, aabbSeparation, obbSeparation, cloneDeep, get, last, mixin, isEqual, interpolateString, minInArray, maxInArray, binaryFuzzySearchInNumberRange, pointInRect, calculateAnchorOfBounds, computeQuadrant, polygonContainPoint } from '@visactor/vutils';
2
2
  import { isContinuous, isDiscrete, LinearScale } from '@visactor/vscale';
3
3
 
4
4
  class Generator {
@@ -577,48 +577,6 @@ const EnvContribution = Symbol.for("EnvContribution");
577
577
  const VGlobal = Symbol.for("VGlobal");
578
578
  const DEFAULT_TEXT_FONT_FAMILY$1 = "PingFang SC,Helvetica Neue,Microsoft Yahei,system-ui,-apple-system,segoe ui,Roboto,Helvetica,Arial,sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol";
579
579
 
580
- class EventListenerManager {
581
- constructor() {
582
- this._listenerMap = new Map(), this._eventListenerTransformer = event => event;
583
- }
584
- setEventListenerTransformer(transformer) {
585
- this._eventListenerTransformer = transformer || (event => event);
586
- }
587
- addEventListener(type, listener, options) {
588
- if (!listener) return;
589
- const wrappedListener = event => {
590
- const transformedEvent = this._eventListenerTransformer(event);
591
- "function" == typeof listener ? listener(transformedEvent) : listener.handleEvent && listener.handleEvent(transformedEvent);
592
- };
593
- this._listenerMap.has(type) || this._listenerMap.set(type, new Map()), this._listenerMap.get(type).set(listener, wrappedListener), this._nativeAddEventListener(type, wrappedListener, options);
594
- }
595
- removeEventListener(type, listener, options) {
596
- var _a;
597
- if (!listener) return;
598
- const wrappedListener = null === (_a = this._listenerMap.get(type)) || void 0 === _a ? void 0 : _a.get(listener);
599
- wrappedListener && (this._nativeRemoveEventListener(type, wrappedListener, options), this._listenerMap.get(type).delete(listener), 0 === this._listenerMap.get(type).size && this._listenerMap.delete(type));
600
- }
601
- dispatchEvent(event) {
602
- return this._nativeDispatchEvent(event);
603
- }
604
- clearAllEventListeners() {
605
- this._listenerMap.forEach((listenersMap, type) => {
606
- listenersMap.forEach((wrappedListener, originalListener) => {
607
- this._nativeRemoveEventListener(type, wrappedListener, void 0);
608
- });
609
- }), this._listenerMap.clear();
610
- }
611
- _nativeAddEventListener(type, listener, options) {
612
- throw new Error("_nativeAddEventListener must be implemented by derived classes");
613
- }
614
- _nativeRemoveEventListener(type, listener, options) {
615
- throw new Error("_nativeRemoveEventListener must be implemented by derived classes");
616
- }
617
- _nativeDispatchEvent(event) {
618
- throw new Error("_nativeDispatchEvent must be implemented by derived classes");
619
- }
620
- }
621
-
622
580
  var __decorate$P = undefined && undefined.__decorate || function (decorators, target, key, desc) {
623
581
  var d,
624
582
  c = arguments.length,
@@ -659,7 +617,7 @@ var __decorate$P = undefined && undefined.__decorate || function (decorators, ta
659
617
  step((generator = generator.apply(thisArg, _arguments || [])).next());
660
618
  });
661
619
  };
662
- let DefaultGlobal = class extends EventListenerManager {
620
+ let DefaultGlobal = class {
663
621
  get env() {
664
622
  return this._env;
665
623
  }
@@ -703,19 +661,10 @@ let DefaultGlobal = class extends EventListenerManager {
703
661
  this._env || this.setEnv("browser"), this.envContribution.applyStyles = support;
704
662
  }
705
663
  constructor(contributions) {
706
- super(), this.contributions = contributions, this._isImageAnonymous = !0, this.eventListenerTransformer = event => event, this.id = Generator.GenAutoIncrementId(), this.hooks = {
664
+ this.contributions = contributions, this._isImageAnonymous = !0, this.id = Generator.GenAutoIncrementId(), this.hooks = {
707
665
  onSetEnv: new SyncHook(["lastEnv", "env", "global"])
708
666
  }, this.measureTextMethod = "native", this.optimizeVisible = !1;
709
667
  }
710
- _nativeAddEventListener(type, listener, options) {
711
- return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
712
- }
713
- _nativeRemoveEventListener(type, listener, options) {
714
- return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
715
- }
716
- _nativeDispatchEvent(event) {
717
- return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
718
- }
719
668
  bindContribution(params) {
720
669
  const promiseArr = [];
721
670
  if (this.contributions.getContributions().forEach(contribution => {
@@ -756,6 +705,15 @@ let DefaultGlobal = class extends EventListenerManager {
756
705
  releaseCanvas(canvas) {
757
706
  return this._env || this.setEnv("browser"), this.envContribution.releaseCanvas(canvas);
758
707
  }
708
+ addEventListener(type, listener, options) {
709
+ return this._env || this.setEnv("browser"), this.envContribution.addEventListener(type, listener, options);
710
+ }
711
+ removeEventListener(type, listener, options) {
712
+ return this._env || this.setEnv("browser"), this.envContribution.removeEventListener(type, listener, options);
713
+ }
714
+ dispatchEvent(event) {
715
+ return this._env || this.setEnv("browser"), this.envContribution.dispatchEvent(event);
716
+ }
759
717
  getRequestAnimationFrame() {
760
718
  return this._env || this.setEnv("browser"), this.envContribution.getRequestAnimationFrame();
761
719
  }
@@ -1653,6 +1611,11 @@ let Step$1 = class Step {
1653
1611
  return this.context.tryUpdateLength();
1654
1612
  }
1655
1613
  };
1614
+ class StepClosed extends Step$1 {
1615
+ lineEnd() {
1616
+ this.context.closePath();
1617
+ }
1618
+ }
1656
1619
  function genStepSegments(points, t) {
1657
1620
  let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1658
1621
  const {
@@ -1666,6 +1629,16 @@ function genStepSegments(points, t) {
1666
1629
  function genStepTypeSegments(path, points) {
1667
1630
  return genCurveSegments(path, points);
1668
1631
  }
1632
+ function genStepClosedSegments(points, t) {
1633
+ let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
1634
+ const {
1635
+ direction: direction,
1636
+ startPoint: startPoint
1637
+ } = params;
1638
+ if (points.length < 2 - Number(!!startPoint)) return null;
1639
+ const segContext = new SegContext("step", null != direction ? direction : abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y) ? Direction$1.ROW : Direction$1.COLUMN);
1640
+ return genStepTypeSegments(new StepClosed(segContext, t, startPoint), points), segContext;
1641
+ }
1669
1642
 
1670
1643
  class LinearClosed extends Linear {
1671
1644
  lineEnd() {
@@ -1895,6 +1868,8 @@ function calcLineCache(points, curveType, params) {
1895
1868
  return genMonotoneYSegments(points, params);
1896
1869
  case "step":
1897
1870
  return genStepSegments(points, .5, params);
1871
+ case "stepClosed":
1872
+ return genStepClosedSegments(points, .5, params);
1898
1873
  case "stepBefore":
1899
1874
  return genStepSegments(points, 0, params);
1900
1875
  case "stepAfter":
@@ -2769,7 +2744,7 @@ function getScaledStroke(context, width, dpr) {
2769
2744
  function createColor(context, c, params) {
2770
2745
  let offsetX = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
2771
2746
  let offsetY = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
2772
- var _a, _b;
2747
+ var _a, _b, _c, _d;
2773
2748
  if (!c || !0 === c) return "black";
2774
2749
  let result, color;
2775
2750
  if (isArray(c)) for (let i = 0; i < c.length && (color = c[i], !color); i++);else color = c;
@@ -2786,7 +2761,7 @@ function createColor(context, c, params) {
2786
2761
  scaleY = 1,
2787
2762
  angle = 0
2788
2763
  } = params.attribute;
2789
- w /= scaleX, h /= scaleY, x /= scaleX, y /= scaleY, (angle || 1 !== scaleX || 1 !== scaleY) && (x = 0, y = 0, w = null !== (_a = params.widthWithoutTransform) && void 0 !== _a ? _a : w, h = null !== (_b = params.heightWithoutTransform) && void 0 !== _b ? _b : h);
2764
+ w /= scaleX, h /= scaleY, x /= scaleX, y /= scaleY, (angle || 1 !== scaleX || 1 !== scaleY) && (x = null !== (_a = params.x1WithoutTransform) && void 0 !== _a ? _a : 0, y = null !== (_b = params.y1WithoutTransform) && void 0 !== _b ? _b : 0, w = null !== (_c = params.widthWithoutTransform) && void 0 !== _c ? _c : w, h = null !== (_d = params.heightWithoutTransform) && void 0 !== _d ? _d : h);
2790
2765
  }
2791
2766
  "linear" === color.gradient ? result = createLinearGradient(context, color, x, y, w, h) : "conical" === color.gradient ? result = createConicGradient(context, color, x, y, w, h) : "radial" === color.gradient && (result = createRadialGradient(context, color, x, y, w, h));
2792
2767
  }
@@ -2811,7 +2786,7 @@ function createConicGradient(context, color, x, y, w, h) {
2811
2786
  const canvasGradient = context.createConicGradient(x + (null !== (_a = color.x) && void 0 !== _a ? _a : 0) * w, y + (null !== (_b = color.y) && void 0 !== _b ? _b : 0) * h, color.startAngle, color.endAngle);
2812
2787
  return color.stops.forEach(stop => {
2813
2788
  canvasGradient.addColorStop(stop.offset, stop.color);
2814
- }), canvasGradient.GetPattern(w + x, h + y, undefined);
2789
+ }), canvasGradient.GetPattern ? canvasGradient.GetPattern(w + x, h + y, undefined) : canvasGradient;
2815
2790
  }
2816
2791
 
2817
2792
  const DIRECTION_KEY = {
@@ -3417,7 +3392,7 @@ var __decorate$M = undefined && undefined.__decorate || function (decorators, ta
3417
3392
  };
3418
3393
  const VWindow = Symbol.for("VWindow");
3419
3394
  const WindowHandlerContribution = Symbol.for("WindowHandlerContribution");
3420
- let DefaultWindow = class extends EventListenerManager {
3395
+ let DefaultWindow = class {
3421
3396
  get width() {
3422
3397
  if (this._handler) {
3423
3398
  const wh = this._handler.getWH();
@@ -3436,7 +3411,7 @@ let DefaultWindow = class extends EventListenerManager {
3436
3411
  return this._handler.getDpr();
3437
3412
  }
3438
3413
  constructor() {
3439
- super(), this.hooks = {
3414
+ this.hooks = {
3440
3415
  onChange: new SyncHook(["x", "y", "width", "height"])
3441
3416
  }, this.active = () => {
3442
3417
  const global = this.global;
@@ -3444,15 +3419,6 @@ let DefaultWindow = class extends EventListenerManager {
3444
3419
  container.getNamed(WindowHandlerContribution, global.env).configure(this, global), this.actived = !0;
3445
3420
  }, this._uid = Generator.GenAutoIncrementId(), this.global = application.global, this.postInit();
3446
3421
  }
3447
- _nativeAddEventListener(type, listener, options) {
3448
- return this._handler.addEventListener(type, listener, options);
3449
- }
3450
- _nativeRemoveEventListener(type, listener, options) {
3451
- return this._handler.removeEventListener(type, listener, options);
3452
- }
3453
- _nativeDispatchEvent(event) {
3454
- return this._handler.dispatchEvent(event);
3455
- }
3456
3422
  postInit() {
3457
3423
  this.global.hooks.onSetEnv.tap("window", this.active), this.active();
3458
3424
  }
@@ -3492,7 +3458,7 @@ let DefaultWindow = class extends EventListenerManager {
3492
3458
  throw new Error("暂不支持");
3493
3459
  }
3494
3460
  release() {
3495
- return this.global.hooks.onSetEnv.unTap("window", this.active), this.clearAllEventListeners(), this._handler.releaseWindow();
3461
+ return this.global.hooks.onSetEnv.unTap("window", this.active), this._handler.releaseWindow();
3496
3462
  }
3497
3463
  getContext() {
3498
3464
  return this._handler.getContext();
@@ -3503,6 +3469,15 @@ let DefaultWindow = class extends EventListenerManager {
3503
3469
  getImageBuffer(type) {
3504
3470
  return this._handler.getImageBuffer ? this._handler.getImageBuffer(type) : null;
3505
3471
  }
3472
+ addEventListener(type, listener, options) {
3473
+ return this._handler.addEventListener(type, listener, options);
3474
+ }
3475
+ removeEventListener(type, listener, options) {
3476
+ return this._handler.removeEventListener(type, listener, options);
3477
+ }
3478
+ dispatchEvent(event) {
3479
+ return this._handler.dispatchEvent(event);
3480
+ }
3506
3481
  getBoundingClientRect() {
3507
3482
  return this._handler.getBoundingClientRect();
3508
3483
  }
@@ -5667,7 +5642,7 @@ class RectSymbol extends BaseSymbol {
5667
5642
  }
5668
5643
  var rect = new RectSymbol();
5669
5644
 
5670
- const tempBounds$1 = new AABBBounds();
5645
+ const tempBounds = new AABBBounds();
5671
5646
  class CustomSymbolClass {
5672
5647
  constructor(type, path) {
5673
5648
  let isSvg = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1;
@@ -5696,7 +5671,7 @@ class CustomSymbolClass {
5696
5671
  let {
5697
5672
  path: path
5698
5673
  } = _ref;
5699
- tempBounds$1.x1 = path.bounds.x1 * size, tempBounds$1.y1 = path.bounds.y1 * size, tempBounds$1.x2 = path.bounds.x2 * size, tempBounds$1.y2 = path.bounds.y2 * size, bounds.union(tempBounds$1);
5674
+ tempBounds.x1 = path.bounds.x1 * size, tempBounds.y1 = path.bounds.y1 * size, tempBounds.x2 = path.bounds.x2 * size, tempBounds.y2 = path.bounds.y2 * size, bounds.union(tempBounds);
5700
5675
  });
5701
5676
  }
5702
5677
  this.path.bounds && (bounds.x1 = this.path.bounds.x1 * size, bounds.y1 = this.path.bounds.y1 * size, bounds.x2 = this.path.bounds.x2 * size, bounds.y2 = this.path.bounds.y2 * size);
@@ -6010,8 +5985,8 @@ const SVG_PARSE_ATTRIBUTE_MAP = {
6010
5985
  const SVG_PARSE_ATTRIBUTE_MAP_KEYS = Object.keys(SVG_PARSE_ATTRIBUTE_MAP);
6011
5986
 
6012
5987
  const _tempBounds = new AABBBounds(),
6013
- tempMatrix = new Matrix(),
6014
- tempBounds = new AABBBounds();
5988
+ tempMatrix = new Matrix();
5989
+ new AABBBounds();
6015
5990
  const GRAPHIC_UPDATE_TAG_KEY = ["lineWidth", "scaleX", "scaleY", "angle", "anchor", "visible"];
6016
5991
  const tempConstantXYKey = ["x", "y"],
6017
5992
  tempConstantScaleXYKey = ["scaleX", "scaleY"],
@@ -6530,25 +6505,12 @@ class Graphic extends Node {
6530
6505
  needUpdateLayout() {
6531
6506
  return !!(this._updateTag & UpdateTag.UPDATE_LAYOUT);
6532
6507
  }
6533
- getAnchor(anchor, params) {
6508
+ getAnchor(anchor, params, resetScale) {
6534
6509
  const _anchor = [0, 0],
6535
6510
  getBounds = () => {
6536
6511
  if (params.b) return params.b;
6537
- const {
6538
- scaleX: scaleX,
6539
- scaleY: scaleY,
6540
- angle: angle,
6541
- scaleCenter: scaleCenter
6542
- } = this.attribute;
6543
- return tempBounds.copy(this._AABBBounds), this.setAttributes({
6544
- angle: 0,
6545
- scaleCenter: null
6546
- }), params.b = this.AABBBounds.clone(), this._AABBBounds.copy(tempBounds), this.setAttributes({
6547
- scaleX: scaleX,
6548
- scaleY: scaleY,
6549
- angle: angle,
6550
- scaleCenter: scaleCenter
6551
- }), params.b;
6512
+ const graphic = this.clone();
6513
+ return graphic.attribute.angle = 0, graphic.attribute.scaleCenter = null, resetScale && (graphic.attribute.scaleX = 1, graphic.attribute.scaleY = 1), params.b = graphic.AABBBounds, params.b;
6552
6514
  };
6553
6515
  if ("string" == typeof anchor[0]) {
6554
6516
  const ratio = parseFloat(anchor[0]) / 100,
@@ -6577,7 +6539,7 @@ class Graphic extends Node {
6577
6539
  const params = {};
6578
6540
  if (anchor && angle && (_anchor = this.getAnchor(anchor, params)), !scaleCenter || 1 === scaleX && 1 === scaleY) normalTransform(this._transMatrix, this._transMatrix.reset(), x, y, scaleX, scaleY, angle, anchor && _anchor);else {
6579
6541
  const m = this._transMatrix;
6580
- m.reset(), m.translate(_anchor[0], _anchor[1]), m.rotate(angle), m.translate(-_anchor[0], -_anchor[1]), m.translate(x, y), _anchor = this.getAnchor(scaleCenter, params), application.transformUtil.fromMatrix(m, m).scale(scaleX, scaleY, {
6542
+ m.reset(), m.translate(_anchor[0], _anchor[1]), m.rotate(angle), m.translate(-_anchor[0], -_anchor[1]), m.translate(x, y), _anchor = this.getAnchor(scaleCenter, params, !0), application.transformUtil.fromMatrix(m, m).scale(scaleX, scaleY, {
6581
6543
  x: _anchor[0],
6582
6544
  y: _anchor[1]
6583
6545
  });
@@ -8537,7 +8499,7 @@ let Symbol$1 = class Symbol extends Graphic {
8537
8499
  tb1: tb1,
8538
8500
  tb2: tb2
8539
8501
  } = application.graphicService.updateTempAABBBounds(aabbBounds);
8540
- updateBoundsOfSymbolOuterBorder(attribute, symbolTheme, tb1), aabbBounds.union(tb1), tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1, this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1;
8502
+ updateBoundsOfSymbolOuterBorder(attribute, symbolTheme, tb1), aabbBounds.union(tb1), tb1.setValue(tb2.x1, tb2.y1, tb2.x2, tb2.y2), this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1, this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1, this.x1WithoutTransform = aabbBounds.x1, this.y1WithoutTransform = aabbBounds.y1;
8541
8503
  const {
8542
8504
  lineJoin = symbolTheme.lineJoin
8543
8505
  } = attribute;
@@ -14995,6 +14957,11 @@ class ScrollBar extends AbstractComponent {
14995
14957
  constructor(attributes, options) {
14996
14958
  super((options === null || options === void 0 ? void 0 : options.skipDefault) ? attributes : merge({}, ScrollBar.defaultAttributes, attributes));
14997
14959
  this.name = 'scrollbar';
14960
+ this._handleTouchMove = (e) => {
14961
+ if (isValid(this._prePos)) {
14962
+ e.preventDefault();
14963
+ }
14964
+ };
14998
14965
  this._onRailPointerDown = (e) => {
14999
14966
  const { viewX, viewY } = e;
15000
14967
  const { direction, width, height, range } = this.attribute;
@@ -15033,7 +15000,7 @@ class ScrollBar extends AbstractComponent {
15033
15000
  });
15034
15001
  const triggers = getEndTriggersOfDrag();
15035
15002
  const obj = vglobal.env === 'browser' ? vglobal : this.stage;
15036
- obj.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: true });
15003
+ obj.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
15037
15004
  triggers.forEach((trigger) => {
15038
15005
  obj.addEventListener(trigger, this._onSliderPointerUp);
15039
15006
  });
@@ -15058,7 +15025,6 @@ class ScrollBar extends AbstractComponent {
15058
15025
  return [currentPos, currentScrollValue];
15059
15026
  };
15060
15027
  this._onSliderPointerMove = (e) => {
15061
- e.preventDefault();
15062
15028
  const { stopSliderMovePropagation = true } = this.attribute;
15063
15029
  if (stopSliderMovePropagation) {
15064
15030
  e.stopPropagation();
@@ -15076,6 +15042,7 @@ class ScrollBar extends AbstractComponent {
15076
15042
  const preScrollRange = this.getScrollRange();
15077
15043
  const [currentPos, currentScrollValue] = this._computeScrollValue(e);
15078
15044
  const range = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue];
15045
+ this._prePos = null;
15079
15046
  this._dispatchEvent(SCROLLBAR_END_EVENT, {
15080
15047
  pre: preRange,
15081
15048
  value: clampRange(range, limitRange[0], limitRange[1])
@@ -15130,6 +15097,9 @@ class ScrollBar extends AbstractComponent {
15130
15097
  if (this._slider) {
15131
15098
  this._slider.addEventListener('pointerdown', this._onSliderPointerDown);
15132
15099
  }
15100
+ (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
15101
+ passive: false
15102
+ });
15133
15103
  }
15134
15104
  render() {
15135
15105
  this._reset();
@@ -15216,7 +15186,7 @@ class ScrollBar extends AbstractComponent {
15216
15186
  _clearDragEvents() {
15217
15187
  const triggers = getEndTriggersOfDrag();
15218
15188
  const obj = vglobal.env === 'browser' ? vglobal : this.stage;
15219
- obj.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: false });
15189
+ obj.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
15220
15190
  triggers.forEach((trigger) => {
15221
15191
  obj.removeEventListener(trigger, this._onSliderPointerUp);
15222
15192
  });
@@ -15225,6 +15195,13 @@ class ScrollBar extends AbstractComponent {
15225
15195
  this._sliderRenderBounds = null;
15226
15196
  this._sliderLimitRange = null;
15227
15197
  }
15198
+ release(all) {
15199
+ super.release(all);
15200
+ (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
15201
+ passive: false
15202
+ });
15203
+ this._clearDragEvents();
15204
+ }
15228
15205
  }
15229
15206
  ScrollBar.defaultAttributes = {
15230
15207
  direction: 'horizontal',
@@ -23186,13 +23163,15 @@ class DataZoom extends AbstractComponent {
23186
23163
  this._activeCache.lastPos = this.eventPosToStagePos(e);
23187
23164
  const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;
23188
23165
  const triggers = getEndTriggersOfDrag();
23189
- evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
23166
+ evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23167
+ this.addEventListener('pointermove', this._onHandlerPointerMove, {
23168
+ capture: true
23169
+ });
23190
23170
  triggers.forEach((trigger) => {
23191
23171
  evtTarget.addEventListener(trigger, this._onHandlerPointerUp);
23192
23172
  });
23193
23173
  };
23194
23174
  this._pointerMove = (e) => {
23195
- e.preventDefault();
23196
23175
  const { start: startAttr, end: endAttr, brushSelect, realTime = true } = this.attribute;
23197
23176
  const pos = this.eventPosToStagePos(e);
23198
23177
  const { attPos, max } = this._layoutCache;
@@ -23222,12 +23201,12 @@ class DataZoom extends AbstractComponent {
23222
23201
  end = end + dis;
23223
23202
  }
23224
23203
  }
23204
+ this._activeCache.lastPos = pos;
23225
23205
  brushSelect && this.renderDragMask();
23226
23206
  }
23227
23207
  start = Math.min(Math.max(start, 0), 1);
23228
23208
  end = Math.min(Math.max(end, 0), 1);
23229
23209
  if (startAttr !== start || endAttr !== end) {
23230
- this._activeCache.lastPos = pos;
23231
23210
  this.setStateAttr(start, end, true);
23232
23211
  if (realTime) {
23233
23212
  this._dispatchEvent('change', {
@@ -23341,10 +23320,13 @@ class DataZoom extends AbstractComponent {
23341
23320
  _clearDragEvents() {
23342
23321
  const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;
23343
23322
  const triggers = getEndTriggersOfDrag();
23344
- evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
23323
+ evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23345
23324
  triggers.forEach((trigger) => {
23346
23325
  evtTarget.removeEventListener(trigger, this._onHandlerPointerUp);
23347
23326
  });
23327
+ this.removeEventListener('pointermove', this._onHandlerPointerMove, {
23328
+ capture: true
23329
+ });
23348
23330
  }
23349
23331
  _onHandlerPointerEnter(e) {
23350
23332
  this._showText = true;
@@ -27398,14 +27380,13 @@ class Slider extends AbstractComponent {
27398
27380
  this._prePos = this._isHorizontal ? x : y;
27399
27381
  const triggers = getEndTriggersOfDrag();
27400
27382
  const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27401
- obj.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
27383
+ obj.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
27402
27384
  triggers.forEach((trigger) => {
27403
27385
  obj.addEventListener(trigger, this._onHandlerPointerUp);
27404
27386
  });
27405
27387
  };
27406
27388
  this._onHandlerPointerMove = (e) => {
27407
27389
  var _a, _b;
27408
- e.preventDefault();
27409
27390
  this._isChanging = true;
27410
27391
  const { railWidth, railHeight, min, max } = this.attribute;
27411
27392
  if (max === min) {
@@ -27457,13 +27438,12 @@ class Slider extends AbstractComponent {
27457
27438
  this._prePos = this._isHorizontal ? x : y;
27458
27439
  const triggers = getEndTriggersOfDrag();
27459
27440
  const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27460
- obj.addEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false });
27441
+ obj.addEventListener('pointermove', this._onTrackPointerMove, { capture: true });
27461
27442
  triggers.forEach((trigger) => {
27462
27443
  obj.addEventListener(trigger, this._onTrackPointerUp);
27463
27444
  });
27464
27445
  };
27465
27446
  this._onTrackPointerMove = (e) => {
27466
- e.preventDefault();
27467
27447
  this._isChanging = true;
27468
27448
  const { railWidth, railHeight, min, max, inverse } = this.attribute;
27469
27449
  if (max === min) {
@@ -27913,11 +27893,11 @@ class Slider extends AbstractComponent {
27913
27893
  _clearAllDragEvents() {
27914
27894
  const triggers = getEndTriggersOfDrag();
27915
27895
  const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27916
- obj.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
27896
+ obj.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
27917
27897
  triggers.forEach((trigger) => {
27918
27898
  obj.removeEventListener(trigger, this._onHandlerPointerUp);
27919
27899
  });
27920
- obj.removeEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false });
27900
+ obj.removeEventListener('pointermove', this._onTrackPointerMove, { capture: true });
27921
27901
  triggers.forEach((trigger) => {
27922
27902
  obj.removeEventListener(trigger, this._onTrackPointerUp);
27923
27903
  });
@@ -29832,6 +29812,7 @@ class Brush extends AbstractComponent {
29832
29812
  this._activeMoveState = brushMoved && this._isPosInBrushMask(e);
29833
29813
  this._activeDrawState = !this._activeMoveState;
29834
29814
  this._startPos = this.eventPosToStagePos(e);
29815
+ this._cacheDrawPoints = [this._startPos];
29835
29816
  };
29836
29817
  this._onBrushing = (e) => {
29837
29818
  if (this._outOfInteractiveRange(e)) {
@@ -29882,7 +29863,7 @@ class Brush extends AbstractComponent {
29882
29863
  _initDraw(e) {
29883
29864
  const { brushMode } = this.attribute;
29884
29865
  const pos = this.eventPosToStagePos(e);
29885
- this._cacheDrawPoints = [pos];
29866
+ this._cacheDrawPoints.push(pos);
29886
29867
  brushMode === 'single' && this._clearMask();
29887
29868
  this._addBrushMask();
29888
29869
  this._dispatchBrushEvent(IOperateType.drawStart, e);
@@ -31661,6 +31642,6 @@ StoryLabelItem.defaultAttributes = {
31661
31642
  theme: 'default'
31662
31643
  };
31663
31644
 
31664
- const version = "0.22.9-alpha.2";
31645
+ const version = "0.22.10-alpha.1";
31665
31646
 
31666
31647
  export { AXIS_ELEMENT_NAME, AbstractComponent, ArcInfo, ArcLabel, ArcSegment, AxisStateValue, BasePlayer, Brush, CheckBox, CircleAxis, CircleAxisGrid, CircleCrosshair, ColorContinuousLegend, ContinuousPlayer, DEFAULT_ITEM_SPACE_COL, DEFAULT_ITEM_SPACE_ROW, DEFAULT_LABEL_SPACE, DEFAULT_PAGER_SPACE, DEFAULT_SHAPE_SIZE, DEFAULT_SHAPE_SPACE, DEFAULT_STATES$1 as DEFAULT_STATES, DEFAULT_TITLE_SPACE, DEFAULT_VALUE_SPACE, DataLabel, DataZoom, DataZoomActiveTag, DirectionEnum, DiscreteLegend, DiscretePlayer, EmptyTip, GroupTransition, IMarkAreaLabelPosition, IMarkCommonArcLabelPosition, IMarkLineLabelPosition, IMarkPointItemPosition, IOperateType, Indicator, LEGEND_ELEMENT_NAME, LabelBase, LegendEvent, LegendStateValue, LineAxis, LineAxisGrid, LineCrosshair, LineLabel, LinkPath, MarkArcArea, MarkArcLine, MarkArea, MarkLine, MarkPoint, Pager, PlayerEventEnum, PolygonCrosshair, PolygonSectorCrosshair, PopTip, Radio, RectCrosshair, RectLabel, SLIDER_ELEMENT_NAME, ScrollBar, SectorCrosshair, Segment, SizeContinuousLegend, Slider, StoryLabelItem, Switch, SymbolLabel, Tag, Timeline, Title, Tooltip, TopZIndex, VTag, WeatherBox, alignTextInLine, angle, angleLabelOrientAttribute, angleTo, cartesianTicks, clampRadian, computeOffsetForlimit, continuousTicks, contrastAccessibilityChecker, convertDomainToTickData, createTextGraphicByType, deltaXYToAngle, fuzzyEqualNumber, getAxisBreakSymbolAttrs, getCircleLabelPosition, getCirclePoints, getCircleVerticalVector, getElMap, getHorizontalPath, getMarksByName, getNoneGroupMarksByName, getPolarAngleLabelPosition, getPolygonPath, getSizeHandlerPath, getTextAlignAttrOfVerticalDir, getTextType, getVerticalCoord, getVerticalPath, hasOverlap, htmlAttributeTransform, initTextMeasure, isInRange, isPostiveXAxis, isRichText, isVisible, labelSmartInvert, length, limitShapeInBounds, linearDiscreteTicks, loadPoptip, loadScrollbar, measureTextSize, normalize, polarAngleAxisDiscreteTicks, polarTicks, reactAttributeTransform, registerArcDataLabel, registerLineDataLabel, registerMarkArcAreaAnimate, registerMarkArcLineAnimate, registerMarkAreaAnimate, registerMarkLineAnimate, registerMarkPointAnimate, registerRectDataLabel, registerSymbolDataLabel, removeRepeatPoint, richTextAttributeTransform, scale, scrollbarModule, setPoptipTheme, smartInvertStrategy, tan2AngleToAngle, textIntersect, ticks, traverseGroup, version };
package/es/brush/brush.js CHANGED
@@ -30,7 +30,8 @@ export class Brush extends AbstractComponent {
30
30
  array(updateTrigger).forEach((t => this.stage.addEventListener(t, this._onBrushingWithDelay))),
31
31
  array(endTrigger).forEach((t => this.stage.addEventListener(t, this._onBrushEnd))),
32
32
  e.stopPropagation(), this._firstUpdate = !0, this._activeMoveState = brushMoved && this._isPosInBrushMask(e),
33
- this._activeDrawState = !this._activeMoveState, this._startPos = this.eventPosToStagePos(e);
33
+ this._activeDrawState = !this._activeMoveState, this._startPos = this.eventPosToStagePos(e),
34
+ this._cacheDrawPoints = [ this._startPos ];
34
35
  }, this._onBrushing = e => {
35
36
  this._outOfInteractiveRange(e) || (e.stopPropagation(), this._firstUpdate ? (this._activeDrawState && this._initDraw(e),
36
37
  this._activeMoveState && this._initMove(e), this._firstUpdate = !1) : (this._activeDrawState && this._drawing(e),
@@ -52,7 +53,7 @@ export class Brush extends AbstractComponent {
52
53
  }
53
54
  _initDraw(e) {
54
55
  const {brushMode: brushMode} = this.attribute, pos = this.eventPosToStagePos(e);
55
- this._cacheDrawPoints = [ pos ], "single" === brushMode && this._clearMask(), this._addBrushMask(),
56
+ this._cacheDrawPoints.push(pos), "single" === brushMode && this._clearMask(), this._addBrushMask(),
56
57
  this._dispatchBrushEvent(IOperateType.drawStart, e), 1 === Object.keys(this._brushMaskAABBBoundsDict).length && this._dispatchBrushEvent(IOperateType.brushActive, e);
57
58
  }
58
59
  _initMove(e) {