@douyinfe/semi-ui 2.1.0-beta.2 → 2.1.0-beta.3

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 (77) hide show
  1. package/dist/css/semi.css +13 -1
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +259 -134
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/es/autoComplete/index.d.ts +36 -11
  8. package/lib/es/button/index.d.ts +0 -1
  9. package/lib/es/button/index.js +1 -2
  10. package/lib/es/calendar/dayCalendar.js +1 -1
  11. package/lib/es/calendar/monthCalendar.js +1 -1
  12. package/lib/es/calendar/rangeCalendar.js +1 -1
  13. package/lib/es/calendar/weekCalendar.js +1 -1
  14. package/lib/es/cascader/index.d.ts +1 -0
  15. package/lib/es/cascader/index.js +15 -3
  16. package/lib/es/collapse/index.js +1 -5
  17. package/lib/es/datePicker/yearAndMonth.d.ts +2 -2
  18. package/lib/es/datePicker/yearAndMonth.js +1 -1
  19. package/lib/es/form/baseForm.d.ts +4 -10
  20. package/lib/es/form/baseForm.js +1 -2
  21. package/lib/es/form/field.d.ts +4 -22
  22. package/lib/es/form/field.js +2 -18
  23. package/lib/es/form/hoc/withField.d.ts +1 -1
  24. package/lib/es/form/hoc/withField.js +0 -3
  25. package/lib/es/iconButton/index.d.ts +0 -1
  26. package/lib/es/iconButton/index.js +0 -1
  27. package/lib/es/locale/localeConsumer.d.ts +5 -5
  28. package/lib/es/modal/useModal/HookModal.d.ts +3 -2
  29. package/lib/es/modal/useModal/index.js +1 -1
  30. package/lib/es/notification/index.d.ts +1 -1
  31. package/lib/es/notification/index.js +1 -1
  32. package/lib/es/popconfirm/index.d.ts +5 -1
  33. package/lib/es/popconfirm/index.js +10 -4
  34. package/lib/es/popover/index.d.ts +3 -1
  35. package/lib/es/popover/index.js +4 -8
  36. package/lib/es/radio/context.d.ts +1 -1
  37. package/lib/es/radio/radio.d.ts +2 -2
  38. package/lib/es/radio/radioGroup.d.ts +4 -4
  39. package/lib/es/rating/index.d.ts +1 -1
  40. package/lib/es/resizeObserver/index.js +1 -0
  41. package/lib/es/scrollList/scrollItem.d.ts +12 -11
  42. package/lib/es/scrollList/scrollItem.js +8 -8
  43. package/lib/es/select/index.js +18 -11
  44. package/lib/es/select/option.js +4 -4
  45. package/lib/es/select/utils.d.ts +1 -1
  46. package/lib/es/select/utils.js +12 -8
  47. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -1
  48. package/lib/es/sideSheet/index.d.ts +3 -3
  49. package/lib/es/steps/basicSteps.js +2 -2
  50. package/lib/es/steps/fillSteps.js +3 -3
  51. package/lib/es/steps/navSteps.js +2 -2
  52. package/lib/es/tabs/TabBar.d.ts +5 -3
  53. package/lib/es/tabs/TabBar.js +12 -4
  54. package/lib/es/tabs/TabPane.d.ts +2 -1
  55. package/lib/es/tabs/TabPane.js +3 -2
  56. package/lib/es/tabs/index.d.ts +3 -1
  57. package/lib/es/tabs/index.js +85 -16
  58. package/lib/es/tabs/interface.d.ts +6 -1
  59. package/lib/es/tagInput/index.d.ts +3 -0
  60. package/lib/es/tagInput/index.js +6 -1
  61. package/lib/es/timePicker/Combobox.d.ts +10 -4
  62. package/lib/es/timePicker/Combobox.js +2 -1
  63. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  64. package/lib/es/tooltip/index.d.ts +3 -0
  65. package/lib/es/tooltip/index.js +3 -0
  66. package/lib/es/tree/interface.d.ts +2 -2
  67. package/lib/es/treeSelect/index.d.ts +2 -11
  68. package/lib/es/treeSelect/index.js +2 -1
  69. package/lib/es/typography/base.d.ts +1 -1
  70. package/lib/es/typography/paragraph.d.ts +1 -1
  71. package/lib/es/typography/text.d.ts +1 -1
  72. package/lib/es/typography/title.d.ts +1 -1
  73. package/lib/es/upload/fileCard.d.ts +3 -18
  74. package/lib/es/upload/index.d.ts +4 -57
  75. package/lib/es/upload/interface.d.ts +56 -0
  76. package/lib/es/upload/interface.js +1 -0
  77. package/package.json +9 -8
