@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.
- package/lib/components/Control.js +110 -3
- package/package.json +1 -1
- package/src/components/Control.jsx +90 -4
|
@@ -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
|
@@ -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
|
);
|