@visactor/vrender-components 1.0.0-alpha.5 → 1.0.0-alpha.6

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 (138) hide show
  1. package/cjs/animation/axis-animate.js +4 -4
  2. package/cjs/animation/axis-animate.js.map +1 -1
  3. package/cjs/axis/util.js +5 -5
  4. package/cjs/axis/util.js.map +1 -1
  5. package/cjs/brush/brush.d.ts +16 -10
  6. package/cjs/brush/brush.js +81 -93
  7. package/cjs/brush/brush.js.map +1 -1
  8. package/cjs/brush/config.d.ts +5 -5
  9. package/cjs/brush/config.js +5 -5
  10. package/cjs/brush/config.js.map +1 -1
  11. package/cjs/brush/type.d.ts +1 -0
  12. package/cjs/brush/type.js +1 -1
  13. package/cjs/brush/type.js.map +1 -1
  14. package/cjs/data-zoom/data-zoom.d.ts +3 -0
  15. package/cjs/data-zoom/data-zoom.js +36 -19
  16. package/cjs/data-zoom/data-zoom.js.map +1 -1
  17. package/cjs/index.d.ts +1 -1
  18. package/cjs/index.js +1 -1
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/label/base.js +17 -3
  21. package/cjs/label/base.js.map +1 -1
  22. package/cjs/marker/animate/animate.d.ts +3 -3
  23. package/cjs/marker/animate/animate.js.map +1 -1
  24. package/cjs/marker/animate/clip-in.d.ts +1 -1
  25. package/cjs/marker/animate/clip-in.js +6 -3
  26. package/cjs/marker/animate/clip-in.js.map +1 -1
  27. package/cjs/marker/animate/fade-in.d.ts +3 -3
  28. package/cjs/marker/animate/fade-in.js +10 -4
  29. package/cjs/marker/animate/fade-in.js.map +1 -1
  30. package/cjs/marker/animate/fade-out.d.ts +3 -3
  31. package/cjs/marker/animate/fade-out.js +10 -4
  32. package/cjs/marker/animate/fade-out.js.map +1 -1
  33. package/cjs/marker/arc-area.d.ts +8 -5
  34. package/cjs/marker/arc-area.js +18 -39
  35. package/cjs/marker/arc-area.js.map +1 -1
  36. package/cjs/marker/arc-line.d.ts +6 -4
  37. package/cjs/marker/arc-line.js +12 -9
  38. package/cjs/marker/arc-line.js.map +1 -1
  39. package/cjs/marker/area.d.ts +6 -4
  40. package/cjs/marker/area.js +14 -32
  41. package/cjs/marker/area.js.map +1 -1
  42. package/cjs/marker/base.d.ts +2 -3
  43. package/cjs/marker/base.js.map +1 -1
  44. package/cjs/marker/common-line.d.ts +11 -7
  45. package/cjs/marker/common-line.js +11 -31
  46. package/cjs/marker/common-line.js.map +1 -1
  47. package/cjs/marker/config.d.ts +2 -0
  48. package/cjs/marker/config.js +2 -0
  49. package/cjs/marker/config.js.map +1 -1
  50. package/cjs/marker/line.d.ts +6 -4
  51. package/cjs/marker/line.js +10 -4
  52. package/cjs/marker/line.js.map +1 -1
  53. package/cjs/marker/mixin/label.d.ts +16 -0
  54. package/cjs/marker/mixin/label.js +57 -0
  55. package/cjs/marker/mixin/label.js.map +1 -0
  56. package/cjs/marker/type.d.ts +19 -16
  57. package/cjs/marker/type.js.map +1 -1
  58. package/cjs/scrollbar/scrollbar.d.ts +1 -0
  59. package/cjs/scrollbar/scrollbar.js +21 -12
  60. package/cjs/scrollbar/scrollbar.js.map +1 -1
  61. package/cjs/slider/slider.d.ts +3 -0
  62. package/cjs/slider/slider.js +48 -27
  63. package/cjs/slider/slider.js.map +1 -1
  64. package/cjs/switch/switch.js +2 -2
  65. package/cjs/switch/switch.js.map +1 -1
  66. package/cjs/util/event.d.ts +1 -0
  67. package/cjs/util/event.js +14 -0
  68. package/cjs/util/event.js.map +1 -0
  69. package/dist/index.es.js +1580 -916
  70. package/es/animation/axis-animate.js +4 -4
  71. package/es/animation/axis-animate.js.map +1 -1
  72. package/es/axis/util.js +5 -6
  73. package/es/axis/util.js.map +1 -1
  74. package/es/brush/brush.d.ts +16 -10
  75. package/es/brush/brush.js +83 -95
  76. package/es/brush/brush.js.map +1 -1
  77. package/es/brush/config.d.ts +5 -5
  78. package/es/brush/config.js +5 -5
  79. package/es/brush/config.js.map +1 -1
  80. package/es/brush/type.d.ts +1 -0
  81. package/es/brush/type.js +1 -1
  82. package/es/brush/type.js.map +1 -1
  83. package/es/data-zoom/data-zoom.d.ts +3 -0
  84. package/es/data-zoom/data-zoom.js +35 -16
  85. package/es/data-zoom/data-zoom.js.map +1 -1
  86. package/es/index.d.ts +1 -1
  87. package/es/index.js +1 -1
  88. package/es/index.js.map +1 -1
  89. package/es/label/base.js +17 -3
  90. package/es/label/base.js.map +1 -1
  91. package/es/marker/animate/animate.d.ts +3 -3
  92. package/es/marker/animate/animate.js.map +1 -1
  93. package/es/marker/animate/clip-in.d.ts +1 -1
  94. package/es/marker/animate/clip-in.js +6 -2
  95. package/es/marker/animate/clip-in.js.map +1 -1
  96. package/es/marker/animate/fade-in.d.ts +3 -3
  97. package/es/marker/animate/fade-in.js +11 -3
  98. package/es/marker/animate/fade-in.js.map +1 -1
  99. package/es/marker/animate/fade-out.d.ts +3 -3
  100. package/es/marker/animate/fade-out.js +11 -3
  101. package/es/marker/animate/fade-out.js.map +1 -1
  102. package/es/marker/arc-area.d.ts +8 -5
  103. package/es/marker/arc-area.js +19 -41
  104. package/es/marker/arc-area.js.map +1 -1
  105. package/es/marker/arc-line.d.ts +6 -4
  106. package/es/marker/arc-line.js +12 -9
  107. package/es/marker/arc-line.js.map +1 -1
  108. package/es/marker/area.d.ts +6 -4
  109. package/es/marker/area.js +15 -34
  110. package/es/marker/area.js.map +1 -1
  111. package/es/marker/base.d.ts +2 -3
  112. package/es/marker/base.js.map +1 -1
  113. package/es/marker/common-line.d.ts +11 -7
  114. package/es/marker/common-line.js +14 -34
  115. package/es/marker/common-line.js.map +1 -1
  116. package/es/marker/config.d.ts +2 -0
  117. package/es/marker/config.js +2 -0
  118. package/es/marker/config.js.map +1 -1
  119. package/es/marker/line.d.ts +6 -4
  120. package/es/marker/line.js +10 -4
  121. package/es/marker/line.js.map +1 -1
  122. package/es/marker/mixin/label.d.ts +16 -0
  123. package/es/marker/mixin/label.js +45 -0
  124. package/es/marker/mixin/label.js.map +1 -0
  125. package/es/marker/type.d.ts +19 -16
  126. package/es/marker/type.js.map +1 -1
  127. package/es/scrollbar/scrollbar.d.ts +1 -0
  128. package/es/scrollbar/scrollbar.js +22 -11
  129. package/es/scrollbar/scrollbar.js.map +1 -1
  130. package/es/slider/slider.d.ts +3 -0
  131. package/es/slider/slider.js +49 -26
  132. package/es/slider/slider.js.map +1 -1
  133. package/es/switch/switch.js +2 -2
  134. package/es/switch/switch.js.map +1 -1
  135. package/es/util/event.d.ts +1 -0
  136. package/es/util/event.js +6 -0
  137. package/es/util/event.js.map +1 -0
  138. package/package.json +6 -6
