@sheinx/hooks 3.9.6 → 3.9.7-beta.10
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/cjs/common/use-drag-mock/use-drag-mock.d.ts +1 -1
- package/cjs/common/use-drag-mock/use-drag-mock.d.ts.map +1 -1
- package/cjs/common/use-drag-mock/use-drag-mock.js +1 -1
- package/cjs/components/use-input/use-input-format.d.ts.map +1 -1
- package/cjs/components/use-input/use-input-format.js +8 -2
- package/cjs/components/use-slider/use-slider.d.ts.map +1 -1
- package/cjs/components/use-slider/use-slider.js +53 -6
- package/cjs/components/use-slider/use-slider.type.d.ts +2 -0
- package/cjs/components/use-slider/use-slider.type.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +2 -2
- package/cjs/utils/is.d.ts.map +1 -1
- package/cjs/utils/is.js +3 -8
- package/esm/common/use-drag-mock/use-drag-mock.d.ts +1 -1
- package/esm/common/use-drag-mock/use-drag-mock.d.ts.map +1 -1
- package/esm/common/use-drag-mock/use-drag-mock.js +1 -1
- package/esm/components/use-input/use-input-format.d.ts.map +1 -1
- package/esm/components/use-input/use-input-format.js +8 -2
- package/esm/components/use-slider/use-slider.d.ts.map +1 -1
- package/esm/components/use-slider/use-slider.js +53 -6
- package/esm/components/use-slider/use-slider.type.d.ts +2 -0
- package/esm/components/use-slider/use-slider.type.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +2 -2
- package/esm/utils/is.d.ts.map +1 -1
- package/esm/utils/is.js +3 -8
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare const useDragMock: (props: {
|
|
3
3
|
onDragStart?: ((e: React.MouseEvent) => void) | undefined;
|
|
4
|
-
onDragMove?: ((deltaX: number, deltaY: number) => void) | undefined;
|
|
4
|
+
onDragMove?: ((deltaX: number, deltaY: number, event?: MouseEvent) => void) | undefined;
|
|
5
5
|
onDragEnd?: ((deltaX: number, deltaY: number) => void) | undefined;
|
|
6
6
|
}) => {
|
|
7
7
|
handleMouseDown: (event: React.MouseEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-drag-mock.d.ts","sourceRoot":"","sources":["use-drag-mock.ts"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,QAAA,MAAM,WAAW;uBACG,gBAAgB,KAAK,IAAI;2BACrB,MAAM,UAAU,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"use-drag-mock.d.ts","sourceRoot":"","sources":["use-drag-mock.ts"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,QAAA,MAAM,WAAW;uBACG,gBAAgB,KAAK,IAAI;2BACrB,MAAM,UAAU,MAAM,UAAU,UAAU,KAAK,IAAI;0BACpD,MAAM,UAAU,MAAM,KAAK,IAAI;;6BA6BpB,gBAAgB;;CAiBjD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -31,7 +31,7 @@ var useDragMock = function useDragMock(props) {
|
|
|
31
31
|
var deltaY = event.clientY - dragInfo.lastY;
|
|
32
32
|
dragInfo.lastX = event.clientX;
|
|
33
33
|
dragInfo.lastY = event.clientY;
|
|
34
|
-
(_props$onDragMove = props.onDragMove) === null || _props$onDragMove === void 0 || _props$onDragMove.call(props, deltaX, deltaY);
|
|
34
|
+
(_props$onDragMove = props.onDragMove) === null || _props$onDragMove === void 0 || _props$onDragMove.call(props, deltaX, deltaY, event);
|
|
35
35
|
});
|
|
36
36
|
var handleMouseUp = (0, _usePersistFn.usePersistFn)(function (event) {
|
|
37
37
|
var _props$onDragEnd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-input-format.d.ts","sourceRoot":"","sources":["use-input-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D,QAAA,MAAM,cAAc,UAAW,gBAAgB;kBAsBP,MAAM,GAAG,SAAS;gBAoCpB,gBAAgB,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-input-format.d.ts","sourceRoot":"","sources":["use-input-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D,QAAA,MAAM,cAAc,UAAW,gBAAgB;kBAsBP,MAAM,GAAG,SAAS;gBAoCpB,gBAAgB,CAAC,gBAAgB,CAAC;iBAsDhC,gBAAgB,CAAC,gBAAgB,CAAC;;;CAyBzE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -87,9 +87,15 @@ var useInputFormat = function useInputFormat(props) {
|
|
|
87
87
|
value = value
|
|
88
88
|
// -.0 => -0.0 .123 => 0.123
|
|
89
89
|
.replace(/^(-)?(\.\d+)(?!=\.).*/g, '$10$2')
|
|
90
|
-
//0001.123 => 1.123
|
|
90
|
+
//0001.123 => 1.123, 保留 -0. 的情况
|
|
91
91
|
// eslint-disable-next-line no-useless-escape
|
|
92
|
-
.replace(/(-|^)0+(?=0\.?|[^0\.])/g,
|
|
92
|
+
.replace(/(-|^)0+(?=0\.?|[^0\.])/g, function (match, p1) {
|
|
93
|
+
// 如果是负号开头且后面跟着0和小数点,保留-0
|
|
94
|
+
if (p1 === '-' && value.startsWith('-0.')) {
|
|
95
|
+
return '-0';
|
|
96
|
+
}
|
|
97
|
+
return p1;
|
|
98
|
+
})
|
|
93
99
|
// 1. => 1
|
|
94
100
|
.replace(/\.$/, '');
|
|
95
101
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-slider.d.ts","sourceRoot":"","sources":["use-slider.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4CxD,eAAO,MAAM,SAAS;;
|
|
1
|
+
{"version":3,"file":"use-slider.d.ts","sourceRoot":"","sources":["use-slider.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4CxD,eAAO,MAAM,SAAS;;kCAwHa,gBAAgB;gCAIlB,gBAAgB;8BAKL,gBAAgB;;;;;;;;;;;;;;;;;;;CA2E3D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -85,6 +85,12 @@ var useSlider = exports.useSlider = function useSlider(props) {
|
|
|
85
85
|
context.clickLock = false;
|
|
86
86
|
}, 100);
|
|
87
87
|
});
|
|
88
|
+
var isDisabled = (0, _usePersistFn.default)(function (value) {
|
|
89
|
+
if (typeof props.disabled === 'function') {
|
|
90
|
+
return props.disabled(value);
|
|
91
|
+
}
|
|
92
|
+
return !!props.disabled;
|
|
93
|
+
});
|
|
88
94
|
var handleDragEnd = (0, _usePersistFn.default)(function () {
|
|
89
95
|
lockClick();
|
|
90
96
|
var start = getValueFromRate(rate[0], scale, step);
|
|
@@ -96,20 +102,56 @@ var useSlider = exports.useSlider = function useSlider(props) {
|
|
|
96
102
|
props.onChange(end);
|
|
97
103
|
}
|
|
98
104
|
});
|
|
99
|
-
var handleDragMove = (0, _usePersistFn.default)(function (deltaX, deltaY) {
|
|
105
|
+
var handleDragMove = (0, _usePersistFn.default)(function (deltaX, deltaY, mouseEvent) {
|
|
100
106
|
setRate(function (r) {
|
|
101
107
|
var target = trackRef.current;
|
|
102
108
|
if (!target) return r;
|
|
103
109
|
var newRate = _toConsumableArray(r);
|
|
104
110
|
var v = context.dragIndex === 0 ? r[0] : r[1];
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
111
|
+
var rate;
|
|
112
|
+
|
|
113
|
+
// If disabled function is used and we have mouse event, use absolute position
|
|
114
|
+
if (typeof props.disabled === 'function' && mouseEvent) {
|
|
115
|
+
var rect = target.getBoundingClientRect();
|
|
116
|
+
var currentIndicatorRate = v;
|
|
117
|
+
|
|
118
|
+
// Calculate mouse position rate
|
|
119
|
+
var mouseRate;
|
|
120
|
+
if (props.vertical) {
|
|
121
|
+
mouseRate = (rect.bottom - mouseEvent.clientY) / rect.height;
|
|
122
|
+
} else {
|
|
123
|
+
mouseRate = isReserve ? (rect.right - mouseEvent.clientX) / rect.width : (mouseEvent.clientX - rect.left) / rect.width;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Only allow movement if mouse crossed the indicator position
|
|
127
|
+
if (mouseRate > currentIndicatorRate) {
|
|
128
|
+
// Mouse is to the right/top, allow moving right/up
|
|
129
|
+
rate = Math.max(Math.min(mouseRate, 1), 0);
|
|
130
|
+
} else if (mouseRate < currentIndicatorRate) {
|
|
131
|
+
// Mouse is to the left/bottom, allow moving left/down
|
|
132
|
+
rate = Math.max(Math.min(mouseRate, 1), 0);
|
|
133
|
+
} else {
|
|
134
|
+
// Mouse is at same position, no change
|
|
135
|
+
return r;
|
|
136
|
+
}
|
|
137
|
+
} else {
|
|
138
|
+
// Normal delta-based movement
|
|
139
|
+
var max = props.vertical ? target.clientHeight : target.clientWidth;
|
|
140
|
+
var delta = props.vertical ? deltaY * -1 : deltaX * (isReserve ? -1 : 1);
|
|
141
|
+
rate = Math.max(v + delta / max, 0);
|
|
142
|
+
}
|
|
108
143
|
if (rate > 1) {
|
|
109
144
|
rate = 1;
|
|
110
145
|
if (typeof props.onIncrease === 'function') props.onIncrease();
|
|
111
146
|
}
|
|
112
147
|
newRate[context.dragIndex] = rate;
|
|
148
|
+
|
|
149
|
+
// Check if the new value would be disabled
|
|
150
|
+
var newValue = getValueFromRate(newRate[context.dragIndex], scale, step);
|
|
151
|
+
if (isDisabled(newValue)) {
|
|
152
|
+
// Stay at current position to prevent flickering
|
|
153
|
+
return r;
|
|
154
|
+
}
|
|
113
155
|
if (newRate[0] > newRate[1]) {
|
|
114
156
|
context.dragIndex = context.dragIndex === 0 ? 1 : 0;
|
|
115
157
|
var temp = newRate[0];
|
|
@@ -138,6 +180,9 @@ var useSlider = exports.useSlider = function useSlider(props) {
|
|
|
138
180
|
var rect = target.getBoundingClientRect();
|
|
139
181
|
var rate = !props.vertical ? (isReserve ? rect.right - e.clientX : e.clientX - rect.left) / rect.width : (rect.bottom - e.clientY) / rect.height;
|
|
140
182
|
var value = getValueFromRate(rate, scale, step);
|
|
183
|
+
|
|
184
|
+
// Check if the clicked value would be disabled
|
|
185
|
+
if (isDisabled(value)) return;
|
|
141
186
|
if (props.range) {
|
|
142
187
|
var _start = startValue;
|
|
143
188
|
var _end = endValue;
|
|
@@ -174,8 +219,10 @@ var useSlider = exports.useSlider = function useSlider(props) {
|
|
|
174
219
|
handleEndMouseDown: handleEndMouseDown,
|
|
175
220
|
handleTrackClick: handleTrackClick
|
|
176
221
|
});
|
|
177
|
-
|
|
178
|
-
|
|
222
|
+
|
|
223
|
+
// During dragging, optionally snap to quantized values in discrete mode
|
|
224
|
+
var start = dragInfo.isDragging ? props.discrete ? getRateFromValue(getValueFromRate(rate[0], scale, step), scale) : rate[0] : getRateFromValue(startValue, scale);
|
|
225
|
+
var end = dragInfo.isDragging ? props.discrete ? getRateFromValue(getValueFromRate(rate[1], scale, step), scale) : rate[1] : getRateFromValue(endValue, scale);
|
|
179
226
|
var innerStyle = getTrackInnerStyle(start, end);
|
|
180
227
|
return {
|
|
181
228
|
func: func,
|
|
@@ -7,5 +7,7 @@ export interface UseSliderProps<Value extends number | number[]> {
|
|
|
7
7
|
vertical: boolean;
|
|
8
8
|
onIncrease: (() => void) | undefined;
|
|
9
9
|
direction?: 'ltr' | 'rtl';
|
|
10
|
+
disabled?: boolean | ((value: number) => boolean);
|
|
11
|
+
discrete?: boolean;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=use-slider.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-slider.type.d.ts","sourceRoot":"","sources":["use-slider.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE;IAC7D,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"use-slider.type.d.ts","sourceRoot":"","sources":["use-slider.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE;IAC7D,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -305,7 +305,7 @@ var useTree = function useTree(props) {
|
|
|
305
305
|
var indexPath = [].concat(_toConsumableArray(index), [i]);
|
|
306
306
|
ids.push(id);
|
|
307
307
|
var children = [];
|
|
308
|
-
if (Array.isArray(item[childrenKey])) {
|
|
308
|
+
if (item && Array.isArray(item[childrenKey])) {
|
|
309
309
|
var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
|
|
310
310
|
if (_children) children = _children;
|
|
311
311
|
}
|
|
@@ -341,7 +341,7 @@ var useTree = function useTree(props) {
|
|
|
341
341
|
result.push(node);
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
|
-
if (Array.isArray(item[childrenKey])) {
|
|
344
|
+
if (item && Array.isArray(item[childrenKey])) {
|
|
345
345
|
initFlatData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), level + 1, id, result);
|
|
346
346
|
}
|
|
347
347
|
}
|
package/cjs/utils/is.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,6EAUjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAE5F;AAED,eAAO,MAAM,OAAO,QAAO,OACqC,CAAC;AAEjE,eAAO,MAAM,SAAS,QAAO,OAG5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQjE;AAED,eAAO,MAAM,kBAAkB,uBACnB,OAAO,yCAGlB,CAAC"}
|
package/cjs/utils/is.js
CHANGED
|
@@ -91,17 +91,12 @@ var isEmpty = exports.isEmpty = function isEmpty(val) {
|
|
|
91
91
|
};
|
|
92
92
|
var isLink = exports.isLink = function isLink(el) {
|
|
93
93
|
if (_typeof(el) === 'object') {
|
|
94
|
+
var _type;
|
|
94
95
|
if (! /*#__PURE__*/_react.default.isValidElement(el)) return false;
|
|
95
96
|
if (!el.type) return false;
|
|
96
97
|
if (el.type === 'a') return true;
|
|
97
|
-
//
|
|
98
|
-
if (el.props && el.props.to)
|
|
99
|
-
var typeName = typeof el.type === 'function' ? el.type.name : '';
|
|
100
|
-
var displayName = _typeof(el.type) === 'object' && el.type !== null ? el.type.displayName : '';
|
|
101
|
-
// 检查是否为常见的路由链接组件
|
|
102
|
-
var isRouterComponent = typeName === 'Link' || typeName === 'NavLink' || displayName === 'Link' || displayName === 'NavLink';
|
|
103
|
-
return isRouterComponent;
|
|
104
|
-
}
|
|
98
|
+
// 有 to 属性 和 render 函数 就认为是链接组件(react-router Link NavLink 的特征)
|
|
99
|
+
if (el.props && el.props.to && (_type = el.type) !== null && _type !== void 0 && _type.render) return true;
|
|
105
100
|
}
|
|
106
101
|
return false;
|
|
107
102
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
declare const useDragMock: (props: {
|
|
3
3
|
onDragStart?: ((e: React.MouseEvent) => void) | undefined;
|
|
4
|
-
onDragMove?: ((deltaX: number, deltaY: number) => void) | undefined;
|
|
4
|
+
onDragMove?: ((deltaX: number, deltaY: number, event?: MouseEvent) => void) | undefined;
|
|
5
5
|
onDragEnd?: ((deltaX: number, deltaY: number) => void) | undefined;
|
|
6
6
|
}) => {
|
|
7
7
|
handleMouseDown: (event: React.MouseEvent) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-drag-mock.d.ts","sourceRoot":"","sources":["use-drag-mock.ts"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,QAAA,MAAM,WAAW;uBACG,gBAAgB,KAAK,IAAI;2BACrB,MAAM,UAAU,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"use-drag-mock.d.ts","sourceRoot":"","sources":["use-drag-mock.ts"],"names":[],"mappings":"AACA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAEhD,QAAA,MAAM,WAAW;uBACG,gBAAgB,KAAK,IAAI;2BACrB,MAAM,UAAU,MAAM,UAAU,UAAU,KAAK,IAAI;0BACpD,MAAM,UAAU,MAAM,KAAK,IAAI;;6BA6BpB,gBAAgB;;CAiBjD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -25,7 +25,7 @@ var useDragMock = function useDragMock(props) {
|
|
|
25
25
|
var deltaY = event.clientY - dragInfo.lastY;
|
|
26
26
|
dragInfo.lastX = event.clientX;
|
|
27
27
|
dragInfo.lastY = event.clientY;
|
|
28
|
-
(_props$onDragMove = props.onDragMove) === null || _props$onDragMove === void 0 || _props$onDragMove.call(props, deltaX, deltaY);
|
|
28
|
+
(_props$onDragMove = props.onDragMove) === null || _props$onDragMove === void 0 || _props$onDragMove.call(props, deltaX, deltaY, event);
|
|
29
29
|
});
|
|
30
30
|
var handleMouseUp = usePersistFn(function (event) {
|
|
31
31
|
var _props$onDragEnd;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-input-format.d.ts","sourceRoot":"","sources":["use-input-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D,QAAA,MAAM,cAAc,UAAW,gBAAgB;kBAsBP,MAAM,GAAG,SAAS;gBAoCpB,gBAAgB,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-input-format.d.ts","sourceRoot":"","sources":["use-input-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAO3D,QAAA,MAAM,cAAc,UAAW,gBAAgB;kBAsBP,MAAM,GAAG,SAAS;gBAoCpB,gBAAgB,CAAC,gBAAgB,CAAC;iBAsDhC,gBAAgB,CAAC,gBAAgB,CAAC;;;CAyBzE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -80,9 +80,15 @@ var useInputFormat = function useInputFormat(props) {
|
|
|
80
80
|
value = value
|
|
81
81
|
// -.0 => -0.0 .123 => 0.123
|
|
82
82
|
.replace(/^(-)?(\.\d+)(?!=\.).*/g, '$10$2')
|
|
83
|
-
//0001.123 => 1.123
|
|
83
|
+
//0001.123 => 1.123, 保留 -0. 的情况
|
|
84
84
|
// eslint-disable-next-line no-useless-escape
|
|
85
|
-
.replace(/(-|^)0+(?=0\.?|[^0\.])/g,
|
|
85
|
+
.replace(/(-|^)0+(?=0\.?|[^0\.])/g, function (match, p1) {
|
|
86
|
+
// 如果是负号开头且后面跟着0和小数点,保留-0
|
|
87
|
+
if (p1 === '-' && value.startsWith('-0.')) {
|
|
88
|
+
return '-0';
|
|
89
|
+
}
|
|
90
|
+
return p1;
|
|
91
|
+
})
|
|
86
92
|
// 1. => 1
|
|
87
93
|
.replace(/\.$/, '');
|
|
88
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-slider.d.ts","sourceRoot":"","sources":["use-slider.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4CxD,eAAO,MAAM,SAAS;;
|
|
1
|
+
{"version":3,"file":"use-slider.d.ts","sourceRoot":"","sources":["use-slider.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4CxD,eAAO,MAAM,SAAS;;kCAwHa,gBAAgB;gCAIlB,gBAAgB;8BAKL,gBAAgB;;;;;;;;;;;;;;;;;;;CA2E3D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -78,6 +78,12 @@ export var useSlider = function useSlider(props) {
|
|
|
78
78
|
context.clickLock = false;
|
|
79
79
|
}, 100);
|
|
80
80
|
});
|
|
81
|
+
var isDisabled = usePersistFn(function (value) {
|
|
82
|
+
if (typeof props.disabled === 'function') {
|
|
83
|
+
return props.disabled(value);
|
|
84
|
+
}
|
|
85
|
+
return !!props.disabled;
|
|
86
|
+
});
|
|
81
87
|
var handleDragEnd = usePersistFn(function () {
|
|
82
88
|
lockClick();
|
|
83
89
|
var start = getValueFromRate(rate[0], scale, step);
|
|
@@ -89,20 +95,56 @@ export var useSlider = function useSlider(props) {
|
|
|
89
95
|
props.onChange(end);
|
|
90
96
|
}
|
|
91
97
|
});
|
|
92
|
-
var handleDragMove = usePersistFn(function (deltaX, deltaY) {
|
|
98
|
+
var handleDragMove = usePersistFn(function (deltaX, deltaY, mouseEvent) {
|
|
93
99
|
setRate(function (r) {
|
|
94
100
|
var target = trackRef.current;
|
|
95
101
|
if (!target) return r;
|
|
96
102
|
var newRate = _toConsumableArray(r);
|
|
97
103
|
var v = context.dragIndex === 0 ? r[0] : r[1];
|
|
98
|
-
var
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
var rate;
|
|
105
|
+
|
|
106
|
+
// If disabled function is used and we have mouse event, use absolute position
|
|
107
|
+
if (typeof props.disabled === 'function' && mouseEvent) {
|
|
108
|
+
var rect = target.getBoundingClientRect();
|
|
109
|
+
var currentIndicatorRate = v;
|
|
110
|
+
|
|
111
|
+
// Calculate mouse position rate
|
|
112
|
+
var mouseRate;
|
|
113
|
+
if (props.vertical) {
|
|
114
|
+
mouseRate = (rect.bottom - mouseEvent.clientY) / rect.height;
|
|
115
|
+
} else {
|
|
116
|
+
mouseRate = isReserve ? (rect.right - mouseEvent.clientX) / rect.width : (mouseEvent.clientX - rect.left) / rect.width;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Only allow movement if mouse crossed the indicator position
|
|
120
|
+
if (mouseRate > currentIndicatorRate) {
|
|
121
|
+
// Mouse is to the right/top, allow moving right/up
|
|
122
|
+
rate = Math.max(Math.min(mouseRate, 1), 0);
|
|
123
|
+
} else if (mouseRate < currentIndicatorRate) {
|
|
124
|
+
// Mouse is to the left/bottom, allow moving left/down
|
|
125
|
+
rate = Math.max(Math.min(mouseRate, 1), 0);
|
|
126
|
+
} else {
|
|
127
|
+
// Mouse is at same position, no change
|
|
128
|
+
return r;
|
|
129
|
+
}
|
|
130
|
+
} else {
|
|
131
|
+
// Normal delta-based movement
|
|
132
|
+
var max = props.vertical ? target.clientHeight : target.clientWidth;
|
|
133
|
+
var delta = props.vertical ? deltaY * -1 : deltaX * (isReserve ? -1 : 1);
|
|
134
|
+
rate = Math.max(v + delta / max, 0);
|
|
135
|
+
}
|
|
101
136
|
if (rate > 1) {
|
|
102
137
|
rate = 1;
|
|
103
138
|
if (typeof props.onIncrease === 'function') props.onIncrease();
|
|
104
139
|
}
|
|
105
140
|
newRate[context.dragIndex] = rate;
|
|
141
|
+
|
|
142
|
+
// Check if the new value would be disabled
|
|
143
|
+
var newValue = getValueFromRate(newRate[context.dragIndex], scale, step);
|
|
144
|
+
if (isDisabled(newValue)) {
|
|
145
|
+
// Stay at current position to prevent flickering
|
|
146
|
+
return r;
|
|
147
|
+
}
|
|
106
148
|
if (newRate[0] > newRate[1]) {
|
|
107
149
|
context.dragIndex = context.dragIndex === 0 ? 1 : 0;
|
|
108
150
|
var temp = newRate[0];
|
|
@@ -131,6 +173,9 @@ export var useSlider = function useSlider(props) {
|
|
|
131
173
|
var rect = target.getBoundingClientRect();
|
|
132
174
|
var rate = !props.vertical ? (isReserve ? rect.right - e.clientX : e.clientX - rect.left) / rect.width : (rect.bottom - e.clientY) / rect.height;
|
|
133
175
|
var value = getValueFromRate(rate, scale, step);
|
|
176
|
+
|
|
177
|
+
// Check if the clicked value would be disabled
|
|
178
|
+
if (isDisabled(value)) return;
|
|
134
179
|
if (props.range) {
|
|
135
180
|
var _start = startValue;
|
|
136
181
|
var _end = endValue;
|
|
@@ -167,8 +212,10 @@ export var useSlider = function useSlider(props) {
|
|
|
167
212
|
handleEndMouseDown: handleEndMouseDown,
|
|
168
213
|
handleTrackClick: handleTrackClick
|
|
169
214
|
});
|
|
170
|
-
|
|
171
|
-
|
|
215
|
+
|
|
216
|
+
// During dragging, optionally snap to quantized values in discrete mode
|
|
217
|
+
var start = dragInfo.isDragging ? props.discrete ? getRateFromValue(getValueFromRate(rate[0], scale, step), scale) : rate[0] : getRateFromValue(startValue, scale);
|
|
218
|
+
var end = dragInfo.isDragging ? props.discrete ? getRateFromValue(getValueFromRate(rate[1], scale, step), scale) : rate[1] : getRateFromValue(endValue, scale);
|
|
172
219
|
var innerStyle = getTrackInnerStyle(start, end);
|
|
173
220
|
return {
|
|
174
221
|
func: func,
|
|
@@ -7,5 +7,7 @@ export interface UseSliderProps<Value extends number | number[]> {
|
|
|
7
7
|
vertical: boolean;
|
|
8
8
|
onIncrease: (() => void) | undefined;
|
|
9
9
|
direction?: 'ltr' | 'rtl';
|
|
10
|
+
disabled?: boolean | ((value: number) => boolean);
|
|
11
|
+
discrete?: boolean;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=use-slider.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-slider.type.d.ts","sourceRoot":"","sources":["use-slider.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE;IAC7D,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"use-slider.type.d.ts","sourceRoot":"","sources":["use-slider.type.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,EAAE;IAC7D,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -298,7 +298,7 @@ var useTree = function useTree(props) {
|
|
|
298
298
|
var indexPath = [].concat(_toConsumableArray(index), [i]);
|
|
299
299
|
ids.push(id);
|
|
300
300
|
var children = [];
|
|
301
|
-
if (Array.isArray(item[childrenKey])) {
|
|
301
|
+
if (item && Array.isArray(item[childrenKey])) {
|
|
302
302
|
var _children = initData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), mode === MODE.MODE_4 ? disabled : _isDisabled, indexPath, level + 1, id);
|
|
303
303
|
if (_children) children = _children;
|
|
304
304
|
}
|
|
@@ -334,7 +334,7 @@ var useTree = function useTree(props) {
|
|
|
334
334
|
result.push(node);
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
|
-
if (Array.isArray(item[childrenKey])) {
|
|
337
|
+
if (item && Array.isArray(item[childrenKey])) {
|
|
338
338
|
initFlatData(item[childrenKey], [].concat(_toConsumableArray(path), [id]), level + 1, id, result);
|
|
339
339
|
}
|
|
340
340
|
}
|
package/esm/utils/is.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"is.d.ts","sourceRoot":"","sources":["is.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,YAExB;AASD,eAAO,MAAM,OAAO,4BAAgB,CAAC;AACrC,eAAO,MAAM,QAAQ,QAAS,OAAO,sBACc,CAAC;AACpD,eAAO,MAAM,MAAM,QAAS,OAAO,gBAAqC,CAAC;AACzE,eAAO,MAAM,SAAS,QAAS,OAAO,mBAA2C,CAAC;AAClF,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OAA+B,CAAC;AACvE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAAgC,CAAC;AACzE,eAAO,MAAM,QAAQ,MAAO,OAAO,gBAAuC,CAAC;AAC3E,eAAO,MAAM,WAAW,QAAS,GAAG,qBAAwC,CAAC;AAC7E,eAAO,MAAM,KAAK,QAjBsB,OAAO,mBAiBb,CAAC;AACnC,eAAO,MAAM,KAAK,QAlBsB,OAAO,mBAkBb,CAAC;AACnC,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,OAUvC,CAAC;AACF,eAAO,MAAM,eAAe,QAAS,OAAO,yBAE3C,CAAC;AACF,eAAO,MAAM,WAAW,QAAS,OAAO,KAAG,OAS1C,CAAC;AAEF,eAAO,MAAM,MAAM,MAAO,OAAO,kBAA2C,CAAC;AAE7E,eAAO,MAAM,SAAS,MAAO,OAAO,YACiC,CAAC;AAGtE,eAAO,MAAM,KAAK,MAAO,OAAO,KAAG,OAAkB,CAAC;AAEtD,eAAO,MAAM,OAAO,QAAS,OAAO,KAAG,OActC,CAAC;AAEF,eAAO,MAAM,MAAM,OAAQ,OAAO,6EAUjC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAE5F;AAED,eAAO,MAAM,OAAO,QAAO,OACqC,CAAC;AAEjE,eAAO,MAAM,SAAS,QAAO,OAG5B,CAAC;AAEF,wBAAgB,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQjE;AAED,eAAO,MAAM,kBAAkB,uBACnB,OAAO,yCAGlB,CAAC"}
|
package/esm/utils/is.js
CHANGED
|
@@ -78,17 +78,12 @@ export var isEmpty = function isEmpty(val) {
|
|
|
78
78
|
};
|
|
79
79
|
export var isLink = function isLink(el) {
|
|
80
80
|
if (_typeof(el) === 'object') {
|
|
81
|
+
var _type;
|
|
81
82
|
if (! /*#__PURE__*/React.isValidElement(el)) return false;
|
|
82
83
|
if (!el.type) return false;
|
|
83
84
|
if (el.type === 'a') return true;
|
|
84
|
-
//
|
|
85
|
-
if (el.props && el.props.to)
|
|
86
|
-
var typeName = typeof el.type === 'function' ? el.type.name : '';
|
|
87
|
-
var displayName = _typeof(el.type) === 'object' && el.type !== null ? el.type.displayName : '';
|
|
88
|
-
// 检查是否为常见的路由链接组件
|
|
89
|
-
var isRouterComponent = typeName === 'Link' || typeName === 'NavLink' || displayName === 'Link' || displayName === 'NavLink';
|
|
90
|
-
return isRouterComponent;
|
|
91
|
-
}
|
|
85
|
+
// 有 to 属性 和 render 函数 就认为是链接组件(react-router Link NavLink 的特征)
|
|
86
|
+
if (el.props && el.props.to && (_type = el.type) !== null && _type !== void 0 && _type.render) return true;
|
|
92
87
|
}
|
|
93
88
|
return false;
|
|
94
89
|
};
|