@douyinfe/semi-ui 2.10.2 → 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 (114) hide show
  1. package/cascader/index.tsx +20 -17
  2. package/checkbox/checkbox.tsx +1 -0
  3. package/checkbox/checkboxInner.tsx +10 -1
  4. package/datePicker/__test__/datePicker.test.js +1 -0
  5. package/datePicker/_story/v2/FixTriggerRender.tsx +36 -0
  6. package/datePicker/_story/v2/index.js +1 -0
  7. package/datePicker/datePicker.tsx +7 -4
  8. package/dist/umd/semi-ui.js +5466 -3738
  9. package/dist/umd/semi-ui.js.map +1 -1
  10. package/dist/umd/semi-ui.min.js +1 -1
  11. package/dist/umd/semi-ui.min.js.map +1 -1
  12. package/input/index.tsx +5 -1
  13. package/inputNumber/index.tsx +5 -2
  14. package/lib/cjs/cascader/index.d.ts +1 -0
  15. package/lib/cjs/cascader/index.js +13 -4
  16. package/lib/cjs/checkbox/checkbox.d.ts +1 -0
  17. package/lib/cjs/checkbox/checkbox.js +2 -1
  18. package/lib/cjs/checkbox/checkboxInner.d.ts +8 -0
  19. package/lib/cjs/checkbox/checkboxInner.js +11 -2
  20. package/lib/cjs/datePicker/datePicker.d.ts +1 -0
  21. package/lib/cjs/datePicker/datePicker.js +21 -5
  22. package/lib/cjs/form/baseForm.d.ts +2 -1
  23. package/lib/cjs/form/field.d.ts +2 -1
  24. package/lib/cjs/input/index.d.ts +2 -0
  25. package/lib/cjs/input/index.js +11 -4
  26. package/lib/cjs/inputNumber/index.d.ts +1 -0
  27. package/lib/cjs/inputNumber/index.js +8 -2
  28. package/lib/cjs/modal/ModalContent.d.ts +1 -0
  29. package/lib/cjs/modal/ModalContent.js +14 -3
  30. package/lib/cjs/modal/confirm.d.ts +10 -5
  31. package/lib/cjs/radio/radio.d.ts +5 -0
  32. package/lib/cjs/radio/radio.js +2 -1
  33. package/lib/cjs/radio/radioInner.d.ts +8 -0
  34. package/lib/cjs/radio/radioInner.js +11 -2
  35. package/lib/cjs/rating/index.d.ts +2 -0
  36. package/lib/cjs/rating/index.js +12 -5
  37. package/lib/cjs/rating/item.d.ts +10 -0
  38. package/lib/cjs/rating/item.js +4 -1
  39. package/lib/cjs/select/index.d.ts +2 -0
  40. package/lib/cjs/select/index.js +15 -3
  41. package/lib/cjs/table/Table.d.ts +1 -1
  42. package/lib/cjs/tabs/index.d.ts +1 -0
  43. package/lib/cjs/tabs/index.js +2 -1
  44. package/lib/cjs/tabs/interface.d.ts +1 -0
  45. package/lib/cjs/tagInput/index.d.ts +2 -0
  46. package/lib/cjs/tagInput/index.js +13 -4
  47. package/lib/cjs/timePicker/TimeInput.d.ts +2 -1
  48. package/lib/cjs/timePicker/TimeInput.js +7 -3
  49. package/lib/cjs/timePicker/TimePicker.d.ts +2 -0
  50. package/lib/cjs/timePicker/TimePicker.js +2 -1
  51. package/lib/cjs/timePicker/index.d.ts +1 -0
  52. package/lib/cjs/tooltip/index.d.ts +3 -0
  53. package/lib/cjs/tooltip/index.js +8 -2
  54. package/lib/cjs/tree/index.d.ts +1 -0
  55. package/lib/cjs/tree/index.js +9 -2
  56. package/lib/cjs/typography/title.d.ts +1 -1
  57. package/lib/es/cascader/index.d.ts +1 -0
  58. package/lib/es/cascader/index.js +13 -4
  59. package/lib/es/checkbox/checkbox.d.ts +1 -0
  60. package/lib/es/checkbox/checkbox.js +2 -1
  61. package/lib/es/checkbox/checkboxInner.d.ts +8 -0
  62. package/lib/es/checkbox/checkboxInner.js +11 -2
  63. package/lib/es/datePicker/datePicker.d.ts +1 -0
  64. package/lib/es/datePicker/datePicker.js +21 -5
  65. package/lib/es/form/baseForm.d.ts +2 -1
  66. package/lib/es/form/field.d.ts +2 -1
  67. package/lib/es/input/index.d.ts +2 -0
  68. package/lib/es/input/index.js +11 -4
  69. package/lib/es/inputNumber/index.d.ts +1 -0
  70. package/lib/es/inputNumber/index.js +8 -2
  71. package/lib/es/modal/ModalContent.d.ts +1 -0
  72. package/lib/es/modal/ModalContent.js +14 -3
  73. package/lib/es/modal/confirm.d.ts +10 -5
  74. package/lib/es/radio/radio.d.ts +5 -0
  75. package/lib/es/radio/radio.js +2 -1
  76. package/lib/es/radio/radioInner.d.ts +8 -0
  77. package/lib/es/radio/radioInner.js +11 -2
  78. package/lib/es/rating/index.d.ts +2 -0
  79. package/lib/es/rating/index.js +12 -5
  80. package/lib/es/rating/item.d.ts +10 -0
  81. package/lib/es/rating/item.js +4 -1
  82. package/lib/es/select/index.d.ts +2 -0
  83. package/lib/es/select/index.js +15 -3
  84. package/lib/es/table/Table.d.ts +1 -1
  85. package/lib/es/tabs/index.d.ts +1 -0
  86. package/lib/es/tabs/index.js +2 -1
  87. package/lib/es/tabs/interface.d.ts +1 -0
  88. package/lib/es/tagInput/index.d.ts +2 -0
  89. package/lib/es/tagInput/index.js +13 -4
  90. package/lib/es/timePicker/TimeInput.d.ts +2 -1
  91. package/lib/es/timePicker/TimeInput.js +7 -3
  92. package/lib/es/timePicker/TimePicker.d.ts +2 -0
  93. package/lib/es/timePicker/TimePicker.js +2 -1
  94. package/lib/es/timePicker/index.d.ts +1 -0
  95. package/lib/es/tooltip/index.d.ts +3 -0
  96. package/lib/es/tooltip/index.js +9 -2
  97. package/lib/es/tree/index.d.ts +1 -0
  98. package/lib/es/tree/index.js +9 -2
  99. package/lib/es/typography/title.d.ts +1 -1
  100. package/modal/ModalContent.tsx +6 -3
  101. package/package.json +9 -9
  102. package/radio/radio.tsx +5 -0
  103. package/radio/radioInner.tsx +10 -1
  104. package/rating/index.tsx +6 -4
  105. package/rating/item.tsx +11 -0
  106. package/select/index.tsx +6 -2
  107. package/tabs/index.tsx +1 -0
  108. package/tabs/interface.ts +1 -0
  109. package/tagInput/index.tsx +6 -3
  110. package/timePicker/TimeInput.tsx +5 -3
  111. package/timePicker/TimePicker.tsx +2 -0
  112. package/tooltip/index.tsx +5 -1
  113. package/tree/index.tsx +3 -1
  114. package/yarn-error.log +26235 -0
