@douyinfe/semi-foundation 2.55.4 → 2.56.0-alpha.0
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/cjs/slider/foundation.js +2 -1
- package/lib/cjs/tree/foundation.d.ts +5 -0
- package/lib/cjs/tree/foundation.js +44 -4
- package/lib/cjs/tree/treeUtil.d.ts +1 -1
- package/lib/cjs/treeSelect/foundation.d.ts +2 -2
- package/lib/cjs/treeSelect/foundation.js +6 -3
- package/lib/cjs/upload/constants.d.ts +1 -1
- package/lib/es/slider/foundation.js +2 -1
- package/lib/es/tree/foundation.d.ts +5 -0
- package/lib/es/tree/foundation.js +44 -4
- package/lib/es/tree/treeUtil.d.ts +1 -1
- package/lib/es/treeSelect/foundation.d.ts +2 -2
- package/lib/es/treeSelect/foundation.js +6 -3
- package/lib/es/upload/constants.d.ts +1 -1
- package/package.json +3 -3
- package/slider/foundation.ts +2 -1
- package/tree/foundation.ts +39 -4
- package/treeSelect/foundation.ts +8 -6
|
@@ -458,7 +458,8 @@ class SliderFoundation extends _foundation.default {
|
|
|
458
458
|
this.onHandleLeave = () => {
|
|
459
459
|
// this._adapter.setEventDefault(e);
|
|
460
460
|
const disabled = this._adapter.getState('disabled');
|
|
461
|
-
|
|
461
|
+
const isDrag = this._adapter.getState('isDrag');
|
|
462
|
+
if (!disabled && !isDrag) {
|
|
462
463
|
this._adapter.onHandleLeave();
|
|
463
464
|
}
|
|
464
465
|
};
|
|
@@ -251,6 +251,11 @@ export default class TreeFoundation extends BaseFoundation<TreeAdapter, BasicTre
|
|
|
251
251
|
_showFilteredOnly(): any;
|
|
252
252
|
getTreeNodeProps(key: string): BasicTreeNodeProps;
|
|
253
253
|
notifyJsonChange(key: string[] | string, e: any): void;
|
|
254
|
+
constructDataForValue(value: string): {
|
|
255
|
+
[x: number]: string;
|
|
256
|
+
};
|
|
257
|
+
findDataForValue(findValue: string): any;
|
|
258
|
+
getDataForKeyNotInKeyEntities(value: string): any;
|
|
254
259
|
notifyMultipleChange(key: string[], e: any): void;
|
|
255
260
|
notifyChange(key: string[] | string, e: any): void;
|
|
256
261
|
handleInputChange(sugInput: string): void;
|
|
@@ -115,6 +115,45 @@ class TreeFoundation extends _foundation.default {
|
|
|
115
115
|
const value = (0, _pick2.default)(data, selectedPath);
|
|
116
116
|
this._adapter.notifyChange(value);
|
|
117
117
|
}
|
|
118
|
+
constructDataForValue(value) {
|
|
119
|
+
const {
|
|
120
|
+
keyMaps
|
|
121
|
+
} = this.getProps();
|
|
122
|
+
const keyName = (0, _get2.default)(keyMaps, 'key', 'key');
|
|
123
|
+
const labelName = (0, _get2.default)(keyMaps, 'label', 'label');
|
|
124
|
+
return {
|
|
125
|
+
[keyName]: value,
|
|
126
|
+
[labelName]: value
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
findDataForValue(findValue) {
|
|
130
|
+
const {
|
|
131
|
+
value,
|
|
132
|
+
defaultValue,
|
|
133
|
+
keyMaps
|
|
134
|
+
} = this.getProps();
|
|
135
|
+
const realValueName = (0, _get2.default)(keyMaps, 'value', 'value');
|
|
136
|
+
const realKeyName = (0, _get2.default)(keyMaps, 'key', 'key');
|
|
137
|
+
let valueArr = [];
|
|
138
|
+
if (value) {
|
|
139
|
+
valueArr = Array.isArray(value) ? value : [value];
|
|
140
|
+
} else if (defaultValue) {
|
|
141
|
+
valueArr = Array.isArray(defaultValue) ? defaultValue : [defaultValue];
|
|
142
|
+
}
|
|
143
|
+
return valueArr.find(item => {
|
|
144
|
+
return item[realValueName] === findValue || item[realKeyName] === findValue;
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
getDataForKeyNotInKeyEntities(value) {
|
|
148
|
+
const {
|
|
149
|
+
onChangeWithObject
|
|
150
|
+
} = this.getProps();
|
|
151
|
+
if (onChangeWithObject) {
|
|
152
|
+
return this.findDataForValue(value);
|
|
153
|
+
} else {
|
|
154
|
+
return this.constructDataForValue(value);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
118
157
|
notifyMultipleChange(key, e) {
|
|
119
158
|
const {
|
|
120
159
|
keyEntities
|
|
@@ -127,14 +166,15 @@ class TreeFoundation extends _foundation.default {
|
|
|
127
166
|
let value;
|
|
128
167
|
let keyList = [];
|
|
129
168
|
if (checkRelation === 'related') {
|
|
130
|
-
keyList = (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly);
|
|
169
|
+
keyList = (0, _treeUtil.normalizeKeyList)(key, keyEntities, leafOnly, true);
|
|
131
170
|
} else if (checkRelation === 'unRelated') {
|
|
132
171
|
keyList = key;
|
|
133
172
|
}
|
|
173
|
+
const nodes = keyList.map(key => keyEntities[key] ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key));
|
|
134
174
|
if (this.getProp('onChangeWithObject')) {
|
|
135
|
-
value =
|
|
175
|
+
value = nodes;
|
|
136
176
|
} else {
|
|
137
|
-
value = (0, _treeUtil.getValueOrKey)(
|
|
177
|
+
value = (0, _treeUtil.getValueOrKey)(nodes, keyMaps);
|
|
138
178
|
}
|
|
139
179
|
this._adapter.notifyChange(value);
|
|
140
180
|
}
|
|
@@ -293,7 +333,7 @@ class TreeFoundation extends _foundation.default {
|
|
|
293
333
|
return this.calcCheckedKeys(eventKey, targetStatus);
|
|
294
334
|
}
|
|
295
335
|
const nonDisabled = descendantKeys.filter(key => !disabledKeys.has(key));
|
|
296
|
-
const newCheckedKeys = targetStatus ? [...nonDisabled, ...checkedKeys] : (0, _difference2.default)((0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, true), nonDisabled);
|
|
336
|
+
const newCheckedKeys = targetStatus ? [...nonDisabled, ...checkedKeys] : (0, _difference2.default)((0, _treeUtil.normalizeKeyList)([...checkedKeys], keyEntities, true, true), nonDisabled);
|
|
297
337
|
return (0, _treeUtil.calcCheckedKeys)(newCheckedKeys, keyEntities);
|
|
298
338
|
}
|
|
299
339
|
/*
|
|
@@ -83,6 +83,6 @@ export declare function getValueOrKey(data: any, keyMaps?: KeyMapProps): any;
|
|
|
83
83
|
export declare function normalizeValue(value: any, withObject: boolean, keyMaps?: KeyMapProps): any;
|
|
84
84
|
export declare function updateKeys(keySet: Set<string> | string[], keyEntities: KeyEntities): string[];
|
|
85
85
|
export declare function calcDisabledKeys(keyEntities: KeyEntities, keyMaps?: KeyMapProps): Set<string>;
|
|
86
|
-
export declare function calcDropRelativePosition(event: any, treeNode: any):
|
|
86
|
+
export declare function calcDropRelativePosition(event: any, treeNode: any): 0 | 1 | -1;
|
|
87
87
|
export declare function getDragNodesKeys(key: string, keyEntities: KeyEntities): string[];
|
|
88
88
|
export declare function calcDropActualPosition(pos: string, relativeDropPos: any): any;
|
|
@@ -69,7 +69,7 @@ export interface BasicTreeSelectProps extends Pick<BasicTreeProps, 'virtualize'
|
|
|
69
69
|
renderSelectedItem?: BasicRenderSelectedItem;
|
|
70
70
|
getPopupContainer?: () => HTMLElement;
|
|
71
71
|
onBlur?: (e: any) => void;
|
|
72
|
-
onSearch?: (sunInput: string, filteredExpandedKeys: string[]) => void;
|
|
72
|
+
onSearch?: (sunInput: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
73
73
|
onChange?: BasicOnChange;
|
|
74
74
|
onFocus?: (e: any) => void;
|
|
75
75
|
onVisibleChange?: (isVisible: boolean) => void;
|
|
@@ -90,7 +90,7 @@ export interface TreeSelectAdapter<P = Record<string, any>, S = Record<string, a
|
|
|
90
90
|
rePositionDropdown: () => void;
|
|
91
91
|
updateState: (states: Partial<BasicTreeSelectInnerData>) => void;
|
|
92
92
|
notifySelect: (selectedKey: string, selected: boolean, selectedNode: BasicTreeNodeData) => void;
|
|
93
|
-
notifySearch: (input: string, filteredExpandedKeys: string[]) => void;
|
|
93
|
+
notifySearch: (input: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
94
94
|
cacheFlattenNodes: (bool: boolean) => void;
|
|
95
95
|
openMenu: () => void;
|
|
96
96
|
closeMenu: (cb?: () => void) => void;
|
|
@@ -474,6 +474,7 @@ class TreeSelectFoundation extends _foundation.default {
|
|
|
474
474
|
} = this.getProps();
|
|
475
475
|
const realFilterProp = treeNodeFilterProp !== 'label' ? treeNodeFilterProp : (0, _get2.default)(keyMaps, 'label', 'label');
|
|
476
476
|
const newExpandedKeys = new Set(expandedKeys);
|
|
477
|
+
let filteredNodes = [];
|
|
477
478
|
let filteredOptsKeys = [];
|
|
478
479
|
let expandedOptsKeys = [];
|
|
479
480
|
let newFlattenNodes = [];
|
|
@@ -483,19 +484,21 @@ class TreeSelectFoundation extends _foundation.default {
|
|
|
483
484
|
expandedOptsKeys.forEach(item => newExpandedKeys.add(item));
|
|
484
485
|
newFlattenNodes = (0, _treeUtil.flattenTreeData)(treeData, newExpandedKeys, keyMaps);
|
|
485
486
|
} else {
|
|
486
|
-
|
|
487
|
+
const filteredOpts = Object.values(keyEntities).filter(item => {
|
|
487
488
|
const {
|
|
488
489
|
data
|
|
489
490
|
} = item;
|
|
490
491
|
return (0, _treeUtil.filter)(sugInput, data, filterTreeNode, realFilterProp);
|
|
491
|
-
})
|
|
492
|
+
});
|
|
493
|
+
filteredNodes = filteredOpts.map(item => item.data);
|
|
494
|
+
filteredOptsKeys = filteredOpts.map(item => item.key);
|
|
492
495
|
expandedOptsKeys = (0, _treeUtil.findAncestorKeys)(filteredOptsKeys, keyEntities, false);
|
|
493
496
|
const shownChildKeys = (0, _treeUtil.findDescendantKeys)(filteredOptsKeys, keyEntities, true);
|
|
494
497
|
filteredShownKeys = new Set([...shownChildKeys, ...expandedOptsKeys]);
|
|
495
498
|
newFlattenNodes = (0, _treeUtil.flattenTreeData)(treeData, new Set(expandedOptsKeys), keyMaps, showFilteredOnly && filteredShownKeys);
|
|
496
499
|
}
|
|
497
500
|
const newFilteredExpandedKeys = new Set(expandedOptsKeys);
|
|
498
|
-
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys));
|
|
501
|
+
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys), filteredNodes);
|
|
499
502
|
this._adapter.updateState({
|
|
500
503
|
expandedKeys: newExpandedKeys,
|
|
501
504
|
flattenNodes: newFlattenNodes,
|
|
@@ -18,7 +18,7 @@ declare const strings: {
|
|
|
18
18
|
DRAG_AREA_ILLEGAL: string;
|
|
19
19
|
TRIGGER_AUTO: "auto";
|
|
20
20
|
TRIGGER_CUSTOM: "custom";
|
|
21
|
-
UPLOAD_TRIGGER: ("
|
|
21
|
+
UPLOAD_TRIGGER: ("custom" | "auto")[];
|
|
22
22
|
VALIDATE_STATUS: readonly ["default", "error", "warning", "success"];
|
|
23
23
|
PROMPT_POSITION: readonly ["left", "right", "bottom"];
|
|
24
24
|
};
|
|
@@ -451,7 +451,8 @@ export default class SliderFoundation extends BaseFoundation {
|
|
|
451
451
|
this.onHandleLeave = () => {
|
|
452
452
|
// this._adapter.setEventDefault(e);
|
|
453
453
|
const disabled = this._adapter.getState('disabled');
|
|
454
|
-
|
|
454
|
+
const isDrag = this._adapter.getState('isDrag');
|
|
455
|
+
if (!disabled && !isDrag) {
|
|
455
456
|
this._adapter.onHandleLeave();
|
|
456
457
|
}
|
|
457
458
|
};
|
|
@@ -251,6 +251,11 @@ export default class TreeFoundation extends BaseFoundation<TreeAdapter, BasicTre
|
|
|
251
251
|
_showFilteredOnly(): any;
|
|
252
252
|
getTreeNodeProps(key: string): BasicTreeNodeProps;
|
|
253
253
|
notifyJsonChange(key: string[] | string, e: any): void;
|
|
254
|
+
constructDataForValue(value: string): {
|
|
255
|
+
[x: number]: string;
|
|
256
|
+
};
|
|
257
|
+
findDataForValue(findValue: string): any;
|
|
258
|
+
getDataForKeyNotInKeyEntities(value: string): any;
|
|
254
259
|
notifyMultipleChange(key: string[], e: any): void;
|
|
255
260
|
notifyChange(key: string[] | string, e: any): void;
|
|
256
261
|
handleInputChange(sugInput: string): void;
|
|
@@ -107,6 +107,45 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
107
107
|
const value = _pick(data, selectedPath);
|
|
108
108
|
this._adapter.notifyChange(value);
|
|
109
109
|
}
|
|
110
|
+
constructDataForValue(value) {
|
|
111
|
+
const {
|
|
112
|
+
keyMaps
|
|
113
|
+
} = this.getProps();
|
|
114
|
+
const keyName = _get(keyMaps, 'key', 'key');
|
|
115
|
+
const labelName = _get(keyMaps, 'label', 'label');
|
|
116
|
+
return {
|
|
117
|
+
[keyName]: value,
|
|
118
|
+
[labelName]: value
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
findDataForValue(findValue) {
|
|
122
|
+
const {
|
|
123
|
+
value,
|
|
124
|
+
defaultValue,
|
|
125
|
+
keyMaps
|
|
126
|
+
} = this.getProps();
|
|
127
|
+
const realValueName = _get(keyMaps, 'value', 'value');
|
|
128
|
+
const realKeyName = _get(keyMaps, 'key', 'key');
|
|
129
|
+
let valueArr = [];
|
|
130
|
+
if (value) {
|
|
131
|
+
valueArr = Array.isArray(value) ? value : [value];
|
|
132
|
+
} else if (defaultValue) {
|
|
133
|
+
valueArr = Array.isArray(defaultValue) ? defaultValue : [defaultValue];
|
|
134
|
+
}
|
|
135
|
+
return valueArr.find(item => {
|
|
136
|
+
return item[realValueName] === findValue || item[realKeyName] === findValue;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
getDataForKeyNotInKeyEntities(value) {
|
|
140
|
+
const {
|
|
141
|
+
onChangeWithObject
|
|
142
|
+
} = this.getProps();
|
|
143
|
+
if (onChangeWithObject) {
|
|
144
|
+
return this.findDataForValue(value);
|
|
145
|
+
} else {
|
|
146
|
+
return this.constructDataForValue(value);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
110
149
|
notifyMultipleChange(key, e) {
|
|
111
150
|
const {
|
|
112
151
|
keyEntities
|
|
@@ -119,14 +158,15 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
119
158
|
let value;
|
|
120
159
|
let keyList = [];
|
|
121
160
|
if (checkRelation === 'related') {
|
|
122
|
-
keyList = normalizeKeyList(key, keyEntities, leafOnly);
|
|
161
|
+
keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
|
|
123
162
|
} else if (checkRelation === 'unRelated') {
|
|
124
163
|
keyList = key;
|
|
125
164
|
}
|
|
165
|
+
const nodes = keyList.map(key => keyEntities[key] ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key));
|
|
126
166
|
if (this.getProp('onChangeWithObject')) {
|
|
127
|
-
value =
|
|
167
|
+
value = nodes;
|
|
128
168
|
} else {
|
|
129
|
-
value = getValueOrKey(
|
|
169
|
+
value = getValueOrKey(nodes, keyMaps);
|
|
130
170
|
}
|
|
131
171
|
this._adapter.notifyChange(value);
|
|
132
172
|
}
|
|
@@ -285,7 +325,7 @@ export default class TreeFoundation extends BaseFoundation {
|
|
|
285
325
|
return this.calcCheckedKeys(eventKey, targetStatus);
|
|
286
326
|
}
|
|
287
327
|
const nonDisabled = descendantKeys.filter(key => !disabledKeys.has(key));
|
|
288
|
-
const newCheckedKeys = targetStatus ? [...nonDisabled, ...checkedKeys] : _difference(normalizeKeyList([...checkedKeys], keyEntities, true), nonDisabled);
|
|
328
|
+
const newCheckedKeys = targetStatus ? [...nonDisabled, ...checkedKeys] : _difference(normalizeKeyList([...checkedKeys], keyEntities, true, true), nonDisabled);
|
|
289
329
|
return calcCheckedKeys(newCheckedKeys, keyEntities);
|
|
290
330
|
}
|
|
291
331
|
/*
|
|
@@ -83,6 +83,6 @@ export declare function getValueOrKey(data: any, keyMaps?: KeyMapProps): any;
|
|
|
83
83
|
export declare function normalizeValue(value: any, withObject: boolean, keyMaps?: KeyMapProps): any;
|
|
84
84
|
export declare function updateKeys(keySet: Set<string> | string[], keyEntities: KeyEntities): string[];
|
|
85
85
|
export declare function calcDisabledKeys(keyEntities: KeyEntities, keyMaps?: KeyMapProps): Set<string>;
|
|
86
|
-
export declare function calcDropRelativePosition(event: any, treeNode: any):
|
|
86
|
+
export declare function calcDropRelativePosition(event: any, treeNode: any): 0 | 1 | -1;
|
|
87
87
|
export declare function getDragNodesKeys(key: string, keyEntities: KeyEntities): string[];
|
|
88
88
|
export declare function calcDropActualPosition(pos: string, relativeDropPos: any): any;
|
|
@@ -69,7 +69,7 @@ export interface BasicTreeSelectProps extends Pick<BasicTreeProps, 'virtualize'
|
|
|
69
69
|
renderSelectedItem?: BasicRenderSelectedItem;
|
|
70
70
|
getPopupContainer?: () => HTMLElement;
|
|
71
71
|
onBlur?: (e: any) => void;
|
|
72
|
-
onSearch?: (sunInput: string, filteredExpandedKeys: string[]) => void;
|
|
72
|
+
onSearch?: (sunInput: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
73
73
|
onChange?: BasicOnChange;
|
|
74
74
|
onFocus?: (e: any) => void;
|
|
75
75
|
onVisibleChange?: (isVisible: boolean) => void;
|
|
@@ -90,7 +90,7 @@ export interface TreeSelectAdapter<P = Record<string, any>, S = Record<string, a
|
|
|
90
90
|
rePositionDropdown: () => void;
|
|
91
91
|
updateState: (states: Partial<BasicTreeSelectInnerData>) => void;
|
|
92
92
|
notifySelect: (selectedKey: string, selected: boolean, selectedNode: BasicTreeNodeData) => void;
|
|
93
|
-
notifySearch: (input: string, filteredExpandedKeys: string[]) => void;
|
|
93
|
+
notifySearch: (input: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
94
94
|
cacheFlattenNodes: (bool: boolean) => void;
|
|
95
95
|
openMenu: () => void;
|
|
96
96
|
closeMenu: (cb?: () => void) => void;
|
|
@@ -467,6 +467,7 @@ export default class TreeSelectFoundation extends BaseFoundation {
|
|
|
467
467
|
} = this.getProps();
|
|
468
468
|
const realFilterProp = treeNodeFilterProp !== 'label' ? treeNodeFilterProp : _get(keyMaps, 'label', 'label');
|
|
469
469
|
const newExpandedKeys = new Set(expandedKeys);
|
|
470
|
+
let filteredNodes = [];
|
|
470
471
|
let filteredOptsKeys = [];
|
|
471
472
|
let expandedOptsKeys = [];
|
|
472
473
|
let newFlattenNodes = [];
|
|
@@ -476,19 +477,21 @@ export default class TreeSelectFoundation extends BaseFoundation {
|
|
|
476
477
|
expandedOptsKeys.forEach(item => newExpandedKeys.add(item));
|
|
477
478
|
newFlattenNodes = flattenTreeData(treeData, newExpandedKeys, keyMaps);
|
|
478
479
|
} else {
|
|
479
|
-
|
|
480
|
+
const filteredOpts = Object.values(keyEntities).filter(item => {
|
|
480
481
|
const {
|
|
481
482
|
data
|
|
482
483
|
} = item;
|
|
483
484
|
return filter(sugInput, data, filterTreeNode, realFilterProp);
|
|
484
|
-
})
|
|
485
|
+
});
|
|
486
|
+
filteredNodes = filteredOpts.map(item => item.data);
|
|
487
|
+
filteredOptsKeys = filteredOpts.map(item => item.key);
|
|
485
488
|
expandedOptsKeys = findAncestorKeys(filteredOptsKeys, keyEntities, false);
|
|
486
489
|
const shownChildKeys = findDescendantKeys(filteredOptsKeys, keyEntities, true);
|
|
487
490
|
filteredShownKeys = new Set([...shownChildKeys, ...expandedOptsKeys]);
|
|
488
491
|
newFlattenNodes = flattenTreeData(treeData, new Set(expandedOptsKeys), keyMaps, showFilteredOnly && filteredShownKeys);
|
|
489
492
|
}
|
|
490
493
|
const newFilteredExpandedKeys = new Set(expandedOptsKeys);
|
|
491
|
-
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys));
|
|
494
|
+
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys), filteredNodes);
|
|
492
495
|
this._adapter.updateState({
|
|
493
496
|
expandedKeys: newExpandedKeys,
|
|
494
497
|
flattenNodes: newFlattenNodes,
|
|
@@ -18,7 +18,7 @@ declare const strings: {
|
|
|
18
18
|
DRAG_AREA_ILLEGAL: string;
|
|
19
19
|
TRIGGER_AUTO: "auto";
|
|
20
20
|
TRIGGER_CUSTOM: "custom";
|
|
21
|
-
UPLOAD_TRIGGER: ("
|
|
21
|
+
UPLOAD_TRIGGER: ("custom" | "auto")[];
|
|
22
22
|
VALIDATE_STATUS: readonly ["default", "error", "warning", "success"];
|
|
23
23
|
PROMPT_POSITION: readonly ["left", "right", "bottom"];
|
|
24
24
|
};
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-foundation",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.56.0-alpha.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build:lib": "node ./scripts/compileLib.js",
|
|
7
7
|
"prepublishOnly": "npm run build:lib"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@douyinfe/semi-animation": "2.
|
|
10
|
+
"@douyinfe/semi-animation": "2.56.0-alpha.0",
|
|
11
11
|
"async-validator": "^3.5.0",
|
|
12
12
|
"classnames": "^2.2.6",
|
|
13
13
|
"date-fns": "^2.29.3",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"*.scss",
|
|
25
25
|
"*.css"
|
|
26
26
|
],
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "c66a7f2315110d6af211d6edb6163c71a4d8aaa8",
|
|
28
28
|
"devDependencies": {
|
|
29
29
|
"@babel/plugin-transform-runtime": "^7.15.8",
|
|
30
30
|
"@babel/preset-env": "^7.15.8",
|
package/slider/foundation.ts
CHANGED
|
@@ -550,7 +550,8 @@ export default class SliderFoundation extends BaseFoundation<SliderAdapter> {
|
|
|
550
550
|
onHandleLeave = () => {
|
|
551
551
|
// this._adapter.setEventDefault(e);
|
|
552
552
|
const disabled = this._adapter.getState('disabled');
|
|
553
|
-
|
|
553
|
+
const isDrag = this._adapter.getState('isDrag');
|
|
554
|
+
if (!disabled && !isDrag) {
|
|
554
555
|
this._adapter.onHandleLeave();
|
|
555
556
|
}
|
|
556
557
|
};
|
package/tree/foundation.ts
CHANGED
|
@@ -420,20 +420,55 @@ export default class TreeFoundation extends BaseFoundation<TreeAdapter, BasicTre
|
|
|
420
420
|
this._adapter.notifyChange(value as BasicValue);
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
+
constructDataForValue(value: string) {
|
|
424
|
+
const { keyMaps } = this.getProps();
|
|
425
|
+
const keyName = get(keyMaps, 'key', 'key');
|
|
426
|
+
const labelName = get(keyMaps, 'label', 'label');
|
|
427
|
+
return {
|
|
428
|
+
[keyName]: value,
|
|
429
|
+
[labelName]: value
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
findDataForValue(findValue: string) {
|
|
434
|
+
const { value, defaultValue, keyMaps } = this.getProps();
|
|
435
|
+
const realValueName = get(keyMaps, 'value', 'value');
|
|
436
|
+
const realKeyName = get(keyMaps, 'key', 'key');
|
|
437
|
+
let valueArr = [];
|
|
438
|
+
if (value) {
|
|
439
|
+
valueArr = Array.isArray(value) ? value : [value];
|
|
440
|
+
} else if (defaultValue) {
|
|
441
|
+
valueArr = Array.isArray(defaultValue) ? defaultValue : [defaultValue];
|
|
442
|
+
}
|
|
443
|
+
return valueArr.find(item => {
|
|
444
|
+
return item[realValueName] === findValue || item[realKeyName] === findValue;
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
getDataForKeyNotInKeyEntities(value: string) {
|
|
449
|
+
const { onChangeWithObject } = this.getProps();
|
|
450
|
+
if (onChangeWithObject) {
|
|
451
|
+
return this.findDataForValue(value);
|
|
452
|
+
} else {
|
|
453
|
+
return this.constructDataForValue(value);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
|
|
423
457
|
notifyMultipleChange(key: string[], e: any) {
|
|
424
458
|
const { keyEntities } = this.getStates();
|
|
425
459
|
const { leafOnly, checkRelation, keyMaps } = this.getProps();
|
|
426
460
|
let value;
|
|
427
461
|
let keyList = [];
|
|
428
462
|
if (checkRelation === 'related') {
|
|
429
|
-
keyList = normalizeKeyList(key, keyEntities, leafOnly);
|
|
463
|
+
keyList = normalizeKeyList(key, keyEntities, leafOnly, true);
|
|
430
464
|
} else if (checkRelation === 'unRelated') {
|
|
431
465
|
keyList = key;
|
|
432
466
|
}
|
|
467
|
+
const nodes = keyList.map(key => keyEntities[key] ? keyEntities[key].data : this.getDataForKeyNotInKeyEntities(key));
|
|
433
468
|
if (this.getProp('onChangeWithObject')) {
|
|
434
|
-
value =
|
|
469
|
+
value = nodes;
|
|
435
470
|
} else {
|
|
436
|
-
value = getValueOrKey(
|
|
471
|
+
value = getValueOrKey(nodes, keyMaps);
|
|
437
472
|
}
|
|
438
473
|
this._adapter.notifyChange(value);
|
|
439
474
|
}
|
|
@@ -585,7 +620,7 @@ export default class TreeFoundation extends BaseFoundation<TreeAdapter, BasicTre
|
|
|
585
620
|
const nonDisabled = descendantKeys.filter((key: string) => !disabledKeys.has(key));
|
|
586
621
|
const newCheckedKeys = targetStatus ?
|
|
587
622
|
[...nonDisabled, ...checkedKeys] :
|
|
588
|
-
difference(normalizeKeyList([...checkedKeys], keyEntities, true), nonDisabled);
|
|
623
|
+
difference(normalizeKeyList([...checkedKeys], keyEntities, true, true), nonDisabled);
|
|
589
624
|
return calcCheckedKeys(newCheckedKeys, keyEntities);
|
|
590
625
|
}
|
|
591
626
|
|
package/treeSelect/foundation.ts
CHANGED
|
@@ -139,7 +139,7 @@ export interface BasicTreeSelectProps extends Pick<BasicTreeProps,
|
|
|
139
139
|
getPopupContainer?: () => HTMLElement;
|
|
140
140
|
// triggerRender?: (props: BasicTriggerRenderProps) => any;
|
|
141
141
|
onBlur?: (e: any) => void;
|
|
142
|
-
onSearch?: (sunInput: string, filteredExpandedKeys: string[]) => void;
|
|
142
|
+
onSearch?: (sunInput: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
143
143
|
onChange?: BasicOnChange;
|
|
144
144
|
onFocus?: (e: any) => void;
|
|
145
145
|
onVisibleChange?: (isVisible: boolean) => void;
|
|
@@ -183,7 +183,7 @@ export interface TreeSelectAdapter<P = Record<string, any>, S = Record<string, a
|
|
|
183
183
|
rePositionDropdown: () => void;
|
|
184
184
|
updateState: (states: Partial<BasicTreeSelectInnerData>) => void;
|
|
185
185
|
notifySelect: (selectedKey: string, selected: boolean, selectedNode: BasicTreeNodeData) => void;
|
|
186
|
-
notifySearch: (input: string, filteredExpandedKeys: string[]) => void;
|
|
186
|
+
notifySearch: (input: string, filteredExpandedKeys: string[], filteredNodes: BasicTreeNodeData[]) => void;
|
|
187
187
|
cacheFlattenNodes: (bool: boolean) => void;
|
|
188
188
|
openMenu: () => void;
|
|
189
189
|
closeMenu: (cb?: () => void) => void;
|
|
@@ -610,6 +610,7 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
|
|
|
610
610
|
const { showFilteredOnly, filterTreeNode, treeNodeFilterProp, keyMaps } = this.getProps();
|
|
611
611
|
const realFilterProp = treeNodeFilterProp !== 'label' ? treeNodeFilterProp : get(keyMaps, 'label', 'label');
|
|
612
612
|
const newExpandedKeys: Set<string> = new Set(expandedKeys);
|
|
613
|
+
let filteredNodes: BasicTreeNodeData[] = [];
|
|
613
614
|
let filteredOptsKeys: string[] = [];
|
|
614
615
|
let expandedOptsKeys = [];
|
|
615
616
|
let newFlattenNodes = [];
|
|
@@ -619,19 +620,20 @@ export default class TreeSelectFoundation<P = Record<string, any>, S = Record<st
|
|
|
619
620
|
expandedOptsKeys.forEach(item => newExpandedKeys.add(item));
|
|
620
621
|
newFlattenNodes = flattenTreeData(treeData, newExpandedKeys, keyMaps);
|
|
621
622
|
} else {
|
|
622
|
-
|
|
623
|
+
const filteredOpts = Object.values(keyEntities)
|
|
623
624
|
.filter((item: BasicKeyEntity) => {
|
|
624
625
|
const { data } = item;
|
|
625
626
|
return filter(sugInput, data, filterTreeNode, realFilterProp);
|
|
626
|
-
})
|
|
627
|
-
|
|
627
|
+
});
|
|
628
|
+
filteredNodes = filteredOpts.map((item: BasicKeyEntity) => item.data);
|
|
629
|
+
filteredOptsKeys = filteredOpts.map((item: BasicKeyEntity) => item.key);
|
|
628
630
|
expandedOptsKeys = findAncestorKeys(filteredOptsKeys, keyEntities, false);
|
|
629
631
|
const shownChildKeys = findDescendantKeys(filteredOptsKeys, keyEntities, true);
|
|
630
632
|
filteredShownKeys = new Set([...shownChildKeys, ...expandedOptsKeys]);
|
|
631
633
|
newFlattenNodes = flattenTreeData(treeData, new Set(expandedOptsKeys), keyMaps, showFilteredOnly && filteredShownKeys);
|
|
632
634
|
}
|
|
633
635
|
const newFilteredExpandedKeys = new Set(expandedOptsKeys);
|
|
634
|
-
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys));
|
|
636
|
+
this._adapter.notifySearch(sugInput, Array.from(newFilteredExpandedKeys), filteredNodes);
|
|
635
637
|
this._adapter.updateState({
|
|
636
638
|
expandedKeys: newExpandedKeys,
|
|
637
639
|
flattenNodes: newFlattenNodes,
|