@@ -1,7 +1,7 @@
1
1
  export declare const DEFAULT_BRUSH_ATTRIBUTES: {
2
2
  trigger: string;
3
3
  updateTrigger: string;
4
- endTrigger: string;
4
+ endTrigger: string[];
5
5
  resetTrigger: string;
6
6
  hasMask: boolean;
7
7
  brushMode: string;
@@ -17,10 +17,10 @@ export declare const DEFAULT_BRUSH_ATTRIBUTES: {
17
17
  delayType: string;
18
18
  delayTime: number;
19
19
  interactiveRange: {
20
- y1: number;
21
- y2: number;
22
- x1: number;
23
- x2: number;
20
+ minY: number;
21
+ maxY: number;
22
+ minX: number;
23
+ maxX: number;
24
24
  };
25
25
  };
26
26
  export declare const DEFAULT_SIZE_THRESHOLD = 5;
@@ -1,7 +1,7 @@
1
1
  export const DEFAULT_BRUSH_ATTRIBUTES = {
2
2
  trigger: "pointerdown",
3
3
  updateTrigger: "pointermove",
4
- endTrigger: "pointerup",
4
+ endTrigger: [ "pointerup", "pointerleave" ],
5
5
  resetTrigger: "pointerupoutside",
6
6
  hasMask: !0,
7
7
  brushMode: "single",
@@ -17,10 +17,10 @@ export const DEFAULT_BRUSH_ATTRIBUTES = {
17
17
  delayType: "throttle",
18
18
  delayTime: 10,
19
19
  interactiveRange: {
20
- y1: -1 / 0,
21
- y2: 1 / 0,
22
- x1: -1 / 0,
23
- x2: 1 / 0
20
+ minY: -1 / 0,
21
+ maxY: 1 / 0,
22
+ minX: -1 / 0,
23
+ maxX: 1 / 0
24
24
  }
25
25
  };
26
26
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brush/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE,aAAa;IACtB,aAAa,EAAE,aAAa;IAC5B,UAAU,EAAE,WAAW;IACvB,YAAY,EAAE,kBAAkB;IAChC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE;QAChB,EAAE,EAAE,CAAC,QAAQ;QACb,EAAE,EAAE,QAAQ;QACZ,EAAE,EAAE,CAAC,QAAQ;QACb,EAAE,EAAE,QAAQ;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC","file":"config.js","sourcesContent":["export const DEFAULT_BRUSH_ATTRIBUTES = {\n trigger: 'pointerdown',\n updateTrigger: 'pointermove',\n endTrigger: 'pointerup',\n resetTrigger: 'pointerupoutside',\n hasMask: true,\n brushMode: 'single',\n brushType: 'rect',\n brushStyle: {\n fill: '#B0C8F9',\n fillOpacity: 0.2,\n stroke: '#B0C8F9',\n strokeWidth: 2\n },\n brushMoved: true,\n removeOnClick: true,\n delayType: 'throttle',\n delayTime: 10,\n interactiveRange: {\n y1: -Infinity,\n y2: Infinity,\n x1: -Infinity,\n x2: Infinity\n }\n};\n\nexport const DEFAULT_SIZE_THRESHOLD = 5;\n"]}
1
+ {"version":3,"sources":["../src/brush/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO,EAAE,aAAa;IACtB,aAAa,EAAE,aAAa;IAC5B,UAAU,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC;IACzC,YAAY,EAAE,kBAAkB;IAChC,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,GAAG;QAChB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,EAAE;IACb,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,CAAC,QAAQ;QACf,IAAI,EAAE,QAAQ;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC","file":"config.js","sourcesContent":["export const DEFAULT_BRUSH_ATTRIBUTES = {\n trigger: 'pointerdown',\n updateTrigger: 'pointermove',\n endTrigger: ['pointerup', 'pointerleave'],\n resetTrigger: 'pointerupoutside',\n hasMask: true,\n brushMode: 'single',\n brushType: 'rect',\n brushStyle: {\n fill: '#B0C8F9',\n fillOpacity: 0.2,\n stroke: '#B0C8F9',\n strokeWidth: 2\n },\n brushMoved: true,\n removeOnClick: true,\n delayType: 'throttle',\n delayTime: 10,\n interactiveRange: {\n minY: -Infinity,\n maxY: Infinity,\n minX: -Infinity,\n maxX: Infinity\n }\n};\n\nexport const DEFAULT_SIZE_THRESHOLD = 5;\n"]}
@@ -33,5 +33,6 @@ export declare enum IOperateType {
33
33
  moving = "moving",
34
34
  moveStart = "moveStart",
35
35
  moveEnd = "moveEnd",
36
+ brushActive = "brushActive",
36
37
  brushClear = "brushClear"
37
38
  }
package/es/brush/type.js CHANGED
@@ -3,6 +3,6 @@ export var IOperateType;
3
3
  !function(IOperateType) {
4
4
  IOperateType.drawStart = "drawStart", IOperateType.drawEnd = "drawEnd", IOperateType.drawing = "drawing",
5
5
  IOperateType.moving = "moving", IOperateType.moveStart = "moveStart", IOperateType.moveEnd = "moveEnd",
6
- IOperateType.brushClear = "brushClear";
6
+ IOperateType.brushActive = "brushActive", IOperateType.brushClear = "brushClear";
7
7
  }(IOperateType || (IOperateType = {}));
8
8
  //# sourceMappingURL=type.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/brush/type.ts"],"names":[],"mappings":"AAyFA,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,yCAAyB,CAAA;AAC3B,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB","file":"type.js","sourcesContent":["import type { GraphicEventType, IGroupGraphicAttribute, IPolygonGraphicAttribute } from '@visactor/vrender-core';\nimport type { IDelayType } from '../interface';\n\nexport interface BrushAttributes extends IGroupGraphicAttribute {\n /**\n * 触发框选的事件名称\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * 更新框选的事件名称\n */\n updateTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 结束框选的事件名称\n */\n endTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 清空框选的事件名称\n */\n resetTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 可交互范围\n */\n interactiveRange?: {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n };\n /**\n * 框选模式\n * @default 'single'\n */\n brushMode?: IBrushMode;\n /**\n * 框选类型\n * @default 'rect'\n */\n brushType?: IBrushType;\n /**\n * brushType为'y'时, x的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n xRange?: [number, number];\n /**\n * brushType为'x'时, y的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n yRange?: [number, number];\n /** 是否展示brush mask */\n hasMask?: boolean;\n /**\n * 框选区域的样式\n */\n brushStyle?: IPolygonGraphicAttribute;\n /**\n * 是否可被平移\n * @default true\n */\n brushMoved?: boolean;\n /**\n * brushMode为'single'时,是否单击清除选框\n * @default true\n */\n removeOnClick?: boolean;\n /**\n * brush选框的大小阈值\n */\n sizeThreshold?: number;\n /**\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n}\n\nexport type IBrushType = 'x' | 'y' | 'rect' | 'polygon';\nexport type IBrushMode = 'single' | 'multiple';\n\nexport enum IOperateType {\n drawStart = 'drawStart',\n drawEnd = 'drawEnd',\n drawing = 'drawing',\n moving = 'moving',\n moveStart = 'moveStart',\n moveEnd = 'moveEnd',\n brushClear = 'brushClear'\n}\n"]}
1
+ {"version":3,"sources":["../src/brush/type.ts"],"names":[],"mappings":"AAyFA,MAAM,CAAN,IAAY,YASX;AATD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,2CAA2B,CAAA;IAC3B,yCAAyB,CAAA;AAC3B,CAAC,EATW,YAAY,KAAZ,YAAY,QASvB","file":"type.js","sourcesContent":["import type { GraphicEventType, IGroupGraphicAttribute, IPolygonGraphicAttribute } from '@visactor/vrender-core';\nimport type { IDelayType } from '../interface';\n\nexport interface BrushAttributes extends IGroupGraphicAttribute {\n /**\n * 触发框选的事件名称\n */\n trigger?: GraphicEventType | GraphicEventType[];\n /**\n * 更新框选的事件名称\n */\n updateTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 结束框选的事件名称\n */\n endTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 清空框选的事件名称\n */\n resetTrigger?: GraphicEventType | GraphicEventType[];\n /**\n * 可交互范围\n */\n interactiveRange?: {\n minX: number;\n maxX: number;\n minY: number;\n maxY: number;\n };\n /**\n * 框选模式\n * @default 'single'\n */\n brushMode?: IBrushMode;\n /**\n * 框选类型\n * @default 'rect'\n */\n brushType?: IBrushType;\n /**\n * brushType为'y'时, x的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n xRange?: [number, number];\n /**\n * brushType为'x'时, y的左右边界位置, 不配置的话不会生效\n * @default [0,0]\n */\n yRange?: [number, number];\n /** 是否展示brush mask */\n hasMask?: boolean;\n /**\n * 框选区域的样式\n */\n brushStyle?: IPolygonGraphicAttribute;\n /**\n * 是否可被平移\n * @default true\n */\n brushMoved?: boolean;\n /**\n * 是否单击空白处, 清除选框\n * @default true\n */\n removeOnClick?: boolean;\n /**\n * brush选框的大小阈值\n */\n sizeThreshold?: number;\n /**\n * 事件触发延迟类型\n * @default 'throttle'\n */\n delayType?: IDelayType;\n /**\n * 事件触发延迟时长\n * @default 0\n */\n delayTime?: number;\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n}\n\nexport type IBrushType = 'x' | 'y' | 'rect' | 'polygon';\nexport type IBrushMode = 'single' | 'multiple';\n\nexport enum IOperateType {\n drawStart = 'drawStart',\n drawEnd = 'drawEnd',\n drawing = 'drawing',\n moving = 'moving',\n moveStart = 'moveStart',\n moveEnd = 'moveEnd',\n brushActive = 'brushActive',\n brushClear = 'brushClear'\n}\n"]}
@@ -158,12 +158,14 @@ export declare class DataZoom extends AbstractComponent<Required<DataZoomAttribu
158
158
  constructor(attributes: DataZoomAttributes, options?: ComponentOptions);
159
159
  setAttributes(params: Partial<Required<DataZoomAttributes>>, forceUpdateTag?: boolean): void;
160
160
  protected bindEvents(): void;
161
+ private _handleTouchMove;
161
162
  protected dragMaskSize(): number;
162
163
  protected setStateAttr(start: number, end: number, shouldRender: boolean): void;
163
164
  protected eventPosToStagePos(e: FederatedPointerEvent): {
164
165
  x: number;
165
166
  y: number;
166
167
  };
168
+ private _clearDragEvents;
167
169
  private _onHandlerPointerDown;
168
170
  private _pointerMove;
169
171
  private _onHandlerPointerMove;
@@ -199,4 +201,5 @@ export declare class DataZoom extends AbstractComponent<Required<DataZoomAttribu
199
201
  setPreviewPointsX1(callback: (d: any) => number): void;
200
202
  setPreviewPointsY1(callback: (d: any) => number): void;
201
203
  setStatePointToData(callback: (state: number) => any): void;
204
+ release(all?: boolean): void;
202
205
  }
@@ -22,6 +22,8 @@ import { DataZoomActiveTag } from "./type";
22
22
 
23
23
  import { loadDataZoomComponent } from "./register";
24
24
 
25
+ import { getEndTriggersOfDrag } from "../util/event";
26
+
25
27
  const delayMap = {
26
28
  debounce: debounce,
27
29
  throttle: throttle
@@ -58,20 +60,26 @@ export class DataZoom extends AbstractComponent {
58
60
  }, this.state = {
59
61
  start: 0,
60
62
  end: 1
61
- }, this._statePointToData = state => state, this._onHandlerPointerDown = (e, tag) => {
62
- e.stopPropagation(), "start" === tag ? (this._activeTag = DataZoomActiveTag.startHandler,
63
+ }, this._statePointToData = state => state, this._handleTouchMove = e => {
64
+ this._activeState && e.preventDefault();
65
+ }, this._onHandlerPointerDown = (e, tag) => {
66
+ this._clearDragEvents(), "start" === tag ? (this._activeTag = DataZoomActiveTag.startHandler,
63
67
  this._activeItem = this._startHandlerMask) : "end" === tag ? (this._activeTag = DataZoomActiveTag.endHandler,
64
68
  this._activeItem = this._endHandlerMask) : "middleRect" === tag ? (this._activeTag = DataZoomActiveTag.middleHandler,
65
69
  this._activeItem = this._middleHandlerRect) : "middleSymbol" === tag ? (this._activeTag = DataZoomActiveTag.middleHandler,
66
70
  this._activeItem = this._middleHandlerSymbol) : "background" === tag && (this._activeTag = DataZoomActiveTag.background,
67
71
  this._activeItem = this._background), this._activeState = !0, this._activeCache.startPos = this.eventPosToStagePos(e),
68
- this._activeCache.lastPos = this.eventPosToStagePos(e), "browser" === vglobal.env && (vglobal.addEventListener("pointermove", this._onHandlerPointerMove, {
72
+ this._activeCache.lastPos = this.eventPosToStagePos(e);
73
+ const evtTarget = "browser" === vglobal.env ? vglobal : this.stage, triggers = getEndTriggersOfDrag();
74
+ evtTarget.addEventListener("pointermove", this._onHandlerPointerMove, {
69
75
  capture: !0
70
- }), vglobal.addEventListener("pointerup", this._onHandlerPointerUp)), this.addEventListener("pointermove", this._onHandlerPointerMove, {
76
+ }), this.addEventListener("pointermove", this._onHandlerPointerMove, {
71
77
  capture: !0
72
- });
78
+ }), triggers.forEach((trigger => {
79
+ evtTarget.addEventListener(trigger, this._onHandlerPointerUp);
80
+ }));
73
81
  }, this._pointerMove = e => {
74
- e.stopPropagation();
82
+ e.preventDefault();
75
83
  const {start: startAttr, end: endAttr, brushSelect: brushSelect, realTime: realTime = !0} = this.attribute, pos = this.eventPosToStagePos(e), {attPos: attPos, max: max} = this._layoutCache, dis = (pos[attPos] - this._activeCache.lastPos[attPos]) / max;
76
84
  let {start: start, end: end} = this.state;
77
85
  this._activeState && (this._activeTag === DataZoomActiveTag.middleHandler ? this.moveZoomWithMiddle((this.state.start + this.state.end) / 2 + dis) : this._activeTag === DataZoomActiveTag.startHandler ? start + dis > end ? (start = end,
@@ -86,7 +94,6 @@ export class DataZoom extends AbstractComponent {
86
94
  }));
87
95
  }, this._onHandlerPointerMove = 0 === this.attribute.delayTime ? this._pointerMove : delayMap[this.attribute.delayType](this._pointerMove, this.attribute.delayTime),
88
96
  this._onHandlerPointerUp = e => {
89
- e.preventDefault();
90
97
  const {start: start, end: end, brushSelect: brushSelect, realTime: realTime = !0} = this.attribute;
91
98
  if (this._activeState && this._activeTag === DataZoomActiveTag.background) {
92
99
  const pos = this.eventPosToStagePos(e);
@@ -96,11 +103,7 @@ export class DataZoom extends AbstractComponent {
96
103
  start: this.state.start,
97
104
  end: this.state.end,
98
105
  tag: this._activeTag
99
- }), "browser" === vglobal.env && (vglobal.removeEventListener("pointermove", this._onHandlerPointerMove, {
100
- capture: !0
101
- }), vglobal.removeEventListener("pointerup", this._onHandlerPointerUp)), this.removeEventListener("pointermove", this._onHandlerPointerMove, {
102
- capture: !0
103
- }), this.removeEventListener("pointerup", this._onHandlerPointerUp);
106
+ }), this._clearDragEvents();
104
107
  };
105
108
  const {position: position, showDetail: showDetail} = attributes;
106
109
  this._activeCache.startPos = position, this._activeCache.lastPos = position, this._showText = "auto" !== showDetail && showDetail,
@@ -121,9 +124,10 @@ export class DataZoom extends AbstractComponent {
121
124
  brushSelect && this._background && this._background.addEventListener("pointerdown", (e => this._onHandlerPointerDown(e, "background"))),
122
125
  brushSelect && this._previewGroup && this._previewGroup.addEventListener("pointerdown", (e => this._onHandlerPointerDown(e, "background"))),
123
126
  this._selectedPreviewGroup && this._selectedPreviewGroup.addEventListener("pointerdown", (e => this._onHandlerPointerDown(e, selectedTag))),
124
- this.addEventListener("pointerup", this._onHandlerPointerUp), this.addEventListener("pointerupoutside", this._onHandlerPointerUp),
125
127
  "auto" === showDetail && (this.addEventListener("pointerenter", this._onHandlerPointerEnter),
126
- this.addEventListener("pointerleave", this._onHandlerPointerLeave));
128
+ this.addEventListener("pointerleave", this._onHandlerPointerLeave)), ("browser" === vglobal.env ? vglobal : this.stage).addEventListener("touchmove", this._handleTouchMove, {
129
+ passive: !1
130
+ });
127
131
  }
128
132
  dragMaskSize() {
129
133
  const {position: position} = this.attribute, {attPos: attPos, max: max} = this._layoutCache;
@@ -144,11 +148,21 @@ export class DataZoom extends AbstractComponent {
144
148
  y: 0
145
149
  };
146
150
  }
151
+ _clearDragEvents() {
152
+ const evtTarget = "browser" === vglobal.env ? vglobal : this.stage, triggers = getEndTriggersOfDrag();
153
+ evtTarget.removeEventListener("pointermove", this._onHandlerPointerMove, {
154
+ capture: !0
155
+ }), triggers.forEach((trigger => {
156
+ evtTarget.removeEventListener(trigger, this._onHandlerPointerUp);
157
+ })), this.removeEventListener("pointermove", this._onHandlerPointerMove, {
158
+ capture: !0
159
+ });
160
+ }
147
161
  _onHandlerPointerEnter(e) {
148
- e.stopPropagation(), this._showText = !0, this.renderText();
162
+ this._showText = !0, this.renderText();
149
163
  }
150
164
  _onHandlerPointerLeave(e) {
151
- e.stopPropagation(), this._showText = !1, this.renderText();
165
+ this._showText = !1, this.renderText();
152
166
  }
153
167
  backgroundDragZoom(startPos, endPos) {
154
168
  const {attPos: attPos, max: max} = this._layoutCache, {position: position} = this.attribute, startPosInComponent = startPos[attPos] - position[attPos], endPosInComponent = endPos[attPos] - position[attPos], start = Math.min(Math.max(Math.min(startPosInComponent, endPosInComponent) / max, 0), 1), end = Math.min(Math.max(Math.max(startPosInComponent, endPosInComponent) / max, 0), 1);
@@ -577,6 +591,11 @@ export class DataZoom extends AbstractComponent {
577
591
  setStatePointToData(callback) {
578
592
  isFunction(callback) && (this._statePointToData = callback);
579
593
  }
594
+ release(all) {
595
+ super.release(all), ("browser" === vglobal.env ? vglobal : this.stage).addEventListener("touchmove", this._handleTouchMove, {
596
+ passive: !1
597
+ }), this._clearDragEvents();
598
+ }
580
599
  }
581
600
 
582
601
  DataZoom.defaultAttributes = DEFAULT_DATA_ZOOM_ATTRIBUTES;