@douyinfe/semi-ui 2.14.0-beta.2 → 2.15.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 (185) 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/__test__/datePicker.test.js +1 -0
  8. package/datePicker/_story/v2/FixTriggerRender.tsx +36 -0
  9. package/datePicker/_story/v2/index.js +1 -0
  10. package/datePicker/datePicker.tsx +7 -5
  11. package/dist/css/semi.css +39 -11
  12. package/dist/css/semi.min.css +1 -1
  13. package/dist/umd/semi-ui.js +1151 -347
  14. package/dist/umd/semi-ui.js.map +1 -1
  15. package/dist/umd/semi-ui.min.js +1 -1
  16. package/dist/umd/semi-ui.min.js.map +1 -1
  17. package/dropdown/context.ts +2 -0
  18. package/dropdown/dropdownItem.tsx +2 -1
  19. package/dropdown/dropdownMenu.tsx +24 -1
  20. package/dropdown/index.tsx +10 -2
  21. package/form/_story/form.stories.tsx +23 -15
  22. package/form/hoc/withField.tsx +1 -1
  23. package/form/interface.ts +1 -1
  24. package/input/__test__/input.test.js +31 -0
  25. package/input/_story/input.stories.js +24 -1
  26. package/input/index.tsx +5 -2
  27. package/input/inputGroup.tsx +7 -6
  28. package/inputNumber/index.tsx +5 -3
  29. package/lib/cjs/autoComplete/index.d.ts +0 -1
  30. package/lib/cjs/autoComplete/index.js +0 -1
  31. package/lib/cjs/cascader/index.d.ts +1 -1
  32. package/lib/cjs/cascader/index.js +36 -9
  33. package/lib/cjs/checkbox/checkbox.d.ts +1 -0
  34. package/lib/cjs/checkbox/checkbox.js +2 -1
  35. package/lib/cjs/checkbox/checkboxInner.d.ts +2 -0
  36. package/lib/cjs/checkbox/checkboxInner.js +8 -2
  37. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  38. package/lib/cjs/datePicker/datePicker.js +21 -6
  39. package/lib/cjs/dropdown/context.d.ts +2 -0
  40. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  41. package/lib/cjs/dropdown/dropdownMenu.d.ts +18 -1
  42. package/lib/cjs/dropdown/dropdownMenu.js +23 -2
  43. package/lib/cjs/dropdown/index.d.ts +4 -0
  44. package/lib/cjs/dropdown/index.js +13 -5
  45. package/lib/cjs/form/baseForm.d.ts +16 -15
  46. package/lib/cjs/form/field.d.ts +16 -15
  47. package/lib/cjs/form/hoc/withField.d.ts +1 -1
  48. package/lib/cjs/form/interface.d.ts +1 -1
  49. package/lib/cjs/input/index.d.ts +2 -1
  50. package/lib/cjs/input/index.js +11 -5
  51. package/lib/cjs/input/inputGroup.js +16 -9
  52. package/lib/cjs/inputNumber/index.d.ts +1 -0
  53. package/lib/cjs/inputNumber/index.js +8 -3
  54. package/lib/cjs/locale/source/de.d.ts +3 -0
  55. package/lib/cjs/locale/source/de.js +165 -0
  56. package/lib/cjs/locale/source/fr.d.ts +3 -0
  57. package/lib/cjs/locale/source/fr.js +165 -0
  58. package/lib/cjs/locale/source/it.d.ts +3 -0
  59. package/lib/cjs/locale/source/it.js +165 -0
  60. package/lib/cjs/modal/ModalContent.d.ts +1 -0
  61. package/lib/cjs/modal/ModalContent.js +17 -4
  62. package/lib/cjs/modal/confirm.d.ts +5 -0
  63. package/lib/cjs/radio/radio.d.ts +2 -0
  64. package/lib/cjs/radio/radio.js +2 -1
  65. package/lib/cjs/radio/radioInner.d.ts +2 -0
  66. package/lib/cjs/radio/radioInner.js +8 -2
  67. package/lib/cjs/rating/index.d.ts +7 -0
  68. package/lib/cjs/rating/index.js +135 -68
  69. package/lib/cjs/rating/item.d.ts +27 -3
  70. package/lib/cjs/rating/item.js +145 -38
  71. package/lib/cjs/select/index.d.ts +2 -0
  72. package/lib/cjs/select/index.js +15 -3
  73. package/lib/cjs/spin/icon.js +1 -1
  74. package/lib/cjs/table/Body/index.js +1 -1
  75. package/lib/cjs/tabs/index.d.ts +1 -0
  76. package/lib/cjs/tabs/index.js +2 -1
  77. package/lib/cjs/tabs/interface.d.ts +1 -0
  78. package/lib/cjs/tag/index.js +4 -5
  79. package/lib/cjs/tag/interface.d.ts +1 -0
  80. package/lib/cjs/tagInput/index.d.ts +2 -0
  81. package/lib/cjs/tagInput/index.js +19 -5
  82. package/lib/cjs/timePicker/TimeInput.d.ts +2 -1
  83. package/lib/cjs/timePicker/TimeInput.js +7 -3
  84. package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
  85. package/lib/cjs/timePicker/TimePicker.js +2 -1
  86. package/lib/cjs/timePicker/index.d.ts +1 -0
  87. package/lib/cjs/tooltip/index.d.ts +2 -0
  88. package/lib/cjs/tooltip/index.js +12 -4
  89. package/lib/cjs/tree/index.d.ts +1 -0
  90. package/lib/cjs/tree/index.js +21 -5
  91. package/lib/cjs/tree/treeNode.js +15 -19
  92. package/lib/cjs/treeSelect/index.js +20 -4
  93. package/lib/es/autoComplete/index.d.ts +0 -1
  94. package/lib/es/autoComplete/index.js +0 -1
  95. package/lib/es/cascader/index.d.ts +1 -1
  96. package/lib/es/cascader/index.js +36 -9
  97. package/lib/es/checkbox/checkbox.d.ts +1 -0
  98. package/lib/es/checkbox/checkbox.js +2 -1
  99. package/lib/es/checkbox/checkboxInner.d.ts +2 -0
  100. package/lib/es/checkbox/checkboxInner.js +8 -2
  101. package/lib/es/datePicker/datePicker.d.ts +1 -1
  102. package/lib/es/datePicker/datePicker.js +21 -6
  103. package/lib/es/dropdown/context.d.ts +2 -0
  104. package/lib/es/dropdown/dropdownItem.js +3 -1
  105. package/lib/es/dropdown/dropdownMenu.d.ts +18 -1
  106. package/lib/es/dropdown/dropdownMenu.js +21 -2
  107. package/lib/es/dropdown/index.d.ts +4 -0
  108. package/lib/es/dropdown/index.js +13 -5
  109. package/lib/es/form/baseForm.d.ts +16 -15
  110. package/lib/es/form/field.d.ts +16 -15
  111. package/lib/es/form/hoc/withField.d.ts +1 -1
  112. package/lib/es/form/interface.d.ts +1 -1
  113. package/lib/es/input/index.d.ts +2 -1
  114. package/lib/es/input/index.js +11 -5
  115. package/lib/es/input/inputGroup.js +15 -9
  116. package/lib/es/inputNumber/index.d.ts +1 -0
  117. package/lib/es/inputNumber/index.js +8 -3
  118. package/lib/es/locale/source/de.d.ts +3 -0
  119. package/lib/es/locale/source/de.js +153 -0
  120. package/lib/es/locale/source/fr.d.ts +3 -0
  121. package/lib/es/locale/source/fr.js +153 -0
  122. package/lib/es/locale/source/it.d.ts +3 -0
  123. package/lib/es/locale/source/it.js +153 -0
  124. package/lib/es/modal/ModalContent.d.ts +1 -0
  125. package/lib/es/modal/ModalContent.js +17 -4
  126. package/lib/es/modal/confirm.d.ts +5 -0
  127. package/lib/es/radio/radio.d.ts +2 -0
  128. package/lib/es/radio/radio.js +2 -1
  129. package/lib/es/radio/radioInner.d.ts +2 -0
  130. package/lib/es/radio/radioInner.js +8 -2
  131. package/lib/es/rating/index.d.ts +7 -0
  132. package/lib/es/rating/index.js +133 -65
  133. package/lib/es/rating/item.d.ts +27 -3
  134. package/lib/es/rating/item.js +145 -32
  135. package/lib/es/select/index.d.ts +2 -0
  136. package/lib/es/select/index.js +15 -3
  137. package/lib/es/spin/icon.js +1 -1
  138. package/lib/es/table/Body/index.js +1 -1
  139. package/lib/es/tabs/index.d.ts +1 -0
  140. package/lib/es/tabs/index.js +2 -1
  141. package/lib/es/tabs/interface.d.ts +1 -0
  142. package/lib/es/tag/index.js +4 -5
  143. package/lib/es/tag/interface.d.ts +1 -0
  144. package/lib/es/tagInput/index.d.ts +2 -0
  145. package/lib/es/tagInput/index.js +19 -5
  146. package/lib/es/timePicker/TimeInput.d.ts +2 -1
  147. package/lib/es/timePicker/TimeInput.js +7 -3
  148. package/lib/es/timePicker/TimePicker.d.ts +2 -0
  149. package/lib/es/timePicker/TimePicker.js +2 -1
  150. package/lib/es/timePicker/index.d.ts +1 -0
  151. package/lib/es/tooltip/index.d.ts +2 -0
  152. package/lib/es/tooltip/index.js +13 -4
  153. package/lib/es/tree/index.d.ts +1 -0
  154. package/lib/es/tree/index.js +19 -5
  155. package/lib/es/tree/treeNode.js +14 -20
  156. package/lib/es/treeSelect/index.js +18 -4
  157. package/locale/source/de.ts +156 -0
  158. package/locale/source/fr.ts +156 -0
  159. package/locale/source/it.ts +156 -0
  160. package/modal/ModalContent.tsx +7 -4
  161. package/package.json +8 -8
  162. package/radio/radio.tsx +2 -0
  163. package/radio/radioInner.tsx +4 -1
  164. package/rating/__test__/rating.test.js +13 -31
  165. package/rating/_story/rating.stories.js +13 -2
  166. package/rating/index.tsx +63 -18
  167. package/rating/item.tsx +141 -26
  168. package/select/index.tsx +6 -2
  169. package/spin/icon.tsx +1 -1
  170. package/table/Body/index.tsx +1 -1
  171. package/table/_story/v2/FixedVirtualizedEmpty.tsx +76 -0
  172. package/table/_story/v2/index.js +2 -1
  173. package/tabs/index.tsx +1 -0
  174. package/tabs/interface.ts +1 -0
  175. package/tag/index.tsx +2 -3
  176. package/tag/interface.ts +1 -0
  177. package/tagInput/index.tsx +8 -4
  178. package/timePicker/TimeInput.tsx +5 -3
  179. package/timePicker/TimePicker.tsx +2 -0
  180. package/tooltip/index.tsx +7 -2
  181. package/tree/index.tsx +13 -2
  182. package/tree/treeNode.tsx +11 -13
  183. package/treeSelect/_story/treeSelect.stories.js +38 -1
  184. package/treeSelect/index.tsx +13 -3
  185. 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
  };
