@visactor/vrender-components 0.22.7-alpha.7 → 0.22.7-alpha.8

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 (50) hide show
  1. package/cjs/axis/util.js +2 -1
  2. package/cjs/brush/brush.d.ts +7 -4
  3. package/cjs/brush/brush.js +53 -67
  4. package/cjs/brush/brush.js.map +1 -1
  5. package/cjs/brush/config.d.ts +1 -1
  6. package/cjs/brush/config.js +1 -1
  7. package/cjs/brush/config.js.map +1 -1
  8. package/cjs/brush/type.js +1 -2
  9. package/cjs/brush/type.js.map +1 -1
  10. package/cjs/data-zoom/data-zoom.d.ts +0 -3
  11. package/cjs/data-zoom/data-zoom.js +24 -39
  12. package/cjs/data-zoom/data-zoom.js.map +1 -1
  13. package/cjs/index.d.ts +1 -1
  14. package/cjs/index.js +1 -1
  15. package/cjs/index.js.map +1 -1
  16. package/cjs/scrollbar/scrollbar.d.ts +0 -1
  17. package/cjs/scrollbar/scrollbar.js +12 -21
  18. package/cjs/scrollbar/scrollbar.js.map +1 -1
  19. package/cjs/slider/slider.d.ts +0 -3
  20. package/cjs/slider/slider.js +27 -48
  21. package/cjs/slider/slider.js.map +1 -1
  22. package/dist/index.es.js +179 -187
  23. package/es/axis/util.js +2 -1
  24. package/es/brush/brush.d.ts +7 -4
  25. package/es/brush/brush.js +55 -70
  26. package/es/brush/brush.js.map +1 -1
  27. package/es/brush/config.d.ts +1 -1
  28. package/es/brush/config.js +1 -1
  29. package/es/brush/config.js.map +1 -1
  30. package/es/brush/type.js +1 -2
  31. package/es/brush/type.js.map +1 -1
  32. package/es/data-zoom/data-zoom.d.ts +0 -3
  33. package/es/data-zoom/data-zoom.js +21 -38
  34. package/es/data-zoom/data-zoom.js.map +1 -1
  35. package/es/index.d.ts +1 -1
  36. package/es/index.js +1 -1
  37. package/es/index.js.map +1 -1
  38. package/es/scrollbar/scrollbar.d.ts +0 -1
  39. package/es/scrollbar/scrollbar.js +11 -22
  40. package/es/scrollbar/scrollbar.js.map +1 -1
  41. package/es/slider/slider.d.ts +0 -3
  42. package/es/slider/slider.js +26 -49
  43. package/es/slider/slider.js.map +1 -1
  44. package/package.json +3 -3
  45. package/cjs/util/event.d.ts +0 -1
  46. package/cjs/util/event.js +0 -14
  47. package/cjs/util/event.js.map +0 -1
  48. package/es/util/event.d.ts +0 -1
  49. package/es/util/event.js +0 -6
  50. package/es/util/event.js.map +0 -1
package/dist/index.es.js CHANGED
@@ -14909,13 +14909,6 @@ const SCROLLBAR_START_EVENT = 'scrollDown';
14909
14909
  const SCROLLBAR_EVENT = 'scrollDrag';
14910
14910
  const SCROLLBAR_END_EVENT = 'scrollUp';
14911
14911
 
14912
- function getEndTriggersOfDrag() {
14913
- if (vglobal.env === 'browser') {
14914
- return ['pointerup', 'pointerleave', 'pointercancel'];
14915
- }
14916
- return ['pointerup', 'pointerleave', 'pointerupoutside'];
14917
- }
14918
-
14919
14912
  const delayMap$2 = {
14920
14913
  debounce: debounce,
14921
14914
  throttle: throttle
@@ -14949,7 +14942,6 @@ class ScrollBar extends AbstractComponent {
14949
14942
  }
14950
14943
  };
14951
14944
  this._onSliderPointerDown = (e) => {
14952
- this._clearDragEvents();
14953
14945
  const { stopSliderDownPropagation = true } = this.attribute;
14954
14946
  if (stopSliderDownPropagation) {
14955
14947
  e.stopPropagation();
@@ -14961,12 +14953,15 @@ class ScrollBar extends AbstractComponent {
14961
14953
  pos: this._prePos,
14962
14954
  event: e
14963
14955
  });
14964
- const triggers = getEndTriggersOfDrag();
14965
- const obj = vglobal.env === 'browser' ? vglobal : this.stage;
14966
- obj.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: true });
14967
- triggers.forEach((trigger) => {
14968
- obj.addEventListener(trigger, this._onSliderPointerUp);
14969
- });
14956
+ if (vglobal.env === 'browser') {
14957
+ vglobal.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
14958
+ vglobal.addEventListener('pointerup', this._onSliderPointerUp);
14959
+ }
14960
+ else {
14961
+ this.stage.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
14962
+ this.stage.addEventListener('pointerup', this._onSliderPointerUp);
14963
+ this.stage.addEventListener('pointerupoutside', this._onSliderPointerUp);
14964
+ }
14970
14965
  };
