@sheinx/hooks 3.9.12-beta.1 → 3.9.12-beta.11
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/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/cjs/components/use-cascader/use-cascader.js +4 -2
- package/cjs/components/use-cascader/use-cascader.type.d.ts +1 -0
- package/cjs/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/cjs/components/use-slider/use-slider.d.ts.map +1 -1
- package/cjs/components/use-slider/use-slider.js +36 -2
- package/cjs/components/use-tree/use-tree.d.ts.map +1 -1
- package/cjs/components/use-tree/use-tree.js +39 -4
- package/cjs/components/use-tree/use-tree.type.d.ts +8 -0
- package/cjs/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.d.ts.map +1 -1
- package/esm/components/use-cascader/use-cascader.js +4 -2
- package/esm/components/use-cascader/use-cascader.type.d.ts +1 -0
- package/esm/components/use-cascader/use-cascader.type.d.ts.map +1 -1
- package/esm/components/use-slider/use-slider.d.ts.map +1 -1
- package/esm/components/use-slider/use-slider.js +36 -2
- package/esm/components/use-tree/use-tree.d.ts.map +1 -1
- package/esm/components/use-tree/use-tree.js +40 -5
- package/esm/components/use-tree/use-tree.type.d.ts +8 -0
- package/esm/components/use-tree/use-tree.type.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;
|
|
1
|
+
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;CA6ChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -19,7 +19,8 @@ var useCascader = function useCascader(props) {
|
|
|
19
19
|
valueProp = props.value,
|
|
20
20
|
onChangeProp = props.onChange,
|
|
21
21
|
filterSameChange = props.filterSameChange,
|
|
22
|
-
childrenKey = props.childrenKey
|
|
22
|
+
childrenKey = props.childrenKey,
|
|
23
|
+
sortBySelect = props.sortBySelect;
|
|
23
24
|
var _useInputAble = (0, _useInputAble2.useInputAble)({
|
|
24
25
|
value: valueProp,
|
|
25
26
|
control: control,
|
|
@@ -38,7 +39,8 @@ var useCascader = function useCascader(props) {
|
|
|
38
39
|
mode: mode,
|
|
39
40
|
disabled: disabled,
|
|
40
41
|
isControlled: control,
|
|
41
|
-
childrenKey: childrenKey
|
|
42
|
+
childrenKey: childrenKey,
|
|
43
|
+
sortBySelect: sortBySelect
|
|
42
44
|
}),
|
|
43
45
|
datum = _useTree.datum;
|
|
44
46
|
return {
|
|
@@ -14,5 +14,6 @@ export interface BaseCascaderProps<DataItem, Value extends KeygenResult[]> {
|
|
|
14
14
|
keygen: TreeKeygenType<DataItem>;
|
|
15
15
|
disabled?: DisabledOption<DataItem> | boolean | ((item: DataItem) => boolean);
|
|
16
16
|
filterSameChange?: boolean;
|
|
17
|
+
sortBySelect?: boolean;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=use-cascader.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
|
|
@@ -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;;kCA4Ja,gBAAgB;gCAIlB,gBAAgB;8BAKL,gBAAgB;;;;;;;;;;;;;;;;;;;CA2E3D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -149,8 +149,42 @@ var useSlider = exports.useSlider = function useSlider(props) {
|
|
|
149
149
|
// Check if the new value would be disabled
|
|
150
150
|
var newValue = getValueFromRate(newRate[context.dragIndex], scale, step);
|
|
151
151
|
if (isDisabled(newValue)) {
|
|
152
|
-
//
|
|
153
|
-
|
|
152
|
+
// Binary search for the closest allowed boundary in the drag direction
|
|
153
|
+
var currentRate = v;
|
|
154
|
+
var lo, hi, boundaryRate;
|
|
155
|
+
if (rate > currentRate) {
|
|
156
|
+
// Dragging forward: find the largest non-disabled rate in [currentRate, rate]
|
|
157
|
+
lo = currentRate;
|
|
158
|
+
hi = rate;
|
|
159
|
+
for (var i = 0; i < 20; i++) {
|
|
160
|
+
var mid = (lo + hi) / 2;
|
|
161
|
+
if (isDisabled(getValueFromRate(mid, scale, step))) {
|
|
162
|
+
hi = mid;
|
|
163
|
+
} else {
|
|
164
|
+
lo = mid;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
boundaryRate = lo;
|
|
168
|
+
} else {
|
|
169
|
+
// Dragging backward: find the smallest non-disabled rate in [rate, currentRate]
|
|
170
|
+
lo = rate;
|
|
171
|
+
hi = currentRate;
|
|
172
|
+
for (var _i = 0; _i < 20; _i++) {
|
|
173
|
+
var _mid = (lo + hi) / 2;
|
|
174
|
+
if (isDisabled(getValueFromRate(_mid, scale, step))) {
|
|
175
|
+
lo = _mid;
|
|
176
|
+
} else {
|
|
177
|
+
hi = _mid;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
boundaryRate = hi;
|
|
181
|
+
}
|
|
182
|
+
var boundaryValue = getValueFromRate(boundaryRate, scale, step);
|
|
183
|
+
var currentValue = getValueFromRate(v, scale, step);
|
|
184
|
+
if (isDisabled(boundaryValue) || boundaryValue === currentValue) {
|
|
185
|
+
return r;
|
|
186
|
+
}
|
|
187
|
+
newRate[context.dragIndex] = boundaryRate;
|
|
154
188
|
}
|
|
155
189
|
if (newRate[0] > newRate[1]) {
|
|
156
190
|
context.dragIndex = context.dragIndex === 0 ? 1 : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;
|
|
1
|
+
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;CA4wBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -75,7 +75,8 @@ var useTree = function useTree(props) {
|
|
|
75
75
|
defaultExpandAll = props.defaultExpandAll,
|
|
76
76
|
unmatch = props.unmatch,
|
|
77
77
|
isControlled = props.isControlled,
|
|
78
|
-
onExpandProp = props.onExpand
|
|
78
|
+
onExpandProp = props.onExpand,
|
|
79
|
+
sortBySelect = props.sortBySelect;
|
|
79
80
|
var disabledProps = (0, _is.isOptionalDisabled)(props.disabled) ? props.disabled.disabled : props.disabled;
|
|
80
81
|
var isRealtime = (0, _is.isOptionalDisabled)(props.disabled) ? props.disabled.isRealtime : false;
|
|
81
82
|
var _useState = (0, _react.useState)([]),
|
|
@@ -103,7 +104,8 @@ var useTree = function useTree(props) {
|
|
|
103
104
|
value: undefined,
|
|
104
105
|
data: [],
|
|
105
106
|
cachedValue: [],
|
|
106
|
-
valueDataCache: new Map()
|
|
107
|
+
valueDataCache: new Map(),
|
|
108
|
+
selectOrder: []
|
|
107
109
|
}),
|
|
108
110
|
context = _useRef.current;
|
|
109
111
|
|
|
@@ -203,10 +205,21 @@ var useTree = function useTree(props) {
|
|
|
203
205
|
context.unmatchedValueMap.forEach(function (unmatch, id) {
|
|
204
206
|
if (unmatch) values.push(id);
|
|
205
207
|
});
|
|
208
|
+
if (sortBySelect && context.selectOrder.length > 0) {
|
|
209
|
+
var orderMap = new Map();
|
|
210
|
+
context.selectOrder.forEach(function (id, index) {
|
|
211
|
+
orderMap.set(id, index);
|
|
212
|
+
});
|
|
213
|
+
values.sort(function (a, b) {
|
|
214
|
+
var _orderMap$get, _orderMap$get2;
|
|
215
|
+
return ((_orderMap$get = orderMap.get(a)) !== null && _orderMap$get !== void 0 ? _orderMap$get : Infinity) - ((_orderMap$get2 = orderMap.get(b)) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : Infinity);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
206
218
|
context.cachedValue = values;
|
|
207
|
-
// why
|
|
219
|
+
// why slice: 外部可能对数组做splice等操作,影响context.cachedValue在内部的判断逻辑
|
|
208
220
|
// 表现出来的bug现象是:外部删除了某个叶子结点,但是Tree的勾选情况没有同步更新; 另外是为了对齐老版本的表现
|
|
209
|
-
|
|
221
|
+
// 由于values是KeygenResult[](string|number等原始值),slice()浅拷贝即可隔离引用,无需deepClone
|
|
222
|
+
return values.slice();
|
|
210
223
|
};
|
|
211
224
|
var getPath = function getPath(id) {
|
|
212
225
|
return context.pathMap.get(id);
|
|
@@ -248,6 +261,21 @@ var useTree = function useTree(props) {
|
|
|
248
261
|
return (0, _is.isUnMatchedData)(data);
|
|
249
262
|
});
|
|
250
263
|
var setValueMap = function setValueMap(id, checked) {
|
|
264
|
+
if (sortBySelect) {
|
|
265
|
+
var prevChecked = context.valueMap.get(id);
|
|
266
|
+
var wasChecked = prevChecked === 1 || prevChecked === 2;
|
|
267
|
+
var isChecked = checked === 1 || checked === 2;
|
|
268
|
+
if (!wasChecked && isChecked) {
|
|
269
|
+
if (!context.selectOrder.includes(id)) {
|
|
270
|
+
context.selectOrder.push(id);
|
|
271
|
+
}
|
|
272
|
+
} else if (wasChecked && !isChecked) {
|
|
273
|
+
var idx = context.selectOrder.indexOf(id);
|
|
274
|
+
if (idx >= 0) {
|
|
275
|
+
context.selectOrder.splice(idx, 1);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
251
279
|
context.valueMap.set(id, checked);
|
|
252
280
|
var update = context.forceUpdateMap.get(id);
|
|
253
281
|
if (update) update();
|
|
@@ -408,6 +436,12 @@ var useTree = function useTree(props) {
|
|
|
408
436
|
initValue();
|
|
409
437
|
}
|
|
410
438
|
setUnmatedValue();
|
|
439
|
+
if (sortBySelect) {
|
|
440
|
+
context.selectOrder = (context.value || []).filter(function (id) {
|
|
441
|
+
var status = context.valueMap.get(id);
|
|
442
|
+
return status === 1 || status === 2 || context.unmatchedValueMap.get(id);
|
|
443
|
+
});
|
|
444
|
+
}
|
|
411
445
|
};
|
|
412
446
|
var isDisabled = function isDisabled(id) {
|
|
413
447
|
if ((0, _is.isFunc)(disabledProps)) {
|
|
@@ -445,6 +479,7 @@ var useTree = function useTree(props) {
|
|
|
445
479
|
context.dataFlatStatusMap = new Map();
|
|
446
480
|
context.valueMap = new Map();
|
|
447
481
|
context.unmatchedValueMap = new Map();
|
|
482
|
+
context.selectOrder = [];
|
|
448
483
|
context.data = toArray(data);
|
|
449
484
|
if (virtual) {
|
|
450
485
|
context.dataFlat = [];
|
|
@@ -32,6 +32,7 @@ export interface TreeContext<DataItem> {
|
|
|
32
32
|
cachedValue: KeygenResult[];
|
|
33
33
|
data?: DataItem[];
|
|
34
34
|
valueDataCache: Map<KeygenResult, DataItem>;
|
|
35
|
+
selectOrder: KeygenResult[];
|
|
35
36
|
}
|
|
36
37
|
export interface TreePathType {
|
|
37
38
|
children: KeygenResult[];
|
|
@@ -125,6 +126,13 @@ export interface BaseTreeProps<DataItem> {
|
|
|
125
126
|
* @cn 节点展开回调,参数为当前展开节点 key 数组
|
|
126
127
|
*/
|
|
127
128
|
onExpand?: (value: KeygenResult[]) => void;
|
|
129
|
+
/**
|
|
130
|
+
* @en When enabled in multi-select mode, the value array is sorted by selection order instead of tree structure order
|
|
131
|
+
* @cn 开启后,多选模式下的 value 数组将按照用户勾选的先后顺序排列,而非数据在树中的位置顺序
|
|
132
|
+
* @default false
|
|
133
|
+
* @version 3.9.12
|
|
134
|
+
*/
|
|
135
|
+
sortBySelect?: boolean;
|
|
128
136
|
/**
|
|
129
137
|
* @private 保持数据缓存
|
|
130
138
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,UAAU,CAAC;AAE9E,MAAM,MAAM,YAAY,CAAC,QAAQ,IAAI;IACnC,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAClD,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC/C,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;
|
|
1
|
+
{"version":3,"file":"use-cascader.d.ts","sourceRoot":"","sources":["use-cascader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,QAAA,MAAM,WAAW;;;;CA6ChB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -12,7 +12,8 @@ var useCascader = function useCascader(props) {
|
|
|
12
12
|
valueProp = props.value,
|
|
13
13
|
onChangeProp = props.onChange,
|
|
14
14
|
filterSameChange = props.filterSameChange,
|
|
15
|
-
childrenKey = props.childrenKey
|
|
15
|
+
childrenKey = props.childrenKey,
|
|
16
|
+
sortBySelect = props.sortBySelect;
|
|
16
17
|
var _useInputAble = useInputAble({
|
|
17
18
|
value: valueProp,
|
|
18
19
|
control: control,
|
|
@@ -31,7 +32,8 @@ var useCascader = function useCascader(props) {
|
|
|
31
32
|
mode: mode,
|
|
32
33
|
disabled: disabled,
|
|
33
34
|
isControlled: control,
|
|
34
|
-
childrenKey: childrenKey
|
|
35
|
+
childrenKey: childrenKey,
|
|
36
|
+
sortBySelect: sortBySelect
|
|
35
37
|
}),
|
|
36
38
|
datum = _useTree.datum;
|
|
37
39
|
return {
|
|
@@ -14,5 +14,6 @@ export interface BaseCascaderProps<DataItem, Value extends KeygenResult[]> {
|
|
|
14
14
|
keygen: TreeKeygenType<DataItem>;
|
|
15
15
|
disabled?: DisabledOption<DataItem> | boolean | ((item: DataItem) => boolean);
|
|
16
16
|
filterSameChange?: boolean;
|
|
17
|
+
sortBySelect?: boolean;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=use-cascader.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-cascader.type.d.ts","sourceRoot":"","sources":["use-cascader.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,SAAS,YAAY,EAAE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAC;IACrC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC9E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
|
|
@@ -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;;kCA4Ja,gBAAgB;gCAIlB,gBAAgB;8BAKL,gBAAgB;;;;;;;;;;;;;;;;;;;CA2E3D,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -142,8 +142,42 @@ export var useSlider = function useSlider(props) {
|
|
|
142
142
|
// Check if the new value would be disabled
|
|
143
143
|
var newValue = getValueFromRate(newRate[context.dragIndex], scale, step);
|
|
144
144
|
if (isDisabled(newValue)) {
|
|
145
|
-
//
|
|
146
|
-
|
|
145
|
+
// Binary search for the closest allowed boundary in the drag direction
|
|
146
|
+
var currentRate = v;
|
|
147
|
+
var lo, hi, boundaryRate;
|
|
148
|
+
if (rate > currentRate) {
|
|
149
|
+
// Dragging forward: find the largest non-disabled rate in [currentRate, rate]
|
|
150
|
+
lo = currentRate;
|
|
151
|
+
hi = rate;
|
|
152
|
+
for (var i = 0; i < 20; i++) {
|
|
153
|
+
var mid = (lo + hi) / 2;
|
|
154
|
+
if (isDisabled(getValueFromRate(mid, scale, step))) {
|
|
155
|
+
hi = mid;
|
|
156
|
+
} else {
|
|
157
|
+
lo = mid;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
boundaryRate = lo;
|
|
161
|
+
} else {
|
|
162
|
+
// Dragging backward: find the smallest non-disabled rate in [rate, currentRate]
|
|
163
|
+
lo = rate;
|
|
164
|
+
hi = currentRate;
|
|
165
|
+
for (var _i = 0; _i < 20; _i++) {
|
|
166
|
+
var _mid = (lo + hi) / 2;
|
|
167
|
+
if (isDisabled(getValueFromRate(_mid, scale, step))) {
|
|
168
|
+
lo = _mid;
|
|
169
|
+
} else {
|
|
170
|
+
hi = _mid;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
boundaryRate = hi;
|
|
174
|
+
}
|
|
175
|
+
var boundaryValue = getValueFromRate(boundaryRate, scale, step);
|
|
176
|
+
var currentValue = getValueFromRate(v, scale, step);
|
|
177
|
+
if (isDisabled(boundaryValue) || boundaryValue === currentValue) {
|
|
178
|
+
return r;
|
|
179
|
+
}
|
|
180
|
+
newRate[context.dragIndex] = boundaryRate;
|
|
147
181
|
}
|
|
148
182
|
if (newRate[0] > newRate[1]) {
|
|
149
183
|
context.dragIndex = context.dragIndex === 0 ? 1 : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;
|
|
1
|
+
{"version":3,"file":"use-tree.d.ts","sourceRoot":"","sources":["use-tree.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,EAKb,SAAS,EAIV,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD,eAAO,MAAM,IAAI;IACf;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEJ,CAAC;AAEF,QAAA,MAAM,OAAO;;;;CA4wBZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -20,7 +20,7 @@ import { useInputAble } from "../../common/use-input-able";
|
|
|
20
20
|
import { getExpandVirtualData } from "../use-table/use-table-tree";
|
|
21
21
|
import { usePersistFn } from "../../common/use-persist-fn";
|
|
22
22
|
import { isFunc, isString, isNumber, isArray, isUnMatchedData, isOptionalDisabled } from "../../utils/is";
|
|
23
|
-
import { devUseWarning, produce, shallowEqual
|
|
23
|
+
import { devUseWarning, produce, shallowEqual } from "../../utils";
|
|
24
24
|
function toArray(value) {
|
|
25
25
|
if (!value) return [];
|
|
26
26
|
if (!Array.isArray(value)) return [value];
|
|
@@ -68,7 +68,8 @@ var useTree = function useTree(props) {
|
|
|
68
68
|
defaultExpandAll = props.defaultExpandAll,
|
|
69
69
|
unmatch = props.unmatch,
|
|
70
70
|
isControlled = props.isControlled,
|
|
71
|
-
onExpandProp = props.onExpand
|
|
71
|
+
onExpandProp = props.onExpand,
|
|
72
|
+
sortBySelect = props.sortBySelect;
|
|
72
73
|
var disabledProps = isOptionalDisabled(props.disabled) ? props.disabled.disabled : props.disabled;
|
|
73
74
|
var isRealtime = isOptionalDisabled(props.disabled) ? props.disabled.isRealtime : false;
|
|
74
75
|
var _useState = useState([]),
|
|
@@ -96,7 +97,8 @@ var useTree = function useTree(props) {
|
|
|
96
97
|
value: undefined,
|
|
97
98
|
data: [],
|
|
98
99
|
cachedValue: [],
|
|
99
|
-
valueDataCache: new Map()
|
|
100
|
+
valueDataCache: new Map(),
|
|
101
|
+
selectOrder: []
|
|
100
102
|
}),
|
|
101
103
|
context = _useRef.current;
|
|
102
104
|
|
|
@@ -196,10 +198,21 @@ var useTree = function useTree(props) {
|
|
|
196
198
|
context.unmatchedValueMap.forEach(function (unmatch, id) {
|
|
197
199
|
if (unmatch) values.push(id);
|
|
198
200
|
});
|
|
201
|
+
if (sortBySelect && context.selectOrder.length > 0) {
|
|
202
|
+
var orderMap = new Map();
|
|
203
|
+
context.selectOrder.forEach(function (id, index) {
|
|
204
|
+
orderMap.set(id, index);
|
|
205
|
+
});
|
|
206
|
+
values.sort(function (a, b) {
|
|
207
|
+
var _orderMap$get, _orderMap$get2;
|
|
208
|
+
return ((_orderMap$get = orderMap.get(a)) !== null && _orderMap$get !== void 0 ? _orderMap$get : Infinity) - ((_orderMap$get2 = orderMap.get(b)) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : Infinity);
|
|
209
|
+
});
|
|
210
|
+
}
|
|
199
211
|
context.cachedValue = values;
|
|
200
|
-
// why
|
|
212
|
+
// why slice: 外部可能对数组做splice等操作,影响context.cachedValue在内部的判断逻辑
|
|
201
213
|
// 表现出来的bug现象是:外部删除了某个叶子结点,但是Tree的勾选情况没有同步更新; 另外是为了对齐老版本的表现
|
|
202
|
-
|
|
214
|
+
// 由于values是KeygenResult[](string|number等原始值),slice()浅拷贝即可隔离引用,无需deepClone
|
|
215
|
+
return values.slice();
|
|
203
216
|
};
|
|
204
217
|
var getPath = function getPath(id) {
|
|
205
218
|
return context.pathMap.get(id);
|
|
@@ -241,6 +254,21 @@ var useTree = function useTree(props) {
|
|
|
241
254
|
return isUnMatchedData(data);
|
|
242
255
|
});
|
|
243
256
|
var setValueMap = function setValueMap(id, checked) {
|
|
257
|
+
if (sortBySelect) {
|
|
258
|
+
var prevChecked = context.valueMap.get(id);
|
|
259
|
+
var wasChecked = prevChecked === 1 || prevChecked === 2;
|
|
260
|
+
var isChecked = checked === 1 || checked === 2;
|
|
261
|
+
if (!wasChecked && isChecked) {
|
|
262
|
+
if (!context.selectOrder.includes(id)) {
|
|
263
|
+
context.selectOrder.push(id);
|
|
264
|
+
}
|
|
265
|
+
} else if (wasChecked && !isChecked) {
|
|
266
|
+
var idx = context.selectOrder.indexOf(id);
|
|
267
|
+
if (idx >= 0) {
|
|
268
|
+
context.selectOrder.splice(idx, 1);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
244
272
|
context.valueMap.set(id, checked);
|
|
245
273
|
var update = context.forceUpdateMap.get(id);
|
|
246
274
|
if (update) update();
|
|
@@ -401,6 +429,12 @@ var useTree = function useTree(props) {
|
|
|
401
429
|
initValue();
|
|
402
430
|
}
|
|
403
431
|
setUnmatedValue();
|
|
432
|
+
if (sortBySelect) {
|
|
433
|
+
context.selectOrder = (context.value || []).filter(function (id) {
|
|
434
|
+
var status = context.valueMap.get(id);
|
|
435
|
+
return status === 1 || status === 2 || context.unmatchedValueMap.get(id);
|
|
436
|
+
});
|
|
437
|
+
}
|
|
404
438
|
};
|
|
405
439
|
var isDisabled = function isDisabled(id) {
|
|
406
440
|
if (isFunc(disabledProps)) {
|
|
@@ -438,6 +472,7 @@ var useTree = function useTree(props) {
|
|
|
438
472
|
context.dataFlatStatusMap = new Map();
|
|
439
473
|
context.valueMap = new Map();
|
|
440
474
|
context.unmatchedValueMap = new Map();
|
|
475
|
+
context.selectOrder = [];
|
|
441
476
|
context.data = toArray(data);
|
|
442
477
|
if (virtual) {
|
|
443
478
|
context.dataFlat = [];
|
|
@@ -32,6 +32,7 @@ export interface TreeContext<DataItem> {
|
|
|
32
32
|
cachedValue: KeygenResult[];
|
|
33
33
|
data?: DataItem[];
|
|
34
34
|
valueDataCache: Map<KeygenResult, DataItem>;
|
|
35
|
+
selectOrder: KeygenResult[];
|
|
35
36
|
}
|
|
36
37
|
export interface TreePathType {
|
|
37
38
|
children: KeygenResult[];
|
|
@@ -125,6 +126,13 @@ export interface BaseTreeProps<DataItem> {
|
|
|
125
126
|
* @cn 节点展开回调,参数为当前展开节点 key 数组
|
|
126
127
|
*/
|
|
127
128
|
onExpand?: (value: KeygenResult[]) => void;
|
|
129
|
+
/**
|
|
130
|
+
* @en When enabled in multi-select mode, the value array is sorted by selection order instead of tree structure order
|
|
131
|
+
* @cn 开启后,多选模式下的 value 数组将按照用户勾选的先后顺序排列,而非数据在树中的位置顺序
|
|
132
|
+
* @default false
|
|
133
|
+
* @version 3.9.12
|
|
134
|
+
*/
|
|
135
|
+
sortBySelect?: boolean;
|
|
128
136
|
/**
|
|
129
137
|
* @private 保持数据缓存
|
|
130
138
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,UAAU,CAAC;AAE9E,MAAM,MAAM,YAAY,CAAC,QAAQ,IAAI;IACnC,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,WAAW,CAAC,QAAQ;IACnC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnC,iBAAiB,EAAE,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAClD,QAAQ,EAAE,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC/C,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjC,SAAS,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACzC,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"use-tree.type.d.ts","sourceRoot":"","sources":["use-tree.type.ts"],"names":[],"mappings":"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"}
|