@douyinfe/semi-ui 2.5.1 → 2.7.0-beta.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/button/__test__/button.test.js +7 -0
- package/button/buttonGroup.tsx +5 -2
- package/calendar/monthCalendar.tsx +14 -13
- package/cascader/__test__/cascader.test.js +159 -81
- package/cascader/_story/cascader.stories.js +36 -23
- package/cascader/index.tsx +47 -8
- package/cascader/item.tsx +25 -5
- package/datePicker/_story/v2/InsetInput.jsx +104 -0
- package/datePicker/_story/v2/InsetInputE2E.jsx +69 -0
- package/datePicker/_story/v2/index.js +2 -0
- package/datePicker/dateInput.tsx +102 -13
- package/datePicker/datePicker.tsx +95 -16
- package/datePicker/index.tsx +15 -0
- package/datePicker/insetInput.tsx +76 -0
- package/datePicker/month.tsx +14 -7
- package/datePicker/monthsGrid.tsx +31 -12
- package/datePicker/navigation.tsx +8 -4
- package/datePicker/quickControl.tsx +1 -0
- package/datePicker/yearAndMonth.tsx +1 -1
- package/dist/css/semi.css +120 -8
- package/dist/css/semi.min.css +1 -1
- package/dist/umd/semi-ui.js +1100 -193
- package/dist/umd/semi-ui.js.map +1 -1
- package/dist/umd/semi-ui.min.js +1 -1
- package/dist/umd/semi-ui.min.js.map +1 -1
- package/form/hoc/withField.tsx +1 -1
- package/input/_story/input.stories.js +13 -0
- package/lib/cjs/_base/base.css +5 -5
- package/lib/cjs/button/buttonGroup.d.ts +1 -0
- package/lib/cjs/button/buttonGroup.js +6 -2
- package/lib/cjs/calendar/monthCalendar.js +21 -5
- package/lib/cjs/cascader/index.d.ts +10 -2
- package/lib/cjs/cascader/index.js +52 -10
- package/lib/cjs/cascader/item.d.ts +6 -2
- package/lib/cjs/cascader/item.js +33 -4
- package/lib/cjs/datePicker/dateInput.d.ts +9 -4
- package/lib/cjs/datePicker/dateInput.js +107 -13
- package/lib/cjs/datePicker/datePicker.d.ts +7 -2
- package/lib/cjs/datePicker/datePicker.js +138 -30
- package/lib/cjs/datePicker/index.js +24 -2
- package/lib/cjs/datePicker/insetInput.d.ts +21 -0
- package/lib/cjs/datePicker/insetInput.js +80 -0
- package/lib/cjs/datePicker/month.d.ts +1 -0
- package/lib/cjs/datePicker/month.js +18 -2
- package/lib/cjs/datePicker/monthsGrid.js +35 -11
- package/lib/cjs/datePicker/navigation.js +8 -0
- package/lib/cjs/datePicker/quickControl.js +1 -0
- package/lib/cjs/datePicker/yearAndMonth.js +1 -0
- package/lib/cjs/form/hoc/withField.js +1 -1
- package/lib/cjs/navigation/Item.d.ts +2 -2
- package/lib/cjs/navigation/Item.js +8 -6
- package/lib/cjs/navigation/SubNav.js +2 -2
- package/lib/cjs/scrollList/scrollItem.d.ts +2 -1
- package/lib/cjs/scrollList/scrollItem.js +13 -3
- package/lib/cjs/table/Body/index.d.ts +2 -0
- package/lib/cjs/table/Body/index.js +13 -4
- package/lib/cjs/tree/index.js +5 -3
- package/lib/cjs/tree/interface.d.ts +1 -0
- package/lib/cjs/tree/nodeList.js +2 -1
- package/lib/cjs/treeSelect/index.js +7 -3
- package/lib/es/_base/base.css +5 -5
- package/lib/es/button/buttonGroup.d.ts +1 -0
- package/lib/es/button/buttonGroup.js +5 -2
- package/lib/es/calendar/monthCalendar.js +22 -5
- package/lib/es/cascader/index.d.ts +10 -2
- package/lib/es/cascader/index.js +49 -7
- package/lib/es/cascader/item.d.ts +6 -2
- package/lib/es/cascader/item.js +31 -4
- package/lib/es/datePicker/dateInput.d.ts +9 -4
- package/lib/es/datePicker/dateInput.js +106 -13
- package/lib/es/datePicker/datePicker.d.ts +7 -2
- package/lib/es/datePicker/datePicker.js +139 -30
- package/lib/es/datePicker/index.js +20 -0
- package/lib/es/datePicker/insetInput.d.ts +21 -0
- package/lib/es/datePicker/insetInput.js +65 -0
- package/lib/es/datePicker/month.d.ts +1 -0
- package/lib/es/datePicker/month.js +18 -2
- package/lib/es/datePicker/monthsGrid.js +35 -11
- package/lib/es/datePicker/navigation.js +8 -0
- package/lib/es/datePicker/quickControl.js +2 -0
- package/lib/es/datePicker/yearAndMonth.js +1 -0
- package/lib/es/form/hoc/withField.js +1 -1
- package/lib/es/navigation/Item.d.ts +2 -2
- package/lib/es/navigation/Item.js +8 -6
- package/lib/es/navigation/SubNav.js +2 -2
- package/lib/es/scrollList/scrollItem.d.ts +2 -1
- package/lib/es/scrollList/scrollItem.js +13 -3
- package/lib/es/table/Body/index.d.ts +2 -0
- package/lib/es/table/Body/index.js +13 -4
- package/lib/es/tree/index.js +5 -3
- package/lib/es/tree/interface.d.ts +1 -0
- package/lib/es/tree/nodeList.js +2 -1
- package/lib/es/treeSelect/index.js +7 -3
- package/navigation/Item.tsx +15 -12
- package/navigation/SubNav.tsx +4 -4
- package/package.json +9 -9
- package/scrollList/_story/ScrollList/index.js +3 -0
- package/scrollList/_story/WheelList/index.js +3 -0
- package/scrollList/scrollItem.tsx +30 -9
- package/table/Body/index.tsx +15 -4
- package/table/__test__/table.test.js +18 -0
- package/table/_story/v2/FixedExpandedRow/index.jsx +95 -0
- package/table/_story/v2/index.js +2 -1
- package/tree/__test__/tree.test.js +87 -2
- package/tree/_story/tree.stories.js +65 -5
- package/tree/index.tsx +4 -2
- package/tree/interface.ts +1 -0
- package/tree/nodeList.tsx +2 -2
- package/treeSelect/__test__/treeSelect.test.js +28 -0
- package/treeSelect/_story/treeSelect.stories.js +55 -2
- package/treeSelect/index.tsx +11 -3
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
exports.InsetDateInput = InsetDateInput;
|
|
12
|
+
exports.InsetTimeInput = InsetTimeInput;
|
|
13
|
+
|
|
14
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
15
|
+
|
|
16
|
+
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireDefault(require("react"));
|
|
19
|
+
|
|
20
|
+
var _input = _interopRequireDefault(require("../input"));
|
|
21
|
+
|
|
22
|
+
function InsetDateInput(props) {
|
|
23
|
+
const {
|
|
24
|
+
insetInputValue,
|
|
25
|
+
valuePath,
|
|
26
|
+
onFocus,
|
|
27
|
+
onChange,
|
|
28
|
+
placeholder,
|
|
29
|
+
forwardRef
|
|
30
|
+
} = props;
|
|
31
|
+
const value = (0, _get2.default)(insetInputValue, valuePath);
|
|
32
|
+
return /*#__PURE__*/_react.default.createElement(_input.default, {
|
|
33
|
+
value: value,
|
|
34
|
+
onChange: (value, event) => {
|
|
35
|
+
onChange({
|
|
36
|
+
value,
|
|
37
|
+
event,
|
|
38
|
+
insetInputValue,
|
|
39
|
+
valuePath
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
onFocus: onFocus,
|
|
43
|
+
placeholder: placeholder,
|
|
44
|
+
ref: forwardRef
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function InsetTimeInput(props) {
|
|
49
|
+
const {
|
|
50
|
+
insetInputValue,
|
|
51
|
+
valuePath,
|
|
52
|
+
type,
|
|
53
|
+
onFocus,
|
|
54
|
+
onChange,
|
|
55
|
+
placeholder,
|
|
56
|
+
disabled
|
|
57
|
+
} = props;
|
|
58
|
+
|
|
59
|
+
const _isTimeType = (0, _includes.default)(type).call(type, 'Time');
|
|
60
|
+
|
|
61
|
+
if (!_isTimeType) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const value = (0, _get2.default)(insetInputValue, valuePath);
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement(_input.default, {
|
|
67
|
+
value: value,
|
|
68
|
+
onChange: (value, event) => {
|
|
69
|
+
onChange({
|
|
70
|
+
value,
|
|
71
|
+
event,
|
|
72
|
+
insetInputValue,
|
|
73
|
+
valuePath
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
onFocus: onFocus,
|
|
77
|
+
placeholder: placeholder,
|
|
78
|
+
disabled: disabled
|
|
79
|
+
});
|
|
80
|
+
}
|
|
@@ -33,6 +33,7 @@ export default class Month extends BaseComponent<MonthProps, MonthState> {
|
|
|
33
33
|
endDateOffset: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
34
|
rangeInputFocus: PropTypes.Requireable<string | boolean>;
|
|
35
35
|
focusRecordsRef: PropTypes.Requireable<object>;
|
|
36
|
+
multiple: PropTypes.Requireable<boolean>;
|
|
36
37
|
};
|
|
37
38
|
static defaultProps: {
|
|
38
39
|
month: Date;
|
|
@@ -40,6 +40,8 @@ var _index = require("@douyinfe/semi-foundation/lib/cjs/datePicker/_utils/index"
|
|
|
40
40
|
|
|
41
41
|
var _dateFns = require("date-fns");
|
|
42
42
|
|
|
43
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions */
|
|
44
|
+
|
|
43
45
|
/* eslint-disable max-len */
|
|
44
46
|
const prefixCls = _constants.cssClasses.PREFIX;
|
|
45
47
|
|
|
@@ -353,8 +355,10 @@ class Month extends _baseComponent.default {
|
|
|
353
355
|
|
|
354
356
|
const weekdaysText = (0, _map.default)(weekdays).call(weekdays, key => locale.weeks[key]);
|
|
355
357
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
358
|
+
role: "row",
|
|
356
359
|
className: weekdayCls
|
|
357
360
|
}, (0, _map.default)(weekdaysText).call(weekdaysText, (E, i) => /*#__PURE__*/_react.default.createElement("div", {
|
|
361
|
+
role: "columnheader",
|
|
358
362
|
key: E + i,
|
|
359
363
|
className: weekdayItemCls
|
|
360
364
|
}, E)));
|
|
@@ -389,6 +393,7 @@ class Month extends _baseComponent.default {
|
|
|
389
393
|
renderWeek(week, weekIndex) {
|
|
390
394
|
const weekCls = _constants.cssClasses.WEEK;
|
|
391
395
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
396
|
+
role: "row",
|
|
392
397
|
className: weekCls,
|
|
393
398
|
key: weekIndex
|
|
394
399
|
}, (0, _map.default)(week).call(week, (day, dayIndex) => this.renderDay(day, dayIndex)));
|
|
@@ -409,6 +414,8 @@ class Month extends _baseComponent.default {
|
|
|
409
414
|
|
|
410
415
|
if (!fullDate) {
|
|
411
416
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
417
|
+
role: "gridcell",
|
|
418
|
+
tabIndex: -1,
|
|
412
419
|
key: dayNumber + dayIndex,
|
|
413
420
|
className: _constants.cssClasses.DAY
|
|
414
421
|
}, /*#__PURE__*/_react.default.createElement("span", null));
|
|
@@ -444,6 +451,11 @@ class Month extends _baseComponent.default {
|
|
|
444
451
|
const fullDateArgs = [dayNumber, fullDate, dayStatus];
|
|
445
452
|
const customRender = (0, _isFunction2.default)(renderFullDate);
|
|
446
453
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
454
|
+
role: "gridcell",
|
|
455
|
+
tabIndex: dayStatus.isDisabled ? -1 : 0,
|
|
456
|
+
"aria-disabled": dayStatus.isDisabled,
|
|
457
|
+
"aria-selected": dayStatus.isSelected,
|
|
458
|
+
"aria-label": fullDate,
|
|
447
459
|
className: !customRender ? dayCls : _constants.cssClasses.DAY,
|
|
448
460
|
title: fullDate,
|
|
449
461
|
key: dayNumber + dayIndex,
|
|
@@ -457,13 +469,16 @@ class Month extends _baseComponent.default {
|
|
|
457
469
|
|
|
458
470
|
render() {
|
|
459
471
|
const {
|
|
460
|
-
forwardRef
|
|
472
|
+
forwardRef,
|
|
473
|
+
multiple
|
|
461
474
|
} = this.props;
|
|
462
475
|
const weekday = this.renderDayOfWeek();
|
|
463
476
|
const weeks = this.renderWeeks();
|
|
464
477
|
const monthCls = (0, _classnames.default)(_constants.cssClasses.MONTH);
|
|
465
478
|
const ref = forwardRef || this.monthRef;
|
|
466
479
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
480
|
+
role: "grid",
|
|
481
|
+
"aria-multiselectable": multiple,
|
|
467
482
|
ref: ref,
|
|
468
483
|
className: monthCls
|
|
469
484
|
}, weekday, weeks);
|
|
@@ -491,7 +506,8 @@ Month.propTypes = {
|
|
|
491
506
|
startDateOffset: _propTypes.default.func,
|
|
492
507
|
endDateOffset: _propTypes.default.func,
|
|
493
508
|
rangeInputFocus: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),
|
|
494
|
-
focusRecordsRef: _propTypes.default.object
|
|
509
|
+
focusRecordsRef: _propTypes.default.object,
|
|
510
|
+
multiple: _propTypes.default.bool
|
|
495
511
|
};
|
|
496
512
|
Month.defaultProps = {
|
|
497
513
|
month: new Date(),
|
|
@@ -54,6 +54,10 @@ var _semiIcons = require("@douyinfe/semi-icons");
|
|
|
54
54
|
|
|
55
55
|
var _getDefaultFormatToken = require("@douyinfe/semi-foundation/lib/cjs/datePicker/_utils/getDefaultFormatToken");
|
|
56
56
|
|
|
57
|
+
/* eslint-disable jsx-a11y/interactive-supports-focus,jsx-a11y/click-events-have-key-events */
|
|
58
|
+
|
|
59
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
60
|
+
|
|
57
61
|
/* eslint-disable react/no-did-update-set-state */
|
|
58
62
|
|
|
59
63
|
/* eslint-disable max-len */
|
|
@@ -315,6 +319,9 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
315
319
|
monthRight,
|
|
316
320
|
currentPanelHeight
|
|
317
321
|
} = this.state;
|
|
322
|
+
const {
|
|
323
|
+
insetInput
|
|
324
|
+
} = this.props;
|
|
318
325
|
const panelDetail = panelType === _constants.strings.PANEL_TYPE_RIGHT ? monthRight : monthLeft;
|
|
319
326
|
const {
|
|
320
327
|
isTimePickerOpen,
|
|
@@ -337,7 +344,7 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
337
344
|
style.minWidth = wrap.getBoundingClientRect().width;
|
|
338
345
|
}
|
|
339
346
|
|
|
340
|
-
if (this.leftIsYearOrTime() && this.rightIsYearOrTime()) {
|
|
347
|
+
if (this.leftIsYearOrTime() && this.rightIsYearOrTime() && !insetInput) {
|
|
341
348
|
/**
|
|
342
349
|
* left和right同时为tpk时,panel会有一个minHeight
|
|
343
350
|
* 如果缓存的currentPanelHeight为0,则需要计算滚动列表的高度
|
|
@@ -347,7 +354,7 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
347
354
|
* When left and right are tpk at the same time, the panel will have a minHeight
|
|
348
355
|
* If the cached currentPanelHeight is 0, you need to calculate the height of the scrolling list
|
|
349
356
|
* If there is a cached value, use currentPanelHeight (if this height is less than the actual value, it will affect the number of cycles in the ScrollList to render the list)
|
|
350
|
-
* See packages/semi-foundation/scrollList/
|
|
357
|
+
* See packages/semi-foundation/scrollList/itemFoundation.js initWheelList function
|
|
351
358
|
*/
|
|
352
359
|
style.minHeight = currentPanelHeight ? currentPanelHeight : this.calcScrollListHeight();
|
|
353
360
|
}
|
|
@@ -355,10 +362,14 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
355
362
|
monthCls = (0, _classnames.default)(monthCls, "".concat(prefixCls, "-yam-showing"));
|
|
356
363
|
}
|
|
357
364
|
|
|
365
|
+
const _isDatePanelOpen = !(isYearPickerOpen || isTimePickerOpen);
|
|
366
|
+
|
|
367
|
+
const xOpenType = _isDatePanelOpen ? 'date' : isYearPickerOpen ? 'year' : 'time';
|
|
358
368
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
359
369
|
className: monthCls,
|
|
360
370
|
key: panelType,
|
|
361
|
-
style: style
|
|
371
|
+
style: style,
|
|
372
|
+
"x-open-type": xOpenType
|
|
362
373
|
}, yearAndMonthLayer, timePickerLayer, this.foundation.isRangeType() ? panelContent : isYearPickerOpen || isTimePickerOpen ? null : panelContent, this.renderSwitch(panelType));
|
|
363
374
|
}
|
|
364
375
|
|
|
@@ -395,7 +406,8 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
395
406
|
endDateOffset,
|
|
396
407
|
density,
|
|
397
408
|
rangeInputFocus,
|
|
398
|
-
syncSwitchMonth
|
|
409
|
+
syncSwitchMonth,
|
|
410
|
+
multiple
|
|
399
411
|
} = this.props;
|
|
400
412
|
let monthText = ''; // i18n monthText
|
|
401
413
|
|
|
@@ -461,7 +473,8 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
461
473
|
onWeeksRowNumChange: weeksRowNum => this.handleWeeksRowNumChange(weeksRowNum, panelType),
|
|
462
474
|
startDateOffset: startDateOffset,
|
|
463
475
|
endDateOffset: endDateOffset,
|
|
464
|
-
focusRecordsRef: this.props.focusRecordsRef
|
|
476
|
+
focusRecordsRef: this.props.focusRecordsRef,
|
|
477
|
+
multiple: multiple
|
|
465
478
|
}));
|
|
466
479
|
}
|
|
467
480
|
|
|
@@ -565,10 +578,11 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
565
578
|
locale,
|
|
566
579
|
disabledTimePicker,
|
|
567
580
|
density,
|
|
568
|
-
dateFnsLocale
|
|
569
|
-
|
|
581
|
+
dateFnsLocale,
|
|
582
|
+
insetInput
|
|
583
|
+
} = this.props; // Type: date, dateRange, year, month, inset input no rendering required
|
|
570
584
|
|
|
571
|
-
if (!(0, _includes.default)(type).call(type, 'Time')) {
|
|
585
|
+
if (!(0, _includes.default)(type).call(type, 'Time') || insetInput) {
|
|
572
586
|
return null;
|
|
573
587
|
} // switch year/month & time
|
|
574
588
|
|
|
@@ -613,14 +627,22 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
613
627
|
className: switchCls,
|
|
614
628
|
ref: current => this.adapter.setCache("switch-".concat(panelType), current)
|
|
615
629
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
630
|
+
role: "button",
|
|
631
|
+
"aria-label": "Switch to date panel",
|
|
616
632
|
className: dateCls,
|
|
617
633
|
onClick: e => this.foundation.showDatePanel(panelType)
|
|
618
|
-
}, showSwithIcon && /*#__PURE__*/_react.default.createElement(_semiIcons.IconCalendar,
|
|
634
|
+
}, showSwithIcon && /*#__PURE__*/_react.default.createElement(_semiIcons.IconCalendar, {
|
|
635
|
+
"aria-hidden": true
|
|
636
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
619
637
|
className: textCls
|
|
620
638
|
}, dateText || monthText)), /*#__PURE__*/_react.default.createElement("div", {
|
|
639
|
+
role: "button",
|
|
640
|
+
"aria-label": "Switch to time panel",
|
|
621
641
|
className: timeCls,
|
|
622
642
|
onClick: e => this.foundation.showTimePicker(panelType, true)
|
|
623
|
-
}, showSwithIcon && /*#__PURE__*/_react.default.createElement(_semiIcons.IconClock,
|
|
643
|
+
}, showSwithIcon && /*#__PURE__*/_react.default.createElement(_semiIcons.IconClock, {
|
|
644
|
+
"aria-hidden": true
|
|
645
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
624
646
|
className: textCls
|
|
625
647
|
}, timeText)));
|
|
626
648
|
}
|
|
@@ -631,7 +653,8 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
631
653
|
monthRight
|
|
632
654
|
} = this.state;
|
|
633
655
|
const {
|
|
634
|
-
type
|
|
656
|
+
type,
|
|
657
|
+
insetInput
|
|
635
658
|
} = this.props;
|
|
636
659
|
const monthGridCls = (0, _classnames.default)({
|
|
637
660
|
["".concat(prefixCls, "-month-grid")]: true
|
|
@@ -653,6 +676,7 @@ class MonthsGrid extends _baseComponent.default {
|
|
|
653
676
|
className: monthGridCls,
|
|
654
677
|
"x-type": type,
|
|
655
678
|
"x-panel-yearandmonth-open-type": yearOpenType,
|
|
679
|
+
"x-insetInput": insetInput ? "true" : "false",
|
|
656
680
|
ref: current => this.cacheRefCurrent('monthGrid', current)
|
|
657
681
|
}, content);
|
|
658
682
|
}
|
|
@@ -82,7 +82,9 @@ class Navigation extends _react.PureComponent {
|
|
|
82
82
|
ref: ref
|
|
83
83
|
}, /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
84
84
|
key: "double-chevron-left",
|
|
85
|
+
"aria-label": "Previous year",
|
|
85
86
|
icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconDoubleChevronLeft, {
|
|
87
|
+
"aria-hidden": true,
|
|
86
88
|
size: iconBtnSize
|
|
87
89
|
}),
|
|
88
90
|
size: buttonSize,
|
|
@@ -92,7 +94,9 @@ class Navigation extends _react.PureComponent {
|
|
|
92
94
|
style: leftButtonStyle
|
|
93
95
|
}), /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
94
96
|
key: "chevron-left",
|
|
97
|
+
"aria-label": "Previous month",
|
|
95
98
|
icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronLeft, {
|
|
99
|
+
"aria-hidden": true,
|
|
96
100
|
size: iconBtnSize
|
|
97
101
|
}),
|
|
98
102
|
size: buttonSize,
|
|
@@ -108,7 +112,9 @@ class Navigation extends _react.PureComponent {
|
|
|
108
112
|
size: buttonSize
|
|
109
113
|
}, /*#__PURE__*/_react.default.createElement("span", null, monthText))), /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
110
114
|
key: "chevron-right",
|
|
115
|
+
"aria-label": "Next month",
|
|
111
116
|
icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronRight, {
|
|
117
|
+
"aria-hidden": true,
|
|
112
118
|
size: iconBtnSize
|
|
113
119
|
}),
|
|
114
120
|
size: buttonSize,
|
|
@@ -118,7 +124,9 @@ class Navigation extends _react.PureComponent {
|
|
|
118
124
|
style: rightButtonStyle
|
|
119
125
|
}), /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
120
126
|
key: "double-chevron-right",
|
|
127
|
+
"aria-label": "Next year",
|
|
121
128
|
icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconDoubleChevronRight, {
|
|
129
|
+
"aria-hidden": true,
|
|
122
130
|
size: iconBtnSize
|
|
123
131
|
}),
|
|
124
132
|
size: buttonSize,
|
|
@@ -34,6 +34,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
|
|
|
34
34
|
|
|
35
35
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
36
36
|
|
|
37
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */
|
|
37
38
|
const prefixCls = _constants.cssClasses.PREFIX;
|
|
38
39
|
|
|
39
40
|
class QuickControl extends _react.PureComponent {
|
|
@@ -249,6 +249,7 @@ class YearAndMonth extends _baseComponent.default {
|
|
|
249
249
|
}, /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
250
250
|
noHorizontalPadding: false,
|
|
251
251
|
icon: /*#__PURE__*/_react.default.createElement(_semiIcons.IconChevronLeft, {
|
|
252
|
+
"aria-hidden": true,
|
|
252
253
|
size: iconSize
|
|
253
254
|
}),
|
|
254
255
|
size: buttonSize,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import BaseComponent, { BaseProps } from '../_base/baseComponent';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import ItemFoundation, { ItemProps, SelectedItemProps
|
|
4
|
+
import ItemFoundation, { ItemAdapter, ItemProps, SelectedItemProps } from '@douyinfe/semi-foundation/lib/cjs/navigation/itemFoundation';
|
|
5
5
|
export interface NavItemProps extends ItemProps, BaseProps {
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
disabled?: boolean;
|
|
@@ -63,7 +63,7 @@ export default class NavItem extends BaseComponent<NavItemProps, NavItemState> {
|
|
|
63
63
|
constructor(props: NavItemProps);
|
|
64
64
|
_invokeContextFunc(funcName: string, ...args: any[]): any;
|
|
65
65
|
get adapter(): ItemAdapter<NavItemProps, NavItemState>;
|
|
66
|
-
renderIcon(icon: React.ReactNode, pos: string, isToggleIcon?: boolean): JSX.Element;
|
|
66
|
+
renderIcon(icon: React.ReactNode, pos: string, isToggleIcon?: boolean, key?: number | string): JSX.Element;
|
|
67
67
|
setItemRef: (ref: HTMLLIElement) => void;
|
|
68
68
|
wrapTooltip: (node: React.ReactNode) => JSX.Element;
|
|
69
69
|
handleClick: (e: React.MouseEvent) => void;
|
|
@@ -16,10 +16,10 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
|
|
|
16
16
|
|
|
17
17
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
18
18
|
|
|
19
|
-
var _noop2 = _interopRequireDefault(require("lodash/noop"));
|
|
20
|
-
|
|
21
19
|
var _times2 = _interopRequireDefault(require("lodash/times"));
|
|
22
20
|
|
|
21
|
+
var _noop2 = _interopRequireDefault(require("lodash/noop"));
|
|
22
|
+
|
|
23
23
|
var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
|
|
24
24
|
|
|
25
25
|
var _react = _interopRequireDefault(require("react"));
|
|
@@ -146,6 +146,7 @@ class NavItem extends _baseComponent.default {
|
|
|
146
146
|
var _context3;
|
|
147
147
|
|
|
148
148
|
let isToggleIcon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
149
|
+
let key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
149
150
|
|
|
150
151
|
if (this.props.isSubNav) {
|
|
151
152
|
return null;
|
|
@@ -166,7 +167,8 @@ class NavItem extends _baseComponent.default {
|
|
|
166
167
|
["".concat(clsPrefix, "-icon-info")]: !isToggleIcon
|
|
167
168
|
});
|
|
168
169
|
return /*#__PURE__*/_react.default.createElement("i", {
|
|
169
|
-
className: className
|
|
170
|
+
className: className,
|
|
171
|
+
key: key
|
|
170
172
|
}, (0, _utils.isSemiIcon)(icon) ? /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
171
173
|
size: icon.props.size || iconSize
|
|
172
174
|
}) : icon);
|
|
@@ -206,12 +208,12 @@ class NavItem extends _baseComponent.default {
|
|
|
206
208
|
|
|
207
209
|
if (mode === _constants.strings.MODE_VERTICAL && !limitIndent && !isCollapsed) {
|
|
208
210
|
const iconAmount = icon && !indent ? level : level - 1;
|
|
209
|
-
placeholderIcons = (0, _times2.default)(iconAmount,
|
|
211
|
+
placeholderIcons = (0, _times2.default)(iconAmount, index => this.renderIcon(null, _constants.strings.ICON_POS_RIGHT, false, index));
|
|
210
212
|
}
|
|
211
213
|
|
|
212
|
-
itemChildren = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true), icon || indent || isInSubNav ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT) : null, !(0, _isNullOrUndefined.default)(text) ? /*#__PURE__*/_react.default.createElement("span", {
|
|
214
|
+
itemChildren = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'), icon || indent || isInSubNav ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, 'key-position-left') : null, !(0, _isNullOrUndefined.default)(text) ? /*#__PURE__*/_react.default.createElement("span", {
|
|
213
215
|
className: "".concat(_constants.cssClasses.PREFIX, "-item-text")
|
|
214
|
-
}, text) : '', this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true));
|
|
216
|
+
}, text) : '', this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIcon, _constants.strings.ICON_POS_RIGHT, true, 'key-toggle-pos-right'));
|
|
215
217
|
}
|
|
216
218
|
|
|
217
219
|
if (typeof link === 'string') {
|
|
@@ -233,7 +233,7 @@ class SubNav extends _baseComponent.default {
|
|
|
233
233
|
if (mode === _constants.strings.MODE_VERTICAL && !limitIndent && !isCollapsed) {
|
|
234
234
|
/* Different icons' amount means different indents.*/
|
|
235
235
|
const iconAmount = icon && !indent ? level : level - 1;
|
|
236
|
-
placeholderIcons = (0, _times2.default)(iconAmount, index => this.renderIcon(null, _constants.strings.ICON_POS_RIGHT, false,
|
|
236
|
+
placeholderIcons = (0, _times2.default)(iconAmount, index => this.renderIcon(null, _constants.strings.ICON_POS_RIGHT, false, false, index));
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
const titleDiv = /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -245,7 +245,7 @@ class SubNav extends _baseComponent.default {
|
|
|
245
245
|
onKeyPress: this.handleKeyPress
|
|
246
246
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
247
247
|
className: "".concat(prefixCls, "-item-inner")
|
|
248
|
-
}, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT,
|
|
248
|
+
}, placeholderIcons, this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_LEFT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-left'), icon || indent || isInSubNav && mode !== _constants.strings.MODE_HORIZONTAL ? this.renderIcon(icon, _constants.strings.ICON_POS_LEFT, false, false, 'key-inSubNav-position-left') : null, /*#__PURE__*/_react.default.createElement("span", {
|
|
249
249
|
className: "".concat(prefixCls, "-item-text")
|
|
250
250
|
}, text), this.context.toggleIconPosition === _constants.strings.TOGGLE_ICON_RIGHT && this.renderIcon(toggleIconType, _constants.strings.ICON_POS_RIGHT, withTransition, true, 'key-toggle-position-right')));
|
|
251
251
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { AriaAttributes } from 'react';
|
|
2
2
|
import BaseComponent from '../_base/baseComponent';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { Item, ScrollItemAdapter } from '@douyinfe/semi-foundation/lib/cjs/scrollList/itemFoundation';
|
|
@@ -18,6 +18,7 @@ export interface ScrollItemProps<T extends Item> {
|
|
|
18
18
|
motion?: Motion;
|
|
19
19
|
style?: React.CSSProperties;
|
|
20
20
|
type?: string | number;
|
|
21
|
+
'aria-label'?: AriaAttributes['aria-label'];
|
|
21
22
|
}
|
|
22
23
|
export interface ScrollItemState {
|
|
23
24
|
prependCount: number;
|
|
@@ -299,13 +299,14 @@ class ScrollItem extends _baseComponent.default {
|
|
|
299
299
|
transform: itemTrans
|
|
300
300
|
} = item;
|
|
301
301
|
const transform = typeof itemTrans === 'function' ? itemTrans : commonTrans;
|
|
302
|
+
const selected = selectedIndex === index;
|
|
302
303
|
const cls = (0, _classnames.default)({
|
|
303
|
-
["".concat(_constants.cssClasses.PREFIX, "-item-sel")]:
|
|
304
|
+
["".concat(_constants.cssClasses.PREFIX, "-item-sel")]: selected && mode !== wheelMode,
|
|
304
305
|
["".concat(_constants.cssClasses.PREFIX, "-item-disabled")]: Boolean(item.disabled)
|
|
305
306
|
});
|
|
306
307
|
let text = '';
|
|
307
308
|
|
|
308
|
-
if (
|
|
309
|
+
if (selected) {
|
|
309
310
|
if (typeof transform === 'function') {
|
|
310
311
|
text = transform(item.value, item.text);
|
|
311
312
|
} else {
|
|
@@ -329,7 +330,10 @@ class ScrollItem extends _baseComponent.default {
|
|
|
329
330
|
_react.default.createElement("li", (0, _assign.default)({
|
|
330
331
|
key: prefixKey + index
|
|
331
332
|
}, events, {
|
|
332
|
-
className: cls
|
|
333
|
+
className: cls,
|
|
334
|
+
role: "option",
|
|
335
|
+
"aria-selected": selected,
|
|
336
|
+
"aria-disabled": item.disabled
|
|
333
337
|
}), text)
|
|
334
338
|
);
|
|
335
339
|
});
|
|
@@ -348,6 +352,9 @@ class ScrollItem extends _baseComponent.default {
|
|
|
348
352
|
className: wrapperCls,
|
|
349
353
|
ref: this._cacheWrapperNode
|
|
350
354
|
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
355
|
+
role: "listbox",
|
|
356
|
+
"aria-multiselectable": false,
|
|
357
|
+
"aria-label": this.props['aria-label'],
|
|
351
358
|
ref: this._cacheListNode
|
|
352
359
|
}, inner));
|
|
353
360
|
};
|
|
@@ -402,6 +409,9 @@ class ScrollItem extends _baseComponent.default {
|
|
|
402
409
|
ref: this._cacheWrapperNode,
|
|
403
410
|
onScroll: this.scrollToSelectItem
|
|
404
411
|
}, /*#__PURE__*/_react.default.createElement("ul", {
|
|
412
|
+
role: "listbox",
|
|
413
|
+
"aria-label": this.props['aria-label'],
|
|
414
|
+
"aria-multiselectable": false,
|
|
405
415
|
ref: this._cacheListNode,
|
|
406
416
|
onClick: this.clickToSelectItem
|
|
407
417
|
}, prependList, inner, appendList)));
|
|
@@ -43,6 +43,8 @@ export interface BodyState {
|
|
|
43
43
|
}
|
|
44
44
|
export interface BodyContext {
|
|
45
45
|
getVirtualizedListRef: GetVirtualizedListRef;
|
|
46
|
+
flattenedColumns: ColumnProps[];
|
|
47
|
+
getCellWidths: (flattenedColumns: ColumnProps[]) => number[];
|
|
46
48
|
}
|
|
47
49
|
declare const _default: React.ForwardRefExoticComponent<Omit<BodyProps, "forwardedRef"> & React.RefAttributes<HTMLDivElement>>;
|
|
48
50
|
export default _default;
|
|
@@ -418,8 +418,13 @@ class Body extends _baseComponent.default {
|
|
|
418
418
|
const {
|
|
419
419
|
flattenedColumns,
|
|
420
420
|
getCellWidths
|
|
421
|
-
} = _this.context;
|
|
422
|
-
|
|
421
|
+
} = _this.context; // we use memoized cellWidths to avoid re-render expanded row (fix #686)
|
|
422
|
+
|
|
423
|
+
if (flattenedColumns !== _this.flattenedColumns) {
|
|
424
|
+
_this.flattenedColumns = flattenedColumns;
|
|
425
|
+
_this.cellWidths = getCellWidths(flattenedColumns);
|
|
426
|
+
}
|
|
427
|
+
|
|
423
428
|
return /*#__PURE__*/_react.default.createElement(_ExpandedRow.default, {
|
|
424
429
|
style: style,
|
|
425
430
|
components: components,
|
|
@@ -431,7 +436,7 @@ class Body extends _baseComponent.default {
|
|
|
431
436
|
index: index,
|
|
432
437
|
virtualized: virtualized,
|
|
433
438
|
key: (0, _utils.genExpandedRowKey)(key),
|
|
434
|
-
cellWidths: cellWidths
|
|
439
|
+
cellWidths: _this.cellWidths
|
|
435
440
|
});
|
|
436
441
|
};
|
|
437
442
|
/**
|
|
@@ -601,7 +606,9 @@ class Body extends _baseComponent.default {
|
|
|
601
606
|
};
|
|
602
607
|
this.listRef = /*#__PURE__*/_react.default.createRef();
|
|
603
608
|
const {
|
|
604
|
-
getVirtualizedListRef
|
|
609
|
+
getVirtualizedListRef,
|
|
610
|
+
flattenedColumns,
|
|
611
|
+
getCellWidths
|
|
605
612
|
} = context;
|
|
606
613
|
|
|
607
614
|
if (getVirtualizedListRef) {
|
|
@@ -613,6 +620,8 @@ class Body extends _baseComponent.default {
|
|
|
613
620
|
}
|
|
614
621
|
|
|
615
622
|
this.foundation = new _bodyFoundation.default(this.adapter);
|
|
623
|
+
this.flattenedColumns = flattenedColumns;
|
|
624
|
+
this.cellWidths = getCellWidths(flattenedColumns);
|
|
616
625
|
this.observer = null;
|
|
617
626
|
}
|
|
618
627
|
|
package/lib/cjs/tree/index.js
CHANGED
|
@@ -275,7 +275,8 @@ class Tree extends _baseComponent.default {
|
|
|
275
275
|
const isSeaching = Boolean(props.filterTreeNode && prevState.inputValue && prevState.inputValue.length);
|
|
276
276
|
const newState = {
|
|
277
277
|
prevProps: props
|
|
278
|
-
};
|
|
278
|
+
};
|
|
279
|
+
const isExpandControlled = ('expandedKeys' in props); // Accept a props field as a parameter to determine whether to update the field
|
|
279
280
|
|
|
280
281
|
const needUpdate = name => {
|
|
281
282
|
const firstInProps = !prevProps && name in props;
|
|
@@ -319,7 +320,8 @@ class Tree extends _baseComponent.default {
|
|
|
319
320
|
}
|
|
320
321
|
}
|
|
321
322
|
|
|
322
|
-
const
|
|
323
|
+
const dataUpdated = needUpdate('treeDataSimpleJson') || needUpdate('treeData');
|
|
324
|
+
const expandAllWhenDataChange = dataUpdated && props.expandAll;
|
|
323
325
|
|
|
324
326
|
if (!isSeaching) {
|
|
325
327
|
// Update expandedKeys
|
|
@@ -345,7 +347,7 @@ class Tree extends _baseComponent.default {
|
|
|
345
347
|
newState.expandedKeys = (0, _treeUtil.calcExpandedKeys)(props.defaultExpandedKeys, keyEntities);
|
|
346
348
|
} else if (!prevProps && props.defaultValue) {
|
|
347
349
|
newState.expandedKeys = (0, _treeUtil.calcExpandedKeysForValues)(props.defaultValue, keyEntities, props.multiple, valueEntities);
|
|
348
|
-
} else if (!prevProps && props.value) {
|
|
350
|
+
} else if ((!prevProps || !isExpandControlled && dataUpdated) && props.value) {
|
|
349
351
|
newState.expandedKeys = (0, _treeUtil.calcExpandedKeysForValues)(props.value, keyEntities, props.multiple, valueEntities);
|
|
350
352
|
}
|
|
351
353
|
|
|
@@ -109,6 +109,7 @@ export interface NodeListProps {
|
|
|
109
109
|
motionKeys: Set<string>;
|
|
110
110
|
motionType: string;
|
|
111
111
|
flattenList: FlattenNode[] | undefined;
|
|
112
|
+
searchTargetIsDeep?: boolean;
|
|
112
113
|
renderTreeNode: (treeNode: FlattenNode, ind?: number, style?: React.CSSProperties) => ReactNode;
|
|
113
114
|
}
|
|
114
115
|
export declare type TransitionNodes<T> = Array<T | Array<T>>;
|
package/lib/cjs/tree/nodeList.js
CHANGED
|
@@ -107,12 +107,13 @@ class NodeList extends _react.PureComponent {
|
|
|
107
107
|
const {
|
|
108
108
|
flattenNodes,
|
|
109
109
|
motionType,
|
|
110
|
+
searchTargetIsDeep,
|
|
110
111
|
renderTreeNode
|
|
111
112
|
} = this.props;
|
|
112
113
|
const {
|
|
113
114
|
transitionNodes
|
|
114
115
|
} = this.state;
|
|
115
|
-
const mapData = transitionNodes.length ? transitionNodes : flattenNodes;
|
|
116
|
+
const mapData = transitionNodes.length && !searchTargetIsDeep ? transitionNodes : flattenNodes;
|
|
116
117
|
const options = (0, _map.default)(mapData).call(mapData, treeNode => {
|
|
117
118
|
const isMotionNode = (0, _isArray.default)(treeNode);
|
|
118
119
|
|
|
@@ -795,7 +795,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
795
795
|
const {
|
|
796
796
|
flattenNodes,
|
|
797
797
|
motionKeys,
|
|
798
|
-
motionType
|
|
798
|
+
motionType,
|
|
799
|
+
filteredKeys
|
|
799
800
|
} = this.state;
|
|
800
801
|
const {
|
|
801
802
|
direction
|
|
@@ -804,6 +805,7 @@ class TreeSelect extends _baseComponent.default {
|
|
|
804
805
|
virtualize,
|
|
805
806
|
motionExpand
|
|
806
807
|
} = this.props;
|
|
808
|
+
const isExpandControlled = ('expandedKeys' in this.props);
|
|
807
809
|
|
|
808
810
|
if (!virtualize || (0, _isEmpty2.default)(virtualize)) {
|
|
809
811
|
return /*#__PURE__*/_react.default.createElement(_nodeList.default, {
|
|
@@ -811,6 +813,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
811
813
|
flattenList: this._flattenNodes,
|
|
812
814
|
motionKeys: motionExpand ? motionKeys : new _set.default([]),
|
|
813
815
|
motionType: motionType,
|
|
816
|
+
// When motionKeys is empty, but filteredKeys is not empty (that is, the search hits), this situation should be distinguished from ordinary motionKeys
|
|
817
|
+
searchTargetIsDeep: isExpandControlled && motionExpand && (0, _isEmpty2.default)(motionKeys) && !(0, _isEmpty2.default)(filteredKeys),
|
|
814
818
|
onMotionEnd: this.onMotionEnd,
|
|
815
819
|
renderTreeNode: this.renderTreeNode
|
|
816
820
|
});
|
|
@@ -1131,8 +1135,8 @@ class TreeSelect extends _baseComponent.default {
|
|
|
1131
1135
|
notifySelect: (selectKey, bool, node) => {
|
|
1132
1136
|
this.props.onSelect && this.props.onSelect(selectKey, bool, node);
|
|
1133
1137
|
},
|
|
1134
|
-
notifySearch: input => {
|
|
1135
|
-
this.props.onSearch && this.props.onSearch(input);
|
|
1138
|
+
notifySearch: (input, filteredExpandedKeys) => {
|
|
1139
|
+
this.props.onSearch && this.props.onSearch(input, filteredExpandedKeys);
|
|
1136
1140
|
},
|
|
1137
1141
|
cacheFlattenNodes: bool => {
|
|
1138
1142
|
this._flattenNodes = bool ? (0, _treeUtil2.cloneDeep)(this.state.flattenNodes) : null;
|