@douyinfe/semi-ui 2.10.4 → 2.10.5

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 (108) hide show
  1. package/cascader/index.tsx +16 -15
  2. package/checkbox/checkbox.tsx +1 -0
  3. package/checkbox/checkboxInner.tsx +10 -1
  4. package/datePicker/datePicker.tsx +7 -4
  5. package/dist/umd/semi-ui.js +194 -51
  6. package/dist/umd/semi-ui.js.map +1 -1
  7. package/dist/umd/semi-ui.min.js +1 -1
  8. package/dist/umd/semi-ui.min.js.map +1 -1
  9. package/input/index.tsx +5 -1
  10. package/inputNumber/index.tsx +5 -2
  11. package/lib/cjs/cascader/index.d.ts +1 -0
  12. package/lib/cjs/cascader/index.js +9 -2
  13. package/lib/cjs/checkbox/checkbox.d.ts +1 -0
  14. package/lib/cjs/checkbox/checkbox.js +2 -1
  15. package/lib/cjs/checkbox/checkboxInner.d.ts +8 -0
  16. package/lib/cjs/checkbox/checkboxInner.js +11 -2
  17. package/lib/cjs/datePicker/datePicker.d.ts +1 -0
  18. package/lib/cjs/datePicker/datePicker.js +21 -5
  19. package/lib/cjs/form/baseForm.d.ts +2 -1
  20. package/lib/cjs/form/field.d.ts +2 -1
  21. package/lib/cjs/input/index.d.ts +2 -0
  22. package/lib/cjs/input/index.js +11 -4
  23. package/lib/cjs/inputNumber/index.d.ts +1 -0
  24. package/lib/cjs/inputNumber/index.js +8 -2
  25. package/lib/cjs/modal/ModalContent.d.ts +1 -0
  26. package/lib/cjs/modal/ModalContent.js +14 -3
  27. package/lib/cjs/modal/confirm.d.ts +5 -0
  28. package/lib/cjs/radio/radio.d.ts +5 -0
  29. package/lib/cjs/radio/radio.js +2 -1
  30. package/lib/cjs/radio/radioInner.d.ts +8 -0
  31. package/lib/cjs/radio/radioInner.js +11 -2
  32. package/lib/cjs/rating/index.d.ts +2 -0
  33. package/lib/cjs/rating/index.js +12 -5
  34. package/lib/cjs/rating/item.d.ts +10 -0
  35. package/lib/cjs/rating/item.js +4 -1
  36. package/lib/cjs/select/index.d.ts +2 -0
  37. package/lib/cjs/select/index.js +15 -3
  38. package/lib/cjs/tabs/index.d.ts +1 -0
  39. package/lib/cjs/tabs/index.js +2 -1
  40. package/lib/cjs/tabs/interface.d.ts +1 -0
  41. package/lib/cjs/tagInput/index.d.ts +2 -0
  42. package/lib/cjs/tagInput/index.js +13 -4
  43. package/lib/cjs/timePicker/TimeInput.d.ts +2 -1
  44. package/lib/cjs/timePicker/TimeInput.js +7 -3
  45. package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
  46. package/lib/cjs/timePicker/TimePicker.js +2 -1
  47. package/lib/cjs/timePicker/index.d.ts +1 -0
  48. package/lib/cjs/tooltip/index.d.ts +3 -0
  49. package/lib/cjs/tooltip/index.js +8 -2
  50. package/lib/cjs/tree/index.d.ts +1 -0
  51. package/lib/cjs/tree/index.js +9 -2
  52. package/lib/cjs/typography/title.d.ts +1 -1
  53. package/lib/es/cascader/index.d.ts +1 -0
  54. package/lib/es/cascader/index.js +9 -2
  55. package/lib/es/checkbox/checkbox.d.ts +1 -0
  56. package/lib/es/checkbox/checkbox.js +2 -1
  57. package/lib/es/checkbox/checkboxInner.d.ts +8 -0
  58. package/lib/es/checkbox/checkboxInner.js +11 -2
  59. package/lib/es/datePicker/datePicker.d.ts +1 -0
  60. package/lib/es/datePicker/datePicker.js +21 -5
  61. package/lib/es/form/baseForm.d.ts +2 -1
  62. package/lib/es/form/field.d.ts +2 -1
  63. package/lib/es/input/index.d.ts +2 -0
  64. package/lib/es/input/index.js +11 -4
  65. package/lib/es/inputNumber/index.d.ts +1 -0
  66. package/lib/es/inputNumber/index.js +8 -2
  67. package/lib/es/modal/ModalContent.d.ts +1 -0
  68. package/lib/es/modal/ModalContent.js +14 -3
  69. package/lib/es/modal/confirm.d.ts +5 -0
  70. package/lib/es/radio/radio.d.ts +5 -0
  71. package/lib/es/radio/radio.js +2 -1
  72. package/lib/es/radio/radioInner.d.ts +8 -0
  73. package/lib/es/radio/radioInner.js +11 -2
  74. package/lib/es/rating/index.d.ts +2 -0
  75. package/lib/es/rating/index.js +12 -5
  76. package/lib/es/rating/item.d.ts +10 -0
  77. package/lib/es/rating/item.js +4 -1
  78. package/lib/es/select/index.d.ts +2 -0
  79. package/lib/es/select/index.js +15 -3
  80. package/lib/es/tabs/index.d.ts +1 -0
  81. package/lib/es/tabs/index.js +2 -1
  82. package/lib/es/tabs/interface.d.ts +1 -0
  83. package/lib/es/tagInput/index.d.ts +2 -0
  84. package/lib/es/tagInput/index.js +13 -4
  85. package/lib/es/timePicker/TimeInput.d.ts +2 -1
  86. package/lib/es/timePicker/TimeInput.js +7 -3
  87. package/lib/es/timePicker/TimePicker.d.ts +2 -0
  88. package/lib/es/timePicker/TimePicker.js +2 -1
  89. package/lib/es/timePicker/index.d.ts +1 -0
  90. package/lib/es/tooltip/index.d.ts +3 -0
  91. package/lib/es/tooltip/index.js +9 -2
  92. package/lib/es/tree/index.d.ts +1 -0
  93. package/lib/es/tree/index.js +9 -2
  94. package/lib/es/typography/title.d.ts +1 -1
  95. package/modal/ModalContent.tsx +6 -3
  96. package/package.json +9 -9
  97. package/radio/radio.tsx +5 -0
  98. package/radio/radioInner.tsx +10 -1
  99. package/rating/index.tsx +6 -4
  100. package/rating/item.tsx +11 -0
  101. package/select/index.tsx +6 -2
  102. package/tabs/index.tsx +1 -0
  103. package/tabs/interface.ts +1 -0
  104. package/tagInput/index.tsx +6 -3
  105. package/timePicker/TimeInput.tsx +5 -3
  106. package/timePicker/TimePicker.tsx +2 -0
  107. package/tooltip/index.tsx +5 -1
  108. package/tree/index.tsx +3 -1