@@ -5,6 +5,7 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
5
5
  import _Array$isArray from "@babel/runtime-corejs3/core-js-stable/array/is-array";
6
6
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
7
7
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
+ import _findIndexInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find-index";
8
9
  import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
9
10
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
10
11
 
@@ -19,14 +20,14 @@ var __rest = this && this.__rest || function (s, e) {
19
20
  return t;
20
21
  };
21
22
 
22
- import React, { createRef } from 'react';
23
+ import React, { createRef, isValidElement } from 'react';
23
24
  import cls from 'classnames';
24
25
  import PropTypes from 'prop-types';
25
26
  import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/tabs/constants';
26
27
  import isNullOrUndefined from '@douyinfe/semi-foundation/lib/es/utils/isNullOrUndefined';
27
28
  import getDataAttr from '@douyinfe/semi-foundation/lib/es/utils/getDataAttr';
28
29
  import TabsFoundation from '@douyinfe/semi-foundation/lib/es/tabs/foundation';
29
- import { isEqual, pick, omit } from 'lodash-es';
30
+ import { isEqual, omit, pick } from 'lodash-es';
30
31
  import BaseComponent from '../_base/baseComponent';
31
32
  import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
32
33
  import TabBar from './TabBar';
@@ -79,7 +80,7 @@ class Tabs extends BaseComponent {
79
80
  }
80
81
 
81
82
  return _filterInstanceProperty(_context = React.Children.toArray(children)).call(_context, pane => {
82
- if (pane && pane.type && pane.type.isTabPane) {
83
+ if ( /*#__PURE__*/isValidElement(pane) && pane.type && pane.type.isTabPane) {
83
84
  return pane.props.itemKey === activeKey;
84
85
  }
85
86
 
@@ -87,6 +88,11 @@ class Tabs extends BaseComponent {
87
88
  });
88
89
  };
89
90
 
91
+ this.deleteTabItem = (tabKey, event) => {
92
+ event.stopPropagation();
93
+ this.foundation.handleTabDelete(tabKey);
94
+ };
95
+
90
96
  this.foundation = new TabsFoundation(this.adapter);
91
97
  this.state = {
92
98
  activeKey: this.foundation.getDefaultActiveKey(),
@@ -119,13 +125,15 @@ class Tabs extends BaseComponent {
119
125
  tab,
120
126
  icon,
121
127
  disabled,
122
- itemKey
128
+ itemKey,
129
+ closable
123
130
  } = child.props;
124
131
  return {
125
132
  tab,
126
133
  icon,
127
134
  disabled,
128
- itemKey
135
+ itemKey,
136
+ closable
129
137
  };
130
138
  }
131
139
 
@@ -136,6 +144,61 @@ class Tabs extends BaseComponent {
136
144
  panes
137
145
  });
138
146
  },
147
+ collectActiveKey: () => {
148
+ let panes = [];
149
+ const {
150
+ tabList,
151
+ children,
152
+ activeKey: propsActiveKey
153
+ } = this.props;
154
+
155
+ if (typeof propsActiveKey !== 'undefined') {
156
+ return;
157
+ }
158
+
159
+ const {
160
+ activeKey
161
+ } = this.state;
162
+
163
+ if (_Array$isArray(tabList) && tabList.length) {
164
+ panes = tabList;
165
+ } else {
166
+ var _context3;
167
+
168
+ panes = _mapInstanceProperty(_context3 = React.Children).call(_context3, children, child => {
169
+ if (child) {
170
+ const {
171
+ tab,
172
+ icon,
173
+ disabled,
174
+ itemKey,
175
+ closable
176
+ } = child.props;
177
+ return {
178
+ tab,
179
+ icon,
180
+ disabled,
181
+ itemKey,
182
+ closable
183
+ };
184
+ }
185
+
186
+ return undefined;
187
+ });
188
+ }
189
+
190
+ if (_findIndexInstanceProperty(panes).call(panes, p => p.itemKey === activeKey) === -1) {
191
+ if (panes.length > 0) {
192
+ this.setState({
193
+ activeKey: panes[0].itemKey
194
+ });
195
+ } else {
196
+ this.setState({
197
+ activeKey: ''
198
+ });
199
+ }
200
+ }
201
+ },
139
202
  notifyTabClick: (activeKey, event) => {
140
203
  this.props.onTabClick(activeKey, event);
141
204
  },
