@easyv/charts 1.5.21 → 1.5.22

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.
@@ -103,6 +103,45 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
103
103
 
104
104
  document.addEventListener("mousemove", move);
105
105
  document.addEventListener("mouseup", up);
106
+ }; //左手手柄的移动端适配
107
+
108
+
109
+ var leftTouchStart = function leftTouchStart(e) {
110
+ var transform = ref.current.style.transform;
111
+ var rawTranslateX = parseFloat(transform ? transform.match(/\d+\.*\d*/)[0] : 0);
112
+ var initX = 0;
113
+ var rightX = rawTranslateX + cBarWidth;
114
+ var startX = e.touches[0].clientX;
115
+ var currentX = 0;
116
+ var movementX = 0;
117
+
118
+ var move = function move(e) {
119
+ e.preventDefault();
120
+ currentX = e.touches[0].clientX;
121
+ movementX = currentX - startX;
122
+ startX = currentX;
123
+ initX = (0, _utils.mathR)(initX + movementX, [-rawTranslateX, rightX - rawTranslateX]);
124
+ setControlWidth(function (pre) {
125
+ var cWidth = pre.cWidth,
126
+ cBarWidth = pre.cBarWidth;
127
+ var nextBarWidth = (0, _utils.mathR)(cBarWidth - movementX, [1, rightX]);
128
+ return _objectSpread(_objectSpread({}, pre), {}, {
129
+ cBarWidth: nextBarWidth,
130
+ cPercent: nextBarWidth / cWidth,
131
+ cBarX: initX + rawTranslateX
132
+ });
133
+ });
134
+ };
135
+
136
+ var up = function up(e) {
137
+ document.removeEventListener("touchmove", move);
138
+ document.removeEventListener("touchend", up);
139
+ };
140
+
141
+ document.addEventListener("touchmove", move, {
142
+ passive: false
143
+ });
144
+ document.addEventListener("touchend", up);
106
145
  }; //滑块的鼠标按下操作
107
146
 
108
147
 
@@ -126,7 +165,36 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
126
165
  document.addEventListener("mousemove", mouseMoveHandle);
127
166
  document.addEventListener("mouseup", mouseUpHandle);
128
167
  setWorking(true);
129
- }; // //右手柄的鼠标按下逻辑
168
+ }; //移动端适配
169
+
170
+
171
+ var touchStart = function touchStart(e) {
172
+ var transform = ref.current.style.transform;
173
+ var startX = e.touches[0].clientX;
174
+ var currentX = 0;
175
+ var movementX = 0;
176
+ var rawTranslateX = parseFloat(transform ? transform.match(/\d+\.*\d*/)[0] : 0);
177
+
178
+ var mouseMoveHandle = function mouseMoveHandle(e) {
179
+ e.preventDefault();
180
+ currentX = e.touches[0].clientX;
181
+ movementX += currentX - startX;
182
+ startX = currentX;
183
+ setX(movementX + rawTranslateX, true);
184
+ };
185
+
186
+ var mouseUpHandle = function mouseUpHandle(e) {
187
+ setWorking(false);
188
+ document.removeEventListener("touchmove", mouseMoveHandle);
189
+ document.removeEventListener("touchend", mouseUpHandle);
190
+ };
191
+
192
+ document.addEventListener("touchmove", mouseMoveHandle, {
193
+ passive: false
194
+ });
195
+ document.addEventListener("touchend", mouseUpHandle);
196
+ setWorking(true);
197
+ }; //右手柄的鼠标按下逻辑
130
198
 
131
199
 
