@douyinfe/semi-ui 2.14.0 → 2.15.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.
Files changed (178) hide show
  1. package/autoComplete/index.tsx +0 -1
  2. package/cascader/__test__/cascader.test.js +13 -10
  3. package/cascader/_story/cascader.stories.js +22 -0
  4. package/cascader/index.tsx +53 -35
  5. package/checkbox/checkbox.tsx +1 -0
  6. package/checkbox/checkboxInner.tsx +4 -1
  7. package/datePicker/datePicker.tsx +7 -5
  8. package/dist/css/semi.css +34 -6
  9. package/dist/css/semi.min.css +1 -1
  10. package/dist/umd/semi-ui.js +1089 -329
  11. package/dist/umd/semi-ui.js.map +1 -1
  12. package/dist/umd/semi-ui.min.js +1 -1
  13. package/dist/umd/semi-ui.min.js.map +1 -1
  14. package/dropdown/context.ts +2 -0
  15. package/dropdown/dropdownItem.tsx +2 -1
  16. package/dropdown/dropdownMenu.tsx +24 -1
  17. package/dropdown/index.tsx +10 -2
  18. package/form/_story/form.stories.tsx +23 -15
  19. package/form/hoc/withField.tsx +1 -1
  20. package/form/interface.ts +1 -1
  21. package/input/__test__/input.test.js +31 -0
  22. package/input/_story/input.stories.js +24 -1
  23. package/input/index.tsx +5 -2
  24. package/input/inputGroup.tsx +7 -6
  25. package/inputNumber/index.tsx +5 -3
  26. package/lib/cjs/autoComplete/index.d.ts +0 -1
  27. package/lib/cjs/autoComplete/index.js +0 -1
  28. package/lib/cjs/cascader/index.d.ts +1 -1
  29. package/lib/cjs/cascader/index.js +36 -9
  30. package/lib/cjs/checkbox/checkbox.d.ts +1 -0
  31. package/lib/cjs/checkbox/checkbox.js +2 -1
  32. package/lib/cjs/checkbox/checkboxInner.d.ts +2 -0
  33. package/lib/cjs/checkbox/checkboxInner.js +8 -2
  34. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  35. package/lib/cjs/datePicker/datePicker.js +21 -6
  36. package/lib/cjs/dropdown/context.d.ts +2 -0
  37. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  38. package/lib/cjs/dropdown/dropdownMenu.d.ts +18 -1
  39. package/lib/cjs/dropdown/dropdownMenu.js +23 -2
  40. package/lib/cjs/dropdown/index.d.ts +4 -0
  41. package/lib/cjs/dropdown/index.js +13 -5
  42. package/lib/cjs/form/baseForm.d.ts +16 -15
  43. package/lib/cjs/form/field.d.ts +16 -15
  44. package/lib/cjs/form/hoc/withField.d.ts +1 -1
  45. package/lib/cjs/form/interface.d.ts +1 -1
  46. package/lib/cjs/input/index.d.ts +2 -1
  47. package/lib/cjs/input/index.js +11 -5
  48. package/lib/cjs/input/inputGroup.js +16 -9
  49. package/lib/cjs/inputNumber/index.d.ts +1 -0
  50. package/lib/cjs/inputNumber/index.js +8 -3
  51. package/lib/cjs/locale/source/de.d.ts +3 -0
  52. package/lib/cjs/locale/source/de.js +165 -0
  53. package/lib/cjs/locale/source/fr.d.ts +3 -0
  54. package/lib/cjs/locale/source/fr.js +165 -0
  55. package/lib/cjs/locale/source/it.d.ts +3 -0
  56. package/lib/cjs/locale/source/it.js +165 -0
  57. package/lib/cjs/modal/ModalContent.d.ts +1 -0
  58. package/lib/cjs/modal/ModalContent.js +17 -4
  59. package/lib/cjs/modal/confirm.d.ts +5 -0
  60. package/lib/cjs/radio/radio.d.ts +2 -0
  61. package/lib/cjs/radio/radio.js +2 -1
  62. package/lib/cjs/radio/radioInner.d.ts +2 -0
  63. package/lib/cjs/radio/radioInner.js +8 -2
  64. package/lib/cjs/rating/index.d.ts +7 -0
  65. package/lib/cjs/rating/index.js +135 -68
  66. package/lib/cjs/rating/item.d.ts +27 -3
  67. package/lib/cjs/rating/item.js +145 -38
  68. package/lib/cjs/select/index.d.ts +2 -0
  69. package/lib/cjs/select/index.js +15 -3
  70. package/lib/cjs/table/Body/index.js +1 -1
  71. package/lib/cjs/tabs/index.d.ts +1 -0
  72. package/lib/cjs/tabs/index.js +2 -1
  73. package/lib/cjs/tabs/interface.d.ts +1 -0
  74. package/lib/cjs/tag/index.js +4 -5
  75. package/lib/cjs/tag/interface.d.ts +1 -0
  76. package/lib/cjs/tagInput/index.d.ts +2 -0
  77. package/lib/cjs/tagInput/index.js +19 -5
  78. package/lib/cjs/timePicker/TimeInput.d.ts +2 -1
  79. package/lib/cjs/timePicker/TimeInput.js +7 -3
  80. package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
  81. package/lib/cjs/timePicker/TimePicker.js +2 -1
  82. package/lib/cjs/timePicker/index.d.ts +1 -0
  83. package/lib/cjs/tooltip/index.d.ts +2 -0
  84. package/lib/cjs/tooltip/index.js +12 -4
  85. package/lib/cjs/tree/index.d.ts +1 -0
  86. package/lib/cjs/tree/index.js +9 -2
  87. package/lib/cjs/tree/treeNode.js +12 -18
  88. package/lib/cjs/treeSelect/index.js +8 -1
  89. package/lib/es/autoComplete/index.d.ts +0 -1
  90. package/lib/es/autoComplete/index.js +0 -1
  91. package/lib/es/cascader/index.d.ts +1 -1
  92. package/lib/es/cascader/index.js +36 -9
  93. package/lib/es/checkbox/checkbox.d.ts +1 -0
  94. package/lib/es/checkbox/checkbox.js +2 -1
  95. package/lib/es/checkbox/checkboxInner.d.ts +2 -0
  96. package/lib/es/checkbox/checkboxInner.js +8 -2
  97. package/lib/es/datePicker/datePicker.d.ts +1 -1
  98. package/lib/es/datePicker/datePicker.js +21 -6
  99. package/lib/es/dropdown/context.d.ts +2 -0
  100. package/lib/es/dropdown/dropdownItem.js +3 -1
  101. package/lib/es/dropdown/dropdownMenu.d.ts +18 -1
  102. package/lib/es/dropdown/dropdownMenu.js +21 -2
  103. package/lib/es/dropdown/index.d.ts +4 -0
  104. package/lib/es/dropdown/index.js +13 -5
  105. package/lib/es/form/baseForm.d.ts +16 -15
  106. package/lib/es/form/field.d.ts +16 -15
  107. package/lib/es/form/hoc/withField.d.ts +1 -1
  108. package/lib/es/form/interface.d.ts +1 -1
  109. package/lib/es/input/index.d.ts +2 -1
  110. package/lib/es/input/index.js +11 -5
  111. package/lib/es/input/inputGroup.js +15 -9
  112. package/lib/es/inputNumber/index.d.ts +1 -0
  113. package/lib/es/inputNumber/index.js +8 -3
  114. package/lib/es/locale/source/de.d.ts +3 -0
  115. package/lib/es/locale/source/de.js +153 -0
  116. package/lib/es/locale/source/fr.d.ts +3 -0
  117. package/lib/es/locale/source/fr.js +153 -0
  118. package/lib/es/locale/source/it.d.ts +3 -0
  119. package/lib/es/locale/source/it.js +153 -0
  120. package/lib/es/modal/ModalContent.d.ts +1 -0
  121. package/lib/es/modal/ModalContent.js +17 -4
  122. package/lib/es/modal/confirm.d.ts +5 -0
  123. package/lib/es/radio/radio.d.ts +2 -0
  124. package/lib/es/radio/radio.js +2 -1
  125. package/lib/es/radio/radioInner.d.ts +2 -0
  126. package/lib/es/radio/radioInner.js +8 -2
  127. package/lib/es/rating/index.d.ts +7 -0
  128. package/lib/es/rating/index.js +133 -65
  129. package/lib/es/rating/item.d.ts +27 -3
  130. package/lib/es/rating/item.js +145 -32
  131. package/lib/es/select/index.d.ts +2 -0
  132. package/lib/es/select/index.js +15 -3
  133. package/lib/es/table/Body/index.js +1 -1
  134. package/lib/es/tabs/index.d.ts +1 -0
  135. package/lib/es/tabs/index.js +2 -1
  136. package/lib/es/tabs/interface.d.ts +1 -0
  137. package/lib/es/tag/index.js +4 -5
  138. package/lib/es/tag/interface.d.ts +1 -0
  139. package/lib/es/tagInput/index.d.ts +2 -0
  140. package/lib/es/tagInput/index.js +19 -5
  141. package/lib/es/timePicker/TimeInput.d.ts +2 -1
  142. package/lib/es/timePicker/TimeInput.js +7 -3
  143. package/lib/es/timePicker/TimePicker.d.ts +2 -0
  144. package/lib/es/timePicker/TimePicker.js +2 -1
  145. package/lib/es/timePicker/index.d.ts +1 -0
  146. package/lib/es/tooltip/index.d.ts +2 -0
  147. package/lib/es/tooltip/index.js +13 -4
  148. package/lib/es/tree/index.d.ts +1 -0
  149. package/lib/es/tree/index.js +9 -2
  150. package/lib/es/tree/treeNode.js +11 -19
  151. package/lib/es/treeSelect/index.js +8 -1
  152. package/locale/source/de.ts +156 -0
  153. package/locale/source/fr.ts +156 -0
  154. package/locale/source/it.ts +156 -0
  155. package/modal/ModalContent.tsx +7 -4
  156. package/package.json +8 -8
  157. package/radio/radio.tsx +2 -0
  158. package/radio/radioInner.tsx +4 -1
  159. package/rating/__test__/rating.test.js +13 -31
  160. package/rating/_story/rating.stories.js +13 -2
  161. package/rating/index.tsx +63 -18
  162. package/rating/item.tsx +141 -26
  163. package/select/index.tsx +6 -2
  164. package/table/Body/index.tsx +1 -1
  165. package/table/_story/v2/FixedVirtualizedEmpty.tsx +76 -0
  166. package/table/_story/v2/index.js +2 -1
  167. package/tabs/index.tsx +1 -0
  168. package/tabs/interface.ts +1 -0
  169. package/tag/index.tsx +2 -3
  170. package/tag/interface.ts +1 -0
  171. package/tagInput/index.tsx +8 -4
  172. package/timePicker/TimeInput.tsx +5 -3
  173. package/timePicker/TimePicker.tsx +2 -0
  174. package/tooltip/index.tsx +7 -2
  175. package/tree/index.tsx +3 -1
  176. package/tree/treeNode.tsx +9 -12
  177. package/treeSelect/index.tsx +4 -1
  178. package/upload/_story/upload.stories.tsx +9 -6