@@ -85,7 +85,7 @@ function Icon() {
85
85
  fillRule: "evenodd"
86
86
  }, /*#__PURE__*/_react.default.createElement("rect", {
87
87
  fillOpacity: "0.01",
88
- fill: "#FFFFFF",
88
+ fill: "none",
89
89
  x: "0",
90
90
  y: "0",
91
91
  width: "36",
@@ -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;
@@ -27,6 +27,8 @@ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stabl
27
27
 
28
28
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
29
29
 
30
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
31
+
30
32
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
31
33
 
32
34
  var _get2 = _interopRequireDefault(require("lodash/get"));
@@ -71,6 +73,8 @@ require("@douyinfe/semi-foundation/lib/cjs/tree/tree.css");
71
73
 
72
74
  var _semiIcons = require("@douyinfe/semi-icons");
73
75
 
76
+ var _checkboxGroup = _interopRequireDefault(require("../checkbox/checkboxGroup"));
77
+
74
78
  var _interface = require("./interface");
75
79
 
76
80
  _forEachInstanceProperty(_context2 = _Object$keys2(_interface)).call(_context2, function (key) {
@@ -483,8 +487,14 @@ class Tree extends _baseComponent.default {
483
487
  });
484
488
  },
485
489
  focusInput: () => {
490
+ const {
491
+ preventScroll
492
+ } = this.props;
493
+
486
494
  if (this.inputRef && this.inputRef.current) {
487
- this.inputRef.current.focus();
495
+ this.inputRef.current.focus({
496
+ preventScroll
497
+ });
488
498
  }
489
499
  }
490
500
  };
@@ -646,7 +656,9 @@ class Tree extends _baseComponent.default {
646
656
  inputValue,
647
657
  filteredKeys,
648
658
  dragOverNodeKey,
649
- dropPosition
659
+ dropPosition,
660
+ checkedKeys,
661
+ realCheckedKeys
650
662
  } = this.state;
651
663
  const {
652
664
  blockNode,
@@ -665,7 +677,8 @@ class Tree extends _baseComponent.default {
665
677
  draggable,
666
678
  renderFullLabel,
667
679
  labelEllipsis,
668
- virtualize
680
+ virtualize,
681
+ checkRelation
669
682
  } = this.props;
670
683
  const wrapperCls = (0, _classnames.default)("".concat(prefixcls, "-wrapper"), className);
671
684
  const listCls = (0, _classnames.default)("".concat(prefixcls, "-option-list"), {
@@ -723,7 +736,9 @@ class Tree extends _baseComponent.default {
723
736
  style: style
724
737
  }, filterTreeNode ? this.renderInput() : null, /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({
725
738
  className: listCls
726
- }, ariaAttr), noData ? this.renderEmpty() : this.renderNodeList())));
739
+ }, ariaAttr), noData ? this.renderEmpty() : multiple ? /*#__PURE__*/_react.default.createElement(_checkboxGroup.default, {
740
+ value: (0, _from.default)(checkRelation === 'related' ? checkedKeys : realCheckedKeys)
741
+ }, this.renderNodeList()) : this.renderNodeList())));
727
742
  }