14971
14966
  this._computeScrollValue = (e) => {
14972
14967
  const { direction } = this.attribute;
@@ -14988,7 +14983,6 @@ class ScrollBar extends AbstractComponent {
14988
14983
  return [currentPos, currentScrollValue];
14989
14984
  };
14990
14985
  this._onSliderPointerMove = (e) => {
14991
- e.preventDefault();
14992
14986
  const { stopSliderMovePropagation = true } = this.attribute;
14993
14987
  if (stopSliderMovePropagation) {
14994
14988
  e.stopPropagation();
@@ -15002,6 +14996,7 @@ class ScrollBar extends AbstractComponent {
15002
14996
  ? this._onSliderPointerMove
15003
14997
  : delayMap$2[this.attribute.delayType](this._onSliderPointerMove, this.attribute.delayTime);
15004
14998
  this._onSliderPointerUp = (e) => {
14999
+ e.preventDefault();
15005
15000
  const { range: preRange, limitRange = [0, 1] } = this.attribute;
15006
15001
  const preScrollRange = this.getScrollRange();
15007
15002
  const [currentPos, currentScrollValue] = this._computeScrollValue(e);
@@ -15010,7 +15005,15 @@ class ScrollBar extends AbstractComponent {
15010
15005
  pre: preRange,
15011
15006
  value: clampRange(range, limitRange[0], limitRange[1])
15012
15007
  });
15013
- this._clearDragEvents();
15008
+ if (vglobal.env === 'browser') {
15009
+ vglobal.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
15010
+ vglobal.removeEventListener('pointerup', this._onSliderPointerUp);
15011
+ }
15012
+ else {
15013
+ this.stage.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true });
15014
+ this.stage.removeEventListener('pointerup', this._onSliderPointerUp);
15015
+ this.stage.removeEventListener('pointerupoutside', this._onSliderPointerUp);
15016
+ }
15014
15017
  };
15015
15018
  }
