@douyinfe/semi-ui 2.17.1 → 2.18.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/anchor/index.tsx +1 -1
  2. package/anchor/link.tsx +3 -4
  3. package/autoComplete/__test__/autoComplete.test.js +6 -6
  4. package/autoComplete/index.tsx +1 -1
  5. package/autoComplete/option.tsx +164 -0
  6. package/calendar/__test__/calendar.test.js +21 -2
  7. package/calendar/_story/calendar.stories.js +31 -0
  8. package/calendar/index.tsx +3 -1
  9. package/calendar/interface.ts +2 -1
  10. package/carousel/index.tsx +5 -5
  11. package/checkbox/checkbox.tsx +10 -2
  12. package/dist/css/semi.css +133 -28
  13. package/dist/css/semi.min.css +1 -1
  14. package/dist/umd/semi-ui.js +7478 -8726
  15. package/dist/umd/semi-ui.js.map +1 -1
  16. package/dist/umd/semi-ui.min.js +1 -1
  17. package/dist/umd/semi-ui.min.js.map +1 -1
  18. package/form/_story/FieldProps/labelOptional.jsx +30 -0
  19. package/form/_story/form.stories.js +7 -0
  20. package/form/baseForm.tsx +0 -1
  21. package/form/hoc/withField.tsx +1 -0
  22. package/form/label.tsx +21 -7
  23. package/gulpfile.js +3 -1
  24. package/lib/cjs/_base/base.css +35 -0
  25. package/lib/cjs/anchor/index.js +2 -1
  26. package/lib/cjs/anchor/link.d.ts +1 -1
  27. package/lib/cjs/anchor/link.js +9 -5
  28. package/lib/cjs/autoComplete/index.d.ts +1 -1
  29. package/lib/cjs/autoComplete/index.js +1 -1
  30. package/lib/cjs/autoComplete/option.d.ts +50 -0
  31. package/lib/cjs/autoComplete/option.js +218 -0
  32. package/lib/cjs/button/Button.d.ts +1 -1
  33. package/lib/cjs/button/index.d.ts +1 -1
  34. package/lib/cjs/calendar/index.d.ts +2 -0
  35. package/lib/cjs/calendar/index.js +3 -1
  36. package/lib/cjs/calendar/interface.d.ts +2 -1
  37. package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
  38. package/lib/cjs/carousel/index.d.ts +1 -1
  39. package/lib/cjs/carousel/index.js +2 -2
  40. package/lib/cjs/checkbox/checkbox.d.ts +4 -0
  41. package/lib/cjs/checkbox/checkbox.js +9 -3
  42. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  43. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  44. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  45. package/lib/cjs/form/baseForm.js +0 -1
  46. package/lib/cjs/form/hoc/withField.js +2 -1
  47. package/lib/cjs/form/label.d.ts +8 -5
  48. package/lib/cjs/form/label.js +15 -4
  49. package/lib/cjs/locale/interface.d.ts +3 -0
  50. package/lib/cjs/locale/source/ar.js +3 -0
  51. package/lib/cjs/locale/source/de.js +3 -0
  52. package/lib/cjs/locale/source/en_GB.js +3 -0
  53. package/lib/cjs/locale/source/en_US.js +3 -0
  54. package/lib/cjs/locale/source/es.js +3 -0
  55. package/lib/cjs/locale/source/fr.js +3 -0
  56. package/lib/cjs/locale/source/id_ID.js +3 -0
  57. package/lib/cjs/locale/source/it.js +3 -0
  58. package/lib/cjs/locale/source/ja_JP.js +3 -0
  59. package/lib/cjs/locale/source/ko_KR.js +3 -0
  60. package/lib/cjs/locale/source/ms_MY.js +3 -0
  61. package/lib/cjs/locale/source/pt_BR.js +3 -0
  62. package/lib/cjs/locale/source/ru_RU.js +3 -0
  63. package/lib/cjs/locale/source/th_TH.js +3 -0
  64. package/lib/cjs/locale/source/tr_TR.js +3 -0
  65. package/lib/cjs/locale/source/vi_VN.js +3 -0
  66. package/lib/cjs/locale/source/zh_CN.js +3 -0
  67. package/lib/cjs/locale/source/zh_TW.js +3 -0
  68. package/lib/cjs/modal/Modal.js +0 -8
  69. package/lib/cjs/modal/ModalContent.js +4 -1
  70. package/lib/cjs/radio/radio.d.ts +3 -1
  71. package/lib/cjs/radio/radio.js +33 -8
  72. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  73. package/lib/cjs/table/ColumnFilter.js +4 -2
  74. package/lib/cjs/table/ColumnSorter.d.ts +1 -0
  75. package/lib/cjs/table/ColumnSorter.js +9 -6
  76. package/lib/cjs/table/Table.js +11 -4
  77. package/lib/cjs/tabs/TabBar.js +5 -1
  78. package/lib/cjs/tag/group.d.ts +3 -0
  79. package/lib/cjs/tag/group.js +24 -6
  80. package/lib/cjs/tag/index.d.ts +2 -1
  81. package/lib/cjs/tag/index.js +7 -5
  82. package/lib/cjs/tag/interface.d.ts +2 -1
  83. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  84. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  85. package/lib/cjs/timePicker/index.d.ts +2 -2
  86. package/lib/cjs/transfer/index.js +7 -2
  87. package/lib/cjs/tree/index.d.ts +3 -1
  88. package/lib/cjs/tree/index.js +23 -0
  89. package/lib/cjs/tree/interface.d.ts +4 -0
  90. package/lib/cjs/typography/base.d.ts +1 -1
  91. package/lib/cjs/typography/paragraph.d.ts +1 -1
  92. package/lib/cjs/typography/text.d.ts +1 -1
  93. package/lib/cjs/typography/title.d.ts +2 -2
  94. package/lib/cjs/upload/index.d.ts +1 -1
  95. package/lib/es/_base/base.css +35 -0
  96. package/lib/es/anchor/index.js +2 -1
  97. package/lib/es/anchor/link.d.ts +1 -1
  98. package/lib/es/anchor/link.js +9 -5
  99. package/lib/es/autoComplete/index.d.ts +1 -1
  100. package/lib/es/autoComplete/index.js +1 -1
  101. package/lib/es/autoComplete/option.d.ts +50 -0
  102. package/lib/es/autoComplete/option.js +188 -0
  103. package/lib/es/button/Button.d.ts +1 -1
  104. package/lib/es/button/index.d.ts +1 -1
  105. package/lib/es/calendar/index.d.ts +2 -0
  106. package/lib/es/calendar/index.js +3 -1
  107. package/lib/es/calendar/interface.d.ts +2 -1
  108. package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
  109. package/lib/es/carousel/index.d.ts +1 -1
  110. package/lib/es/carousel/index.js +2 -2
  111. package/lib/es/checkbox/checkbox.d.ts +4 -0
  112. package/lib/es/checkbox/checkbox.js +10 -4
  113. package/lib/es/datePicker/dateInput.d.ts +1 -1
  114. package/lib/es/datePicker/datePicker.d.ts +1 -1
  115. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  116. package/lib/es/form/baseForm.js +0 -1
  117. package/lib/es/form/hoc/withField.js +2 -1
  118. package/lib/es/form/label.d.ts +8 -5
  119. package/lib/es/form/label.js +13 -4
  120. package/lib/es/locale/interface.d.ts +3 -0
  121. package/lib/es/locale/source/ar.js +3 -0
  122. package/lib/es/locale/source/de.js +3 -0
  123. package/lib/es/locale/source/en_GB.js +3 -0
  124. package/lib/es/locale/source/en_US.js +3 -0
  125. package/lib/es/locale/source/es.js +3 -0
  126. package/lib/es/locale/source/fr.js +3 -0
  127. package/lib/es/locale/source/id_ID.js +3 -0
  128. package/lib/es/locale/source/it.js +3 -0
  129. package/lib/es/locale/source/ja_JP.js +3 -0
  130. package/lib/es/locale/source/ko_KR.js +3 -0
  131. package/lib/es/locale/source/ms_MY.js +3 -0
  132. package/lib/es/locale/source/pt_BR.js +3 -0
  133. package/lib/es/locale/source/ru_RU.js +3 -0
  134. package/lib/es/locale/source/th_TH.js +3 -0
  135. package/lib/es/locale/source/tr_TR.js +3 -0
  136. package/lib/es/locale/source/vi_VN.js +3 -0
  137. package/lib/es/locale/source/zh_CN.js +3 -0
  138. package/lib/es/locale/source/zh_TW.js +3 -0
  139. package/lib/es/modal/Modal.js +0 -8
  140. package/lib/es/modal/ModalContent.js +4 -1
  141. package/lib/es/radio/radio.d.ts +3 -1
  142. package/lib/es/radio/radio.js +31 -8
  143. package/lib/es/radio/radioGroup.d.ts +1 -1
  144. package/lib/es/table/ColumnFilter.js +4 -2
  145. package/lib/es/table/ColumnSorter.d.ts +1 -0
  146. package/lib/es/table/ColumnSorter.js +9 -6
  147. package/lib/es/table/Table.js +10 -4
  148. package/lib/es/tabs/TabBar.js +5 -1
  149. package/lib/es/tag/group.d.ts +3 -0
  150. package/lib/es/tag/group.js +24 -6
  151. package/lib/es/tag/index.d.ts +2 -1
  152. package/lib/es/tag/index.js +7 -5
  153. package/lib/es/tag/interface.d.ts +2 -1
  154. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  155. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  156. package/lib/es/timePicker/index.d.ts +2 -2
  157. package/lib/es/transfer/index.js +7 -2
  158. package/lib/es/tree/index.d.ts +3 -1
  159. package/lib/es/tree/index.js +22 -0
  160. package/lib/es/tree/interface.d.ts +4 -0
  161. package/lib/es/typography/base.d.ts +1 -1
  162. package/lib/es/typography/paragraph.d.ts +1 -1
  163. package/lib/es/typography/text.d.ts +1 -1
  164. package/lib/es/typography/title.d.ts +2 -2
  165. package/lib/es/upload/index.d.ts +1 -1
  166. package/locale/interface.ts +3 -0
  167. package/locale/source/ar.ts +3 -0
  168. package/locale/source/de.ts +3 -0
  169. package/locale/source/en_GB.ts +3 -0
  170. package/locale/source/en_US.ts +3 -0
  171. package/locale/source/es.ts +3 -0
  172. package/locale/source/fr.ts +3 -0
  173. package/locale/source/id_ID.ts +3 -0
  174. package/locale/source/it.ts +3 -0
  175. package/locale/source/ja_JP.ts +3 -0
  176. package/locale/source/ko_KR.ts +3 -0
  177. package/locale/source/ms_MY.ts +3 -0
  178. package/locale/source/pt_BR.ts +3 -0
  179. package/locale/source/ru_RU.ts +3 -0
  180. package/locale/source/th_TH.ts +3 -0
  181. package/locale/source/tr_TR.ts +4 -1
  182. package/locale/source/vi_VN.ts +3 -0
  183. package/locale/source/zh_CN.ts +3 -0
  184. package/locale/source/zh_TW.ts +3 -0
  185. package/modal/Modal.tsx +0 -6
  186. package/modal/ModalContent.tsx +4 -1
  187. package/modal/__test__/modal.test.js +1 -1
  188. package/modal/_story/__snapshots__/modal.stories.tsx.snap +203 -0
  189. package/package.json +7 -7
  190. package/radio/_story/radio.stories.js +2 -2
  191. package/radio/radio.tsx +27 -5
  192. package/rating/__test__/rating.test.js +1 -1
  193. package/select/__test__/select.test.js +11 -17
  194. package/select/_story/select.stories.js +6 -6
  195. package/steps/_story/steps.stories.js +3 -3
  196. package/switch/_story/switch.stories.js +4 -4
  197. package/switch/_story/switch.stories.tsx +4 -4
  198. package/table/ColumnFilter.tsx +2 -1
  199. package/table/ColumnSorter.tsx +16 -10
  200. package/table/Table.tsx +7 -4
  201. package/tabs/TabBar.tsx +7 -1
  202. package/tag/_story/tag.stories.js +57 -1
  203. package/tag/group.tsx +20 -3
  204. package/tag/index.tsx +6 -5
  205. package/tag/interface.ts +2 -1
  206. package/transfer/_story/transfer.stories.js +2 -2
  207. package/transfer/index.tsx +7 -2
  208. package/tree/_story/tree.stories.js +152 -3
  209. package/tree/index.tsx +16 -1
  210. package/tree/interface.ts +6 -0
  211. package/upload/_story/upload.stories.js +2 -2
  212. package/webpack.config.js +13 -3