@@ -76,11 +76,14 @@ class Rating extends _baseComponent.default {
76
76
 
77
77
  this.focus = () => {
78
78
  const {
79
- disabled
79
+ disabled,
80
+ preventScroll
80
81
  } = this.props;
81
82
 
82
83
  if (!disabled) {
83
- this.rate.focus();
84
+ this.rate.focus({
85
+ preventScroll
86
+ });
84
87
  }
85
88
  };
86
89
 
@@ -127,11 +130,14 @@ class Rating extends _baseComponent.default {
127
130
  return (0, _assign.default)((0, _assign.default)({}, super.adapter), {
128
131
  focus: () => {
129
132
  const {
130
- disabled
133
+ disabled,
134
+ preventScroll
131
135
  } = this.props;
132
136
 
133
137
  if (!disabled) {
134
- this.rate.focus();
138
+ this.rate.focus({
139
+ preventScroll
140
+ });
135
141
  }
136
142
  },
137
143
  getStarDOM: index => {
@@ -307,7 +313,8 @@ Rating.propTypes = {
307
313
  autoFocus: _propTypes.default.bool,
308
314
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.SIZE_SET), _propTypes.default.number]),
309
315
  tooltips: _propTypes.default.arrayOf(_propTypes.default.string),
310
- id: _propTypes.default.string
316
+ id: _propTypes.default.string,
317
+ preventScroll: _propTypes.default.bool
311
318
  };
312
319
  Rating.defaultProps = {
313
320
  defaultValue: 0,
@@ -16,6 +16,13 @@ export interface RatingItemProps {
16
16
  count: number;
17
17
  size: number | ArrayElement<typeof strings.SIZE_SET>;
18
18
  'aria-describedby'?: React.AriaAttributes['aria-describedby'];
19
+ onFocus?: (e: React.FocusEvent) => void;
20
+ onBlur?: (e: React.FocusEvent) => void;
21
+ preventScroll?: boolean;
22
+ }
23
+ export interface RatingItemState {
24
+ firstStarFocus: boolean;
25
+ secondStarFocus: boolean;
19
26
  }
20
27
  export default class Item extends PureComponent<RatingItemProps> {
21
28
  static propTypes: {
@@ -31,6 +38,9 @@ export default class Item extends PureComponent<RatingItemProps> {
31
38
  count: PropTypes.Requireable<number>;
32
39
  size: PropTypes.Requireable<number | "default" | "small">;
33
40
  'aria-describedby': PropTypes.Requireable<string>;
41
+ onFocus: PropTypes.Requireable<(...args: any[]) => any>;
42
+ onBlur: PropTypes.Requireable<(...args: any[]) => any>;
43
+ preventScroll: PropTypes.Requireable<boolean>;
34
44
  };
35
45
  onHover: React.MouseEventHandler;
36
46
  onClick: React.MouseEventHandler;
@@ -145,5 +145,8 @@ Item.propTypes = {
145
145
  disabled: _propTypes.default.bool,
146
146
  count: _propTypes.default.number,
147
147
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.SIZE_SET), _propTypes.default.number]),
148
- 'aria-describedby': _propTypes.default.string
148
+ 'aria-describedby': _propTypes.default.string,
149
+ onFocus: _propTypes.default.func,
150
+ onBlur: _propTypes.default.func,
151
+ preventScroll: _propTypes.default.bool
149
152
  };
@@ -122,6 +122,7 @@ export declare type SelectProps = {
122
122
  onBlur?: (e: React.FocusEvent) => void;
123
123
  onListScroll?: (e: React.UIEvent<HTMLDivElement>) => void;
124
124
  children?: React.ReactNode;
125
+ preventScroll?: boolean;
125
126
  } & Pick<TooltipProps, 'spacing' | 'getPopupContainer' | 'motion' | 'autoAdjustOverflow' | 'mouseLeaveDelay' | 'mouseEnterDelay' | 'stopPropagation'> & React.RefAttributes<any>;
126
127
  export interface SelectState {
127
128
  isOpen: boolean;
@@ -214,6 +215,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
214
215
  renderOptionItem: PropTypes.Requireable<(...args: any[]) => any>;
215
216
  onListScroll: PropTypes.Requireable<(...args: any[]) => any>;
216
217
  arrowIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
218
+ preventScroll: PropTypes.Requireable<boolean>;
217
219
  };
218
220
  static defaultProps: Partial<SelectProps>;
219
221
  inputRef: React.RefObject<HTMLInputElement>;
@@ -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 => {
@@ -1132,7 +1143,8 @@ Select.propTypes = {
1132
1143
  virtualize: _propTypes.default.object,
1133
1144
  renderOptionItem: _propTypes.default.func,
1134
1145
  onListScroll: _propTypes.default.func,
1135
- arrowIcon: _propTypes.default.node // open: PropTypes.bool,
1146
+ arrowIcon: _propTypes.default.node,
1147
+ preventScroll: _propTypes.default.bool // open: PropTypes.bool,
1136
1148
  // tagClosable: PropTypes.bool,
1137
1149
 
1138
1150
  };
@@ -294,7 +294,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
296
296
  onPageSizeChange?: (newPageSize: number) => void;
297
- onChange: (currentPage: number, pageSize: number) => void;
297
+ onChange: ((currentPage: number, pageSize: number) => void) | ((currentPage: number, currentPageSize: number) => void);
298
298
  prevText?: React.ReactNode;
299
299
  nextText?: React.ReactNode;
300
300
  showSizeChanger?: boolean;
@@ -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>;
@@ -417,7 +417,8 @@ Tabs.propTypes = {
417
417
  tabPaneMotion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object, _propTypes.default.func]),
418
418
  tabPosition: _propTypes.default.oneOf(_constants.strings.POSITION_MAP),
419
419
  type: _propTypes.default.oneOf(_constants.strings.TYPE_MAP),
420
- onTabClose: _propTypes.default.func
420
+ onTabClose: _propTypes.default.func,
421
+ preventScroll: _propTypes.default.bool
421
422
  };
422
423
  Tabs.defaultProps = {
423
424
  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;
@@ -43,6 +43,7 @@ export interface TagInputProps {
43
43
  value?: string[] | undefined;
44
44
  autoFocus?: boolean;
45
45
  'aria-label'?: string;
46
+ preventScroll?: boolean;
46
47
  }
47
48
  export interface TagInputState {
48
49
  tagsArray?: string[];
@@ -86,6 +87,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
86
87
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
87
88
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
88
89
  'aria-label': PropTypes.Requireable<string>;
90
+ preventScroll: PropTypes.Requireable<boolean>;
89
91
  };
90
92
  static defaultProps: {
91
93
  showClear: boolean;
@@ -177,11 +177,14 @@ class TagInput extends _baseComponent.default {
177
177
  componentDidMount() {
178
178
  const {
179
179
  disabled,
180
- autoFocus
180
+ autoFocus,
181
+ preventScroll
181
182
  } = this.props;
182
183
 
183
184
  if (!disabled && autoFocus) {
184
- this.inputRef.current.focus();
185
+ this.inputRef.current.focus({
186
+ preventScroll
187
+ });
185
188
  }
186
189
  }
187
190
 
@@ -329,7 +332,12 @@ class TagInput extends _baseComponent.default {
329
332
  }
330
333
 
331
334
  focus() {
332
- this.inputRef.current.focus();
335
+ const {
336
+ preventScroll
337
+ } = this.props;
338
+ this.inputRef.current.focus({
339
+ preventScroll
340
+ });
333
341
  }
334
342
 
335
343
  render() {
@@ -429,7 +437,8 @@ TagInput.propTypes = {
429
437
  validateStatus: _propTypes.default.oneOf(_constants.strings.STATUS),
430
438
  prefix: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
431
439
  suffix: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
432
- 'aria-label': _propTypes.default.string
440
+ 'aria-label': _propTypes.default.string,
441
+ preventScroll: _propTypes.default.bool
433
442
  };
434
443
  TagInput.defaultProps = {
435
444
  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>;
@@ -475,7 +475,8 @@ TimePicker.propTypes = (0, _assign.default)((0, _assign.default)({
475
475
  motion: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.object]),
476
476
  autoAdjustOverflow: _propTypes.default.bool
477
477
  }, _PanelShape.PanelShape), {
478
- inputStyle: _propTypes.default.object
478
+ inputStyle: _propTypes.default.object,
479
+ preventScroll: _propTypes.default.bool
479
480
  });
480
481
  TimePicker.defaultProps = (0, _assign.default)({
481
482
  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>;
@@ -53,6 +53,8 @@ export interface TooltipProps extends BaseProps {
53
53
  guardFocus?: boolean;
54
54
  returnFocusOnClose?: boolean;
55
55
  onEscKeyDown?: (e: React.KeyboardEvent) => void;
56
+ wrapperId?: string;
57
+ preventScroll?: boolean;
56
58
  }
57
59
  interface TooltipState {
58
60
  visible: boolean;
@@ -108,6 +110,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
108
110
  wrapWhenSpecial: PropTypes.Requireable<boolean>;
109
111
  guardFocus: PropTypes.Requireable<boolean>;
110
112
  returnFocusOnClose: PropTypes.Requireable<boolean>;
113
+ preventScroll: PropTypes.Requireable<boolean>;
111
114
  };
112
115
  static defaultProps: {
113
116
  arrowBounding: {
@@ -595,10 +595,15 @@ class Tooltip extends _baseComponent.default {
595
595
  return (0, _utils.getActiveElement)();
596
596
  },
597
597
  setInitialFocus: () => {
598
+ const {
599
+ preventScroll
600
+ } = this.props;
598
601
  const focusRefNode = (0, _get2.default)(this, 'initialFocusRef.current');
599
602
 
600
603
  if (focusRefNode && 'focus' in focusRefNode) {
601
- focusRefNode.focus();
604
+ focusRefNode.focus({
605
+ preventScroll
606
+ });
602
607
  }
603
608
  },
604
609
  notifyEscKeydown: event => {
@@ -749,7 +754,8 @@ Tooltip.propTypes = {
749
754
  role: _propTypes.default.string,
750
755
  wrapWhenSpecial: _propTypes.default.bool,
751
756
  guardFocus: _propTypes.default.bool,
752
- returnFocusOnClose: _propTypes.default.bool
757
+ returnFocusOnClose: _propTypes.default.bool,
758
+ preventScroll: _propTypes.default.bool
753
759
  };
754
760
  Tooltip.defaultProps = {
755
761
  arrowBounding: _constants2.numbers.ARROW_BOUNDING,
@@ -73,6 +73,7 @@ declare class Tree extends BaseComponent<TreeProps, TreeState> {
73
73
  labelEllipsis: PropTypes.Requireable<boolean>;
74
74
  checkRelation: PropTypes.Requireable<string>;
75
75
  'aria-label': PropTypes.Requireable<string>;
76
+ preventScroll: PropTypes.Requireable<boolean>;
76
77
  };
77
78
  static defaultProps: {
78
79
  showClear: boolean;
@@ -483,8 +483,14 @@ class Tree extends _baseComponent.default {
483
483
  });
484
484
  },
485
485
  focusInput: () => {
486
+ const {
487
+ preventScroll
488
+ } = this.props;
489
+
486
490
  if (this.inputRef && this.inputRef.current) {
487
- this.inputRef.current.focus();
491
+ this.inputRef.current.focus({
492
+ preventScroll
493
+ });
488
494
  }
489
495
  }
490
496
  };
@@ -790,7 +796,8 @@ Tree.propTypes = {
790
796
  onDrop: _propTypes.default.func,
791
797
  labelEllipsis: _propTypes.default.bool,
792
798
  checkRelation: _propTypes.default.string,
793
- 'aria-label': _propTypes.default.string
799
+ 'aria-label': _propTypes.default.string,
800
+ preventScroll: _propTypes.default.bool
794
801
  };
795
802
  Tree.defaultProps = {
796
803
  showClear: true,
@@ -37,7 +37,7 @@ export default class Title extends PureComponent<TitleProps> {
37
37
  underline: PropTypes.Requireable<boolean>;
38
38
  strong: PropTypes.Requireable<boolean>;
39
39
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
40
- heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
40
+ heading: PropTypes.Requireable<4 | 2 | 1 | 3 | 5 | 6>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -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;
@@ -576,9 +576,15 @@ class Cascader extends BaseComponent {
576
576
  });
577
577
  },
578
578
  focusInput: () => {
579
+ const {
580
+ preventScroll
581
+ } = this.props;
582
+
579
583
  if (this.inputRef && this.inputRef.current) {
580
584
  // TODO: check the reason
581
- this.inputRef.current.focus();
585
+ this.inputRef.current.focus({
586
+ preventScroll
587
+ });
582
588
  }
583
589
  }
584
590
  };
@@ -741,14 +747,16 @@ class Cascader extends BaseComponent {
741
747
  if (_Array$isArray(realValue)) {
742
748
  normallizedValue = _Array$isArray(realValue[0]) ? realValue : [realValue];
743
749
  } else {
744
- normallizedValue = [[realValue]];
750
+ if (realValue !== undefined) {
751
+ normallizedValue = [[realValue]];
752
+ }
745
753
  } // formatValuePath is used to save value of valuePath
746
754
 
747
755
 
748
756
  const formatValuePath = [];
749
757
 
750
758
  _forEachInstanceProperty(normallizedValue).call(normallizedValue, valueItem => {
751
- const formatItem = onChangeWithObject ? _mapInstanceProperty(valueItem).call(valueItem, i => i.value) : valueItem;
759
+ const formatItem = onChangeWithObject ? _mapInstanceProperty(valueItem).call(valueItem, i => i === null || i === void 0 ? void 0 : i.value) : valueItem;
752
760
  formatValuePath.push(formatItem);
753
761
  }); // formatKeys is used to save key of value
754
762
 
@@ -992,7 +1000,8 @@ Cascader.propTypes = {
992
1000
  loadedKeys: PropTypes.array,
993
1001
  disableStrictly: PropTypes.bool,
994
1002
  leafOnly: PropTypes.bool,
995
- enableLeafClick: PropTypes.bool
1003
+ enableLeafClick: PropTypes.bool,
1004
+ preventScroll: PropTypes.bool
996
1005
  };
997
1006
  Cascader.defaultProps = {
998
1007
  leafOnly: false,
@@ -49,6 +49,7 @@ declare class Checkbox extends BaseComponent<CheckboxProps, CheckboxState> {
49
49
  index: PropTypes.Requireable<number>;
50
50
  'aria-label': PropTypes.Requireable<string>;
51
51
  tabIndex: PropTypes.Requireable<number>;
52
+ preventScroll: PropTypes.Requireable<boolean>;
52
53
  };
53
54
  static defaultProps: {
54
55
  defaultChecked: boolean;
@@ -208,7 +208,8 @@ Checkbox.propTypes = {
208
208
  extra: PropTypes.node,
209
209
  index: PropTypes.number,
210
210
  'aria-label': PropTypes.string,
211
- tabIndex: PropTypes.number
211
+ tabIndex: PropTypes.number,
212
+ preventScroll: PropTypes.bool
212
213
  };
213
214
  Checkbox.defaultProps = {
214
215
  defaultChecked: false,
@@ -16,6 +16,10 @@ export interface CheckboxInnerProps {
16
16
  addonId?: string;
17
17
  extraId?: string;
18
18
  'aria-label'?: React.AriaAttributes['aria-label'];
19
+ focusInner?: boolean;
20
+ onInputFocus?: (e: any) => void;
21
+ onInputBlur?: (e: any) => void;
22
+ preventScroll?: boolean;
19
23
  }
20
24
  declare class CheckboxInner extends PureComponent<CheckboxInnerProps> {
21
25
  static contextType: React.Context<import("./context").CheckboxContextType>;
@@ -34,6 +38,10 @@ declare class CheckboxInner extends PureComponent<CheckboxInnerProps> {
34
38
  isPureCardType: PropTypes.Requireable<boolean>;
35
39
  addonId: PropTypes.Requireable<string>;
36
40
  extraId: PropTypes.Requireable<string>;
41
+ focusInner: PropTypes.Requireable<boolean>;
42
+ onInputFocus: PropTypes.Requireable<(...args: any[]) => any>;
43
+ onInputBlur: PropTypes.Requireable<(...args: any[]) => any>;
44
+ preventScroll: PropTypes.Requireable<boolean>;
37
45
  };
38
46
  static defaultProps: {
39
47
  onChange: (...args: any[]) => void;
@@ -15,7 +15,12 @@ class CheckboxInner extends PureComponent {
15
15
  }
16
16
 
17
17
  focus() {
18
- this.inputEntity.focus();
18
+ const {
19
+ preventScroll
20
+ } = this.props;
21
+ this.inputEntity.focus({
22
+ preventScroll
23
+ });
19
24
  }
20
25
 
21
26
  render() {
@@ -83,7 +88,11 @@ CheckboxInner.propTypes = {
83
88
  value: PropTypes.any,
84
89
  isPureCardType: PropTypes.bool,
85
90
  addonId: PropTypes.string,
86
- extraId: PropTypes.string
91
+ extraId: PropTypes.string,
92
+ focusInner: PropTypes.bool,
93
+ onInputFocus: PropTypes.func,
94
+ onInputBlur: PropTypes.func,
95
+ preventScroll: PropTypes.bool
87
96
  };
88
97
  CheckboxInner.defaultProps = {
89
98
  onChange: _noop
@@ -103,6 +103,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
103
103
  syncSwitchMonth: PropTypes.Requireable<boolean>;
104
104
  onPanelChange: PropTypes.Requireable<(...args: any[]) => any>;
105
105
  rangeSeparator: PropTypes.Requireable<string>;
106
+ preventScroll: PropTypes.Requireable<boolean>;
106
107
  };
107
108
  static defaultProps: {
108
109
  onChangeWithDateFirst: boolean;
@@ -391,6 +391,10 @@ export default class DatePicker extends BaseComponent {
391
391
  motionEnd
392
392
  }),
393
393
  setRangeInputFocus: rangeInputFocus => {
394
+ const {
395
+ preventScroll
396
+ } = this.props;
397
+
394
398
  if (rangeInputFocus !== this.state.rangeInputFocus) {
395
399
  this.setState({
396
400
  rangeInputFocus
@@ -401,7 +405,9 @@ export default class DatePicker extends BaseComponent {
401
405
  case 'rangeStart':
402
406
  const inputStartNode = _get(this, 'rangeInputStartRef.current');
403
407
 
404
- inputStartNode && inputStartNode.focus();
408
+ inputStartNode && inputStartNode.focus({
409
+ preventScroll
410
+ });
405
411
  /**
406
412
  * 解决选择完startDate,切换到endDate后panel被立马关闭的问题。
407
413
  * 用户打开panel,选了startDate后,会执行setRangeInputFocus('rangeEnd'),focus到endDateInput,
@@ -425,7 +431,9 @@ export default class DatePicker extends BaseComponent {
425
431
  case 'rangeEnd':
426
432
  const inputEndNode = _get(this, 'rangeInputEndRef.current');
427
433
 
428
- inputEndNode && inputEndNode.focus();
434
+ inputEndNode && inputEndNode.focus({
435
+ preventScroll
436
+ });
429
437
  /**
430
438
  * 解决选择完startDate,切换到endDate后panel被立马关闭的问题。
431
439
  * 用户打开panel,选了startDate后,会执行setRangeInputFocus('rangeEnd'),focus到endDateInput,
@@ -453,6 +461,9 @@ export default class DatePicker extends BaseComponent {
453
461
  couldPanelClosed: () => this.focusRecordsRef.current.rangeStart && this.focusRecordsRef.current.rangeEnd,
454
462
  isEventTarget: e => e && e.target === e.currentTarget,
455
463
  setInsetInputFocus: () => {
464
+ const {
465
+ preventScroll
466
+ } = this.props;
456
467
  const {
457
468
  rangeInputFocus
458
469
  } = this.state;
@@ -462,7 +473,9 @@ export default class DatePicker extends BaseComponent {
462
473
  if (document.activeElement !== this.rangeInputEndRef.current) {
463
474
  const inputEndNode = _get(this, 'rangeInputEndRef.current');
464
475
 
465
- inputEndNode && inputEndNode.focus();
476
+ inputEndNode && inputEndNode.focus({
477
+ preventScroll
478
+ });
466
479
  }
467
480
 
468
481
  break;
@@ -472,7 +485,9 @@ export default class DatePicker extends BaseComponent {
472
485
  if (document.activeElement !== this.rangeInputStartRef.current) {
473
486
  const inputStartNode = _get(this, 'rangeInputStartRef.current');
474
487
 
475
- inputStartNode && inputStartNode.focus();
488
+ inputStartNode && inputStartNode.focus({
489
+ preventScroll
490
+ });
476
491
  }
477
492
 
478
493
  break;
@@ -792,7 +807,8 @@ DatePicker.propTypes = {
792
807
  syncSwitchMonth: PropTypes.bool,
793
808
  // Callback function for panel date switching
794
809
  onPanelChange: PropTypes.func,
795
- rangeSeparator: PropTypes.string
810
+ rangeSeparator: PropTypes.string,
811
+ preventScroll: PropTypes.bool
796
812
  };
797
813
  DatePicker.defaultProps = {
798
814
  onChangeWithDateFirst: true,
@@ -125,7 +125,8 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
125
125
  onBlur?: (e: React.FocusEvent<Element, Element>) => void;
126
126
  onListScroll?: (e: React.UIEvent<HTMLDivElement, UIEvent>) => void;
127
127
  children?: React.ReactNode;
128
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay" | "motion"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
128
+ preventScroll?: boolean;
129
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay" | "motion"> & React.RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
129
130
  static Checkbox: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox").CheckboxProps & import("./interface").RCIncludeType>;
130
131
  static CheckboxGroup: React.ComponentType<import("utility-types").Subtract<import("../checkbox").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
131
132
  static Radio: React.ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../radio").RadioProps & import("./interface").RCIncludeType>;
@@ -73,7 +73,8 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
73
73
  onBlur?: (e: import("react").FocusEvent<Element, Element>) => void;
74
74
  onListScroll?: (e: import("react").UIEvent<HTMLDivElement, UIEvent>) => void;
75
75
  children?: import("react").ReactNode;
76
- } & Pick<import("../tooltip").TooltipProps, "stopPropagation" | "getPopupContainer" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay" | "motion"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
76
+ preventScroll?: boolean;
77
+ } & Pick<import("../tooltip").TooltipProps, "getPopupContainer" | "stopPropagation" | "spacing" | "mouseEnterDelay" | "autoAdjustOverflow" | "mouseLeaveDelay" | "motion"> & import("react").RefAttributes<any> & import("./interface").CommonFieldProps, import("./interface").CommonexcludeType>> & import("./interface").SelectStatic;
77
78
  declare const FormCheckboxGroup: import("react").ComponentType<import("utility-types").Subtract<import("../checkbox/checkboxGroup").CheckboxGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
78
79
  declare const FormCheckbox: import("react").ComponentType<import("utility-types").Subtract<import("./interface").CommonFieldProps, import("./interface").RadioCheckboxExcludeProps> & import("../checkbox/checkbox").CheckboxProps & import("./interface").RCIncludeType>;
79
80
  declare const FormRadioGroup: import("react").ComponentType<import("utility-types").Subtract<import("../radio/radioGroup").RadioGroupProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;