15016
15019
  setScrollRange(range, render = true) {
@@ -15143,14 +15146,6 @@ class ScrollBar extends AbstractComponent {
15143
15146
  ? clampRange([x1 + min * width, x1 + max * width], x1, width - sliderSize)
15144
15147
  : clampRange([y1 + min * height, y1 + max * height], y1, height - sliderSize);
15145
15148
  }
15146
- _clearDragEvents() {
15147
- const triggers = getEndTriggersOfDrag();
15148
- const obj = vglobal.env === 'browser' ? vglobal : this.stage;
15149
- obj.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: false });
15150
- triggers.forEach((trigger) => {
15151
- obj.removeEventListener(trigger, this._onSliderPointerUp);
15152
- });
15153
- }
15154
15149
  _reset() {
15155
15150
  this._sliderRenderBounds = null;
15156
15151
  this._sliderLimitRange = null;
@@ -23015,13 +23010,8 @@ class DataZoom extends AbstractComponent {
23015
23010
  end: 1
23016
23011
  };
23017
23012
  this._statePointToData = state => state;
23018
- this._handleTouchMove = (e) => {
23019
- if (this._activeState) {
23020
- e.preventDefault();
23021
- }
23022
- };
23023
23013
  this._onHandlerPointerDown = (e, tag) => {
23024
- this._clearDragEvents();
23014
+ e.stopPropagation();
23025
23015
  if (tag === 'start') {
23026
23016
  this._activeTag = DataZoomActiveTag.startHandler;
23027
23017
  this._activeItem = this._startHandlerMask;
@@ -23045,15 +23035,14 @@ class DataZoom extends AbstractComponent {
23045
23035
  this._activeState = true;
23046
23036
  this._activeCache.startPos = this.eventPosToStagePos(e);
23047
23037
  this._activeCache.lastPos = this.eventPosToStagePos(e);
23048
- const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;
23049
- const triggers = getEndTriggersOfDrag();
23050
- evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
23051
- triggers.forEach((trigger) => {
23052
- evtTarget.addEventListener(trigger, this._onHandlerPointerUp);
23053
- });
23038
+ if (vglobal.env === 'browser') {
23039
+ vglobal.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23040
+ vglobal.addEventListener('pointerup', this._onHandlerPointerUp);
23041
+ }
23042
+ this.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23054
23043
  };
23055
23044
  this._pointerMove = (e) => {
23056
- e.preventDefault();
23045
+ e.stopPropagation();
23057
23046
  const { start: startAttr, end: endAttr, brushSelect, realTime = true } = this.attribute;
23058
23047
  const pos = this.eventPosToStagePos(e);
23059
23048
  const { attPos, max } = this._layoutCache;
@@ -23083,12 +23072,12 @@ class DataZoom extends AbstractComponent {
23083
23072
  end = end + dis;
23084
23073
  }
23085
23074
  }
23075
+ this._activeCache.lastPos = pos;
23086
23076
  brushSelect && this.renderDragMask();
23087
23077
  }
23088
23078
  start = Math.min(Math.max(start, 0), 1);
23089
23079
  end = Math.min(Math.max(end, 0), 1);
23090
23080
  if (startAttr !== start || endAttr !== end) {
23091
- this._activeCache.lastPos = pos;
23092
23081
  this.setStateAttr(start, end, true);
23093
23082
  if (realTime) {
23094
23083
  this._dispatchEvent('change', {
@@ -23103,6 +23092,7 @@ class DataZoom extends AbstractComponent {
23103
23092
  ? this._pointerMove
23104
23093
  : delayMap$1[this.attribute.delayType](this._pointerMove, this.attribute.delayTime);
23105
23094
  this._onHandlerPointerUp = (e) => {
23095
+ e.preventDefault();
23106
23096
  const { start, end, brushSelect, realTime = true } = this.attribute;
23107
23097
  if (this._activeState) {
23108
23098
  if (this._activeTag === DataZoomActiveTag.background) {
@@ -23117,7 +23107,12 @@ class DataZoom extends AbstractComponent {
23117
23107
  end: this.state.end,
23118
23108
  tag: this._activeTag
23119
23109
  });
23120
- this._clearDragEvents();
23110
+ if (vglobal.env === 'browser') {
23111
+ vglobal.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23112
+ vglobal.removeEventListener('pointerup', this._onHandlerPointerUp);
23113
+ }
23114
+ this.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true });
23115
+ this.removeEventListener('pointerup', this._onHandlerPointerUp);
23121
23116
  };
23122
23117
  const { position, showDetail } = attributes;
23123
23118
  this._activeCache.startPos = position;
@@ -23165,13 +23160,12 @@ class DataZoom extends AbstractComponent {
23165
23160
  if (this._selectedPreviewGroup) {
23166
23161
  this._selectedPreviewGroup.addEventListener('pointerdown', (e) => this._onHandlerPointerDown(e, selectedTag));
23167
23162
  }
23163
+ this.addEventListener('pointerup', this._onHandlerPointerUp);
23164
+ this.addEventListener('pointerupoutside', this._onHandlerPointerUp);
23168
23165
  if (showDetail === 'auto') {
23169
23166
  this.addEventListener('pointerenter', this._onHandlerPointerEnter);
23170
23167
  this.addEventListener('pointerleave', this._onHandlerPointerLeave);
23171
23168
  }
23172
- (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
23173
- passive: false
23174
- });
23175
23169
  }
23176
23170
  dragMaskSize() {
23177
23171
  const { position } = this.attribute;
@@ -23199,19 +23193,13 @@ class DataZoom extends AbstractComponent {
23199
23193
  var _a, _b;
23200
23194
  return (_b = (_a = this.stage) === null || _a === void 0 ? void 0 : _a.eventPointTransform(e)) !== null && _b !== void 0 ? _b : { x: 0, y: 0 };
23201
23195
  }
23202
- _clearDragEvents() {
23203
- const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage;
23204
- const triggers = getEndTriggersOfDrag();
23205
- evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
23206
- triggers.forEach((trigger) => {
23207
- evtTarget.removeEventListener(trigger, this._onHandlerPointerUp);
23208
- });
23209
- }
23210
23196
  _onHandlerPointerEnter(e) {
23197
+ e.stopPropagation();
23211
23198
  this._showText = true;
23212
23199
  this.renderText();
23213
23200
  }
23214
23201
  _onHandlerPointerLeave(e) {
23202
+ e.stopPropagation();
23215
23203
  this._showText = false;
23216
23204
  this.renderText();
23217
23205
  }
@@ -23721,13 +23709,6 @@ class DataZoom extends AbstractComponent {
23721
23709
  setStatePointToData(callback) {
23722
23710
  isFunction(callback) && (this._statePointToData = callback);
23723
23711
  }
23724
- release(all) {
23725
- super.release(all);
23726
- (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
23727
- passive: false
23728
- });
23729
- this._clearDragEvents();
23730
- }
23731
23712
  }
23732
23713
  DataZoom.defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;
23733
23714
 
@@ -27235,21 +27216,28 @@ class Slider extends AbstractComponent {
27235
27216
  this._dispatchTooltipEvent('sliderTooltipHide');
27236
27217
  };
27237
27218
  this._onHandlerPointerdown = (e) => {
27238
- this._clearAllDragEvents();
27219
+ e.stopPropagation();
27239
27220
  this._isChanging = true;
27240
27221
  const { x, y } = this.stage.eventPointTransform(e);
27241
27222
  this._currentHandler = e.target;
27242
27223
  this._prePos = this._isHorizontal ? x : y;
27243
- const triggers = getEndTriggersOfDrag();
27244
- const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27245
- obj.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
27246
- triggers.forEach((trigger) => {
27247
- obj.addEventListener(trigger, this._onHandlerPointerUp);
27248
- });
27224
+ if (vglobal.env === 'browser') {
27225
+ vglobal.addEventListener('pointermove', this._onHandlerPointerMove, {
27226
+ capture: true
27227
+ });
27228
+ vglobal.addEventListener('pointerup', this._onHandlerPointerUp);
27229
+ }
27230
+ else {
27231
+ this.stage.addEventListener('pointermove', this._onHandlerPointerMove, {
27232
+ capture: true
27233
+ });
27234
+ this.stage.addEventListener('pointerup', this._onHandlerPointerUp);
27235
+ this.stage.addEventListener('pointerupoutside', this._onHandlerPointerUp);
27236
+ }
27249
27237
  };
27250
27238
  this._onHandlerPointerMove = (e) => {
27251
27239
  var _a, _b;
27252
- e.preventDefault();
27240
+ e.stopPropagation();
27253
27241
  this._isChanging = true;
27254
27242
  const { railWidth, railHeight, min, max } = this.attribute;
27255
27243
  if (max === min) {
@@ -27285,29 +27273,44 @@ class Slider extends AbstractComponent {
27285
27273
  this._dispatchChangeEvent();
27286
27274
  };
27287
27275
  this._onHandlerPointerUp = (e) => {
27276
+ e.preventDefault();
27288
27277
  this._isChanging = false;
27289
27278
  this._currentHandler = null;
27290
- this._clearAllDragEvents();
27291
- };
27292
- this._handleTouchMove = (e) => {
27293
- if (this._isChanging) {
27294
- e.preventDefault();
27279
+ if (vglobal.env === 'browser') {
27280
+ vglobal.removeEventListener('pointermove', this._onHandlerPointerMove, {
27281
+ capture: true
27282
+ });
27283
+ vglobal.removeEventListener('pointerup', this._onHandlerPointerUp);
27284
+ }
27285
+ else {
27286
+ this.stage.removeEventListener('pointermove', this._onHandlerPointerMove, {
27287
+ capture: true
27288
+ });
27289
+ this.stage.removeEventListener('pointerup', this._onHandlerPointerUp);
27290
+ this.stage.removeEventListener('pointerupoutside', this._onHandlerPointerUp);
27295
27291
  }
27296
27292
  };
27297
27293
  this._onTrackPointerdown = (e) => {
27298
- this._clearAllDragEvents();
27294
+ e.stopPropagation();
27299
27295
  this._isChanging = true;
27300
27296
  const { x, y } = this.stage.eventPointTransform(e);
27301
27297
  this._prePos = this._isHorizontal ? x : y;
27302
- const triggers = getEndTriggersOfDrag();
27303
- const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27304
- obj.addEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false });
27305
- triggers.forEach((trigger) => {
27306
- obj.addEventListener(trigger, this._onTrackPointerUp);
27307
- });
27298
+ if (vglobal.env === 'browser') {
27299
+ vglobal.addEventListener('pointermove', this._onTrackPointerMove, {
27300
+ capture: true
27301
+ });
27302
+ vglobal.addEventListener('pointerup', this._onTrackPointerUp);
27303
+ }
27304
+ else {
27305
+ this.stage.addEventListener('pointermove', this._onTrackPointerMove, {
27306
+ capture: true
27307
+ });
27308
+ this.stage.addEventListener('pointerup', this._onTrackPointerUp);
27309
+ this.stage.addEventListener('pointerupoutside', this._onTrackPointerUp);
27310
+ }
27308
27311
  };
27309
27312
  this._onTrackPointerMove = (e) => {
27310
- e.preventDefault();
27313
+ e.stopPropagation();
27311
27314
  this._isChanging = true;
27312
27315
  const { railWidth, railHeight, min, max, inverse } = this.attribute;
27313
27316
  if (max === min) {
@@ -27359,11 +27362,24 @@ class Slider extends AbstractComponent {
27359
27362
  this._dispatchChangeEvent();
27360
27363
  };
27361
27364
  this._onTrackPointerUp = (e) => {
27365
+ e.preventDefault();
27362
27366
  this._isChanging = false;
27363
- this._clearAllDragEvents();
27367
+ if (vglobal.env === 'browser') {
27368
+ vglobal.removeEventListener('pointermove', this._onTrackPointerMove, {
27369
+ capture: true
27370
+ });
27371
+ vglobal.removeEventListener('pointerup', this._onTrackPointerUp);
27372
+ }
27373
+ else {
27374
+ this.stage.removeEventListener('pointermove', this._onTrackPointerMove, {
27375
+ capture: true
27376
+ });
27377
+ this.stage.removeEventListener('pointerup', this._onTrackPointerUp);
27378
+ this.stage.removeEventListener('pointerupoutside', this._onTrackPointerUp);
27379
+ }
27364
27380
  };
27365
27381
  this._onRailPointerDown = (e) => {
27366
- this._clearAllDragEvents();
27382
+ e.stopPropagation();
27367
27383
  this._isChanging = true;
27368
27384
  const { railWidth, railHeight, min, max } = this.attribute;
27369
27385
  if (max === min) {
@@ -27741,9 +27757,6 @@ class Slider extends AbstractComponent {
27741
27757
  this._track.addEventListener('pointerdown', this._onTrackPointerdown);
27742
27758
  }
27743
27759
  this._railContainer.addEventListener('pointerdown', this._onRailPointerDown);
27744
- (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
27745
- passive: false
27746
- });
27747
27760
  }
27748
27761
  }
27749
27762
  _bindTooltipEvents() {
@@ -27754,18 +27767,6 @@ class Slider extends AbstractComponent {
27754
27767
  this._mainContainer.addEventListener('pointermove', this._onTooltipUpdate);
27755
27768
  this._mainContainer.addEventListener('pointerleave', this._onTooltipHide);
27756
27769
  }
27757
- _clearAllDragEvents() {
27758
- const triggers = getEndTriggersOfDrag();
27759
- const obj = vglobal.env === 'browser' ? vglobal : this.stage;
27760
- obj.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false });
27761
- triggers.forEach((trigger) => {
27762
- obj.removeEventListener(trigger, this._onHandlerPointerUp);
27763
- });
27764
- obj.removeEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false });
27765
- triggers.forEach((trigger) => {
27766
- obj.removeEventListener(trigger, this._onTrackPointerUp);
27767
- });
27768
- }
27769
27770
  _updateTrack() {
27770
27771
  const { inverse, railWidth, railHeight } = this.attribute;
27771
27772
  const startHandler = this._startHandler;
@@ -27906,13 +27907,6 @@ class Slider extends AbstractComponent {
27906
27907
  endHandler
27907
27908
  };
27908
27909
  }
27909
- release(all) {
27910
- super.release(all);
27911
- (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, {
27912
- passive: false
27913
- });
27914
- this._clearAllDragEvents();
27915
- }
27916
27910
  }
27917
27911
  Slider.defaultAttributes = {
27918
27912
  slidable: true,
@@ -29612,7 +29606,7 @@ var IOperateType;
29612
29606
  const DEFAULT_BRUSH_ATTRIBUTES = {
29613
29607
  trigger: 'pointerdown',
29614
29608
  updateTrigger: 'pointermove',
29615
- endTrigger: 'pointerup',
29609
+ endTrigger: ['pointerup', 'pointerleave'],
29616
29610
  resetTrigger: 'pointerupoutside',
29617
29611
  hasMask: true,
29618
29612
  brushMode: 'single',
@@ -29666,6 +29660,7 @@ class Brush extends AbstractComponent {
29666
29660
  this._isDownBeforeUpOutside = true;
29667
29661
  return;
29668
29662
  }
29663
+ this._isDownBeforeUpOutside = false;
29669
29664
  e.stopPropagation();
29670
29665
  const brushMoved = (_a = this.attribute.brushMoved) !== null && _a !== void 0 ? _a : true;
29671
29666
  this._activeMoveState = brushMoved && this._isPosInBrushMask(e);
@@ -29688,6 +29683,14 @@ class Brush extends AbstractComponent {
29688
29683
  : delayMap[this.attribute.delayType](this._onBrushing, this.attribute.delayTime);
29689
29684
  this._onBrushEnd = (e) => {
29690
29685
  var _a;
29686
+ if (this._isDownBeforeUpOutside) {
29687
+ if (!this._isEmptyMask()) {
29688
+ this._clearMask();
29689
+ this._dispatchBrushEvent(IOperateType.brushClear, e);
29690
+ }
29691
+ this._isDownBeforeUpOutside = false;
29692
+ return;
29693
+ }
29691
29694
  if (!this._activeDrawState && !this._activeMoveState) {
29692
29695
  return;
29693
29696
  }
@@ -29695,29 +29698,29 @@ class Brush extends AbstractComponent {
29695
29698
  const { removeOnClick = true } = this.attribute;
29696
29699
  if (this._activeDrawState && !this._isDrawedBeforeEnd && removeOnClick) {
29697
29700
  if ((_a = this._operatingMask) === null || _a === void 0 ? void 0 : _a._AABBBounds.empty()) {
29698
- this._dispatchEvent(IOperateType.brushClear, {
29699
- operateMask: this._operatingMask,
29700
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29701
- event: e
29702
- });
29701
+ if (!this._isEmptyMask()) {
29702
+ this._clearMask();
29703
+ this._dispatchBrushEvent(IOperateType.brushClear, e);
29704
+ }
29705
+ }
29706
+ else {
29707
+ delete this._brushMaskAABBBoundsDict[this._operatingMask.name];
29708
+ this._container.setAttributes({});
29709
+ this._container.removeChild(this._operatingMask);
29710
+ if (!this._isEmptyMask()) {
29711
+ this._dispatchBrushEvent(IOperateType.brushClear, e);
29712
+ }
29713
+ else {
29714
+ this._dispatchBrushEvent(IOperateType.drawEnd, e);
29715
+ }
29703
29716
  }
29704
- this._container.incrementalClearChild();
29705
- this._brushMaskAABBBoundsDict = {};
29706
29717
  }
29707
29718
  else {
29708
29719
  if (this._activeDrawState) {
29709
- this._dispatchEvent(IOperateType.drawEnd, {
29710
- operateMask: this._operatingMask,
29711
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29712
- event: e
29713
- });
29720
+ this._dispatchBrushEvent(IOperateType.drawEnd, e);
29714
29721
  }
29715
29722
  if (this._activeMoveState) {
29716
- this._dispatchEvent(IOperateType.moveEnd, {
29717
- operateMask: this._operatingMask,
29718
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29719
- event: e
29720
- });
29723
+ this._dispatchBrushEvent(IOperateType.moveEnd, e);
29721
29724
  }
29722
29725
  }
29723
29726
  this._activeDrawState = false;
@@ -29729,23 +29732,14 @@ class Brush extends AbstractComponent {
29729
29732
  };
29730
29733
  this._onBrushClear = (e) => {
29731
29734
  e.preventDefault();
29732
- const { removeOnClick = true } = this.attribute;
29733
- if (this._isDownBeforeUpOutside && removeOnClick) {
29734
- this._dispatchEvent(IOperateType.brushClear, {
29735
- operateMask: this._operatingMask,
29736
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29737
- event: e
29738
- });
29739
- this._container.incrementalClearChild();
29740
- this._brushMaskAABBBoundsDict = {};
29735
+ if (!this._isEmptyMask()) {
29736
+ this._clearMask();
29737
+ this._dispatchBrushEvent(IOperateType.brushClear, e);
29741
29738
  }
29742
29739
  this._activeDrawState = false;
29743
29740
  this._activeMoveState = false;
29744
29741
  this._isDrawedBeforeEnd = false;
29745
29742
  this._isDownBeforeUpOutside = false;
29746
- if (this._operatingMask) {
29747
- this._operatingMask.setAttribute('pickable', false);
29748
- }
29749
29743
  };
29750
29744
  }
29751
29745
  _bindBrushEvents() {
@@ -29753,44 +29747,19 @@ class Brush extends AbstractComponent {
29753
29747
  return;
29754
29748
  }
29755
29749
  const { trigger = DEFAULT_BRUSH_ATTRIBUTES.trigger, updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger, endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger, resetTrigger = DEFAULT_BRUSH_ATTRIBUTES.resetTrigger } = this.attribute;
29756
- array(trigger).forEach(t => vglobal.addEventListener(t, this._onBrushStart));
29750
+ array(trigger).forEach(t => this.stage.addEventListener(t, this._onBrushStart));
29757
29751
  array(updateTrigger).forEach(t => this.stage.addEventListener(t, this._onBrushingWithDelay));
29758
29752
  array(endTrigger).forEach(t => this.stage.addEventListener(t, this._onBrushEnd));
29759
29753
  array(resetTrigger).forEach(t => this.stage.addEventListener(t, this._onBrushClear));
29760
29754
  }
29761
- _isPosInBrushMask(e) {
29762
- const pos = this.eventPosToStagePos(e);
29763
- const brushMasks = this._container.getChildren();
29764
- for (let i = 0; i < brushMasks.length; i++) {
29765
- const { points = [], dx = 0, dy = 0 } = brushMasks[i].attribute;
29766
- const pointsConsiderOffset = points.map((point) => {
29767
- return {
29768
- x: point.x + dx,
29769
- y: point.y + dy
29770
- };
29771
- });
29772
- if (polygonContainPoint(pointsConsiderOffset, pos.x, pos.y)) {
29773
- this._operatingMask = brushMasks[i];
29774
- return true;
29775
- }
29776
- }
29777
- return false;
29778
- }
29779
29755
  _initDraw(e) {
29780
29756
  const { brushMode } = this.attribute;
29781
29757
  const pos = this.eventPosToStagePos(e);
29782
29758
  this._cacheDrawPoints = [pos];
29783
29759
  this._isDrawedBeforeEnd = false;
29784
- if (brushMode === 'single') {
29785
- this._brushMaskAABBBoundsDict = {};
29786
- this._container.incrementalClearChild();
29787
- }
29760
+ brushMode === 'single' && this._clearMask();
29788
29761
  this._addBrushMask();
29789
- this._dispatchEvent(IOperateType.drawStart, {
29790
- operateMask: this._operatingMask,
29791
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29792
- event: e
29793
- });
29762
+ this._dispatchBrushEvent(IOperateType.drawStart, e);
29794
29763
  }
29795
29764
  _initMove(e) {
29796
29765
  var _a, _b;
@@ -29807,11 +29776,7 @@ class Brush extends AbstractComponent {
29807
29776
  this._operatingMaskMoveRangeX = [minMoveStepX, maxMoveStepX];
29808
29777
  this._operatingMaskMoveRangeY = [minMoveStepY, maxMoveStepY];
29809
29778
  this._operatingMask.setAttribute('pickable', true);
29810
- this._dispatchEvent(IOperateType.moveStart, {
29811
- operateMask: this._operatingMask,
29812
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29813
- event: e
29814
- });
29779
+ this._dispatchBrushEvent(IOperateType.moveStart, e);
29815
29780
  }
29816
29781
  _drawing(e) {
29817
29782
  var _a, _b;
@@ -29838,12 +29803,8 @@ class Brush extends AbstractComponent {
29838
29803
  !!(Math.abs(x2 - x1) > sizeThreshold || Math.abs(y1 - y2) > sizeThreshold);
29839
29804
  if (this._isDrawedBeforeEnd) {
29840
29805
  this._brushMaskAABBBoundsDict[this._operatingMask.name] = this._operatingMask.AABBBounds;
29841
- this._dispatchEvent(IOperateType.drawing, {
29842
- operateMask: this._operatingMask,
29843
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29844
- event: e
29845
- });
29846
29806
  }
29807
+ this._dispatchBrushEvent(IOperateType.drawing, e);
29847
29808
  }
29848
29809
  _moving(e) {
29849
29810
  const startPos = this._cacheMovePoint;
@@ -29862,11 +29823,20 @@ class Brush extends AbstractComponent {
29862
29823
  dy: moveY
29863
29824
  });
29864
29825
  this._brushMaskAABBBoundsDict[this._operatingMask.name] = this._operatingMask.AABBBounds;
29865
- this._dispatchEvent(IOperateType.moving, {
29866
- operateMask: this._operatingMask,
29867
- operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29868
- event: e
29869
- });
29826
+ this._dispatchBrushEvent(IOperateType.moving, e);
29827
+ }
29828
+ render() {
29829
+ this.releaseBrushEvents();
29830
+ this._bindBrushEvents();
29831
+ const group = this.createOrUpdateChild('brush-container', {}, 'group');
29832
+ this._container = group;
29833
+ }
29834
+ releaseBrushEvents() {
29835
+ const { trigger = DEFAULT_BRUSH_ATTRIBUTES.trigger, updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger, endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger, resetTrigger = DEFAULT_BRUSH_ATTRIBUTES.resetTrigger } = this.attribute;
29836
+ array(trigger).forEach(t => this.stage.removeEventListener(t, this._onBrushStart));
29837
+ array(updateTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushingWithDelay));
29838
+ array(endTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushEnd));
29839
+ array(resetTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushClear));
29870
29840
  }
29871
29841
  _computeMaskPoints() {
29872
29842
  const { brushType, xRange = [0, 0], yRange = [0, 0] } = this.attribute;
@@ -29935,12 +29905,30 @@ class Brush extends AbstractComponent {
29935
29905
  _addBrushMask() {
29936
29906
  var _a;
29937
29907
  const { brushStyle, hasMask } = this.attribute;
29938
- const brushMask = graphicCreator.polygon(Object.assign(Object.assign({ points: cloneDeep(this._cacheDrawPoints), cursor: 'move', pickable: false }, brushStyle), { opacity: hasMask ? (_a = brushStyle.opacity) !== null && _a !== void 0 ? _a : 1 : 0 }));
29908
+ const brushMask = graphicCreator.polygon(Object.assign(Object.assign({ points: cloneDeep(this._cacheDrawPoints), cursor: 'move', pickable: false }, brushStyle), { opacity: hasMask ? ((_a = brushStyle.opacity) !== null && _a !== void 0 ? _a : 1) : 0 }));
29939
29909
  brushMask.name = `brush-${Date.now()}`;
29940
29910
  this._operatingMask = brushMask;
29941
29911
  this._container.add(brushMask);
29942
29912
  this._brushMaskAABBBoundsDict[brushMask.name] = brushMask.AABBBounds;
29943
29913
  }
29914
+ _isPosInBrushMask(e) {
29915
+ const pos = this.eventPosToStagePos(e);
29916
+ const brushMasks = this._container.getChildren();
29917
+ for (let i = 0; i < brushMasks.length; i++) {
29918
+ const { points = [], dx = 0, dy = 0 } = brushMasks[i].attribute;
29919
+ const pointsConsiderOffset = points.map((point) => {
29920
+ return {
29921
+ x: point.x + dx,
29922
+ y: point.y + dy
29923
+ };
29924
+ });
29925
+ if (polygonContainPoint(pointsConsiderOffset, pos.x, pos.y)) {
29926
+ this._operatingMask = brushMasks[i];
29927
+ return true;
29928
+ }
29929
+ }
29930
+ return false;
29931
+ }
29944
29932
  _outOfInteractiveRange(e) {
29945
29933
  const { interactiveRange } = this.attribute;
29946
29934
  const { minY = -Infinity, maxY = Infinity, minX = -Infinity, maxX = Infinity } = interactiveRange;
@@ -29953,17 +29941,21 @@ class Brush extends AbstractComponent {
29953
29941
  eventPosToStagePos(e) {
29954
29942
  return this.stage.eventPointTransform(e);
29955
29943
  }
29956
- render() {
29957
- this._bindBrushEvents();
29958
- const group = this.createOrUpdateChild('brush-container', {}, 'group');
29959
- this._container = group;
29944
+ _dispatchBrushEvent(operateType, e) {
29945
+ this._dispatchEvent(operateType, {
29946
+ operateMask: this._operatingMask,
29947
+ operatedMaskAABBBounds: this._brushMaskAABBBoundsDict,
29948
+ event: e
29949
+ });
29960
29950
  }
29961
- releaseBrushEvents() {
29962
- const { delayType = 'throttle', delayTime = 0, trigger = DEFAULT_BRUSH_ATTRIBUTES.trigger, updateTrigger = DEFAULT_BRUSH_ATTRIBUTES.updateTrigger, endTrigger = DEFAULT_BRUSH_ATTRIBUTES.endTrigger, resetTrigger = DEFAULT_BRUSH_ATTRIBUTES.resetTrigger } = this.attribute;
29963
- array(trigger).forEach(t => vglobal.removeEventListener(t, this._onBrushStart));
29964
- array(updateTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushingWithDelay));
29965
- array(endTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushEnd));
29966
- array(resetTrigger).forEach(t => this.stage.removeEventListener(t, this._onBrushClear));
29951
+ _clearMask() {
29952
+ this._brushMaskAABBBoundsDict = {};
29953
+ this._container.incrementalClearChild();
29954
+ this._operatingMask = null;
29955
+ }
29956
+ _isEmptyMask() {
29957
+ return (isEmpty(this._brushMaskAABBBoundsDict) ||
29958
+ Object.keys(this._brushMaskAABBBoundsDict).every(key => this._brushMaskAABBBoundsDict[key].empty()));
29967
29959
  }
29968
29960
  }
29969
29961
  Brush.defaultAttributes = DEFAULT_BRUSH_ATTRIBUTES;
@@ -31506,6 +31498,6 @@ StoryLabelItem.defaultAttributes = {
31506
31498
  theme: 'default'
31507
31499
  };
31508
31500
 
31509
- const version = "0.22.7-alpha.7";
31501
+ const version = "0.22.7-alpha.8";
31510
31502
 
31511
31503
  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/axis/util.js CHANGED
@@ -99,4 +99,5 @@ export function hasOverlap(items, pad) {
99
99
  for (let b, i = 1, n = items.length, a = items[0]; i < n; a = b, ++i) if (b = items[i],
100
100
  textIntersect(a, b, pad)) return !0;
101
101
  return !1;
102
- }
102
+ }
103
+ //# sourceMappingURL=util.js.map