132
200
  var rightDown = function rightDown() {
@@ -154,6 +222,42 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
154
222
 
155
223
  document.addEventListener("mousemove", move);
156
224
  document.addEventListener("mouseup", up);
225
+ }; //右手手柄的移动端适配
226
+
227
+
228
+ var rightTouchStart = function rightTouchStart(e) {
229
+ var transform = ref.current.style.transform;
230
+ var startX = e.touches[0].clientX;
231
+ var currentX = 0;
232
+ var movementX = 0;
233
+ var rawTranslateX = parseFloat(transform ? transform.match(/\d+\.*\d*/)[0] : 0);
234
+
235
+ var move = function move(e) {
236
+ e.preventDefault();
237
+ currentX = e.touches[0].clientX;
238
+ movementX = currentX - startX;
239
+ startX = currentX;
240
+ setControlWidth(function (pre) {
241
+ var cWidth = pre.cWidth,
242
+ cBarWidth = pre.cBarWidth;
243
+ var maxWidth = cWidth - rawTranslateX;
244
+ var nextBarWidth = (0, _utils.mathR)(cBarWidth + movementX, [1, maxWidth]);
245
+ return _objectSpread(_objectSpread({}, pre), {}, {
246
+ cBarWidth: nextBarWidth,
247
+ cPercent: nextBarWidth / cWidth
248
+ });
249
+ });
250
+ };
251
+
252
+ var up = function up(e) {
253
+ document.removeEventListener("touchmove", move);
254
+ document.removeEventListener("touchend", up);
255
+ };
256
+
257
+ document.addEventListener("touchmove", move, {
258
+ passive: false
259
+ });
260
+ document.addEventListener("touchend", up);
157
261
  };
158
262
 
159
263
  return /*#__PURE__*/_react["default"].createElement("div", {
@@ -188,16 +292,19 @@ var _default = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef
188
292
  style: _objectSpread(_objectSpread({}, controllerStyle), {}, {
189
293
  transform: "translateX(-6px)"
190
294
  }),
191
- onMouseDown: leftDown
295
+ onMouseDown: leftDown,
296
+ onTouchStart: leftTouchStart
192
297
  }), /*#__PURE__*/_react["default"].createElement("div", {
193
298
  style: dragStyle,
194
299
  onMouseDown: down,
300
+ onTouchStart: touchStart,
195
301
  ref: barRef
196
302
  }), /*#__PURE__*/_react["default"].createElement("div", {
197
303
  style: _objectSpread(_objectSpread({}, controllerStyle), {}, {
198
304
  transform: "translateX(6px)"
199
305
  }),
200
- onMouseDown: rightDown
306
+ onMouseDown: rightDown,
307
+ onTouchStart: rightTouchStart
201
308
  })));
202
309
  }));
