@douyinfe/semi-ui 2.0.9-alpha.0 → 2.0.9-alpha.2

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 (46) hide show
  1. package/dist/umd/semi-ui.js +629 -544
  2. package/dist/umd/semi-ui.js.map +1 -1
  3. package/dist/umd/semi-ui.min.js +1 -1
  4. package/dist/umd/semi-ui.min.js.map +1 -1
  5. package/lib/es/autoComplete/index.d.ts +36 -11
  6. package/lib/es/calendar/dayCalendar.js +1 -1
  7. package/lib/es/calendar/monthCalendar.js +1 -1
  8. package/lib/es/calendar/rangeCalendar.js +1 -1
  9. package/lib/es/calendar/weekCalendar.js +1 -1
  10. package/lib/es/datePicker/yearAndMonth.d.ts +2 -2
  11. package/lib/es/form/baseForm.d.ts +1 -1
  12. package/lib/es/form/baseForm.js +1 -2
  13. package/lib/es/form/field.d.ts +1 -1
  14. package/lib/es/form/hoc/withField.js +5 -1
  15. package/lib/es/locale/localeConsumer.d.ts +5 -5
  16. package/lib/es/modal/useModal/HookModal.d.ts +3 -2
  17. package/lib/es/modal/useModal/index.js +1 -1
  18. package/lib/es/navigation/index.d.ts +1 -1
  19. package/lib/es/notification/index.d.ts +1 -1
  20. package/lib/es/notification/index.js +1 -1
  21. package/lib/es/rating/index.d.ts +1 -1
  22. package/lib/es/resizeObserver/index.js +1 -0
  23. package/lib/es/scrollList/scrollItem.d.ts +8 -8
  24. package/lib/es/select/index.js +2 -2
  25. package/lib/es/select/option.js +2 -2
  26. package/lib/es/select/utils.js +2 -4
  27. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -1
  28. package/lib/es/sideSheet/index.d.ts +3 -3
  29. package/lib/es/steps/basicSteps.js +2 -2
  30. package/lib/es/steps/fillSteps.js +3 -3
  31. package/lib/es/steps/navSteps.js +2 -2
  32. package/lib/es/tabs/index.js +5 -5
  33. package/lib/es/timePicker/Combobox.d.ts +10 -4
  34. package/lib/es/timePicker/Combobox.js +2 -1
  35. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  36. package/lib/es/toast/index.d.ts +1 -1
  37. package/lib/es/treeSelect/index.js +2 -1
  38. package/lib/es/typography/base.d.ts +1 -1
  39. package/lib/es/typography/paragraph.d.ts +1 -1
  40. package/lib/es/typography/text.d.ts +1 -1
  41. package/lib/es/typography/title.d.ts +1 -1
  42. package/lib/es/upload/fileCard.d.ts +3 -18
  43. package/lib/es/upload/index.d.ts +4 -57
  44. package/lib/es/upload/interface.d.ts +56 -0
  45. package/lib/es/upload/interface.js +1 -0
  46. package/package.json +3 -3
@@ -16,15 +16,16 @@ import { Motion } from '../_base/base';
16
16
  export interface BaseDataItem extends DataItem {
17
17
  label?: React.ReactNode;
18
18
  }
