@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
@@ -75,6 +75,7 @@ export type TimePickerProps = {
75
75
  popupStyle?: React.CSSProperties;
76
76
  position?: Position;
77
77
  prefixCls?: string;
78
+ preventScroll?: boolean;
78
79
  rangeSeparator?: string;
79
80
  scrollItemProps?: ScrollItemProps<any>;
80
81
  secondStep?: number;
@@ -164,6 +165,7 @@ export default class TimePicker extends BaseComponent<TimePickerProps, TimePicke
164
165
  autoAdjustOverflow: PropTypes.bool,
165
166
  ...PanelShape,
166
167
  inputStyle: PropTypes.object,
168
+ preventScroll: PropTypes.bool,
167
169
  };
168
170
 
169
171
  static defaultProps = {
package/tooltip/index.tsx CHANGED
@@ -76,6 +76,7 @@ export interface TooltipProps extends BaseProps {
76
76
  returnFocusOnClose?: boolean;
77
77
  onEscKeyDown?: (e: React.KeyboardEvent) => void;
78
78
  wrapperId?: string;
79
+ preventScroll?: boolean;
79
80
  }
80
81
  interface TooltipState {
81
82
  visible: boolean;
@@ -136,6 +137,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
136
137
  wrapWhenSpecial: PropTypes.bool, // when trigger has special status such as "disabled" or "loading", wrap span
137
138
  guardFocus: PropTypes.bool,
138
139
  returnFocusOnClose: PropTypes.bool,
140
+ preventScroll: PropTypes.bool,
139
141
  };
140
142
 
141
143
  static defaultProps = {
@@ -422,9 +424,10 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
422
424
  return getActiveElement();
423
425
  },
424
426
  setInitialFocus: () => {
427
+ const { preventScroll } = this.props;
425
428
  const focusRefNode = get(this, 'initialFocusRef.current');
426
429
  if (focusRefNode && 'focus' in focusRefNode) {
427
- focusRefNode.focus();
430
+ focusRefNode.focus({ preventScroll });
428
431
  }
429
432
  },
430
433
  notifyEscKeydown: (event: React.KeyboardEvent) => {
@@ -627,6 +630,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
627
630
  style.width = '100%';
628
631
  }
629
632
 
633
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
630
634
  return <span className={wrapperClassName} style={style}>{elem}</span>;
631
635
  };
632
636
 
@@ -712,7 +716,8 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
712
716
  ref.current = node;
713
717
  }
714
718
  },
715
- tabIndex: trigger === 'hover' ? 0 : undefined, // a11y keyboard
719
+ tabIndex: 0, // a11y keyboard
720
+ 'data-popupId': id
716
721
  });
717
722
 
718
723
  // 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
package/tree/index.tsx CHANGED
@@ -114,6 +114,7 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
114
114
  labelEllipsis: PropTypes.bool,
115
115
  checkRelation: PropTypes.string,
116
116
  'aria-label': PropTypes.string,
117
+ preventScroll: PropTypes.bool,
117
118
  };
118
119
 
119
120
  static defaultProps = {
@@ -445,8 +446,9 @@ class Tree extends BaseComponent<TreeProps, TreeState> {
445
446
  this.setState({ inputValue: value });
446
447
  },
447
448
  focusInput: () => {
449
+ const { preventScroll } = this.props;
448
450
  if (this.inputRef && this.inputRef.current) {
449
- (this.inputRef.current as any).focus();
451
+ (this.inputRef.current as any).focus({ preventScroll });
450
452
  }
451
453
  },
452
454
  };
package/tree/treeNode.tsx CHANGED
@@ -9,6 +9,7 @@ import { Checkbox } from '../checkbox';
9
9
  import TreeContext, { TreeContextValue } from './treeContext';
10
10
  import Spin from '../spin';
11
11
  import { TreeNodeProps, TreeNodeState } from './interface';
12
+ import { getHighLightTextHTML } from '../_utils/index';
12
13
 
13
14
  const prefixcls = cssClasses.PREFIX_OPTION;
14
15
 
@@ -282,18 +283,14 @@ export default class TreeNode extends PureComponent<TreeNodeProps, TreeNodeState
282
283
  if (isFunction(renderLabel)) {
283
284
  return renderLabel(label, data);
284
285
  } else if (isString(label) && filtered && keyword && treeNodeFilterProp === 'label') {
285
- const content: React.ReactNode[] = [];
286
- label.split(keyword).forEach((node, index) => {
287
- if (index > 0) {
288
- content.push(
289
- <span className={`${prefixcls}-highlight`} key={index}>
290
- {keyword}
291
- </span>
292
- );
293
- }
294
- content.push(node);
295
- });
296
- return content;
286
+ return getHighLightTextHTML({
287
+ sourceString: label,
288
+ searchWords: [keyword],
289
+ option: {
290
+ highlightTag: 'span',
291
+ highlightClassName: `${prefixcls}-highlight`,
292
+ },
293
+ } as any);
297
294
  } else {
298
295
  return label;
299
296
  }
@@ -265,7 +265,6 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
265
265
  motionExpand: true,
266
266
  expandAll: false,
267
267
  zIndex: popoverNumbers.DEFAULT_Z_INDEX,
268
- disabled: false,
269
268
  disableStrictly: false,
270
269
  multiple: false,
271
270
  filterTreeNode: false,
@@ -864,6 +863,10 @@ class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState> {
864
863
  };
865
864
 
866
865
  search = (value: string) => {
866
+ const { isOpen } = this.state;
867
+ if (!isOpen) {
868
+ this.foundation.open();
869
+ }
867
870
  this.foundation.handleInputChange(value);
868
871
  };
869
872
 
@@ -1,13 +1,16 @@
1
1
 
2
2
  /* argus-disable unPkgSensitiveInfo */
3
- import React from 'react';
3
+ import React, { useRef } from 'react';
4
4
  import { storiesOf } from '@storybook/react';
5
5
  import Upload from '../index';
6
6
 
7
7
  const stories = storiesOf('Upload', module);
8
8
 
9
- stories.add('Upload', () => (
10
- <>
11
- <Upload action='//semi.design' />
12
- </>
13
- ));
9
+ stories.add('Upload', () => {
10
+ const ref = useRef();
11
+ return (
12
+ <>
13
+ <Upload action='//semi.design' ref={ref} />
14
+ </>
15
+ );
16
+ });