@@ -40,9 +40,10 @@ class ColumnSorter extends _react.PureComponent {
40
40
  prefixCls,
41
41
  onClick,
42
42
  sortOrder,
43
- style
43
+ style,
44
+ title
44
45
  } = this.props;
45
- const iconBtnSize = 'small';
46
+ const iconBtnSize = 'default';
46
47
  const upCls = (0, _classnames.default)("".concat(prefixCls, "-column-sorter-up"), {
47
48
  on: sortOrder === _constants.strings.SORT_DIRECTIONS[0]
48
49
  });
@@ -61,11 +62,13 @@ class ColumnSorter extends _react.PureComponent {
61
62
  role: 'button'
62
63
  }, ariaProps, {
63
64
  tabIndex: -1,
64
- style: style,
65
- className: "".concat(prefixCls, "-column-sorter"),
65
+ className: "".concat(prefixCls, "-column-sorter-wrapper"),
66
66
  onClick: onClick,
67
67
  onKeyPress: e => (0, _isEnterPress.default)(e) && onClick(e)
68
- }), /*#__PURE__*/_react.default.createElement("span", {
68
+ }), title, /*#__PURE__*/_react.default.createElement("div", {
69
+ style: style,
70
+ className: "".concat(prefixCls, "-column-sorter")
71
+ }, /*#__PURE__*/_react.default.createElement("span", {
69
72
  className: "".concat(upCls)
70
73
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretup, {
71
74
  size: iconBtnSize
@@ -73,7 +76,7 @@ class ColumnSorter extends _react.PureComponent {
73
76
  className: "".concat(downCls)
74
77
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconCaretdown, {
75
78
  size: iconBtnSize
76
- })));
79
+ }))));
77
80
  }