@@ -148,14 +211,14 @@ class Tabs extends BaseComponent {
148
211
  });
149
212
  },
150
213
  getDefaultActiveKeyFromChildren: () => {
151
- var _context3;
214
+ var _context4;
152
215
 
153
216
  const {
154
217
  tabList,
155
218
  children
156
219
  } = this.props;
157
220
  let activeKey = '';
158
- const list = tabList ? tabList : _mapInstanceProperty(_context3 = React.Children.toArray(children)).call(_context3, child => child.props);
221
+ const list = tabList ? tabList : _mapInstanceProperty(_context4 = React.Children.toArray(children)).call(_context4, child => /*#__PURE__*/isValidElement(child) ? child.props : null);
159
222
 
160
223
  _forEachInstanceProperty(list).call(list, item => {
161
224
  if (item && !activeKey && !item.disabled) {
@@ -164,6 +227,9 @@ class Tabs extends BaseComponent {
164
227
  });
165
228
 
166
229
  return activeKey;
230
+ },
231
+ notifyTabDelete: tabKey => {
232
+ this.props.onTabClose && this.props.onTabClose(tabKey);
167
233
  }
168
234
  });
169
235
  }
@@ -179,12 +245,12 @@ class Tabs extends BaseComponent {
179
245
  }
180
246
 
