1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports.default = void 0;
|
9 | exports.treeSelectProps = treeSelectProps;
|
10 |
|
11 | var _vue = require("vue");
|
12 |
|
13 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
14 |
|
15 | var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
16 |
|
17 | var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
18 |
|
19 | var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
20 |
|
21 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
22 |
|
23 | var _OptionList = _interopRequireDefault(require("./OptionList"));
|
24 |
|
25 | var _strategyUtil = require("./utils/strategyUtil");
|
26 |
|
27 | var _TreeSelectContext = require("./TreeSelectContext");
|
28 |
|
29 | var _LegacyContext = require("./LegacyContext");
|
30 |
|
31 | var _useTreeData = _interopRequireDefault(require("./hooks/useTreeData"));
|
32 |
|
33 | var _valueUtil = require("./utils/valueUtil");
|
34 |
|
35 | var _useCache3 = _interopRequireDefault(require("./hooks/useCache"));
|
36 |
|
37 | var _useDataEntities2 = _interopRequireDefault(require("./hooks/useDataEntities"));
|
38 |
|
39 | var _legacyUtil = require("./utils/legacyUtil");
|
40 |
|
41 | var _useCheckedKeys3 = _interopRequireDefault(require("./hooks/useCheckedKeys"));
|
42 |
|
43 | var _useFilterTreeData = _interopRequireDefault(require("./hooks/useFilterTreeData"));
|
44 |
|
45 | var _warningPropsUtil = _interopRequireDefault(require("./utils/warningPropsUtil"));
|
46 |
|
47 | var _BaseSelect = require("../vc-select/BaseSelect");
|
48 |
|
49 | var _omit = _interopRequireDefault(require("../_util/omit"));
|
50 |
|
51 | var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
|
52 |
|
53 | var _vcSelect = require("../vc-select");
|
54 |
|
55 | var _propsUtil = require("../_util/props-util");
|
56 |
|
57 | var _useId = _interopRequireDefault(require("../vc-select/hooks/useId"));
|
58 |
|
59 | var _useMergedState5 = _interopRequireDefault(require("../_util/hooks/useMergedState"));
|
60 |
|
61 | var _conductUtil = require("../vc-tree/utils/conductUtil");
|
62 |
|
63 | var _warning = require("../vc-util/warning");
|
64 |
|
65 | var _toReactive = require("../_util/toReactive");
|
66 |
|
67 | var _useMaxLevel2 = _interopRequireDefault(require("../vc-tree/useMaxLevel"));
|
68 |
|
69 | function treeSelectProps() {
|
70 | return (0, _extends2.default)((0, _extends2.default)({}, (0, _omit.default)((0, _BaseSelect.baseSelectPropsWithoutPrivate)(), ['mode'])), {
|
71 | prefixCls: String,
|
72 | id: String,
|
73 | value: {
|
74 | type: [String, Number, Object, Array]
|
75 | },
|
76 | defaultValue: {
|
77 | type: [String, Number, Object, Array]
|
78 | },
|
79 | onChange: {
|
80 | type: Function
|
81 | },
|
82 | searchValue: String,
|
83 |
|
84 |
|
85 | inputValue: String,
|
86 | onSearch: {
|
87 | type: Function
|
88 | },
|
89 | autoClearSearchValue: {
|
90 | type: Boolean,
|
91 | default: undefined
|
92 | },
|
93 | filterTreeNode: {
|
94 | type: [Boolean, Function],
|
95 | default: undefined
|
96 | },
|
97 | treeNodeFilterProp: String,
|
98 |
|
99 | onSelect: Function,
|
100 | onDeselect: Function,
|
101 | showCheckedStrategy: {
|
102 | type: String
|
103 | },
|
104 | treeNodeLabelProp: String,
|
105 | fieldNames: {
|
106 | type: Object
|
107 | },
|
108 |
|
109 | multiple: {
|
110 | type: Boolean,
|
111 | default: undefined
|
112 | },
|
113 | treeCheckable: {
|
114 | type: Boolean,
|
115 | default: undefined
|
116 | },
|
117 | treeCheckStrictly: {
|
118 | type: Boolean,
|
119 | default: undefined
|
120 | },
|
121 | labelInValue: {
|
122 | type: Boolean,
|
123 | default: undefined
|
124 | },
|
125 |
|
126 | treeData: {
|
127 | type: Array
|
128 | },
|
129 | treeDataSimpleMode: {
|
130 | type: [Boolean, Object],
|
131 | default: undefined
|
132 | },
|
133 | loadData: {
|
134 | type: Function
|
135 | },
|
136 | treeLoadedKeys: {
|
137 | type: Array
|
138 | },
|
139 | onTreeLoad: {
|
140 | type: Function
|
141 | },
|
142 |
|
143 | treeDefaultExpandAll: {
|
144 | type: Boolean,
|
145 | default: undefined
|
146 | },
|
147 | treeExpandedKeys: {
|
148 | type: Array
|
149 | },
|
150 | treeDefaultExpandedKeys: {
|
151 | type: Array
|
152 | },
|
153 | onTreeExpand: {
|
154 | type: Function
|
155 | },
|
156 |
|
157 | virtual: {
|
158 | type: Boolean,
|
159 | default: undefined
|
160 | },
|
161 | listHeight: Number,
|
162 | listItemHeight: Number,
|
163 | onDropdownVisibleChange: {
|
164 | type: Function
|
165 | },
|
166 |
|
167 | treeLine: {
|
168 | type: [Boolean, Object],
|
169 | default: undefined
|
170 | },
|
171 | treeIcon: _vueTypes.default.any,
|
172 | showTreeIcon: {
|
173 | type: Boolean,
|
174 | default: undefined
|
175 | },
|
176 | switcherIcon: _vueTypes.default.any,
|
177 | treeMotion: _vueTypes.default.any,
|
178 | children: Array,
|
179 | showArrow: {
|
180 | type: Boolean,
|
181 | default: undefined
|
182 | },
|
183 | showSearch: {
|
184 | type: Boolean,
|
185 | default: undefined
|
186 | },
|
187 | open: {
|
188 | type: Boolean,
|
189 | default: undefined
|
190 | },
|
191 | defaultOpen: {
|
192 | type: Boolean,
|
193 | default: undefined
|
194 | },
|
195 | disabled: {
|
196 | type: Boolean,
|
197 | default: undefined
|
198 | },
|
199 | placeholder: _vueTypes.default.any,
|
200 | maxTagPlaceholder: {
|
201 | type: Function
|
202 | },
|
203 | dropdownPopupAlign: _vueTypes.default.any,
|
204 | customSlots: Object
|
205 | });
|
206 | }
|
207 |
|
208 | function isRawValue(value) {
|
209 | return !value || (0, _typeof2.default)(value) !== 'object';
|
210 | }
|
211 |
|
212 | var _default = (0, _vue.defineComponent)({
|
213 | name: 'TreeSelect',
|
214 | inheritAttrs: false,
|
215 | props: (0, _propsUtil.initDefaultProps)(treeSelectProps(), {
|
216 | treeNodeFilterProp: 'value',
|
217 | autoClearSearchValue: true,
|
218 | showCheckedStrategy: _strategyUtil.SHOW_CHILD,
|
219 | listHeight: 200,
|
220 | listItemHeight: 20,
|
221 | prefixCls: 'vc-tree-select'
|
222 | }),
|
223 | setup: function setup(props, _ref) {
|
224 | var attrs = _ref.attrs,
|
225 | expose = _ref.expose,
|
226 | slots = _ref.slots;
|
227 | var mergedId = (0, _useId.default)((0, _vue.toRef)(props, 'id'));
|
228 | var treeConduction = (0, _vue.computed)(function () {
|
229 | return props.treeCheckable && !props.treeCheckStrictly;
|
230 | });
|
231 | var mergedCheckable = (0, _vue.computed)(function () {
|
232 | return props.treeCheckable || props.treeCheckStrictly;
|
233 | });
|
234 | var mergedLabelInValue = (0, _vue.computed)(function () {
|
235 | return props.treeCheckStrictly || props.labelInValue;
|
236 | });
|
237 | var mergedMultiple = (0, _vue.computed)(function () {
|
238 | return mergedCheckable.value || props.multiple;
|
239 | });
|
240 |
|
241 | if (process.env.NODE_ENV !== 'production') {
|
242 | (0, _vue.watchEffect)(function () {
|
243 | (0, _warningPropsUtil.default)(props);
|
244 | });
|
245 | }
|
246 |
|
247 |
|
248 | var mergedFieldNames = (0, _vue.computed)(function () {
|
249 | return (0, _valueUtil.fillFieldNames)(props.fieldNames);
|
250 | });
|
251 |
|
252 | var _useMergedState = (0, _useMergedState5.default)('', {
|
253 | value: (0, _vue.computed)(function () {
|
254 | return props.searchValue !== undefined ? props.searchValue : props.inputValue;
|
255 | }),
|
256 | postState: function postState(search) {
|
257 | return search || '';
|
258 | }
|
259 | }),
|
260 | _useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
|
261 | mergedSearchValue = _useMergedState2[0],
|
262 | setSearchValue = _useMergedState2[1];
|
263 |
|
264 | var onInternalSearch = function onInternalSearch(searchText) {
|
265 | var _a;
|
266 |
|
267 | setSearchValue(searchText);
|
268 | (_a = props.onSearch) === null || _a === void 0 ? void 0 : _a.call(props, searchText);
|
269 | };
|
270 |
|
271 |
|
272 |
|
273 |
|
274 |
|
275 | var mergedTreeData = (0, _useTreeData.default)((0, _vue.toRef)(props, 'treeData'), (0, _vue.toRef)(props, 'children'), (0, _vue.toRef)(props, 'treeDataSimpleMode'));
|
276 |
|
277 | var _useDataEntities = (0, _useDataEntities2.default)(mergedTreeData, mergedFieldNames),
|
278 | keyEntities = _useDataEntities.keyEntities,
|
279 | valueEntities = _useDataEntities.valueEntities;
|
280 |
|
281 |
|
282 |
|
283 | var splitRawValues = function splitRawValues(newRawValues) {
|
284 | var missingRawValues = [];
|
285 | var existRawValues = [];
|
286 |
|
287 | newRawValues.forEach(function (val) {
|
288 | if (valueEntities.value.has(val)) {
|
289 | existRawValues.push(val);
|
290 | } else {
|
291 | missingRawValues.push(val);
|
292 | }
|
293 | });
|
294 | return {
|
295 | missingRawValues: missingRawValues,
|
296 | existRawValues: existRawValues
|
297 | };
|
298 | };
|
299 |
|
300 |
|
301 | var filteredTreeData = (0, _useFilterTreeData.default)(mergedTreeData, mergedSearchValue, {
|
302 | fieldNames: mergedFieldNames,
|
303 | treeNodeFilterProp: (0, _vue.toRef)(props, 'treeNodeFilterProp'),
|
304 | filterTreeNode: (0, _vue.toRef)(props, 'filterTreeNode')
|
305 | });
|
306 |
|
307 | var getLabel = function getLabel(item) {
|
308 | if (item) {
|
309 | if (props.treeNodeLabelProp) {
|
310 | return item[props.treeNodeLabelProp];
|
311 | }
|
312 |
|
313 |
|
314 | var titleList = mergedFieldNames.value._title;
|
315 |
|
316 | for (var i = 0; i < titleList.length; i += 1) {
|
317 | var title = item[titleList[i]];
|
318 |
|
319 | if (title !== undefined) {
|
320 | return title;
|
321 | }
|
322 | }
|
323 | }
|
324 | };
|
325 |
|
326 |
|
327 | var toLabeledValues = function toLabeledValues(draftValues) {
|
328 | var values = (0, _valueUtil.toArray)(draftValues);
|
329 | return values.map(function (val) {
|
330 | if (isRawValue(val)) {
|
331 | return {
|
332 | value: val
|
333 | };
|
334 | }
|
335 |
|
336 | return val;
|
337 | });
|
338 | };
|
339 |
|
340 | var convert2LabelValues = function convert2LabelValues(draftValues) {
|
341 | var values = toLabeledValues(draftValues);
|
342 | return values.map(function (item) {
|
343 | var rawLabel = item.label;
|
344 | var rawValue = item.value,
|
345 | rawHalfChecked = item.halfChecked;
|
346 | var rawDisabled;
|
347 | var entity = valueEntities.value.get(rawValue);
|
348 |
|
349 | if (entity) {
|
350 | rawLabel = rawLabel !== null && rawLabel !== void 0 ? rawLabel : getLabel(entity.node);
|
351 | rawDisabled = entity.node.disabled;
|
352 | }
|
353 |
|
354 | return {
|
355 | label: rawLabel,
|
356 | value: rawValue,
|
357 | halfChecked: rawHalfChecked,
|
358 | disabled: rawDisabled
|
359 | };
|
360 | });
|
361 | };
|
362 |
|
363 |
|
364 | var _useMergedState3 = (0, _useMergedState5.default)(props.defaultValue, {
|
365 | value: (0, _vue.toRef)(props, 'value')
|
366 | }),
|
367 | _useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
|
368 | internalValue = _useMergedState4[0],
|
369 | setInternalValue = _useMergedState4[1];
|
370 |
|
371 | var rawMixedLabeledValues = (0, _vue.computed)(function () {
|
372 | return toLabeledValues(internalValue.value);
|
373 | });
|
374 |
|
375 | var rawLabeledValues = (0, _vue.shallowRef)([]);
|
376 | var rawHalfLabeledValues = (0, _vue.shallowRef)([]);
|
377 | (0, _vue.watchEffect)(function () {
|
378 | var fullCheckValues = [];
|
379 | var halfCheckValues = [];
|
380 | rawMixedLabeledValues.value.forEach(function (item) {
|
381 | if (item.halfChecked) {
|
382 | halfCheckValues.push(item);
|
383 | } else {
|
384 | fullCheckValues.push(item);
|
385 | }
|
386 | });
|
387 | rawLabeledValues.value = fullCheckValues;
|
388 | rawHalfLabeledValues.value = halfCheckValues;
|
389 | });
|
390 |
|
391 | var rawValues = (0, _vue.computed)(function () {
|
392 | return rawLabeledValues.value.map(function (item) {
|
393 | return item.value;
|
394 | });
|
395 | });
|
396 |
|
397 | var _useMaxLevel = (0, _useMaxLevel2.default)(keyEntities),
|
398 | maxLevel = _useMaxLevel.maxLevel,
|
399 | levelEntities = _useMaxLevel.levelEntities;
|
400 |
|
401 |
|
402 | var _useCheckedKeys = (0, _useCheckedKeys3.default)(rawLabeledValues, rawHalfLabeledValues, treeConduction, keyEntities, maxLevel, levelEntities),
|
403 | _useCheckedKeys2 = (0, _slicedToArray2.default)(_useCheckedKeys, 2),
|
404 | rawCheckedValues = _useCheckedKeys2[0],
|
405 | rawHalfCheckedValues = _useCheckedKeys2[1];
|
406 |
|
407 |
|
408 | var displayValues = (0, _vue.computed)(function () {
|
409 |
|
410 | var displayKeys = (0, _strategyUtil.formatStrategyValues)(rawCheckedValues.value, props.showCheckedStrategy, keyEntities.value, mergedFieldNames.value);
|
411 |
|
412 | var values = displayKeys.map(function (key) {
|
413 | var _a, _b, _c;
|
414 |
|
415 | return (_c = (_b = (_a = keyEntities.value[key]) === null || _a === void 0 ? void 0 : _a.node) === null || _b === void 0 ? void 0 : _b[mergedFieldNames.value.value]) !== null && _c !== void 0 ? _c : key;
|
416 | });
|
417 |
|
418 | var labeledValues = values.map(function (val) {
|
419 | var targetItem = rawLabeledValues.value.find(function (item) {
|
420 | return item.value === val;
|
421 | });
|
422 | return {
|
423 | value: val,
|
424 | label: targetItem === null || targetItem === void 0 ? void 0 : targetItem.label
|
425 | };
|
426 | });
|
427 | var rawDisplayValues = convert2LabelValues(labeledValues);
|
428 | var firstVal = rawDisplayValues[0];
|
429 |
|
430 | if (!mergedMultiple.value && firstVal && (0, _valueUtil.isNil)(firstVal.value) && (0, _valueUtil.isNil)(firstVal.label)) {
|
431 | return [];
|
432 | }
|
433 |
|
434 | return rawDisplayValues.map(function (item) {
|
435 | var _a;
|
436 |
|
437 | return (0, _extends2.default)((0, _extends2.default)({}, item), {
|
438 | label: (_a = item.label) !== null && _a !== void 0 ? _a : item.value
|
439 | });
|
440 | });
|
441 | });
|
442 |
|
443 | var _useCache = (0, _useCache3.default)(displayValues),
|
444 | _useCache2 = (0, _slicedToArray2.default)(_useCache, 1),
|
445 | cachedDisplayValues = _useCache2[0];
|
446 |
|
447 |
|
448 | var triggerChange = function triggerChange(newRawValues, extra, source) {
|
449 | var labeledValues = convert2LabelValues(newRawValues);
|
450 | setInternalValue(labeledValues);
|
451 |
|
452 | if (props.autoClearSearchValue) {
|
453 | setSearchValue('');
|
454 | }
|
455 |
|
456 |
|
457 | if (props.onChange) {
|
458 | var eventValues = newRawValues;
|
459 |
|
460 | if (treeConduction.value) {
|
461 | var formattedKeyList = (0, _strategyUtil.formatStrategyValues)(newRawValues, props.showCheckedStrategy, keyEntities.value, mergedFieldNames.value);
|
462 | eventValues = formattedKeyList.map(function (key) {
|
463 | var entity = valueEntities.value.get(key);
|
464 | return entity ? entity.node[mergedFieldNames.value.value] : key;
|
465 | });
|
466 | }
|
467 |
|
468 | var _ref2 = extra || {
|
469 | triggerValue: undefined,
|
470 | selected: undefined
|
471 | },
|
472 | triggerValue = _ref2.triggerValue,
|
473 | selected = _ref2.selected;
|
474 |
|
475 | var returnRawValues = eventValues;
|
476 |
|
477 | if (props.treeCheckStrictly) {
|
478 | var halfValues = rawHalfLabeledValues.value.filter(function (item) {
|
479 | return !eventValues.includes(item.value);
|
480 | });
|
481 | returnRawValues = [].concat((0, _toConsumableArray2.default)(returnRawValues), (0, _toConsumableArray2.default)(halfValues));
|
482 | }
|
483 |
|
484 | var returnLabeledValues = convert2LabelValues(returnRawValues);
|
485 | var additionalInfo = {
|
486 |
|
487 | preValue: rawLabeledValues.value,
|
488 | triggerValue: triggerValue
|
489 | };
|
490 |
|
491 |
|
492 |
|
493 | var showPosition = true;
|
494 |
|
495 | if (props.treeCheckStrictly || source === 'selection' && !selected) {
|
496 | showPosition = false;
|
497 | }
|
498 |
|
499 | (0, _legacyUtil.fillAdditionalInfo)(additionalInfo, triggerValue, newRawValues, mergedTreeData.value, showPosition, mergedFieldNames.value);
|
500 |
|
501 | if (mergedCheckable.value) {
|
502 | additionalInfo.checked = selected;
|
503 | } else {
|
504 | additionalInfo.selected = selected;
|
505 | }
|
506 |
|
507 | var returnValues = mergedLabelInValue.value ? returnLabeledValues : returnLabeledValues.map(function (item) {
|
508 | return item.value;
|
509 | });
|
510 | props.onChange(mergedMultiple.value ? returnValues : returnValues[0], mergedLabelInValue.value ? null : returnLabeledValues.map(function (item) {
|
511 | return item.label;
|
512 | }), additionalInfo);
|
513 | }
|
514 | };
|
515 |
|
516 |
|
517 |
|
518 |
|
519 | var onOptionSelect = function onOptionSelect(selectedKey, _ref3) {
|
520 | var selected = _ref3.selected,
|
521 | source = _ref3.source;
|
522 |
|
523 | var _a, _b, _c;
|
524 |
|
525 | var keyEntitiesValue = (0, _vue.toRaw)(keyEntities.value);
|
526 | var valueEntitiesValue = (0, _vue.toRaw)(valueEntities.value);
|
527 | var entity = keyEntitiesValue[selectedKey];
|
528 | var node = entity === null || entity === void 0 ? void 0 : entity.node;
|
529 | var selectedValue = (_a = node === null || node === void 0 ? void 0 : node[mergedFieldNames.value.value]) !== null && _a !== void 0 ? _a : selectedKey;
|
530 |
|
531 | if (!mergedMultiple.value) {
|
532 |
|
533 | triggerChange([selectedValue], {
|
534 | selected: true,
|
535 | triggerValue: selectedValue
|
536 | }, 'option');
|
537 | } else {
|
538 | var newRawValues = selected ? [].concat((0, _toConsumableArray2.default)(rawValues.value), [selectedValue]) : rawCheckedValues.value.filter(function (v) {
|
539 | return v !== selectedValue;
|
540 | });
|
541 |
|
542 | if (treeConduction.value) {
|
543 |
|
544 | var _splitRawValues = splitRawValues(newRawValues),
|
545 | missingRawValues = _splitRawValues.missingRawValues,
|
546 | existRawValues = _splitRawValues.existRawValues;
|
547 |
|
548 | var keyList = existRawValues.map(function (val) {
|
549 | return valueEntitiesValue.get(val).key;
|
550 | });
|
551 |
|
552 | var checkedKeys;
|
553 |
|
554 | if (selected) {
|
555 | var _conductCheck = (0, _conductUtil.conductCheck)(keyList, true, keyEntitiesValue, maxLevel.value, levelEntities.value);
|
556 |
|
557 | checkedKeys = _conductCheck.checkedKeys;
|
558 | } else {
|
559 | var _conductCheck2 = (0, _conductUtil.conductCheck)(keyList, {
|
560 | checked: false,
|
561 | halfCheckedKeys: rawHalfCheckedValues.value
|
562 | }, keyEntitiesValue, maxLevel.value, levelEntities.value);
|
563 |
|
564 | checkedKeys = _conductCheck2.checkedKeys;
|
565 | }
|
566 |
|
567 |
|
568 | newRawValues = [].concat((0, _toConsumableArray2.default)(missingRawValues), (0, _toConsumableArray2.default)(checkedKeys.map(function (key) {
|
569 | return keyEntitiesValue[key].node[mergedFieldNames.value.value];
|
570 | })));
|
571 | }
|
572 |
|
573 | triggerChange(newRawValues, {
|
574 | selected: selected,
|
575 | triggerValue: selectedValue
|
576 | }, source || 'option');
|
577 | }
|
578 |
|
579 |
|
580 | if (selected || !mergedMultiple.value) {
|
581 | (_b = props.onSelect) === null || _b === void 0 ? void 0 : _b.call(props, selectedValue, (0, _legacyUtil.fillLegacyProps)(node));
|
582 | } else {
|
583 | (_c = props.onDeselect) === null || _c === void 0 ? void 0 : _c.call(props, selectedValue, (0, _legacyUtil.fillLegacyProps)(node));
|
584 | }
|
585 | };
|
586 |
|
587 |
|
588 | var onInternalDropdownVisibleChange = function onInternalDropdownVisibleChange(open) {
|
589 | if (props.onDropdownVisibleChange) {
|
590 | var legacyParam = {};
|
591 | Object.defineProperty(legacyParam, 'documentClickClose', {
|
592 | get: function get() {
|
593 | (0, _warning.warning)(false, 'Second param of `onDropdownVisibleChange` has been removed.');
|
594 | return false;
|
595 | }
|
596 | });
|
597 | props.onDropdownVisibleChange(open, legacyParam);
|
598 | }
|
599 | };
|
600 |
|
601 |
|
602 | var onDisplayValuesChange = function onDisplayValuesChange(newValues, info) {
|
603 | var newRawValues = newValues.map(function (item) {
|
604 | return item.value;
|
605 | });
|
606 |
|
607 | if (info.type === 'clear') {
|
608 | triggerChange(newRawValues, {}, 'selection');
|
609 | return;
|
610 | }
|
611 |
|
612 |
|
613 | if (info.values.length) {
|
614 | onOptionSelect(info.values[0].value, {
|
615 | selected: false,
|
616 | source: 'selection'
|
617 | });
|
618 | }
|
619 | };
|
620 |
|
621 | var _toRefs = (0, _vue.toRefs)(props),
|
622 | treeNodeFilterProp = _toRefs.treeNodeFilterProp,
|
623 | loadData = _toRefs.loadData,
|
624 | treeLoadedKeys = _toRefs.treeLoadedKeys,
|
625 | onTreeLoad = _toRefs.onTreeLoad,
|
626 | treeDefaultExpandAll = _toRefs.treeDefaultExpandAll,
|
627 | treeExpandedKeys = _toRefs.treeExpandedKeys,
|
628 | treeDefaultExpandedKeys = _toRefs.treeDefaultExpandedKeys,
|
629 | onTreeExpand = _toRefs.onTreeExpand,
|
630 | virtual = _toRefs.virtual,
|
631 | listHeight = _toRefs.listHeight,
|
632 | listItemHeight = _toRefs.listItemHeight,
|
633 | treeLine = _toRefs.treeLine,
|
634 | treeIcon = _toRefs.treeIcon,
|
635 | showTreeIcon = _toRefs.showTreeIcon,
|
636 | switcherIcon = _toRefs.switcherIcon,
|
637 | treeMotion = _toRefs.treeMotion,
|
638 | customSlots = _toRefs.customSlots;
|
639 |
|
640 | _vue.toRaw;
|
641 | (0, _LegacyContext.useProvideLegacySelectContext)((0, _toReactive.toReactive)({
|
642 | checkable: mergedCheckable,
|
643 | loadData: loadData,
|
644 | treeLoadedKeys: treeLoadedKeys,
|
645 | onTreeLoad: onTreeLoad,
|
646 | checkedKeys: rawCheckedValues,
|
647 | halfCheckedKeys: rawHalfCheckedValues,
|
648 | treeDefaultExpandAll: treeDefaultExpandAll,
|
649 | treeExpandedKeys: treeExpandedKeys,
|
650 | treeDefaultExpandedKeys: treeDefaultExpandedKeys,
|
651 | onTreeExpand: onTreeExpand,
|
652 | treeIcon: treeIcon,
|
653 | treeMotion: treeMotion,
|
654 | showTreeIcon: showTreeIcon,
|
655 | switcherIcon: switcherIcon,
|
656 | treeLine: treeLine,
|
657 | treeNodeFilterProp: treeNodeFilterProp,
|
658 | keyEntities: keyEntities,
|
659 | customSlots: customSlots
|
660 | }));
|
661 | (0, _TreeSelectContext.useProvideSelectContext)((0, _toReactive.toReactive)({
|
662 | virtual: virtual,
|
663 | listHeight: listHeight,
|
664 | listItemHeight: listItemHeight,
|
665 | treeData: filteredTreeData,
|
666 | fieldNames: mergedFieldNames,
|
667 | onSelect: onOptionSelect
|
668 | }));
|
669 | var selectRef = (0, _vue.ref)();
|
670 | expose({
|
671 | focus: function focus() {
|
672 | var _a;
|
673 |
|
674 | (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.focus();
|
675 | },
|
676 | blur: function blur() {
|
677 | var _a;
|
678 |
|
679 | (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.blur();
|
680 | },
|
681 | scrollTo: function scrollTo(arg) {
|
682 | var _a;
|
683 |
|
684 | (_a = selectRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo(arg);
|
685 | }
|
686 | });
|
687 | return function () {
|
688 | var _a;
|
689 |
|
690 | var restProps = (0, _omit.default)(props, ['id', 'prefixCls',
|
691 | 'value', 'defaultValue', 'onChange', 'onSelect', 'onDeselect',
|
692 | 'searchValue', 'inputValue', 'onSearch', 'autoClearSearchValue', 'filterTreeNode', 'treeNodeFilterProp',
|
693 | 'showCheckedStrategy', 'treeNodeLabelProp',
|
694 | 'multiple', 'treeCheckable', 'treeCheckStrictly', 'labelInValue',
|
695 | 'fieldNames',
|
696 | 'treeDataSimpleMode', 'treeData', 'children', 'loadData', 'treeLoadedKeys', 'onTreeLoad',
|
697 | 'treeDefaultExpandAll', 'treeExpandedKeys', 'treeDefaultExpandedKeys', 'onTreeExpand',
|
698 | 'virtual', 'listHeight', 'listItemHeight', 'onDropdownVisibleChange',
|
699 | 'treeLine', 'treeIcon', 'showTreeIcon', 'switcherIcon', 'treeMotion']);
|
700 | return (0, _vue.createVNode)(_vcSelect.BaseSelect, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({
|
701 | "ref": selectRef
|
702 | }, attrs), restProps), {}, {
|
703 | "id": mergedId,
|
704 | "prefixCls": props.prefixCls,
|
705 | "mode": mergedMultiple.value ? 'multiple' : undefined,
|
706 | "displayValues": cachedDisplayValues.value,
|
707 | "onDisplayValuesChange": onDisplayValuesChange,
|
708 | "searchValue": mergedSearchValue.value,
|
709 | "onSearch": onInternalSearch,
|
710 | "OptionList": _OptionList.default,
|
711 | "emptyOptions": !mergedTreeData.value.length,
|
712 | "onDropdownVisibleChange": onInternalDropdownVisibleChange,
|
713 | "tagRender": props.tagRender || slots.tagRender,
|
714 | "dropdownMatchSelectWidth": (_a = props.dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : true
|
715 | }), slots);
|
716 | };
|
717 | }
|
718 | });
|
719 |
|
720 | exports.default = _default; |
\ | No newline at end of file |