@@ -168,6 +168,7 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
168
168
  disableStrictly: PropTypes.bool,
169
169
  leafOnly: PropTypes.bool,
170
170
  enableLeafClick: PropTypes.bool,
171
+ preventScroll: PropTypes.bool,
171
172
  };
172
173
 
173
174
  static defaultProps = {
@@ -268,16 +269,16 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
268
269
  this.setState({ inputPlaceHolder: value });
269
270
  },
270
271
  focusInput: () => {
272
+ const { preventScroll } = this.props;
271
273
  if (this.inputRef && this.inputRef.current) {
272
274
  // TODO: check the reason
273
- (this.inputRef.current as any).focus();
275
+ (this.inputRef.current as any).focus({ preventScroll });
274
276
  }
275
277
  },
276
278
  };
277
- const cascaderAdapter: Pick<CascaderAdapter,
278
- 'registerClickOutsideHandler'
279
- | 'unregisterClickOutsideHandler'
280
- | 'rePositionDropdown'
279
+ const cascaderAdapter: Pick<
280
+ CascaderAdapter,
281
+ 'registerClickOutsideHandler' | 'unregisterClickOutsideHandler' | 'rePositionDropdown'
281
282
  > = {
282
283
  registerClickOutsideHandler: cb => {
283
284
  const clickOutsideHandler = (e: Event) => {
@@ -887,9 +888,9 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
887
888
  const { isOpen, isFocus, isInput, checkedKeys } = this.state;
888
889
  const filterable = Boolean(filterTreeNode);
889
890
  const useCustomTrigger = typeof triggerRender === 'function';
890
- const classNames = useCustomTrigger ?
891
- cls(className) :
892
- cls(prefixcls, className, {
891
+ const classNames = useCustomTrigger
892
+ ? cls(className)
893
+ : cls(prefixcls, className, {
893
894
  [`${prefixcls}-focus`]: isFocus || (isOpen && !isInput),
894
895
  [`${prefixcls}-disabled`]: disabled,
895
896
  [`${prefixcls}-single`]: true,
@@ -901,18 +902,18 @@ class Cascader extends BaseComponent<CascaderProps, CascaderState> {
901
902
  [`${prefixcls}-with-prefix`]: prefix || insetLabel,
902
903
  [`${prefixcls}-with-suffix`]: suffix,
903
904
  });
904
- const mouseEvent = showClear ?
905
- {
905
+ const mouseEvent = showClear
906
+ ? {
906
907
  onMouseEnter: () => this.handleMouseOver(),
907
908
  onMouseLeave: () => this.handleMouseLeave(),
908
- } :
909
- {};
909
+ }
910
+ : {};
910
911
  const sectionCls = cls(`${prefixcls}-selection`, {
911
912
  [`${prefixcls}-selection-multiple`]: multiple && !isEmpty(checkedKeys),
912
913
  });
913
- const inner = useCustomTrigger ?
914
- this.renderCustomTrigger() :
915
- [
914
+ const inner = useCustomTrigger
915
+ ? this.renderCustomTrigger()
916
+ : [
916
917
  <Fragment key={'prefix'}>{prefix || insetLabel ? this.renderPrefix() : null}</Fragment>,
917
918
  <Fragment key={'selection'}>
918
919
  <div className={sectionCls}>{this.renderSelectContent()}</div>
@@ -62,6 +62,7 @@ class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
62
62
  index: PropTypes.number,
63
63
  'aria-label': PropTypes.string,
64
64
  tabIndex: PropTypes.number,
65
+ preventScroll: PropTypes.bool,
65
66
  };
66
67
 
67
68
  static defaultProps = {
@@ -23,6 +23,10 @@ export interface CheckboxInnerProps {
23
23
  addonId?: string;
24
24
  extraId?: string;
25
25
  'aria-label'?: React.AriaAttributes['aria-label'];
26
+ focusInner?: boolean;
27
+ onInputFocus?: (e: any) => void;
28
+ onInputBlur?: (e: any) => void;
29
+ preventScroll?: boolean;
26
30
  }
27
31
 
28
32
  class CheckboxInner extends PureComponent<CheckboxInnerProps> {
@@ -43,6 +47,10 @@ class CheckboxInner extends PureComponent<CheckboxInnerProps> {
43
47
  isPureCardType: PropTypes.bool,
44
48
  addonId: PropTypes.string,
45
49
  extraId: PropTypes.string,
50
+ focusInner: PropTypes.bool,
51
+ onInputFocus: PropTypes.func,
52
+ onInputBlur: PropTypes.func,
53
+ preventScroll: PropTypes.bool,
46
54
  };
47
55
 
48
56
  static defaultProps = {
@@ -55,7 +63,8 @@ class CheckboxInner extends PureComponent<CheckboxInnerProps> {
55
63
  }
56
64
 
57
65
  focus() {
58
- this.inputEntity.focus();
66
+ const { preventScroll } = this.props;
67
+ this.inputEntity.focus({ preventScroll });
59
68
  }
60
69
 
61
70
  render() {
@@ -125,6 +125,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
125
125
  // Callback function for panel date switching
126
126
  onPanelChange: PropTypes.func,
127
127
  rangeSeparator: PropTypes.string,
128
+ preventScroll: PropTypes.bool,
128
129
  };
129
130
 
130
131
  static defaultProps = {
@@ -272,13 +273,14 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
272
273
  typeIsYearOrMonth: () => ['month', 'year'].includes(this.props.type),
273
274
  setMotionEnd: motionEnd => this.setState({ motionEnd }),
274
275
  setRangeInputFocus: rangeInputFocus => {
276
+ const { preventScroll } = this.props;
275
277
  if (rangeInputFocus !== this.state.rangeInputFocus) {
276
278
  this.setState({ rangeInputFocus });
277
279
  }
278
280
  switch (rangeInputFocus) {
279
281
  case 'rangeStart':
280
282
  const inputStartNode = get(this, 'rangeInputStartRef.current');
281
- inputStartNode && inputStartNode.focus();
283
+ inputStartNode && inputStartNode.focus({ preventScroll });
282
284
  /**
283
285
  * 解决选择完startDate,切换到endDate后panel被立马关闭的问题。
284
286
  * 用户打开panel,选了startDate后,会执行setRangeInputFocus('rangeEnd'),focus到endDateInput,
@@ -298,7 +300,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
298
300
  break;
299
301
  case 'rangeEnd':
300
302
  const inputEndNode = get(this, 'rangeInputEndRef.current');
301
- inputEndNode && inputEndNode.focus();
303
+ inputEndNode && inputEndNode.focus({ preventScroll });
302
304
  /**
303
305
  * 解决选择完startDate,切换到endDate后panel被立马关闭的问题。
304
306
  * 用户打开panel,选了startDate后,会执行setRangeInputFocus('rangeEnd'),focus到endDateInput,
@@ -323,19 +325,20 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
323
325
  couldPanelClosed: () => this.focusRecordsRef.current.rangeStart && this.focusRecordsRef.current.rangeEnd,
324
326
  isEventTarget: e => e && e.target === e.currentTarget,
325
327
  setInsetInputFocus: () => {
328
+ const { preventScroll } = this.props;
326
329
  const { rangeInputFocus } = this.state;
327
330
  switch (rangeInputFocus) {
328
331
  case 'rangeEnd':
329
332
  if (document.activeElement !== this.rangeInputEndRef.current) {
330
333
  const inputEndNode = get(this, 'rangeInputEndRef.current');
331
- inputEndNode && inputEndNode.focus();
334
+ inputEndNode && inputEndNode.focus({ preventScroll });
332
335
  }
333
336
  break;
334
337
  case 'rangeStart':
335
338
  default:
336
339
  if (document.activeElement !== this.rangeInputStartRef.current) {
337
340
  const inputStartNode = get(this, 'rangeInputStartRef.current');
338
- inputStartNode && inputStartNode.focus();
341
+ inputStartNode && inputStartNode.focus({ preventScroll });
339
342
  }
340
343
  break;
341
344
  }