181
247
  componentDidUpdate(prevProps) {
182
- var _context4, _context5;
248
+ var _context5, _context6;
183
249
 
184
250
  // Panes state acts on tab bar, no need to compare TabPane children
185
- const prevChildrenProps = _mapInstanceProperty(_context4 = React.Children.toArray(prevProps.children)).call(_context4, child => pick(child.props, panePickKeys));
251
+ const prevChildrenProps = _mapInstanceProperty(_context5 = React.Children.toArray(prevProps.children)).call(_context5, child => pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
186
252
 
187
- const nowChildrenProps = _mapInstanceProperty(_context5 = React.Children.toArray(this.props.children)).call(_context5, child => pick(child.props, panePickKeys));
253
+ const nowChildrenProps = _mapInstanceProperty(_context6 = React.Children.toArray(this.props.children)).call(_context6, child => pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
188
254
 
189
255
  const isTabListType = this.props.tabList || prevProps.tabList;
190
256
 
@@ -202,7 +268,7 @@ class Tabs extends BaseComponent {
202
268
  }
203
269
 
204
270
  render() {
205
- var _context6, _context7;
271
+ var _context7, _context8;
206
272
 
207
273
  const _a = this.props,
208
274
  {
@@ -230,11 +296,11 @@ class Tabs extends BaseComponent {
230
296
  } = this.state;
231
297
  const tabWrapperCls = cls(className, {
232
298
  [cssClasses.TABS]: true,
233
- [_concatInstanceProperty(_context6 = "".concat(cssClasses.TABS, "-")).call(_context6, tabPosition)]: tabPosition
299
+ [_concatInstanceProperty(_context7 = "".concat(cssClasses.TABS, "-")).call(_context7, tabPosition)]: tabPosition
234
300
  });
235
301
  const tabContentCls = cls({
236
302
  [cssClasses.TABS_CONTENT]: true,
237
- [_concatInstanceProperty(_context7 = "".concat(cssClasses.TABS_CONTENT, "-")).call(_context7, tabPosition)]: tabPosition
303
+ [_concatInstanceProperty(_context8 = "".concat(cssClasses.TABS_CONTENT, "-")).call(_context8, tabPosition)]: tabPosition
238
304
  });
239
305
  const tabBarProps = {
240
306
  activeKey,
@@ -246,7 +312,8 @@ class Tabs extends BaseComponent {
246
312
  style: tabBarStyle,
247
313
  tabBarExtraContent,
248
314
  tabPosition,
249
- type
315
+ type,
316
+ deleteTabItem: this.deleteTabItem
250
317
  };
251
318
  const tabBar = renderTabBar ? renderTabBar(tabBarProps, TabBar) : /*#__PURE__*/React.createElement(TabBar, _Object$assign({}, tabBarProps));
252
319
  const content = keepDOM ? children : this.getActiveItem();
@@ -291,7 +358,8 @@ Tabs.propTypes = {
291
358
  tabList: PropTypes.array,
292
359
  tabPaneMotion: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.func]),
293
360
  tabPosition: PropTypes.oneOf(strings.POSITION_MAP),
294
- type: PropTypes.oneOf(strings.TYPE_MAP)
361
+ type: PropTypes.oneOf(strings.TYPE_MAP),
362
+ onTabClose: PropTypes.func
295
363
  };
296
364
  Tabs.defaultProps = {
297
365
  children: [],
@@ -303,6 +371,7 @@ Tabs.defaultProps = {
303
371
  size: 'large',
304
372
  tabPaneMotion: true,
305
373
  tabPosition: 'top',
306
- type: 'line'
374
+ type: 'line',
375
+ onTabClose: () => undefined
307
376
  };
308
377
  export default Tabs;
@@ -1,4 +1,4 @@
1
- import { MouseEvent, ReactNode, ComponentType, CSSProperties } from 'react';
1
+ import { ComponentType, CSSProperties, MouseEvent, ReactNode } from 'react';
2
2
  import { Motion } from '../_base/base';
3
3
  export declare type TabType = 'line' | 'card' | 'button';
4
4
  export declare type TabSize = 'small' | 'medium' | 'large';
@@ -8,6 +8,7 @@ export interface PlainTab {
8
8
  icon?: ReactNode;
9
9
  itemKey: string;
10
10
  tab?: ReactNode;
11
+ closable: boolean;
11
12
  }
12
13
  export interface TabsProps {
13
14
  activeKey?: string;
@@ -30,6 +31,7 @@ export interface TabsProps {
30
31
  tabPaneMotion?: boolean;
31
32
  tabPosition?: TabPosition;
32
33
  type?: TabType;
34
+ onTabClose?: (tabKey: string) => void;
33
35
  }
34
36
  export interface TabBarProps {
35
37
  activeKey?: string;
@@ -44,6 +46,8 @@ export interface TabBarProps {
44
46
  type?: TabType;
45
47
  dropdownClassName?: string;
46
48
  dropdownStyle?: CSSProperties;
49
+ closable?: boolean;
50
+ deleteTabItem?: (tabKey: string, event: MouseEvent<Element>) => void;
47
51
  }
48
52
  export interface TabPaneProps {
49
53
  className?: string;
@@ -52,6 +56,7 @@ export interface TabPaneProps {
52
56
  itemKey?: string;
53
57
  style?: CSSProperties;
54
58
  tab?: ReactNode;
59
+ closable?: boolean;
55
60
  }
56
61
  export interface TabPaneTransitionProps {
57
62
  [key: string]: any;
@@ -29,6 +29,7 @@ export interface TagInputProps {
29
29
  onFocus?: (e: React.MouseEvent<HTMLInputElement>) => void;
30
30
  onInputChange?: (value: string, e: React.MouseEvent<HTMLInputElement>) => void;
31
31
  onInputExceed?: ((value: string) => void);
32
+ onKeyDown?: (e: React.MouseEvent<HTMLInputElement>) => void;
32
33
  onRemove?: (removedValue: string, idx: number) => void;
33
34
  placeholder?: string;
34
35
  prefix?: React.ReactNode;
@@ -78,6 +79,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
78
79
  onInputExceed: PropTypes.Requireable<(...args: any[]) => any>;
79
80
  onAdd: PropTypes.Requireable<(...args: any[]) => any>;
80
81
  onRemove: PropTypes.Requireable<(...args: any[]) => any>;
82
+ onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
81
83
  size: PropTypes.Requireable<"default" | "small" | "large">;
82
84
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning">;
83
85
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -101,6 +103,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
101
103
  onInputExceed: (...args: any[]) => void;
102
104
  onAdd: (...args: any[]) => void;
103
105
  onRemove: (...args: any[]) => void;
106
+ onKeyDown: (...args: any[]) => void;
104
107
  };
105
108
  inputRef: React.RefObject<HTMLInputElement>;
106
109
  constructor(props: TagInputProps);
@@ -112,6 +112,9 @@ class TagInput extends BaseComponent {
112
112
  },
113
113
  notifyTagRemove: (v, idx) => {
114
114
  this.props.onRemove(v, idx);
115
+ },
116
+ notifyKeyDown: e => {
117
+ this.props.onKeyDown(e);
115
118
  }
116
119
  });
117
120
  }
@@ -360,6 +363,7 @@ TagInput.propTypes = {
360
363
  onInputExceed: PropTypes.func,
361
364
  onAdd: PropTypes.func,
362
365
  onRemove: PropTypes.func,
366
+ onKeyDown: PropTypes.func,
363
367
  size: PropTypes.oneOf(strings.SIZE_SET),
364
368
  validateStatus: PropTypes.oneOf(strings.STATUS),
365
369
  prefix: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
@@ -382,6 +386,7 @@ TagInput.defaultProps = {
382
386
  onExceed: noop,
383
387
  onInputExceed: noop,
384
388
  onAdd: noop,
385
- onRemove: noop
389
+ onRemove: noop,
390
+ onKeyDown: noop
386
391
  };
387
392
  export default TagInput;
@@ -1,7 +1,7 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import BaseComponent, { BaseProps } from '../_base/baseComponent';
3
3
  import ScrollItem from '../scrollList/scrollItem';
4
- import ComboboxFoundation from '@douyinfe/semi-foundation/lib/es/timePicker/ComboxFoundation';
4
+ import ComboboxFoundation, { formatOption } from '@douyinfe/semi-foundation/lib/es/timePicker/ComboxFoundation';
5
5
  import { TimePickerProps } from './TimePicker';
6
6
  import { Locale } from '../locale/interface';
7
7
  export declare type ComboboxProps = Pick<TimePickerProps, 'format' | 'prefixCls' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideDisabledOptions' | 'use12Hours' | 'scrollItemProps' | 'panelFooter' | 'panelHeader'> & BaseProps & {
@@ -26,6 +26,11 @@ export interface ComboboxState {
26
26
  minuteOptions: number[];
27
27
  secondOptions: number[];
28
28
  }
29
+ export declare type FormatOptionReturn = ReturnType<typeof formatOption>;
30
+ export interface AMPMOptionItem {
31
+ value: string;
32
+ text: string;
33
+ }
29
34
  declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> {
30
35
  static propTypes: {
31
36
  format: PropTypes.Requireable<string>;
@@ -56,11 +61,12 @@ declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> {
56
61
  componentDidUpdate(prevProps: ComboboxProps, prevState: ComboboxState): void;
57
62
  componentWillUnmount(): void;
58
63
  componentDidMount(): void;
59
- cacheRefCurrent: (key: string, current: ScrollItem) => void;
64
+ cacheRefCurrent: (key: string, current: ScrollItem<FormatOptionReturn> | ScrollItem<AMPMOptionItem>) => void;
60
65
  reselect: () => void;
61
- onItemChange: ({ type, value }: {
62
- type: string;
66
+ onItemChange: ({ type, value, disabled }: {
67
+ type?: string;
63
68
  value: string;
69
+ disabled?: boolean;
64
70
  }) => void;
65
71
  onEnterSelectPanel: (range: string) => void;
66
72
  renderHourSelect(hour: number, locale: Locale['TimePicker']): JSX.Element;
@@ -44,7 +44,8 @@ class Combobox extends BaseComponent {
44
44
  this.onItemChange = _ref => {
45
45
  let {
46
46
  type,
47
- value
47
+ value,
48
+ disabled
48
49
  } = _ref;
49
50
  // eslint-disable-next-line prefer-const
50
51
  let {
@@ -49,7 +49,7 @@ export declare type TimePickerProps = {
49
49
  position?: Position;
50
50
  prefixCls?: string;
51
51
  rangeSeparator?: string;
52
- scrollItemProps?: ScrollItemProps;
52
+ scrollItemProps?: ScrollItemProps<any>;
53
53
  secondStep?: number;
54
54
  showClear?: boolean;
55
55
  size?: InputSize;
@@ -31,6 +31,7 @@ export interface TooltipProps extends BaseProps {
31
31
  content?: React.ReactNode;
32
32
  prefixCls?: string;
33
33
  onVisibleChange?: (visible: boolean) => void;
34
+ onClickOutSide?: (e: React.MouseEvent) => void;
34
35
  spacing?: number;
35
36
  showArrow?: boolean | React.ReactNode;
36
37
  zIndex?: number;
@@ -77,6 +78,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
77
78
  content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
78
79
  prefixCls: PropTypes.Requireable<string>;
79
80
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
81
+ onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
80
82
  spacing: PropTypes.Requireable<number>;
81
83
  showArrow: PropTypes.Requireable<PropTypes.ReactNodeLike>;
82
84
  zIndex: PropTypes.Requireable<number>;
@@ -105,6 +107,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
105
107
  mouseEnterDelay: 50;
106
108
  mouseLeaveDelay: 50;
107
109
  onVisibleChange: (...args: any[]) => void;
110
+ onClickOutSide: (...args: any[]) => void;
108
111
  spacing: 8;
109
112
  showArrow: boolean;
110
113
  arrowBounding: {
@@ -423,6 +423,7 @@ export default class Tooltip extends BaseComponent {
423
423
  popupEl = ReactDOM.findDOMNode(popupEl);
424
424
 
425
425
  if (el && !el.contains(e.target) && popupEl && !popupEl.contains(e.target) || this.props.clickTriggerToHide) {
426
+ this.props.onClickOutSide(e);
426
427
  cb();
427
428
  }
428
429
  };
@@ -621,6 +622,7 @@ Tooltip.propTypes = {
621
622
  content: PropTypes.node,
622
623
  prefixCls: PropTypes.string,
623
624
  onVisibleChange: PropTypes.func,
625
+ onClickOutSide: PropTypes.func,
624
626
  spacing: PropTypes.number,
625
627
  showArrow: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
626
628
  zIndex: PropTypes.number,
@@ -646,6 +648,7 @@ Tooltip.defaultProps = {
646
648
  mouseEnterDelay: numbers.MOUSE_ENTER_DELAY,
647
649
  mouseLeaveDelay: numbers.MOUSE_LEAVE_DELAY,
648
650
  onVisibleChange: noop,
651
+ onClickOutSide: noop,
649
652
  spacing: numbers.SPACING,
650
653
  showArrow: true,
651
654
  arrowBounding: numbers.ARROW_BOUNDING
@@ -22,7 +22,7 @@ export interface OnDragProps extends BasicOnDragProps {
22
22
  export interface DragEnterProps extends DragProps {
23
23
  expandedKeys?: string[];
24
24
  }
25
- export interface ExpanedOtherProps extends BasicExpandedOtherProps {
25
+ export interface ExpandedOtherProps extends BasicExpandedOtherProps {
26
26
  node: TreeNodeData;
27
27
  }
28
28
  export interface RenderFullLabelProps extends BasicRenderFullLabelProps {
@@ -57,7 +57,7 @@ export interface TreeProps extends BasicTreeProps {
57
57
  onDragStart?: (dragProps: DragProps) => void;
58
58
  onDragEnter?: (dragEnterProps: DragEnterProps) => void;
59
59
  onDrop?: (onDragProps: OnDragProps) => void;
60
- onExpand?: (expandedKeys: string[], expanedOtherProps: ExpanedOtherProps) => void;
60
+ onExpand?: (expandedKeys: string[], expandedOtherProps: ExpandedOtherProps) => void;
61
61
  onLoad?: (loadedKeys?: Set<string>, treeNode?: TreeNodeData) => void;
62
62
  onContextMenu?: (e: MouseEvent, node: TreeNodeData) => void;
63
63
  onSelect?: (selectedKeys: string, selected: boolean, selectedNode: TreeNodeData) => void;
@@ -27,16 +27,7 @@ export declare type RenderSelectedItemInMultiple = (treeNode: TreeNodeData, othe
27
27
  isRenderInTag: boolean;
28
28
  content: React.ReactNode;
29
29
  };
30
- export interface RenderSelectedItem {
31
- (treeNode: TreeNodeData): React.ReactNode;
32
- (treeNode: TreeNodeData, otherProps: {
33
- index: number | string;
34
- onClose: (tagContent: any, e: React.MouseEvent) => void;
35
- }): {
36
- isRenderInTag: boolean;
37
- content: React.ReactNode;
38
- };
39
- }
30
+ export declare type RenderSelectedItem = RenderSelectedItemInSingle | RenderSelectedItemInMultiple;
40
31
  export declare type OverrideCommonProps = 'renderFullLabel' | 'renderLabel' | 'defaultValue' | 'emptyContent' | 'filterTreeNode' | 'style' | 'treeData' | 'value' | 'onExpand';
41
32
  /**
42
33
  * Type definition description:
@@ -205,7 +196,7 @@ declare class TreeSelect extends BaseComponent<TreeSelectProps, TreeSelectState>
205
196
  renderArrow: () => JSX.Element;
206
197
  renderClearBtn: () => JSX.Element;
207
198
  renderSelection: () => JSX.Element;
208
- renderTagItem: (key: string, idx: number) => any;
199
+ renderTagItem: (key: string, idx: number) => React.ReactNode;
209
200
  renderTagInput: () => JSX.Element;
210
201
  renderInput: () => JSX.Element;
211
202
  renderEmpty: () => JSX.Element;
@@ -952,7 +952,8 @@ class TreeSelect extends BaseComponent {
952
952
  registerClickOutsideHandler: cb => {
953
953
  const clickOutsideHandler = e => {
954
954
  const optionInstance = this.optionsRef && this.optionsRef.current;
955
- const triggerDom = this.triggerRef && this.triggerRef.current;
955
+ const triggerDom = this.triggerRef && this.triggerRef.current; // eslint-disable-next-line
956
+
956
957
  const optionsDom = ReactDOM.findDOMNode(optionInstance);
957
958
  const target = e.target;
958
959
 
@@ -63,7 +63,7 @@ export default class Base extends Component<BaseTypographyProps, BaseTypographyS
63
63
  link: PropTypes.Requireable<boolean | object>;
64
64
  spacing: PropTypes.Requireable<"normal" | "extended">;
65
65
  strong: PropTypes.Requireable<boolean>;
66
- size: PropTypes.Requireable<"normal" | "small">;
66
+ size: PropTypes.Requireable<"small" | "normal">;
67
67
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
68
68
  style: PropTypes.Requireable<object>;
69
69
  className: PropTypes.Requireable<string>;
@@ -30,7 +30,7 @@ export default class Paragraph extends PureComponent<ParagraphProps> {
30
30
  underline: PropTypes.Requireable<boolean>;
31
31
  strong: PropTypes.Requireable<boolean>;
32
32
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
33
- size: PropTypes.Requireable<"normal" | "small">;
33
+ size: PropTypes.Requireable<"small" | "normal">;
34
34
  spacing: PropTypes.Requireable<"normal" | "extended">;
35
35
  style: PropTypes.Requireable<object>;
36
36
  className: PropTypes.Requireable<string>;
@@ -33,7 +33,7 @@ export default class Text extends PureComponent<TextProps> {
33
33
  link: PropTypes.Requireable<boolean | object>;
34
34
  strong: PropTypes.Requireable<boolean>;
35
35
  type: PropTypes.Requireable<"warning" | "success" | "primary" | "tertiary" | "secondary" | "danger" | "quaternary">;
36
- size: PropTypes.Requireable<"normal" | "small">;
36
+ size: PropTypes.Requireable<"small" | "normal">;
37
37
  style: PropTypes.Requireable<object>;
38
38
  className: PropTypes.Requireable<string>;
39
39
  code: PropTypes.Requireable<boolean>;
@@ -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<4 | 2 | 1 | 3 | 5 | 6>;
40
+ heading: PropTypes.Requireable<1 | 2 | 3 | 4 | 5 | 6>;
41
41
  style: PropTypes.Requireable<object>;
42
42
  className: PropTypes.Requireable<string>;
43
43
  component: PropTypes.Requireable<string>;
@@ -1,25 +1,10 @@
1
- import { PureComponent, ReactNode, MouseEventHandler, MouseEvent, CSSProperties } from 'react';
1
+ import { PureComponent, ReactNode, MouseEvent, CSSProperties } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { Locale } from '../locale/interface';
4
- export interface FileCardProps {
4
+ import { RenderFileItemProps } from './interface';
5
+ export interface FileCardProps extends RenderFileItemProps {
5
6
  className?: string;
6
- disabled?: boolean;
7
- listType?: 'picture' | 'list';
8
- name?: string;
9
- onPreviewClick?: MouseEventHandler<HTMLDivElement>;
10
- onRemove?: (props: FileCardProps, e: MouseEvent) => void;
11
- onReplace?: (props: FileCardProps, e: MouseEvent) => void;
12
- onRetry?: (props: FileCardProps, e: MouseEvent) => void;
13
- percent?: number;
14
- preview?: boolean;
15
- previewFile?: (props: FileCardProps) => ReactNode;
16
- showReplace?: boolean;
17
- showRetry?: boolean;
18
- size?: string;
19
- status?: string;
20
7
  style?: CSSProperties;
21
- url?: string;
22
- validateMessage?: ReactNode;
23
8
  }
24
9
  declare class FileCard extends PureComponent<FileCardProps> {
25
10
  static propTypes: {
@@ -1,65 +1,12 @@
1
1
  import { ReactNode, CSSProperties, RefObject, ChangeEvent, DragEvent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import UploadFoundation, { BaseFileItem, UploadAdapter, BeforeUploadObjectResult, AfterUploadResult } from '@douyinfe/semi-foundation/lib/es/upload/foundation';
4
- import { strings } from '@douyinfe/semi-foundation/lib/es/upload/constants';
3
+ import UploadFoundation, { UploadAdapter, BeforeUploadObjectResult, AfterUploadResult } from '@douyinfe/semi-foundation/lib/es/upload/foundation';
5
4
  import FileCard from './fileCard';
6
5
  import BaseComponent, { ValidateStatus } from '../_base/baseComponent';
7
- import { ArrayElement } from '../_base/base';
6
+ import { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError } from './interface';
8
7
  import { Locale } from '../locale/interface';
9
8
  import '@douyinfe/semi-foundation/lib/es/upload/upload.css';
10
- export { BeforeUploadObjectResult, AfterUploadResult };
11
- export interface FileItem extends BaseFileItem {
12
- validateMessage?: ReactNode;
13
- }
14
- export declare type UploadListType = ArrayElement<typeof strings.LIST_TYPE>;
15
- export declare type PromptPositionType = ArrayElement<typeof strings.PROMPT_POSITION>;
16
- export interface RenderFileItemProps extends FileItem {
17
- previewFile: (fileItem: FileItem) => ReactNode;
18
- listType: UploadListType;
19
- onRemove: () => void;
20
- onRetry: () => void;
21
- onReplace: () => void;
22
- key: string;
23
- showRetry: boolean;
24
- showReplace: boolean;
25
- style: CSSProperties;
26
- disabled: boolean;
27
- onPreviewClick: () => void;
28
- }
29
- export interface BeforeUploadProps {
30
- file: FileItem;
31
- fileList: Array<FileItem>;
32
- }
33
- export interface AfterUploadProps {
34
- file: FileItem;
35
- fileList: Array<FileItem>;
36
- response: any;
37
- }
38
- export interface OnChangeProps {
39
- fileList: Array<FileItem>;
40
- currentFile: FileItem;
41
- }
42
- export interface customRequestArgs {
43
- fileName: string;
44
- data: Record<string, any>;
45
- file: FileItem;
46
- fileInstance: File;
47
- onProgress: (event: {
48
- total: number;
49
- loaded: number;
50
- }) => any;
51
- onError: (userXhr: {
52
- status?: number;
53
- }, e: Event) => any;
54
- onSuccess: (response: any, e: Event) => any;
55
- withCredentials: boolean;
56
- action: string;
57
- }
58
- export interface CustomError extends Error {
59
- status: number;
60
- method: string;
61
- url: string;
62
- }
9
+ export { FileItem, RenderFileItemProps, UploadListType, PromptPositionType, BeforeUploadProps, AfterUploadProps, OnChangeProps, customRequestArgs, CustomError, BeforeUploadObjectResult, AfterUploadResult };
63
10
  export interface UploadProps {
64
11
  accept?: string;
65
12
  action: string;
@@ -103,7 +50,7 @@ export interface UploadProps {
103
50
  onRetry?: (fileItem: FileItem) => void;
104
51
  onSizeError?: (file: File, fileList: Array<FileItem>) => void;
105
52
  onSuccess?: (responseBody: any, file: File, fileList: Array<FileItem>) => void;
106
- previewFile?: (fileItem: FileItem) => ReactNode;
53
+ previewFile?: (renderFileItemProps: RenderFileItemProps) => ReactNode;
107
54
  prompt?: ReactNode;
108
55
  promptPosition?: PromptPositionType;
109
56
  renderFileItem?: (renderFileItemProps: RenderFileItemProps) => ReactNode;