728
743
 
729
744
  }
@@ -790,7 +805,8 @@ Tree.propTypes = {
790
805
  onDrop: _propTypes.default.func,
791
806
  labelEllipsis: _propTypes.default.bool,
792
807
  checkRelation: _propTypes.default.string,
793
- 'aria-label': _propTypes.default.string
808
+ 'aria-label': _propTypes.default.string,
809
+ preventScroll: _propTypes.default.bool
794
810
  };
795
811
  Tree.defaultProps = {
796
812
  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
  }
@@ -348,7 +342,8 @@ class TreeNode extends _react.PureComponent {
348
342
  renderCheckbox() {
349
343
  const {
350
344
  checked,
351
- halfChecked
345
+ halfChecked,
346
+ eventKey
352
347
  } = this.props;
353
348
  const disabled = this.isDisabled();
354
349
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -357,6 +352,7 @@ class TreeNode extends _react.PureComponent {
357
352
  onKeyPress: this.handleCheckEnterPress
358
353
  }, /*#__PURE__*/_react.default.createElement(_checkbox.Checkbox, {
359
354
  "aria-label": 'Toggle the checked state of checkbox',
355
+ value: eventKey,
360
356
  indeterminate: halfChecked,
361
357
  checked: checked,
362
358
  disabled: Boolean(disabled)
@@ -399,7 +395,7 @@ class TreeNode extends _react.PureComponent {
399
395
  }
400
396
 
401
397
  renderEmptyNode() {
402
- var _context2;
398
+ var _context;
403
399
 
404
400
  const {
405
401
  emptyContent
@@ -410,14 +406,14 @@ class TreeNode extends _react.PureComponent {
410
406
  return /*#__PURE__*/_react.default.createElement("ul", {
411
407
  className: wrapperCls
412
408
  }, /*#__PURE__*/_react.default.createElement("li", {
413
- className: (0, _concat.default)(_context2 = "".concat(prefixcls, "-label ")).call(_context2, prefixcls, "-label-empty"),
409
+ className: (0, _concat.default)(_context = "".concat(prefixcls, "-label ")).call(_context, prefixcls, "-label-empty"),
414
410
  "x-semi-prop": "emptyContent"
415
411
  }, emptyContent));
416
412
  } // eslint-disable-next-line max-lines-per-function
417
413
 
418
414
 
419
415
  render() {
420
- var _context3;
416
+ var _context2;
421
417
 
422
418
  const _a = this.props,
423
419
  {
@@ -455,7 +451,7 @@ class TreeNode extends _react.PureComponent {
455
451
  const dragOverGapTop = dragOverNodeKey === eventKey && dropPosition === -1;
456
452
  const dragOverGapBottom = dragOverNodeKey === eventKey && dropPosition === 1;
457
453
  const nodeCls = (0, _classnames.default)(prefixcls, {
458
- [(0, _concat.default)(_context3 = "".concat(prefixcls, "-level-")).call(_context3, level + 1)]: true,
454
+ [(0, _concat.default)(_context2 = "".concat(prefixcls, "-level-")).call(_context2, level + 1)]: true,
459
455
  ["".concat(prefixcls, "-collapsed")]: !expanded,
460
456
  ["".concat(prefixcls, "-disabled")]: Boolean(disabled),
461
457
  ["".concat(prefixcls, "-selected")]: selected,
@@ -28,6 +28,8 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-st
28
28
 
29
29
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
30
30
 
31
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
32
+
31
33
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
32
34
 
33
35
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
@@ -96,6 +98,8 @@ var _utils = require("../_utils");
96
98
 
97
99
  var _semiIcons = require("@douyinfe/semi-icons");
98
100
 
101
+ var _checkboxGroup = _interopRequireDefault(require("../checkbox/checkboxGroup"));
102
+
99
103
  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); }
100
104
 
101
105
  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; }
@@ -382,6 +386,14 @@ class TreeSelect extends _baseComponent.default {
382
386
  };
383
387
 
384
388
  this.search = value => {
389
+ const {
390
+ isOpen
391
+ } = this.state;
392
+
393
+ if (!isOpen) {
394
+ this.foundation.open();
395
+ }
396
+
385
397
  this.foundation.handleInputChange(value);
386
398
  };
387
399
 
@@ -867,7 +879,9 @@ class TreeSelect extends _baseComponent.default {
867
879
  motionType,
868
880
  inputValue,
869
881
  filteredKeys,
870
- flattenNodes
882
+ flattenNodes,
883
+ checkedKeys,
884
+ realCheckedKeys
871
885
  } = this.state;
872
886
  const {
873
887
  loadData,
@@ -884,7 +898,8 @@ class TreeSelect extends _baseComponent.default {
884
898
  optionListStyle,
885
899
  searchPosition,
886
900
  renderLabel,
887
- renderFullLabel
901
+ renderFullLabel,
902
+ checkRelation
888
903
  } = this.props;
889
904
  const wrapperCls = (0, _classnames.default)("".concat(prefixTree, "-wrapper"));
890
905
  const listCls = (0, _classnames.default)("".concat(prefixTree, "-option-list"), {
@@ -925,7 +940,9 @@ class TreeSelect extends _baseComponent.default {
925
940
  role: "tree",
926
941
  "aria-multiselectable": multiple ? true : false,
927
942
  style: optionListStyle
928
- }, noData ? this.renderEmpty() : this.renderNodeList()), outerBottomSlot));
943
+ }, noData ? this.renderEmpty() : multiple ? /*#__PURE__*/_react.default.createElement(_checkboxGroup.default, {
944
+ value: (0, _from.default)(checkRelation === 'related' ? checkedKeys : realCheckedKeys)
945
+ }, this.renderNodeList()) : this.renderNodeList()), outerBottomSlot));
929
946
  };
930
947
 
931
948
  this.state = {
@@ -1370,7 +1387,6 @@ TreeSelect.defaultProps = {
1370
1387
  motionExpand: true,
1371
1388
  expandAll: false,
1372
1389
  zIndex: _constants2.numbers.DEFAULT_Z_INDEX,
1373
- disabled: false,
1374
1390
  disableStrictly: false,
1375
1391
  multiple: false,
1376
1392
  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;