203
310
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyv/charts",
3
- "version": "1.5.21",
3
+ "version": "1.5.22",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -64,6 +64,39 @@ export default memo(forwardRef((props, ref) => {
64
64
  document.addEventListener("mousemove",move);
65
65
  document.addEventListener("mouseup",up);
66
66
  }
67
+ //左手手柄的移动端适配
68
+ const leftTouchStart = (e)=>{
69
+ const transform = ref.current.style.transform;
70
+ let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
71
+ let initX = 0;
72
+ const rightX = rawTranslateX+cBarWidth;
73
+ let startX = e.touches[0].clientX;
74
+ let currentX = 0;
75
+ let movementX = 0;
76
+ const move = (e)=>{
77
+ e.preventDefault();
78
+ currentX = e.touches[0].clientX;
79
+ movementX = currentX - startX;
80
+ startX = currentX;
81
+ initX = mathR(initX+movementX,[-rawTranslateX, rightX-rawTranslateX]);
82
+ setControlWidth((pre)=>{
83
+ const { cWidth, cBarWidth } = pre;
84
+ const nextBarWidth = mathR(cBarWidth-movementX,[1,rightX]);
85
+ return {
86
+ ...pre,
87
+ cBarWidth:nextBarWidth,
88
+ cPercent:nextBarWidth/cWidth,
89
+ cBarX:initX+rawTranslateX
90
+ }
91
+ });
92
+ }
93
+ const up = (e) => {
94
+ document.removeEventListener("touchmove", move);
95
+ document.removeEventListener("touchend", up);
96
+ };
97
+ document.addEventListener("touchmove", move, {passive:false});
98
+ document.addEventListener("touchend", up);
99
+ }
67
100
  //滑块的鼠标按下操作
68
101
  const down=()=>{
69
102
  const transform = ref.current.style.transform;
@@ -83,7 +116,30 @@ export default memo(forwardRef((props, ref) => {
83
116
  document.addEventListener("mouseup", mouseUpHandle);
84
117
  setWorking(true);
85
118
  }
86
- // //右手柄的鼠标按下逻辑
119
+ //移动端适配
120
+ const touchStart=(e)=>{
121
+ const transform = ref.current.style.transform;
122
+ let startX = e.touches[0].clientX;
123
+ let currentX = 0;
124
+ let movementX = 0;
125
+ let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
126
+ const mouseMoveHandle = (e)=>{
127
+ e.preventDefault();
128
+ currentX = e.touches[0].clientX;
129
+ movementX += currentX - startX;
130
+ startX = currentX;
131
+ setX(movementX + rawTranslateX, true);
132
+ }
133
+ const mouseUpHandle = (e) => {
134
+ setWorking(false);
135
+ document.removeEventListener("touchmove", mouseMoveHandle);
136
+ document.removeEventListener("touchend", mouseUpHandle);
137
+ };
138
+ document.addEventListener("touchmove", mouseMoveHandle, {passive:false});
139
+ document.addEventListener("touchend", mouseUpHandle);
140
+ setWorking(true);
141
+ }
142
+ //右手柄的鼠标按下逻辑
87
143
  const rightDown=()=>{
88
144
  const transform = ref.current.style.transform;
89
145
  let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
@@ -107,6 +163,36 @@ export default memo(forwardRef((props, ref) => {
107
163
  document.addEventListener("mousemove",move);
108
164
  document.addEventListener("mouseup",up);
109
165
  }
166
+ //右手手柄的移动端适配
167
+ const rightTouchStart = (e)=>{
168
+ const transform = ref.current.style.transform;
169
+ let startX = e.touches[0].clientX;
170
+ let currentX = 0;
171
+ let movementX = 0;
172
+ let rawTranslateX = parseFloat(transform?transform.match(/\d+\.*\d*/)[0]:0);
173
+ const move = (e)=>{
174
+ e.preventDefault();
175
+ currentX = e.touches[0].clientX;
176
+ movementX = currentX - startX;
177
+ startX = currentX;
178
+ setControlWidth((pre)=>{
179
+ const { cWidth, cBarWidth } = pre;
180
+ const maxWidth = cWidth-rawTranslateX;
181
+ const nextBarWidth = mathR(cBarWidth+movementX,[1,maxWidth]);
182
+ return {
183
+ ...pre,
184
+ cBarWidth:nextBarWidth,
185
+ cPercent:nextBarWidth/cWidth
186
+ }
187
+ });
188
+ }
189
+ const up = (e) => {
190
+ document.removeEventListener("touchmove", move);
191
+ document.removeEventListener("touchend", up);
192
+ };
193
+ document.addEventListener("touchmove", move, {passive:false});
194
+ document.addEventListener("touchend", up);
195
+ }
110
196
  return (
111
197
  <div
112
198
  style={{
@@ -140,9 +226,9 @@ export default memo(forwardRef((props, ref) => {
140
226
  </svg>
141
227
  {/* 控制条 */}
142
228
  <div ref={ref} style={barStyle}>
143
- <div style={{...controllerStyle,transform:"translateX(-6px)"}} onMouseDown={leftDown}></div>
144
- <div style={dragStyle} onMouseDown={down} ref={barRef}></div>
145
- <div style={{...controllerStyle,transform:`translateX(6px)`}} onMouseDown={rightDown}></div>
229
+ <div style={{...controllerStyle,transform:"translateX(-6px)"}} onMouseDown={leftDown} onTouchStart={leftTouchStart}></div>
230
+ <div style={dragStyle} onMouseDown={down} onTouchStart={touchStart} ref={barRef}></div>
231
+ <div style={{...controllerStyle,transform:`translateX(6px)`}} onMouseDown={rightDown} onTouchStart={rightTouchStart}></div>
146
232
  </div>
147
233
  </div>
148
234
  );