@@ -191,8 +191,14 @@ class Select extends _baseComponent.default {
191
191
  });
192
192
  },
193
193
  focusInput: () => {
194
+ const {
195
+ preventScroll
196
+ } = this.props;
197
+
194
198
  if (this.inputRef && this.inputRef.current) {
195
- this.inputRef.current.focus();
199
+ this.inputRef.current.focus({
200
+ preventScroll
201
+ });
196
202
  }
197
203
  }
198
204
  };
@@ -345,8 +351,13 @@ class Select extends _baseComponent.default {
345
351
  },
346
352
  focusTrigger: () => {
347
353
  try {
354
+ const {
355
+ preventScroll
356
+ } = this.props;
348
357
  const el = this.triggerRef.current;
349
- el.focus();
358
+ el.focus({
359
+ preventScroll
360
+ });
350
361
  } catch (error) {}
351
362
  },
352
363
  updateScrollTop: index => {
@@ -1138,7 +1149,8 @@ Select.propTypes = {
1138
1149
  virtualize: _propTypes.default.object,
1139
1150
  renderOptionItem: _propTypes.default.func,
1140
1151
  onListScroll: _propTypes.default.func,
1141
- arrowIcon: _propTypes.default.node // open: PropTypes.bool,
1152
+ arrowIcon: _propTypes.default.node,
1153
+ preventScroll: _propTypes.default.bool // open: PropTypes.bool,
1142
1154
  // tagClosable: PropTypes.bool,
1143
1155
 
1144
1156
  };
@@ -331,7 +331,7 @@ class Body extends _baseComponent.default {
331
331
 
332
332
  const listStyle = {
333
333
  width: '100%',
334
- height: y,
334
+ height: (virtualizedData === null || virtualizedData === void 0 ? void 0 : virtualizedData.length) ? y : 0,
335
335
  overflowX: 'auto',
336
336
  overflowY: 'auto'
337
337
  };
@@ -33,6 +33,7 @@ declare class Tabs extends BaseComponent<TabsProps, TabsState> {
33
33
  tabPosition: PropTypes.Requireable<string>;
34
34
  type: PropTypes.Requireable<string>;
35
35
  onTabClose: PropTypes.Requireable<(...args: any[]) => any>;
36
+ preventScroll: PropTypes.Requireable<boolean>;
36
37
  };
37
38
  static defaultProps: TabsProps;
38
39
  contentRef: RefObject<HTMLDivElement>;
@@ -418,7 +418,8 @@ Tabs.propTypes = {
418
418
  tabPaneMotion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object, _propTypes.default.func]),
419
419
  tabPosition: _propTypes.default.oneOf(_constants.strings.POSITION_MAP),
420
420
  type: _propTypes.default.oneOf(_constants.strings.TYPE_MAP),
421
- onTabClose: _propTypes.default.func
421
+ onTabClose: _propTypes.default.func,
422
+ preventScroll: _propTypes.default.bool
422
423
  };