78
81
 
79
82
  }
@@ -555,15 +555,24 @@ class Table extends _baseComponent.default {
555
555
  const defaultSortOrder = (0, _get2.default)(curQuery, 'defaultSortOrder', false);
556
556
  const sortOrder = _this.foundation.isSortOrderValid(stateSortOrder) ? stateSortOrder : defaultSortOrder;
557
557
 
558
+ const TitleNode = typeof rawTitle !== 'function' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
559
+ key: _constants.strings.DEFAULT_KEY_COLUMN_TITLE
560
+ }, rawTitle);
561
+
558
562
  if (typeof column.sorter === 'function' || column.sorter === true) {
563
+ // In order to increase the click hot area of ​​sorting, when sorting is required & useFullRender is false,
564
+ // both the title and sorting areas are used as the click hot area for sorting。
559
565
  const sorter = /*#__PURE__*/_react.default.createElement(_ColumnSorter.default, {
560
566
  key: _constants.strings.DEFAULT_KEY_COLUMN_SORTER,
561
567
  sortOrder: sortOrder,
562
- onClick: e => _this.foundation.handleSort(column, e)
568
+ onClick: e => _this.foundation.handleSort(column, e),
569
+ title: TitleNode
563
570
  });
564
571
 
565
572
  useFullRender && (titleMap.sorter = sorter);
566
573
  titleArr.push(sorter);
574
+ } else {
575
+ titleArr.push(TitleNode);
567
576
  }
568
577
 
569
578
  const stateFilteredValue = (0, _get2.default)(curQuery, 'filteredValue');