19
- export interface AutoCompleteProps<Item extends BaseDataItem = BaseDataItem> {
19
+ export declare type AutoCompleteItems = BaseDataItem | string | number;
20
+ export interface AutoCompleteProps<T extends AutoCompleteItems> {
20
21
  autoAdjustOverflow?: boolean;
21
22
  autoFocus?: boolean;
22
23
  className?: string;
23
24
  children?: React.ReactNode;
24
- data?: Array<string | Item | number>;
25
+ data?: T[];
25
26
  disabled?: boolean;
26
27
  defaultOpen?: boolean;
27
- defaultValue?: string | number | Item;
28
+ defaultValue?: T;
28
29
  defaultActiveFirstOption?: boolean;
29
30
  dropdownMatchSelectWidth?: boolean;
30
31
  dropdownClassName?: string;
@@ -41,7 +42,7 @@ export interface AutoCompleteProps<Item extends BaseDataItem = BaseDataItem> {
41
42
  onBlur?: (e: React.FocusEvent) => void;
42
43
  onChange?: (value: string | number) => void;
43
44
  onSearch?: (inputValue: string) => void;
44
- onSelect?: (value: string | Item | number) => void;
45
+ onSelect?: (value: T) => void;
45
46
  onClear?: () => void;
46
47
  onChangeWithObject?: boolean;
47
48
  onSelectWithObject?: boolean;
@@ -49,8 +50,8 @@ export interface AutoCompleteProps<Item extends BaseDataItem = BaseDataItem> {
49
50
  prefix?: React.ReactNode;
50
51
  placeholder?: string;
51
52
  position?: Position;
52
- renderItem?: (option: Item | string) => React.ReactNode;
53
- renderSelectedItem?: (option: Item) => string;
53
+ renderItem?: (option: T) => React.ReactNode;
54
+ renderSelectedItem?: (option: T) => string;
54
55
  size?: 'small' | 'default' | 'large';
55
56
  style?: React.CSSProperties;
56
57
  suffix?: React.ReactNode;
@@ -74,7 +75,7 @@ interface AutoCompleteState {
74
75
  rePosKey: number;
75
76
  keyboardEventSet?: KeyboardEventType;
76
77
  }
77
- declare class AutoComplete extends BaseComponent<AutoCompleteProps, AutoCompleteState> {
78
+ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<AutoCompleteProps<T>, AutoCompleteState> {
78
79
  static propTypes: {
79
80
  autoFocus: PropTypes.Requireable<boolean>;
80
81
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
@@ -118,15 +119,39 @@ declare class AutoComplete extends BaseComponent<AutoCompleteProps, AutoComplete
118
119
  zIndex: PropTypes.Requireable<number>;
119
120
  };
120
121
  static Option: typeof Option;
121
- static defaultProps: Partial<AutoCompleteProps>;
122
+ static defaultProps: {
123
+ stopPropagation: boolean;
124
+ motion: boolean;
125
+ zIndex: number;
126
+ position: "bottomLeft";
127
+ data: [];
128
+ showClear: boolean;
129
+ disabled: boolean;
130
+ size: "default";
131
+ onFocus: (...args: any[]) => void;
132
+ onSearch: (...args: any[]) => void;
133
+ onClear: (...args: any[]) => void;
134
+ onBlur: (...args: any[]) => void;
135
+ onSelect: (...args: any[]) => void;
136
+ onChange: (...args: any[]) => void;
137
+ onSelectWithObject: boolean;
138
+ onDropdownVisibleChange: (...args: any[]) => void;
139
+ defaultActiveFirstOption: boolean;
140
+ dropdownMatchSelectWidth: boolean;
141
+ loading: boolean;
142
+ maxHeight: number;
143
+ validateStatus: "default";
144
+ autoFocus: boolean;
145
+ emptyContent: null;
146
+ };
122
147
  triggerRef: React.RefObject<HTMLDivElement> | null;
123
148
  optionsRef: React.RefObject<HTMLDivElement> | null;
124
149
  private clickOutsideHandler;
125
- constructor(props: AutoCompleteProps);
126
- get adapter(): AutoCompleteAdapter<AutoCompleteProps, AutoCompleteState>;
150
+ constructor(props: AutoCompleteProps<T>);
151
+ get adapter(): AutoCompleteAdapter<AutoCompleteProps<T>, AutoCompleteState>;
127
152
  componentDidMount(): void;
128
153
  componentWillUnmount(): void;
129
- componentDidUpdate(prevProps: AutoCompleteProps, prevState: AutoCompleteState): void;
154
+ componentDidUpdate(prevProps: AutoCompleteProps<T>, prevState: AutoCompleteState): void;
130
155
  onSelect: (option: StateOptionItem, optionIndex: number, e: React.MouseEvent | React.KeyboardEvent) => void;
131
156
  onSearch: (value: string) => void;
132
157
  onBlur: (e: React.FocusEvent) => void;
@@ -95,7 +95,7 @@ export default class DayCalendar extends BaseComponent {
95
95
  },
96
96
  setParsedEvents: parsedEvents => {
97
97
  this.setState({
98
- parsedEvents
98
+ parsedEvents: parsedEvents
99
99
  });
100
100
  },
101
101
  cacheEventKeys: cachedKeys => {
@@ -331,7 +331,7 @@ export default class monthCalendar extends BaseComponent {
331
331
  },
332
332
  setParsedEvents: parsedEvents => {
333
333
  this.setState({
334
- parsedEvents
334
+ parsedEvents: parsedEvents
335
335
  });
336
336
  },
337
337
  setItemLimit: itemLimit => {
@@ -206,7 +206,7 @@ export default class RangeCalendar extends BaseComponent {
206
206
  },
207
207
  setParsedEvents: parsedEvents => {
208
208
  this.setState({
209
- parsedEvents
209
+ parsedEvents: parsedEvents
210
210
  });
211
211
  },
212
212
  cacheEventKeys: cachedKeys => {
@@ -208,7 +208,7 @@ export default class WeekCalendar extends BaseComponent {
208
208
  },
209
209
  setParsedEvents: parsedEvents => {
210
210
  this.setState({
211
- parsedEvents
211
+ parsedEvents: parsedEvents
212
212
  });
213
213
  },
214
214
  cacheEventKeys: cachedKeys => {
@@ -32,8 +32,8 @@ declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonth
32
32
  onSelect: (...args: any[]) => void;
33
33
  };
34
34
  foundation: YearAndMonthFoundation;
35
- yearRef: React.RefObject<ScrollItem>;
36
- monthRef: React.RefObject<ScrollItem>;
35
+ yearRef: React.RefObject<ScrollItem<YearScrollItem>>;
36
+ monthRef: React.RefObject<ScrollItem<MonthScrollItem>>;
37
37
  constructor(props: YearAndMonthProps);
38
38
  get adapter(): YearAndMonthAdapter;
39
39
  static getDerivedStateFromProps(props: YearAndMonthProps, state: YearAndMonthState): Partial<YearAndMonthFoundationState>;
@@ -128,7 +128,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
128
128
  children?: React.ReactNode;
129
129
  }), import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
130
130
  static Rating: React.ComponentType<import("utility-types").Subtract<import("../rating").RatingProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
131
- static AutoComplete: React.ComponentType<import("utility-types").Subtract<import("../autoComplete").AutoCompleteProps<import("../autoComplete").BaseDataItem>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
131
+ static AutoComplete: React.ComponentType<import("utility-types").Subtract<import("../autoComplete").AutoCompleteProps<import("../autoComplete").AutoCompleteItems>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
132
132
  static Upload: React.ComponentType<import("utility-types").Subtract<import("../upload").UploadProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
133
133
  static TagInput: React.ComponentType<import("utility-types").Subtract<import("../tagInput").TagInputProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
134
134
  static Slot: (props: import("./slot").SlotProps) => JSX.Element;
@@ -49,8 +49,7 @@ class Form extends BaseComponent {
49
49
  this.state = {
50
50
  formId: getUuidv4()
51
51
  };
52
- warning( // @ts-ignore special usage
53
- props.component && props.render, '[Semi Form] You should not use <Form component> and <Form render> in ths same time; <Form render> will be ignored');
52
+ warning(Boolean(props.component && props.render), '[Semi Form] You should not use <Form component> and <Form render> in ths same time; <Form render> will be ignored');
54
53
  warning(props.component && props.children && !isEmptyChildren(props.children), '[Semi Form] You should not use <Form component> and <Form>{children}</Form> in ths same time; <Form>{children}</Form> will be ignored');
55
54
  warning(props.render && props.children && !isEmptyChildren(props.children), '[Semi Form] You should not use <Form render> and <Form>{children}</Form> in ths same time; <Form>{children}</Form> will be ignored');
56
55
  this.submit = _bindInstanceProperty(_context = this.submit).call(_context, this);
@@ -90,7 +90,7 @@ declare const FormCascader: import("react").ComponentType<import("utility-types"
90
90
  children?: import("react").ReactNode;
91
91
  }), import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
92
92
  declare const FormRating: import("react").ComponentType<import("utility-types").Subtract<import("../rating/index").RatingProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
93
- declare const FormAutoComplete: import("react").ComponentType<import("utility-types").Subtract<import("../autoComplete/index").AutoCompleteProps<import("../autoComplete/index").BaseDataItem>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
93
+ declare const FormAutoComplete: import("react").ComponentType<import("utility-types").Subtract<import("../autoComplete/index").AutoCompleteProps<import("../autoComplete/index").AutoCompleteItems>, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
94
94
  declare const FormUpload: import("react").ComponentType<import("utility-types").Subtract<import("../upload/index").UploadProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
95
95
  declare const FormTagInput: import("react").ComponentType<import("utility-types").Subtract<import("../tagInput/index").TagInputProps, import("./interface").CommonexcludeType> & import("./interface").CommonFieldProps>;
96
96
  export { FormInput, FormInputNumber, FormTextArea, FormSelect, FormCheckboxGroup, FormCheckbox, FormRadioGroup, FormRadio, FormDatePicker, FormSwitch, FormSlider, FormTimePicker, FormTreeSelect, FormCascader, FormRating, FormAutoComplete, FormUpload, FormTagInput };
@@ -507,10 +507,14 @@ function withField(Component, opts) {
507
507
  return useMemo(() => FieldComponent, [...shouldUpdate]);
508
508
  } else {
509
509
  // Some Custom Component with inner state shouldn't be memo, otherwise the component will not updated when the internal state is updated
510
- // Fixed issue 328
511
510
  return FieldComponent;
512
511
  }
513
512
  };
513
+ /**
514
+ * Reasons for using ts-igonre: skip strict check of ref
515
+ */
516
+ // @ts-ignore-next-line
517
+
514
518
 
515
519
  SemiField = /*#__PURE__*/forwardRef(SemiField);
516
520
  SemiField.displayName = getDisplayName(Component);
@@ -2,12 +2,12 @@ import React, { Component } from 'react';
2
2
  import { Locale as dateFns } from 'date-fns';
3
3
  import PropTypes from 'prop-types';
4
4
  import { Locale } from './interface';
5
- declare type ChildrenRender = (componentLocal: Locale[keyof Locale], localeCode: string, dateFnsLocale: dateFns) => React.ReactNode;
6
- export interface LocaleConsumerProps {
5
+ declare type ChildrenRender<T> = (componentLocal: T, localeCode: string, dateFnsLocale: dateFns) => React.ReactNode;
6
+ export interface LocaleConsumerProps<T> {
7
7
  componentName: string;
8
- children?: ChildrenRender;
8
+ children?: ChildrenRender<T>;
9
9
  }
10
- export default class LocaleConsumer extends Component<LocaleConsumerProps> {
10
+ export default class LocaleConsumer<T> extends Component<LocaleConsumerProps<T>> {
11
11
  static propTypes: {
12
12
  componentName: PropTypes.Validator<string>;
13
13
  children: PropTypes.Requireable<any>;
@@ -15,7 +15,7 @@ export default class LocaleConsumer extends Component<LocaleConsumerProps> {
15
15
  static defaultProps: {
16
16
  componentName: string;
17
17
  };
18
- renderChildren(localeData: Locale, children: ChildrenRender): React.ReactNode;
18
+ renderChildren(localeData: Locale, children: ChildrenRender<T>): React.ReactNode;
19
19
  render(): JSX.Element;
20
20
  }
21
21
  export {};
@@ -6,8 +6,9 @@ interface HookModalProps {
6
6
  config: ConfirmProps;
7
7
  motion?: Motion;
8
8
  }
9
- declare const _default: React.ForwardRefExoticComponent<HookModalProps & React.RefAttributes<{
9
+ export interface HookModalRef {
10
10
  destroy: () => void;
11
11
  update: (newConfig: ConfirmProps) => void;
12
- }>>;
12
+ }
13
+ declare const _default: React.ForwardRefExoticComponent<HookModalProps & React.RefAttributes<HookModalRef>>;
13
14
  export default _default;
@@ -1,7 +1,7 @@
1
1
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
2
2
  import React from 'react';
3
3
  import HookModal from './HookModal';
4
- import { withConfirm, withInfo, withSuccess, withError, withWarning } from '../confirm';
4
+ import { withConfirm, withError, withInfo, withSuccess, withWarning } from '../confirm';
5
5
  let uuid = 0;
6
6
 
7
7
  function usePatchElement() {
@@ -7,7 +7,7 @@ import Item, { NavItemProps } from './Item';
7
7
  import Footer, { NavFooterProps } from './Footer';
8
8
  import Header, { NavHeaderProps } from './Header';
9
9
  import '@douyinfe/semi-foundation/lib/es/navigation/navigation.css';
10
- import { Motion } from '_base/base';
10
+ import { Motion } from '../_base/base';
11
11
  export { CollapseButtonProps } from './CollapseButton';
12
12
  export { NavFooterProps } from './Footer';
13
13
  export { NavHeaderProps } from './Header';
@@ -43,7 +43,7 @@ declare class NotificationList extends BaseComponent<NotificationListProps, Noti
43
43
  static destroyAll(): void;
44
44
  static config(opts: ConfigProps): void;
45
45
  add: (noticeOpts: NoticeProps) => any;
46
- remove: (id: string) => void;
46
+ remove: (id: string | number) => void;
47
47
  destroyAll: () => any;
48
48
  renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[]) => JSX.Element;
49
49
  setPosInStyle(noticeInstance: NoticeInstance): {};
@@ -39,7 +39,7 @@ class NotificationList extends BaseComponent {
39
39
  this.add = noticeOpts => this.foundation.addNotice(noticeOpts);
40
40
 
41
41
  this.remove = id => {
42
- this.foundation.removeNotice(id);
42
+ this.foundation.removeNotice(String(id));
43
43
  };
44
44
 
45
45
  this.destroyAll = () => this.foundation.destroyAll();
@@ -23,7 +23,7 @@ export interface RatingProps {
23
23
  onFocus?: (e: React.FocusEvent) => void;
24
24
  onBlur?: (e: React.FocusEvent) => void;
25
25
  onKeyDown?: (e: React.KeyboardEvent) => void;
26
- onClick?: (e: React.MouseEvent, index: number) => void;
26
+ onClick?: (e: React.MouseEvent | React.KeyboardEvent, index: number) => void;
27
27
  autoFocus?: boolean;
28
28
  size?: 'small' | 'default' | number;
29
29
  tooltips?: string[];
@@ -12,6 +12,7 @@ export default class ReactResizeObserver extends BaseComponent {
12
12
  // using findDOMNode for two reasons:
13
13
  // 1. cloning to insert a ref is unwieldy and not performant.
14
14
  // 2. ensure that we resolve to an actual DOM node (instead of any JSX ref instance).
15
+ // eslint-disable-next-line
15
16
  return findDOMNode(this.childNode || this);
16
17
  } catch (error) {
17
18
  // swallow error if findDOMNode is run on unmounted component.
@@ -4,12 +4,12 @@ import BaseComponent from '../_base/baseComponent';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Item, ScrollItemAdapter } from '@douyinfe/semi-foundation/lib/es/scrollList/itemFoundation';
6
6
  import { Motion } from '../_base/base';
7
- export interface ScrollItemProps {
7
+ export interface ScrollItemProps<T extends Item> {
8
8
  mode?: string;
9
9
  cycled?: boolean;
10
- list?: Item[];
10
+ list?: T[];
11
11
  selectedIndex?: number;
12
- onSelect?: (data: Item) => void;
12
+ onSelect?: (data: T) => void;
13
13
  transform?: (value: any, text: string) => string;
14
14
  className?: string;
15
15
  motion?: Motion;
@@ -20,7 +20,7 @@ export interface ScrollItemState {
20
20
  prependCount: number;
21
21
  appendCount: number;
22
22
  }
23
- export default class ScrollItem extends BaseComponent<ScrollItemProps, ScrollItemState> {
23
+ export default class ScrollItem<T extends Item> extends BaseComponent<ScrollItemProps<T>, ScrollItemState> {
24
24
  static propTypes: {
25
25
  mode: PropTypes.Requireable<string>;
26
26
  cycled: PropTypes.Requireable<boolean>;
@@ -36,7 +36,7 @@ export default class ScrollItem extends BaseComponent<ScrollItemProps, ScrollIte
36
36
  static defaultProps: {
37
37
  selectedIndex: number;
38
38
  motion: boolean;
39
- list: Item[];
39
+ list: readonly [];
40
40
  onSelect: (...args: any[]) => void;
41
41
  cycled: boolean;
42
42
  mode: string;
@@ -51,9 +51,9 @@ export default class ScrollItem extends BaseComponent<ScrollItemProps, ScrollIte
51
51
  throttledAdjustList: import("lodash").DebouncedFunc<(e: any, nearestNode: any) => void>;
52
52
  debouncedSelect: import("lodash").DebouncedFunc<(e: any, nearestNode: any) => void>;
53
53
  constructor(props?: {});
54
- get adapter(): ScrollItemAdapter<ScrollItemProps, ScrollItemState>;
54
+ get adapter(): ScrollItemAdapter<ScrollItemProps<T>, ScrollItemState, T>;
55
55
  componentDidMount(): void;
56
- componentDidUpdate(prevProps: ScrollItemProps): void;
56
+ componentDidUpdate(prevProps: ScrollItemProps<T>): void;
57
57
  _cacheNode: (name: string, node: Element) => Element;
58
58
  _cacheSelectedNode: (selectedNode: Element) => Element;
59
59
  _cacheWillSelectNode: (node: Element) => Element;
@@ -74,7 +74,7 @@ export default class ScrollItem extends BaseComponent<ScrollItemProps, ScrollIte
74
74
  indexIsSame: (index1: number, index2: number) => boolean;
75
75
  isDisabledIndex: (index: number) => boolean;
76
76
  isDisabledNode: (node: Element) => boolean;
77
- isDisabledData: (data: Item) => boolean;
77
+ isDisabledData: (data: T) => boolean;
78
78
  isWheelMode: () => boolean;
79
79
  addClassToNode: (selectedNode: Element, selectedCls?: string) => void;
80
80
  getIndexByNode: (node: Element) => number;
@@ -25,7 +25,7 @@ import BaseComponent from '../_base/baseComponent';
25
25
  import { isEqual, isString, noop } from 'lodash-es';
26
26
  import Tag from '../tag/index';
27
27
  import TagGroup from '../tag/group';
28
- import LocaleCosumer from '../locale/localeConsumer';
28
+ import LocaleConsumer from '../locale/localeConsumer';
29
29
  import Popover from '../popover/index';
30
30
  import { numbers as popoverNumbers } from '@douyinfe/semi-foundation/lib/es/popover/constants';
31
31
  import { FixedSizeList as List } from 'react-window';
@@ -474,7 +474,7 @@ class Select extends BaseComponent {
474
474
  }, option, {
475
475
  focused: isFocused,
476
476
  style: style
477
- }), /*#__PURE__*/React.createElement(LocaleCosumer, {
477
+ }), /*#__PURE__*/React.createElement(LocaleConsumer, {
478
478
  componentName: "Select"
479
479
  }, locale => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
480
480
  className: "".concat(prefixcls, "-create-tips")
@@ -20,7 +20,7 @@ import classNames from 'classnames';
20
20
  import PropTypes from 'prop-types';
21
21
  import { isString } from 'lodash-es';
22
22
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/select/constants';
23
- import LocaleCosumer from '../locale/localeConsumer';
23
+ import LocaleConsumer from '../locale/localeConsumer';
24
24
  import { IconTick } from '@douyinfe/semi-icons';
25
25
  import { getHighLightTextHTML } from '../_utils/index';
26
26
 
@@ -97,7 +97,7 @@ class Option extends PureComponent {
97
97
  return null;
98
98
  }
99
99
 
100
- return /*#__PURE__*/React.createElement(LocaleCosumer, {
100
+ return /*#__PURE__*/React.createElement(LocaleConsumer, {
101
101
  componentName: "Select"
102
102
  }, locale => /*#__PURE__*/React.createElement("div", {
103
103
  className: optionClassName
@@ -41,8 +41,6 @@ const generateOption = (child, parent) => {
41
41
  };
42
42
 
43
43
  const getOptionsFromGroup = selectChildren => {
44
- var _context;
45
-
46
44
  let optionGroups = [];
47
45
  let options = [];
48
46
  const emptyGroup = {
@@ -52,8 +50,8 @@ const getOptionsFromGroup = selectChildren => {
52
50
  }; // avoid null
53
51
  // eslint-disable-next-line max-len
54
52
 
55
- const childNodes = _filterInstanceProperty(_context = React.Children.toArray(selectChildren)).call(_context, childNode => childNode && childNode.props);
56
-
53
+ let childNodes = React.Children.toArray(selectChildren);
54
+ childNodes = _filterInstanceProperty(childNodes).call(childNodes, childNode => childNode && childNode.props);
57
55
  let type = '';
58
56
 
59
57
  _forEachInstanceProperty(childNodes).call(childNodes, child => {
@@ -1,7 +1,7 @@
1
1
  import React, { CSSProperties } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface SideSheetContentProps {
4
- onClose?: (e: React.MouseEvent | MouseEvent) => void;
4
+ onClose?: (e: React.MouseEvent) => void;
5
5
  mask?: boolean;
6
6
  maskStyle?: CSSProperties;
7
7
  maskClosable?: boolean;
@@ -13,7 +13,7 @@ export interface SideSheetReactProps extends SideSheetProps {
13
13
  title?: React.ReactNode;
14
14
  footer?: React.ReactNode;
15
15
  children?: React.ReactNode;
16
- onCancel?: (e: React.MouseEvent) => void;
16
+ onCancel?: (e: React.MouseEvent | React.KeyboardEvent) => void;
17
17
  }
18
18
  export { SideSheetState };
19
19
  export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSheetState> {
@@ -52,8 +52,8 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
52
52
  componentDidMount(): void;
53
53
  componentDidUpdate(prevProps: SideSheetReactProps, prevState: SideSheetState, snapshot: any): void;
54
54
  componentWillUnmount(): void;
55
- handleCancel: (e: MouseEvent) => void;
56
- handleKeyDown: (e: MouseEvent) => void;
55
+ handleCancel: (e: React.MouseEvent) => void;
56
+ handleKeyDown: (e: KeyboardEvent) => void;
57
57
  renderContent(): JSX.Element;
58
58
  render(): JSX.Element;
59
59
  }
@@ -2,7 +2,7 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
2
2
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
3
3
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
4
4
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
- import React, { cloneElement, Children, useMemo } from 'react';
5
+ import React, { cloneElement, Children, useMemo, isValidElement } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import cls from 'classnames';
8
8
  import { stepsClasses as css } from '@douyinfe/semi-foundation/lib/es/steps/constants';
@@ -26,7 +26,7 @@ const Steps = props => {
26
26
  const inner = useMemo(() => {
27
27
  var _context;
28
28
 
29
- const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => Boolean(c));
29
+ const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => /*#__PURE__*/isValidElement(c));
30
30
 
31
31
  const content = _mapInstanceProperty(Children).call(Children, filteredChildren, (child, index) => {
32
32
  if (!child) {
@@ -2,7 +2,7 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
2
2
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
3
3
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
4
4
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
- import React, { cloneElement, Children, useMemo } from 'react';
5
+ import React, { cloneElement, Children, useMemo, isValidElement } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import cls from 'classnames';
8
8
  import { stepsClasses as css } from '@douyinfe/semi-foundation/lib/es/steps/constants';
@@ -25,7 +25,7 @@ const Steps = props => {
25
25
  const inner = useMemo(() => {
26
26
  var _context;
27
27
 
28
- const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => Boolean(c));
28
+ const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => /*#__PURE__*/isValidElement(c));
29
29
 
30
30
  const colStyle = direction === 'vertical' ? null : {
31
31
  width: "".concat(100 / filteredChildren.length, "%")
@@ -69,7 +69,7 @@ const Steps = props => {
69
69
  });
70
70
 
71
71
  return content;
72
- }, [children, initial, prefixCls, direction, status, current]);
72
+ }, [children, initial, prefixCls, direction, status, current, onChange]);
73
73
  const wrapperCls = cls(className, {
74
74
  [prefixCls]: true,
75
75
  [_concatInstanceProperty(_context2 = "".concat(prefixCls, "-")).call(_context2, direction)]: true
@@ -2,7 +2,7 @@ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/insta
2
2
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
3
3
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
4
4
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
5
- import React, { cloneElement, Children, useMemo } from 'react';
5
+ import React, { cloneElement, Children, useMemo, isValidElement } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import cls from 'classnames';
8
8
  import { stepsClasses as css } from '@douyinfe/semi-foundation/lib/es/steps/constants';
@@ -23,7 +23,7 @@ const Steps = props => {
23
23
  const inner = useMemo(() => {
24
24
  var _context;
25
25
 
26
- const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => Boolean(c));
26
+ const filteredChildren = _filterInstanceProperty(_context = Children.toArray(children)).call(_context, c => /*#__PURE__*/isValidElement(c));
27
27
 
28
28
  const total = filteredChildren.length;
29
29
 
@@ -19,7 +19,7 @@ var __rest = this && this.__rest || function (s, e) {
19
19
  return t;
20
20
  };
21
21
 
22
- import React, { createRef } from 'react';
22
+ import React, { createRef, isValidElement } from 'react';
23
23
  import cls from 'classnames';
24
24
  import PropTypes from 'prop-types';
25
25
  import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/tabs/constants';
@@ -79,7 +79,7 @@ class Tabs extends BaseComponent {
79
79
  }
80
80
 
81
81
  return _filterInstanceProperty(_context = React.Children.toArray(children)).call(_context, pane => {
82
- if (pane && pane.type && pane.type.isTabPane) {
82
+ if ( /*#__PURE__*/isValidElement(pane) && pane.type && pane.type.isTabPane) {
83
83
  return pane.props.itemKey === activeKey;
84
84
  }
85
85
 
@@ -155,7 +155,7 @@ class Tabs extends BaseComponent {
155
155
  children
156
156
  } = this.props;
157
157
  let activeKey = '';
158
- const list = tabList ? tabList : _mapInstanceProperty(_context3 = React.Children.toArray(children)).call(_context3, child => child.props);
158
+ const list = tabList ? tabList : _mapInstanceProperty(_context3 = React.Children.toArray(children)).call(_context3, child => /*#__PURE__*/isValidElement(child) ? child.props : null);
159
159
 
160
160
  _forEachInstanceProperty(list).call(list, item => {
161
161
  if (item && !activeKey && !item.disabled) {
@@ -182,9 +182,9 @@ class Tabs extends BaseComponent {
182
182
  var _context4, _context5;
183
183
 
184
184
  // 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));
185
+ const prevChildrenProps = _mapInstanceProperty(_context4 = React.Children.toArray(prevProps.children)).call(_context4, child => pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
186
186
 
187
- const nowChildrenProps = _mapInstanceProperty(_context5 = React.Children.toArray(this.props.children)).call(_context5, child => pick(child.props, panePickKeys));
187
+ const nowChildrenProps = _mapInstanceProperty(_context5 = React.Children.toArray(this.props.children)).call(_context5, child => pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
188
188
 
189
189
  const isTabListType = this.props.tabList || prevProps.tabList;
190
190
 
@@ -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;
@@ -4,7 +4,7 @@ import { ToastListAdapter, ToastListProps, ToastListState } from '@douyinfe/semi
4
4
  import '@douyinfe/semi-foundation/lib/es/toast/toast.css';
5
5
  import useToast from './useToast';
6
6
  import { ConfigProps, ToastInstance, ToastProps, ToastState } from '@douyinfe/semi-foundation/lib/es/toast/toastFoundation';
7
- import { Motion } from '_base/base';
7
+ import { Motion } from '../_base/base';
8
8
  export { ToastTransitionProps } from './ToastTransition';
9
9
  export interface ToastReactProps extends ToastProps {
10
10
  style?: CSSProperties;
@@ -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