423
424
  Tabs.defaultProps = {
424
425
  children: [],
@@ -32,6 +32,7 @@ export interface TabsProps {
32
32
  tabPosition?: TabPosition;
33
33
  type?: TabType;
34
34
  onTabClose?: (tabKey: string) => void;
35
+ preventScroll?: boolean;
35
36
  }
36
37
  export interface TabBarProps {
37
38
  activeKey?: string;
@@ -80,10 +80,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
80
80
  };
81
81
  /* eslint-disable jsx-a11y/no-static-element-interactions */
82
82
 
83
- /* eslint-disable no-unused-vars */
84
-
85
- /* eslint-disable max-len */
86
-
87
83
 
88
84
  const prefixCls = _constants.cssClasses.PREFIX;
89
85
  const tagColors = _constants.strings.TAG_COLOR;
@@ -140,7 +136,8 @@ class Tag extends _react.Component {
140
136
  handleKeyDown(event) {
141
137
  const {
142
138
  closable,
143
- onClick
139
+ onClick,
140
+ onKeyDown
144
141
  } = this.props;
145
142
 
146
143
  switch (event.key) {
@@ -162,6 +159,8 @@ class Tag extends _react.Component {
162
159
  default:
163
160
  break;
164
161
  }
162
+
163
+ onKeyDown && onKeyDown(event);
165
164
  }
166
165
 
167
166
  renderAvatar() {
@@ -16,6 +16,7 @@ export interface TagProps {
16
16
  className?: string;
17
17
  avatarSrc?: string;
18
18
  avatarShape?: AvatarShape;
19
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
19
20
  'aria-label'?: React.AriaAttributes['aria-label'];
20
21
  }
21
22
  export interface TagGroupProps {
@@ -45,6 +45,7 @@ export interface TagInputProps {
45
45
  value?: string[] | undefined;
46
46
  autoFocus?: boolean;
47
47
  'aria-label'?: string;
48
+ preventScroll?: boolean;
48
49
  }
49
50
  export interface TagInputState {
50
51
  tagsArray?: string[];
@@ -88,6 +89,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
88
89
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
89
90
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
90
91
  'aria-label': PropTypes.Requireable<string>;
92
+ preventScroll: PropTypes.Requireable<boolean>;
91
93
  };
92
94
  static defaultProps: {
93
95
  showClear: boolean;
@@ -158,10 +158,15 @@ class TagInput extends _baseComponent.default {
158
158
  });
159
159
  },
160
160
  toggleFocusing: isFocus => {
161
+ const {
162
+ preventScroll
163
+ } = this.props;
161
164
  const input = this.inputRef && this.inputRef.current;
162
165
 
163
166
  if (isFocus) {
164
- input && input.focus();
167
+ input && input.focus({
168
+ preventScroll
169
+ });
165
170
  } else {
166
171
  input && input.blur();
167
172
  }
@@ -202,11 +207,14 @@ class TagInput extends _baseComponent.default {
202
207
  componentDidMount() {
203
208
  const {
204
209
  disabled,
205
- autoFocus
210
+ autoFocus,
211
+ preventScroll
206
212
  } = this.props;
207
213
 
208
214
  if (!disabled && autoFocus) {
209
- this.inputRef.current.focus();
215
+ this.inputRef.current.focus({
216
+ preventScroll
217
+ });
210
218
  }
211
219
  }
212
220
 
@@ -375,7 +383,12 @@ class TagInput extends _baseComponent.default {
375
383
  }
376
384
 
377
385
  focus() {
378
- this.inputRef.current.focus();
386
+ const {
387
+ preventScroll
388
+ } = this.props;
389
+ this.inputRef.current.focus({
390
+ preventScroll
391
+ });
379
392
  }
380
393
 
381
394
  render() {
@@ -475,7 +488,8 @@ TagInput.propTypes = {
475
488
  validateStatus: _propTypes.default.oneOf(_constants.strings.STATUS),
476
489
  prefix: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
477
490
  suffix: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
478
- 'aria-label': _propTypes.default.string
491
+ 'aria-label': _propTypes.default.string,
492
+ preventScroll: _propTypes.default.bool
479
493
  };
480
494
  TagInput.defaultProps = {
481
495
  showClear: false,
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
4
4
  import InputFoundation, { TimeInputAdapter } from '@douyinfe/semi-foundation/lib/cjs/timePicker/inputFoundation';
5
5
  import { TimePickerProps } from './TimePicker';
6
- export declare type TimeInputProps = Pick<TimePickerProps, 'value' | 'format' | 'prefixCls' | 'placeholder' | 'clearText' | 'inputReadOnly' | 'disabled' | 'type' | 'timeZone' | 'defaultOpen' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'dateFnsLocale' | 'onFocus' | 'onBlur' | 'focusOnOpen' | 'locale' | 'localeCode' | 'insetLabel' | 'validateStatus'> & BaseProps & {
6
+ export declare type TimeInputProps = Pick<TimePickerProps, 'value' | 'format' | 'prefixCls' | 'placeholder' | 'clearText' | 'inputReadOnly' | 'disabled' | 'type' | 'timeZone' | 'defaultOpen' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'dateFnsLocale' | 'onFocus' | 'onBlur' | 'focusOnOpen' | 'locale' | 'localeCode' | 'insetLabel' | 'validateStatus' | 'preventScroll'> & BaseProps & {
7
7
  onChange?: (value: string) => void;
8
8
  onEsc?: () => void;
9
9
  onClick?: React.MouseEventHandler;
@@ -38,6 +38,7 @@ declare class TimeInput extends BaseComponent<TimeInputProps, any> {
38
38
  localeCode: PropTypes.Requireable<string>;
39
39
  insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
40
40
  validateStatus: PropTypes.Requireable<string>;
41
+ preventScroll: PropTypes.Requireable<boolean>;
41
42
  };
42
43
  static defaultProps: {
43
44
  inputReadOnly: boolean;
@@ -71,7 +71,8 @@ class TimeInput extends _baseComponent.default {
71
71
  componentDidMount() {
72
72
  super.componentDidMount();
73
73
  const {
74
- focusOnOpen
74
+ focusOnOpen,
75
+ preventScroll
75
76
  } = this.props;
76
77
 
77
78
  if (focusOnOpen) {
@@ -80,7 +81,9 @@ class TimeInput extends _baseComponent.default {
80
81
  const inputNode = this.adapter.getCache('inputNode');
81
82
 
82
83
  if (inputNode) {
83
- inputNode.focus();
84
+ inputNode.focus({
85
+ preventScroll
86
+ });
84
87
  inputNode.select();
85
88
  }
86
89
  });
@@ -209,7 +212,8 @@ TimeInput.propTypes = {
209
212
  locale: _propTypes.default.object,
210
213
  localeCode: _propTypes.default.string,
211
214
  insetLabel: _propTypes.default.node,
212
- validateStatus: _propTypes.default.string
215
+ validateStatus: _propTypes.default.string,
216
+ preventScroll: _propTypes.default.bool
213
217
  };
214
218
  TimeInput.defaultProps = {
215
219
  inputReadOnly: false,
@@ -54,6 +54,7 @@ export declare type TimePickerProps = {
54
54
  popupStyle?: React.CSSProperties;
55
55
  position?: Position;
56
56
  prefixCls?: string;
57
+ preventScroll?: boolean;
57
58
  rangeSeparator?: string;
58
59
  scrollItemProps?: ScrollItemProps<any>;
59
60
  secondStep?: number;
@@ -88,6 +89,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
88
89
  static contextType: React.Context<import("../configProvider/context").ContextValue>;
89
90
  static propTypes: {
90
91
  inputStyle: PropTypes.Requireable<object>;
92
+ preventScroll: PropTypes.Requireable<boolean>;
91
93
  panelHeader: PropTypes.Requireable<PropTypes.ReactNodeLike>;
92
94
  panelFooter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
93
95
  'aria-labelledby': PropTypes.Requireable<string>;
@@ -477,7 +477,8 @@ TimePicker.propTypes = (0, _assign.default)((0, _assign.default)({
477
477
  motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
478
478
  autoAdjustOverflow: _propTypes.default.bool
479
479
  }, _PanelShape.PanelShape), {
480
- inputStyle: _propTypes.default.object
480
+ inputStyle: _propTypes.default.object,
481
+ preventScroll: _propTypes.default.bool
481
482
  });
482
483
  TimePicker.defaultProps = (0, _assign.default)({
483
484
  autoAdjustOverflow: true,
@@ -9,6 +9,7 @@ export declare type LocalePickerProps = BasePickerProps;
9
9
  export default class LocaleTimePicker extends React.PureComponent<LocalePickerProps> {
10
10
  static propTypes: {
11
11
  inputStyle: import("prop-types").Requireable<object>;
12
+ preventScroll: import("prop-types").Requireable<boolean>;
12
13
  panelHeader: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
13
14
  panelFooter: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
14
15
  'aria-labelledby': import("prop-types").Requireable<string>;
@@ -54,6 +54,7 @@ export interface TooltipProps extends BaseProps {
54
54
  returnFocusOnClose?: boolean;
55
55
  onEscKeyDown?: (e: React.KeyboardEvent) => void;
56
56
  wrapperId?: string;
57
+ preventScroll?: boolean;
57
58
  }
58
59
  interface TooltipState {
59
60
  visible: boolean;
@@ -109,6 +110,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
109
110
  wrapWhenSpecial: PropTypes.Requireable<boolean>;
110
111
  guardFocus: PropTypes.Requireable<boolean>;
111
112
  returnFocusOnClose: PropTypes.Requireable<boolean>;
113
+ preventScroll: PropTypes.Requireable<boolean>;
112
114
  };
113
115
  static defaultProps: {
114
116
  arrowBounding: {
@@ -294,7 +294,8 @@ class Tooltip extends _baseComponent.default {
294
294
 
295
295
  if (block || (0, _includes.default)(blockDisplays).call(blockDisplays, display)) {
296
296
  style.width = '100%';
297
- }
297
+ } // eslint-disable-next-line jsx-a11y/no-static-element-interactions
298
+
298
299
 
299
300
  return /*#__PURE__*/_react.default.createElement("span", {
300
301
  className: wrapperClassName,
@@ -595,10 +596,15 @@ class Tooltip extends _baseComponent.default {
595
596
  return (0, _utils.getActiveElement)();
596
597
  },
597
598
  setInitialFocus: () => {
599
+ const {
600
+ preventScroll
601
+ } = this.props;
598
602
  const focusRefNode = (0, _get2.default)(this, 'initialFocusRef.current');
599
603
 
600
604
  if (focusRefNode && 'focus' in focusRefNode) {
601
- focusRefNode.focus();
605
+ focusRefNode.focus({
606
+ preventScroll
607
+ });
602
608
  }
603
609
  },
604
610
  notifyEscKeydown: event => {
@@ -715,7 +721,8 @@ class Tooltip extends _baseComponent.default {
715
721
  ref.current = node;
716
722
  }
717
723
  },
718
- tabIndex: trigger === 'hover' ? 0 : undefined
724
+ tabIndex: 0,
725
+ 'data-popupId': id
719
726
  })); // If you do not add a layer of div, in order to bind the events and className in the tooltip, you need to cloneElement children, but this time it may overwrite the children's original ref reference
720
727
  // So if the user adds ref to the content, you need to use callback ref: https://github.com/facebook/react/issues/8873
721
728
 
@@ -759,7 +766,8 @@ Tooltip.propTypes = {
759
766
  role: _propTypes.default.string,
760
767
  wrapWhenSpecial: _propTypes.default.bool,
761
768
  guardFocus: _propTypes.default.bool,
762
- returnFocusOnClose: _propTypes.default.bool
769
+ returnFocusOnClose: _propTypes.default.bool,
770
+ preventScroll: _propTypes.default.bool
763
771
  };
764
772
  Tooltip.defaultProps = {
765
773
  arrowBounding: _constants2.numbers.ARROW_BOUNDING,
@@ -73,6 +73,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
73
73
  labelEllipsis: PropTypes.Requireable<boolean>;
74
74
  checkRelation: PropTypes.Requireable<string>;
75
75
  'aria-label': PropTypes.Requireable<string>;
76
+ preventScroll: PropTypes.Requireable<boolean>;
76
77
  };
77
78
  static defaultProps: {
78
79
  showClear: boolean;
@@ -483,8 +483,14 @@ class Tree extends _baseComponent.default {
483
483
  });
484
484
  },
485
485
  focusInput: () => {
486
+ const {
487
+ preventScroll
488
+ } = this.props;
489
+
486
490
  if (this.inputRef && this.inputRef.current) {
487
- this.inputRef.current.focus();
491
+ this.inputRef.current.focus({
492
+ preventScroll
493
+ });
488
494
  }
489
495
  }
490
496
  };
@@ -790,7 +796,8 @@ Tree.propTypes = {
790
796
  onDrop: _propTypes.default.func,
791
797
  labelEllipsis: _propTypes.default.bool,
792
798
  checkRelation: _propTypes.default.string,
793
- 'aria-label': _propTypes.default.string
799
+ 'aria-label': _propTypes.default.string,
800
+ preventScroll: _propTypes.default.bool
794
801
  };
795
802
  Tree.defaultProps = {
796
803
  showClear: true,
@@ -20,8 +20,6 @@ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-core
20
20
 
21
21
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
22
22
 
23
- var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
24
-
25
23
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
26
24
 
27
25
  var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
@@ -52,6 +50,8 @@ var _treeContext = _interopRequireDefault(require("./treeContext"));
52
50
 
53
51
  var _spin = _interopRequireDefault(require("../spin"));
54
52
 
53
+ var _index = require("../_utils/index");
54
+
55
55
  function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56
56
 
57
57
  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; }
@@ -287,20 +287,14 @@ class TreeNode extends _react.PureComponent {
287
287
  if ((0, _isFunction2.default)(renderLabel)) {
288
288
  return renderLabel(label, data);
289
289
  } else if ((0, _isString2.default)(label) && filtered && keyword && treeNodeFilterProp === 'label') {
290
- var _context;
291
-
292
- const content = [];
293
- (0, _forEach.default)(_context = label.split(keyword)).call(_context, (node, index) => {
294
- if (index > 0) {
295
- content.push( /*#__PURE__*/_react.default.createElement("span", {
296
- className: "".concat(prefixcls, "-highlight"),
297
- key: index
298
- }, keyword));
290
+ return (0, _index.getHighLightTextHTML)({
291
+ sourceString: label,
292
+ searchWords: [keyword],
293
+ option: {
294
+ highlightTag: 'span',
295
+ highlightClassName: "".concat(prefixcls, "-highlight")
299
296
  }
300
-
301
- content.push(node);
302
297
  });
303
- return content;
304
298
  } else {
305
299
  return label;
306
300
  }
@@ -399,7 +393,7 @@ class TreeNode extends _react.PureComponent {
399
393
  }
400
394
 
401
395
  renderEmptyNode() {
402
- var _context2;
396
+ var _context;
403
397
 
404
398
  const {
405
399
  emptyContent
@@ -410,14 +404,14 @@ class TreeNode extends _react.PureComponent {
410
404
  return /*#__PURE__*/_react.default.createElement("ul", {
411
405
  className: wrapperCls
412
406
  }, /*#__PURE__*/_react.default.createElement("li", {
413
- className: (0, _concat.default)(_context2 = "".concat(prefixcls, "-label ")).call(_context2, prefixcls, "-label-empty"),
407
+ className: (0, _concat.default)(_context = "".concat(prefixcls, "-label ")).call(_context, prefixcls, "-label-empty"),
414
408
  "x-semi-prop": "emptyContent"
415
409
  }, emptyContent));
416
410
  } // eslint-disable-next-line max-lines-per-function
417
411
 
418
412
 
419
413
  render() {
420
- var _context3;
414
+ var _context2;
421
415
 
422
416
  const _a = this.props,
423
417
  {
@@ -455,7 +449,7 @@ class TreeNode extends _react.PureComponent {
455
449
  const dragOverGapTop = dragOverNodeKey === eventKey && dropPosition === -1;
456
450
  const dragOverGapBottom = dragOverNodeKey === eventKey && dropPosition === 1;
457
451
  const nodeCls = (0, _classnames.default)(prefixcls, {
458
- [(0, _concat.default)(_context3 = "".concat(prefixcls, "-level-")).call(_context3, level + 1)]: true,
452
+ [(0, _concat.default)(_context2 = "".concat(prefixcls, "-level-")).call(_context2, level + 1)]: true,
459
453
  ["".concat(prefixcls, "-collapsed")]: !expanded,
460
454
  ["".concat(prefixcls, "-disabled")]: Boolean(disabled),
461
455
  ["".concat(prefixcls, "-selected")]: selected,
@@ -382,6 +382,14 @@ class TreeSelect extends _baseComponent.default {
382
382
  };
383
383
 
384
384
  this.search = value => {
385
+ const {
386
+ isOpen
387
+ } = this.state;
388
+
389
+ if (!isOpen) {
390
+ this.foundation.open();
391
+ }
392
+
385
393
  this.foundation.handleInputChange(value);
386
394
  };
387
395
 
@@ -1370,7 +1378,6 @@ TreeSelect.defaultProps = {
1370
1378
  motionExpand: true,
1371
1379
  expandAll: false,
1372
1380
  zIndex: _constants2.numbers.DEFAULT_Z_INDEX,
1373
- disabled: false,
1374
1381
  disableStrictly: false,
1375
1382
  multiple: false,
1376
1383
  filterTreeNode: false,
@@ -143,7 +143,6 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
143
143
  position: "bottomLeft";
144
144
  data: [];
145
145
  showClear: boolean;
146
- disabled: boolean;
147
146
  size: "default";
148
147
  onFocus: (...args: any[]) => void;
149
148
  onSearch: (...args: any[]) => void;
@@ -394,7 +394,6 @@ AutoComplete.defaultProps = {
394
394
  position: 'bottomLeft',
395
395
  data: [],
396
396
  showClear: false,
397
- disabled: false,
398
397
  size: 'default',
399
398
  onFocus: _noop,
400
399
  onSearch: _noop,
@@ -131,6 +131,7 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
131
131
  disableStrictly: PropTypes.Requireable<boolean>;
132
132
  leafOnly: PropTypes.Requireable<boolean>;
133
133
  enableLeafClick: PropTypes.Requireable<boolean>;
134
+ preventScroll: PropTypes.Requireable<boolean>;
134
135
  };
135
136
  static defaultProps: {
136
137
  leafOnly: boolean;
@@ -142,7 +143,6 @@ declare class Cascader extends BaseComponent<CascaderProps, CascaderState> {
142
143
  showClear: boolean;
143
144
  autoClearSearchValue: boolean;
144
145
  changeOnSelect: boolean;
145
- disabled: boolean;
146
146
  disableStrictly: boolean;
147
147
  autoMergeValue: boolean;
148
148
  multiple: boolean;
@@ -554,7 +554,8 @@ class Cascader extends BaseComponent {
554
554
  loadingKeys: new _Set(),
555
555
 
556
556
  /* Mark whether this rendering has triggered asynchronous loading of data */
557
- loading: false
557
+ loading: false,
558
+ showInput: false
558
559
  };
559
560
  this.options = {};
560
561
  this.isEmpty = false;
@@ -581,9 +582,15 @@ class Cascader extends BaseComponent {
581
582
  });
582
583
  },
583
584
  focusInput: () => {
585
+ const {
586
+ preventScroll
587
+ } = this.props;
588
+
584
589
  if (this.inputRef && this.inputRef.current) {
585
590
  // TODO: check the reason
586
- this.inputRef.current.focus();
591
+ this.inputRef.current.focus({
592
+ preventScroll
593
+ });
587
594
  }
588
595
  }
589
596
  };
@@ -692,7 +699,19 @@ class Cascader extends BaseComponent {
692
699
  });
693
700
  },
694
701
  notifyOnExceed: data => this.props.onExceed(data),
695
- notifyClear: () => this.props.onClear()
702
+ notifyClear: () => this.props.onClear(),
703
+ toggleInputShow: (showInput, cb) => {
704
+ this.setState({
705
+ showInput
706
+ }, () => {
707
+ cb();
708
+ });
709
+ },
710
+ updateFocusState: isFocus => {
711
+ this.setState({
712
+ isFocus
713
+ });
714
+ }
696
715
  });
697
716
  }
698
717
 
@@ -868,21 +887,29 @@ class Cascader extends BaseComponent {
868
887
  const inputcls = cls("".concat(prefixcls, "-input"));
869
888
  const {
870
889
  inputValue,
871
- inputPlaceHolder
890
+ inputPlaceHolder,
891
+ showInput
872
892
  } = this.state;
873
893
  const inputProps = {
874
894
  disabled,
875
895
  value: inputValue,
876
896
  className: inputcls,
877
- onChange: this.handleInputChange,
878
- placeholder: inputPlaceHolder
897
+ onChange: this.handleInputChange
879
898
  };
880
899
  const wrappercls = cls({
881
900
  ["".concat(prefixcls, "-search-wrapper")]: true
882
901
  });
902
+ const displayText = this.renderDisplayText();
903
+ const spanCls = cls({
904
+ ["".concat(prefixcls, "-selection-placeholder")]: !displayText,
905
+ ["".concat(prefixcls, "-selection-text-hide")]: showInput && inputValue,
906
+ ["".concat(prefixcls, "-selection-text-inactive")]: showInput && !inputValue
907
+ });
883
908
  return /*#__PURE__*/React.createElement("div", {
884
909
  className: wrappercls
885
- }, /*#__PURE__*/React.createElement(Input, _Object$assign({
910
+ }, /*#__PURE__*/React.createElement("span", {
911
+ className: spanCls
912
+ }, displayText ? displayText : inputPlaceHolder), showInput && /*#__PURE__*/React.createElement(Input, _Object$assign({
886
913
  ref: this.inputRef,
887
914
  size: size
888
915
  }, inputProps)));
@@ -999,7 +1026,8 @@ Cascader.propTypes = {
999
1026
  loadedKeys: PropTypes.array,
1000
1027
  disableStrictly: PropTypes.bool,
1001
1028
  leafOnly: PropTypes.bool,
1002
- enableLeafClick: PropTypes.bool
1029
+ enableLeafClick: PropTypes.bool,
1030
+ preventScroll: PropTypes.bool
1003
1031
  };
1004
1032
  Cascader.defaultProps = {
1005
1033
  leafOnly: false,
@@ -1011,7 +1039,6 @@ Cascader.defaultProps = {
1011
1039
  showClear: false,
1012
1040
  autoClearSearchValue: true,
1013
1041
  changeOnSelect: false,
1014
- disabled: false,
1015
1042
  disableStrictly: false,
1016
1043
  autoMergeValue: true,
1017
1044
  multiple: false,
@@ -54,6 +54,7 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
54
54
  index: PropTypes.Requireable<number>;
55
55
  'aria-label': PropTypes.Requireable<string>;
56
56
  tabIndex: PropTypes.Requireable<number>;
57
+ preventScroll: PropTypes.Requireable<boolean>;
57
58
  };
58
59
  static defaultProps: {
59
60
  defaultChecked: boolean;
@@ -246,7 +246,8 @@ Checkbox.propTypes = {
246
246
  extra: PropTypes.node,
247
247
  index: PropTypes.number,
248
248
  'aria-label': PropTypes.string,
249
- tabIndex: PropTypes.number
249
+ tabIndex: PropTypes.number,
250
+ preventScroll: PropTypes.bool
250
251
  };
251
252
  Checkbox.defaultProps = {
252
253
  defaultChecked: false,
@@ -19,6 +19,7 @@ export interface CheckboxInnerProps {
19
19
  focusInner?: boolean;
20
20
  onInputFocus?: (e: any) => void;
21
21
  onInputBlur?: (e: any) => void;
22
+ preventScroll?: boolean;
22
23
  }
23
24
  declare class CheckboxInner extends PureComponent<CheckboxInnerProps> {
24
25
  static contextType: React.Context<import("./context").CheckboxContextType>;
@@ -40,6 +41,7 @@ declare class CheckboxInner extends PureComponent<CheckboxInnerProps> {
40
41
  focusInner: PropTypes.Requireable<boolean>;
41
42
  onInputFocus: PropTypes.Requireable<(...args: any[]) => any>;
42
43
  onInputBlur: PropTypes.Requireable<(...args: any[]) => any>;
44
+ preventScroll: PropTypes.Requireable<boolean>;
43
45
  };
44
46
  static defaultProps: {
45
47
  onChange: (...args: any[]) => void;