@@ -583,9 +592,7 @@ class Table extends _baseComponent.default {
583
592
  titleArr.push(filter);
584
593
  }
585
594
 
586
- const newTitle = typeof rawTitle === 'function' ? () => rawTitle(titleMap) : titleArr.unshift( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
587
- key: _constants.strings.DEFAULT_KEY_COLUMN_TITLE
588
- }, rawTitle)) && titleArr;
595
+ const newTitle = typeof rawTitle === 'function' ? () => rawTitle(titleMap) : titleArr;
589
596
  column = (0, _assign.default)((0, _assign.default)({}, column), {
590
597
  title: newTitle
591
598
  });
@@ -151,7 +151,11 @@ class TabBar extends _react.default.Component {
151
151
  var _context5, _context6;
152
152
 
153
153
  if ((0, _isEmpty2.default)(items)) {
154
- return null;
154
+ return /*#__PURE__*/_react.default.createElement(_button.default, {
155
+ disabled: true,
156
+ icon: icon,
157
+ theme: "borderless"
158
+ });
155
159
  }
156
160
 
157
161
  const {
@@ -14,6 +14,7 @@ export interface TagGroupProps<T> {
14
14
  popoverProps?: PopoverProps;
15
15
  avatarShape?: AvatarShape;
16
16
  mode?: string;
17
+ onTagClose: (tagChildren: React.ReactNode, event: React.MouseEvent<HTMLElement>, tagKey: string | number) => void;
17
18
  }
18
19
  export default class TagGroup<T> extends PureComponent<TagGroupProps<T>> {
19
20
  static defaultProps: {
@@ -21,6 +22,7 @@ export default class TagGroup<T> extends PureComponent<TagGroupProps<T>> {
21
22
  className: string;
22
23
  size: string;
23
24
  avatarShape: string;
25
+ onTagClose: () => any;
24
26
  };
25
27
  static propTypes: {
26
28
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -31,6 +33,7 @@ export default class TagGroup<T> extends PureComponent<TagGroupProps<T>> {
31
33
  tagList: PropTypes.Requireable<any[]>;
32
34
  size: PropTypes.Requireable<string>;
33
35
  mode: PropTypes.Requireable<string>;
36
+ onTagClose: PropTypes.Requireable<(...args: any[]) => any>;
34
37
  showPopover: PropTypes.Requireable<boolean>;
35
38
  popoverProps: PropTypes.Requireable<object>;
36
39
  avatarShape: PropTypes.Requireable<string>;
@@ -100,9 +100,10 @@ class TagGroup extends _react.PureComponent {
100
100
  tagList,
101
101
  size,
102
102
  mode,
103
- avatarShape
103
+ avatarShape,
104
+ onTagClose
104
105
  } = this.props;
105
- const renderTags = (0, _map.default)(tagList).call(tagList, (tag, index) => {
106
+ const renderTags = (0, _map.default)(tagList).call(tagList, tag => {
106
107
  if (mode === 'custom') {
107
108
  return tag;
108
109
  }
@@ -115,9 +116,24 @@ class TagGroup extends _react.PureComponent {
115
116
  tag.avatarShape = avatarShape;
116
117
  }
117
118
 
118
- return /*#__PURE__*/_react.default.createElement(_index.default, (0, _assign.default)({
119
- key: "".concat(index, "-tag")
120
- }, tag));
119
+ if (!tag.tagKey) {
120
+ if (typeof tag.children === 'string' || typeof tag.children === 'number') {
121
+ tag.tagKey = tag.children;
122
+ } else {
123
+ tag.tagKey = Math.random();
124
+ }
125
+ }
126
+
127
+ return /*#__PURE__*/_react.default.createElement(_index.default, (0, _assign.default)({}, tag, {
128
+ key: tag.tagKey,
129
+ onClose: (tagChildren, e, tagKey) => {
130
+ if (tag.onClose) {
131
+ tag.onClose(tagChildren, e, tagKey);
132
+ }
133
+
134
+ onTagClose && onTagClose(tagChildren, e, tagKey);
135
+ }
136
+ }));
121
137
  });
122
138
  return renderTags;
123
139
  }
@@ -150,7 +166,8 @@ TagGroup.defaultProps = {
150
166
  style: {},
151
167
  className: '',
152
168
  size: tagSize[0],
153
- avatarShape: 'square'
169
+ avatarShape: 'square',
170
+ onTagClose: () => undefined
154
171
  };
155
172
  TagGroup.propTypes = {
156
173
  children: _propTypes.default.node,
@@ -161,6 +178,7 @@ TagGroup.propTypes = {
161
178
  tagList: _propTypes.default.array,
162
179
  size: _propTypes.default.oneOf(tagSize),
163
180
  mode: _propTypes.default.string,
181
+ onTagClose: _propTypes.default.func,
164
182
  showPopover: _propTypes.default.bool,
165
183
  popoverProps: _propTypes.default.object,
166
184
  avatarShape: _propTypes.default.oneOf(avatarShapeSet)
@@ -10,6 +10,7 @@ export default class Tag extends Component<TagProps, TagState> {
10
10
  static defaultProps: TagProps;
11
11
  static propTypes: {
12
12
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
13
+ tagKey: PropTypes.Requireable<PropTypes.Requireable<string> | PropTypes.Requireable<number>>;
13
14
  size: PropTypes.Requireable<string>;
14
15
  color: PropTypes.Requireable<string>;
15
16
  type: PropTypes.Requireable<string>;
@@ -28,7 +29,7 @@ export default class Tag extends Component<TagProps, TagState> {
28
29
  visible: boolean;
29
30
  };
30
31
  setVisible(visible: boolean): void;
31
- close(e: React.MouseEvent<HTMLElement>, value: React.ReactNode): void;
32
+ close(e: React.MouseEvent<HTMLElement>, value: React.ReactNode, tagKey: string | number): void;
32
33
  handleKeyDown(event: any): void;
33
34
  renderAvatar(): JSX.Element;
34
35
  render(): JSX.Element;
@@ -118,13 +118,13 @@ class Tag extends _react.Component {
118
118
  }
119
119
  }
120
120
 
121
- close(e, value) {
121
+ close(e, value, tagKey) {
122
122
  const {
123
123
  onClose
124
124
  } = this.props;
125
125
  e.stopPropagation();
126
126
  e.nativeEvent.stopImmediatePropagation();
127
- onClose && onClose(value, e); // when user call e.preventDefault() in onClick callback, tag will not hidden
127
+ onClose && onClose(value, e, tagKey); // when user call e.preventDefault() in onClick callback, tag will not hidden
128
128
 
129
129
  if (e.defaultPrevented) {
130
130
  return;
@@ -143,7 +143,7 @@ class Tag extends _react.Component {
143
143
  switch (event.key) {
144
144
  case "Backspace":
145
145
  case "Delete":
146
- closable && this.close(event, this.props.children);
146
+ closable && this.close(event, this.props.children, this.props.tagKey);
147
147
  (0, _a11y.handlePrevent)(event);
148
148
  break;
149
149
 
@@ -182,6 +182,7 @@ class Tag extends _react.Component {
182
182
 
183
183
  const _a = this.props,
184
184
  {
185
+ tagKey,
185
186
  children,
186
187
  size,
187
188
  color,
@@ -195,7 +196,7 @@ class Tag extends _react.Component {
195
196
  avatarShape,
196
197
  tabIndex
197
198
  } = _a,
198
- attr = __rest(_a, ["children", "size", "color", "closable", "visible", "onClose", "onClick", "className", "type", "avatarSrc", "avatarShape", "tabIndex"]);
199
+ attr = __rest(_a, ["tagKey", "children", "size", "color", "closable", "visible", "onClose", "onClick", "className", "type", "avatarSrc", "avatarShape", "tabIndex"]);
199
200
 
200
201
  const {
201
202
  visible: isVisible
@@ -226,7 +227,7 @@ class Tag extends _react.Component {
226
227
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
227
228
  _react.default.createElement("div", {
228
229
  className: "".concat(prefixCls, "-close"),
229
- onClick: e => this.close(e, children)
230
+ onClick: e => this.close(e, children, tagKey)
230
231
  }, /*#__PURE__*/_react.default.createElement(_semiIcons.IconClose, {
231
232
  size: "small"
232
233
  })) : null;
@@ -254,6 +255,7 @@ Tag.defaultProps = {
254
255
  };
255
256
  Tag.propTypes = {
256
257
  children: _propTypes.default.node,
258
+ tagKey: _propTypes.default.oneOf([_propTypes.default.string, _propTypes.default.number]),
257
259
  size: _propTypes.default.oneOf(tagSize),
258
260
  color: _propTypes.default.oneOf(tagColors),
259
261
  type: _propTypes.default.oneOf(tagType),
@@ -5,12 +5,13 @@ export declare type TagSize = 'default' | 'small' | 'large';
5
5
  export declare type AvatarShape = 'circle' | 'square';
6
6
  export interface TagProps {
7
7
  children?: React.ReactNode;
8
+ tagKey?: string | number;
8
9
  size?: TagSize;
9
10
  color?: TagColor;
10
11
  type?: TagType;
11
12
  closable?: boolean;
12
13
  visible?: boolean;
13
- onClose?: (tagChildren: React.ReactNode, event: React.MouseEvent<HTMLElement>) => void;
14
+ onClose?: (tagChildren: React.ReactNode, event: React.MouseEvent<HTMLElement>, tagKey: string | number) => void;
14
15
  onClick?: React.MouseEventHandler<HTMLDivElement>;
15
16
  style?: React.CSSProperties;
16
17
  className?: string;
@@ -99,11 +99,11 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
99
99
  'aria-required': PropTypes.Requireable<boolean>;
100
100
  prefixCls: PropTypes.Requireable<string>;
101
101
  clearText: PropTypes.Requireable<string>;
102
- value: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
102
+ value: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
103
103
  inputReadOnly: PropTypes.Requireable<boolean>;
104
104
  disabled: PropTypes.Requireable<boolean>;
105
105
  showClear: PropTypes.Requireable<boolean>;
106
- defaultValue: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
106
+ defaultValue: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
107
107
  open: PropTypes.Requireable<boolean>;
108
108
  defaultOpen: PropTypes.Requireable<boolean>;
109
109
  onOpenChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -6,5 +6,5 @@ import PropTypes from 'prop-types';
6
6
  * - \[12:00:12, 12:21:12]
7
7
  * - \[[12:00:12, 12:21:12], [12:11:12, 12:32:12]]
8
8
  */
9
- declare const TimeShape: PropTypes.Requireable<string | number | string[] | number[] | Date | Date[]>;
9
+ declare const TimeShape: PropTypes.Requireable<string | number | string[] | Date | number[] | Date[]>;
10
10
  export { TimeShape };
@@ -19,11 +19,11 @@ export default class LocaleTimePicker extends React.PureComponent<LocalePickerPr
19
19
  'aria-required': import("prop-types").Requireable<boolean>;
20
20
  prefixCls: import("prop-types").Requireable<string>;
21
21
  clearText: import("prop-types").Requireable<string>;
22
- value: import("prop-types").Requireable<string | number | string[] | number[] | Date | Date[]>;
22
+ value: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
23
23
  inputReadOnly: import("prop-types").Requireable<boolean>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
25
  showClear: import("prop-types").Requireable<boolean>;
26
- defaultValue: import("prop-types").Requireable<string | number | string[] | number[] | Date | Date[]>;
26
+ defaultValue: import("prop-types").Requireable<string | number | string[] | Date | number[] | Date[]>;
27
27
  open: import("prop-types").Requireable<boolean>;
28
28
  defaultOpen: import("prop-types").Requireable<boolean>;
29
29
  onOpenChange: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -322,7 +322,8 @@ class Transfer extends _baseComponent.default {
322
322
  const noMatch = inSearchMode && searchResult.size === 0;
323
323
  const emptySearch = emptyContent.search ? emptyContent.search : locale.emptySearch;
324
324
  const emptyLeft = emptyContent.left ? emptyContent.left : locale.emptyLeft;
325
- const emptyCom = this.renderEmpty('left', inputValue ? emptySearch : emptyLeft);
325
+ const emptyDataCom = this.renderEmpty('left', emptyLeft);
326
+ const emptySearchCom = this.renderEmpty('left', emptySearch);
326
327
 
327
328
  const loadingCom = /*#__PURE__*/_react.default.createElement(_spin.default, null);
328
329
 
@@ -334,7 +335,11 @@ class Transfer extends _baseComponent.default {
334
335
  break;
335
336
 
336
337
  case noMatch:
337
- content = emptyCom;
338
+ content = emptySearchCom;
339
+ break;
340
+
341
+ case data.length === 0:
342
+ content = emptyDataCom;
338
343
  break;
339
344
 
340
345
  case type === _constants.strings.TYPE_TREE_TO_LIST:
@@ -6,7 +6,7 @@ import BaseComponent from '../_base/baseComponent';
6
6
  import Input from '../input/index';
7
7
  import TreeNode from './treeNode';
8
8
  import '@douyinfe/semi-foundation/lib/cjs/tree/tree.css';
9
- import { TreeProps, TreeState, TreeNodeProps, TreeNodeData, FlattenNode, KeyEntity } from './interface';
9
+ import { TreeProps, TreeState, TreeNodeProps, TreeNodeData, FlattenNode, KeyEntity, ScrollData } from './interface';
10
10
  export * from './interface';
11
11
  export { AutoSizerProps } from './autoSizer';
12
12
  declare class Tree extends BaseComponent<TreeProps, TreeState> {
@@ -102,6 +102,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
102
102
  onNodeClick: any;
103
103
  onMotionEnd: any;
104
104
  context: ContextValue;
105
+ virtualizedListRef: React.RefObject<any>;
105
106
  constructor(props: TreeProps);
106
107
  /**
107
108
  * Process of getDerivedStateFromProps was inspired by rc-tree
@@ -110,6 +111,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
110
111
  static getDerivedStateFromProps(props: TreeProps, prevState: TreeState): Partial<TreeState>;
111
112
  get adapter(): TreeAdapter;
112
113
  search: (value: string) => void;
114
+ scrollTo: (scrollData: ScrollData) => void;
113
115
  renderInput(): JSX.Element;
114
116
  renderEmpty: () => JSX.Element;
115
117
  onNodeSelect: (e: MouseEvent | KeyboardEvent, treeNode: TreeNodeProps) => void;
@@ -17,6 +17,8 @@ _Object$defineProperty(exports, "__esModule", {
17
17
  var _exportNames = {};
18
18
  exports.default = void 0;
19
19
 
20
+ var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
21
+
20
22
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
21
23
 
22
24
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
@@ -101,6 +103,25 @@ class Tree extends _baseComponent.default {
101
103
  this.foundation.handleInputChange(value);
102
104
  };
103
105
 
106
+ this.scrollTo = scrollData => {
107
+ var _a;
108
+
109
+ const {
110
+ key,
111
+ align = 'center'
112
+ } = scrollData;
113
+ const {
114
+ flattenNodes
115
+ } = this.state;
116
+
117
+ if (key) {
118
+ const index = flattenNodes === null || flattenNodes === void 0 ? void 0 : (0, _findIndex.default)(flattenNodes).call(flattenNodes, node => {
119
+ return node.key === key;
120
+ });
121
+ index >= 0 && ((_a = this.virtualizedListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index, align));
122
+ }
123
+ };
124
+
104
125
  this.renderEmpty = () => {
105
126
  const {
106
127
  emptyContent
@@ -262,6 +283,7 @@ class Tree extends _baseComponent.default {
262
283
  this.optionsRef = /*#__PURE__*/_react.default.createRef();
263
284
  this.foundation = new _foundation.default(this.adapter);
264
285
  this.dragNode = null;
286
+ this.virtualizedListRef = /*#__PURE__*/_react.default.createRef();
265
287
  }
266
288
  /**
267
289
  * Process of getDerivedStateFromProps was inspired by rc-tree
@@ -634,6 +656,7 @@ class Tree extends _baseComponent.default {
634
656
  width
635
657
  } = _ref4;
636
658
  return /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
659
+ ref: this.virtualizedListRef,
637
660
  itemCount: flattenNodes.length,
638
661
  itemSize: virtualize.itemSize,
639
662
  height: height,
@@ -118,3 +118,7 @@ export interface NodeListState {
118
118
  cachedMotionKeys?: Set<string>;
119
119
  cachedData?: FlattenNode[];
120
120
  }
121
+ export interface ScrollData {
122
+ key: string;
123
+ align?: 'center' | 'start' | 'end' | 'smart' | 'auto';
124
+ }
@@ -64,7 +64,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
64
64
  spacing: PropTypes.Requireable<"normal" | "extended">;
65
65
  strong: PropTypes.Requireable<boolean>;
66
66
  size: PropTypes.Requireable<"small" | "normal">;
67
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
67
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
68
68
  style: PropTypes.Requireable<object>;
69
69
  className: PropTypes.Requireable<string>;
70
70
  icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -29,7 +29,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
29
29
  link: PropTypes.Requireable<boolean | object>;
30
30
  underline: PropTypes.Requireable<boolean>;
31
31
  strong: PropTypes.Requireable<boolean>;
32
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
32
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
33
33
  size: PropTypes.Requireable<"small" | "normal">;
34
34
  spacing: PropTypes.Requireable<"normal" | "extended">;
35
35
  style: PropTypes.Requireable<object>;
@@ -32,7 +32,7 @@ export default class Text extends PureComponent<TextProps> {
32
32
  underline: PropTypes.Requireable<boolean>;
33
33
  link: PropTypes.Requireable<boolean | object>;
34
34
  strong: PropTypes.Requireable<boolean>;
35
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
35
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
36
36
  size: PropTypes.Requireable<"small" | "normal">;
37
37
  style: PropTypes.Requireable<object>;
38
38
  className: PropTypes.Requireable<string>;
@@ -36,8 +36,8 @@ export default class Title extends PureComponent<TitleProps> {
36
36
  link: PropTypes.Requireable<boolean | object>;
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
- type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
- heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
39
+ type: PropTypes.Requireable<"warning" | "success" | "primary" | "secondary" | "tertiary" | "danger" | "quaternary">;
40
+ heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 6 | 5>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -140,7 +140,7 @@ declare class Upload extends BaseComponent<UploadProps, UploadState> {
140
140
  style: PropTypes.Requireable<object>;
141
141
  timeout: PropTypes.Requireable<number>;
142
142
  transformFile: PropTypes.Requireable<(...args: any[]) => any>;
143
- uploadTrigger: PropTypes.Requireable<"auto" | "custom">;
143
+ uploadTrigger: PropTypes.Requireable<"custom" | "auto">;
144
144
  validateMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
145
145
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
146
146
  withCredentials: PropTypes.Requireable<boolean>;
@@ -1,6 +1,41 @@
1
1
  /* shadow */
2
2
  /* sizing */
3
3
  /* spacing */
4
+ body {
5
+ --semi-transition_duration-slowest:0ms;
6
+ --semi-transition_duration-slower:0ms;
7
+ --semi-transition_duration-slow:0ms;
8
+ --semi-transition_duration-normal:0ms;
9
+ --semi-transition_duration-fast:0ms;
10
+ --semi-transition_duration-faster:0ms;
11
+ --semi-transition_duration-fastest:0ms;
12
+ --semi-transition_function-linear:linear;
13
+ --semi-transition_function-ease:ease;
14
+ --semi-transition_function-easeIn:ease-in;
15
+ --semi-transition_function-easeOut:ease-out;
16
+ --semi-transition_function-easeInIOut:ease-in-out;
17
+ --semi-transition_delay-slowest:0ms;
18
+ --semi-transition_delay-slower:0ms;
19
+ --semi-transition_delay-slow:0ms;
20
+ --semi-transition_delay-normal:0ms;
21
+ --semi-transition_delay-fast:0ms;
22
+ --semi-transition_delay-faster:0ms;
23
+ --semi-transition_delay-fastest:0ms;
24
+ --semi-transform_scale-none:scale(1,1);
25
+ --semi-transform_scale-small:scale(1,1);
26
+ --semi-transform_scale-medium:scale(1,1);
27
+ --semi-transform_scale-large:scale(1,1);
28
+ --semi-transform-rotate-none:rotate(0deg);
29
+ --semi-transform_rotate-clockwise90deg:rotate(90deg);
30
+ --semi-transform_rotate-clockwise180deg:rotate(180deg);
31
+ --semi-transform_rotate-clockwise270deg:rotate(270deg);
32
+ --semi-transform_rotate-clockwise360deg:rotate(360deg);
33
+ --semi-transform_rotate-anticlockwise90deg:rotate(-90deg);
34
+ --semi-transform_rotate-anticlockwise180deg:rotate(-180deg);
35
+ --semi-transform_rotate-anticlockwise270deg:rotate(-270deg);
36
+ --semi-transform_rotate-anticlockwise360deg:rotate(-360deg);
37
+ }
38
+
4
39
  body,
5
40
  body .semi-always-light {
6
41
  --semi-amber-0: 254,251,235;
@@ -273,7 +273,8 @@ class Anchor extends BaseComponent {
273
273
  top: slideBarTop
274
274
  }
275
275
  })), /*#__PURE__*/React.createElement("div", {
276
- className: anchorWrapper
276
+ className: anchorWrapper,
277
+ role: "list"
277
278
  }, children)));
278
279
  }
279
280
 
@@ -36,6 +36,6 @@ export default class Link extends BaseComponent<LinkProps, {}> {
36
36
  componentDidUpdate(prevProps: LinkProps): void;
37
37
  componentWillUnmount(): void;
38
38
  renderTitle: () => string | number | boolean | React.ReactFragment | JSX.Element;
39
- renderChildren: () => React.ReactNode;
39
+ renderChildren: () => JSX.Element;
40
40
  render(): JSX.Element;
41
41
  }
@@ -65,10 +65,14 @@ export default class Link extends BaseComponent {
65
65
  } = this.props;
66
66
 
67
67
  if (!this.context.autoCollapse) {
68
- return this.props.children;
68
+ return /*#__PURE__*/React.createElement("div", {
69
+ role: "list"
70
+ }, children);
69
71
  }
70
72
 
71
- return activeLink === href || childMap[href] && childMap[href].has(activeLink) ? children : null;
73
+ return activeLink === href || childMap[href] && childMap[href].has(activeLink) ? /*#__PURE__*/React.createElement("div", {
74
+ role: "list"
75
+ }, children) : null;
72
76
  };
73
77
 
74
78
  this.foundation = new LinkFoundation(this.adapter);
@@ -144,8 +148,7 @@ export default class Link extends BaseComponent {
144
148
  ["".concat(prefixCls, "-link-title-disabled")]: disabled
145
149
  });
146
150
  const ariaProps = {
147
- 'aria-disabled': disabled,
148
- 'aria-label': href
151
+ 'aria-disabled': disabled
149
152
  };
150
153
 
151
154
  if (active) {
@@ -158,7 +161,8 @@ export default class Link extends BaseComponent {
158
161
 
159
162
  return /*#__PURE__*/React.createElement("div", {
160
163
  className: linkCls,
161
- style: style
164
+ style: style,
165
+ role: "listitem"
162
166
  }, /*#__PURE__*/React.createElement("div", _Object$assign({
163
167
  role: "link",
164
168
  tabIndex: 0
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { AutoCompleteAdapter, StateOptionItem, DataItem } from '@douyinfe/semi-foundation/lib/es/autoComplete/foundation';
4
4
  import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
5
5
  import { Position } from '../tooltip';
6
- import Option from '../select/option';
6
+ import Option from './option';
7
7
  import '@douyinfe/semi-foundation/lib/es/autoComplete/autoComplete.css';
8
8
  import { Motion } from '../_base/base';
9
9
  /**
@@ -19,7 +19,7 @@ import Spin from '../spin';
19
19
  import Popover from '../popover';
20
20
  import Input from '../input';
21
21
  import Trigger from '../trigger';
22
- import Option from '../select/option';
22
+ import Option from './option';
23
23
  import warning from '@douyinfe/semi-foundation/lib/es/utils/warning';
24
24
  import '@douyinfe/semi-foundation/lib/es/autoComplete/autoComplete.css';
25
25
  const prefixCls = cssClasses.PREFIX;
@@ -0,0 +1,50 @@
1
+ import React, { PureComponent } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { BasicOptionProps } from '@douyinfe/semi-foundation/lib/es/autoComplete/optionFoundation';
4
+ export interface OptionProps extends BasicOptionProps {
5
+ [x: string]: any;
6
+ value?: string | number;
7
+ label?: string | number | React.ReactNode;
8
+ children?: React.ReactNode;
9
+ disabled?: boolean;
10
+ showTick?: boolean;
11
+ className?: string;
12
+ style?: React.CSSProperties;
13
+ }
14
+ interface renderOptionContentArgument {
15
+ config: {
16
+ searchWords: any;
17
+ sourceString: React.ReactNode;
18
+ };
19
+ children: React.ReactNode;
20
+ inputValue: string;
21
+ prefixCls: string;
22
+ }
23
+ declare class Option extends PureComponent<OptionProps> {
24
+ static isSelectOption: boolean;
25
+ static propTypes: {
26
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
27
+ disabled: PropTypes.Requireable<boolean>;
28
+ value: PropTypes.Requireable<string | number>;
29
+ selected: PropTypes.Requireable<boolean>;
30
+ label: PropTypes.Requireable<PropTypes.ReactNodeLike>;
31
+ empty: PropTypes.Requireable<boolean>;
32
+ emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
33
+ onSelect: PropTypes.Requireable<(...args: any[]) => any>;
34
+ focused: PropTypes.Requireable<boolean>;
35
+ showTick: PropTypes.Requireable<boolean>;
36
+ className: PropTypes.Requireable<string>;
37
+ style: PropTypes.Requireable<object>;
38
+ onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
39
+ prefixCls: PropTypes.Requireable<string>;
40
+ renderOptionItem: PropTypes.Requireable<(...args: any[]) => any>;
41
+ inputValue: PropTypes.Requireable<string>;
42
+ };
43
+ static defaultProps: {
44
+ prefixCls: string;
45
+ };
46
+ onClick({ value, label, children, ...rest }: Partial<OptionProps>, event: React.MouseEvent): void;
47
+ renderOptionContent({ config, children, inputValue, prefixCls }: renderOptionContentArgument): React.ReactNode;
48
+ render(): any;
49
+ }
50
+ export default Option;