@douyinfe/semi-ui 2.44.0 → 2.45.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/css/semi.css +8 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +113 -65
  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/cjs/datePicker/datePicker.d.ts +1 -1
  8. package/lib/cjs/datePicker/datePicker.js +1 -1
  9. package/lib/cjs/dropdown/index.d.ts +1 -1
  10. package/lib/cjs/dropdown/index.js +1 -1
  11. package/lib/cjs/form/arrayField.d.ts +1 -1
  12. package/lib/cjs/form/arrayField.js +2 -2
  13. package/lib/cjs/form/baseForm.d.ts +1 -1
  14. package/lib/cjs/form/field.d.ts +1 -1
  15. package/lib/cjs/input/textarea.d.ts +5 -1
  16. package/lib/cjs/input/textarea.js +4 -2
  17. package/lib/cjs/notification/index.d.ts +9 -7
  18. package/lib/cjs/notification/index.js +27 -8
  19. package/lib/cjs/popover/index.d.ts +5 -2
  20. package/lib/cjs/popover/index.js +3 -2
  21. package/lib/cjs/select/index.d.ts +2 -2
  22. package/lib/cjs/select/index.js +2 -2
  23. package/lib/cjs/toast/index.js +0 -3
  24. package/lib/cjs/tooltip/index.d.ts +5 -2
  25. package/lib/cjs/tooltip/index.js +1 -1
  26. package/lib/cjs/tree/index.js +5 -3
  27. package/lib/cjs/treeSelect/index.js +7 -5
  28. package/lib/es/datePicker/datePicker.d.ts +1 -1
  29. package/lib/es/datePicker/datePicker.js +1 -1
  30. package/lib/es/dropdown/index.d.ts +1 -1
  31. package/lib/es/dropdown/index.js +1 -1
  32. package/lib/es/form/arrayField.d.ts +1 -1
  33. package/lib/es/form/arrayField.js +2 -2
  34. package/lib/es/form/baseForm.d.ts +1 -1
  35. package/lib/es/form/field.d.ts +1 -1
  36. package/lib/es/input/textarea.d.ts +5 -1
  37. package/lib/es/input/textarea.js +4 -2
  38. package/lib/es/notification/index.d.ts +9 -7
  39. package/lib/es/notification/index.js +27 -8
  40. package/lib/es/popover/index.d.ts +5 -2
  41. package/lib/es/popover/index.js +3 -2
  42. package/lib/es/select/index.d.ts +2 -2
  43. package/lib/es/select/index.js +2 -2
  44. package/lib/es/toast/index.js +0 -3
  45. package/lib/es/tooltip/index.d.ts +5 -2
  46. package/lib/es/tooltip/index.js +1 -1
  47. package/lib/es/tree/index.js +5 -3
  48. package/lib/es/treeSelect/index.js +7 -5
  49. package/package.json +8 -8
@@ -110,7 +110,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
110
110
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
111
111
  renderDate: PropTypes.Requireable<(...args: any[]) => any>;
112
112
  renderFullDate: PropTypes.Requireable<(...args: any[]) => any>;
113
- spacing: PropTypes.Requireable<number>;
113
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
114
114
  startDateOffset: PropTypes.Requireable<(...args: any[]) => any>;
115
115
  endDateOffset: PropTypes.Requireable<(...args: any[]) => any>;
116
116
  autoSwitchDate: PropTypes.Requireable<boolean>;
@@ -827,7 +827,7 @@ DatePicker.propTypes = {
827
827
  validateStatus: _propTypes.default.oneOf(_constants.strings.STATUS),
828
828
  renderDate: _propTypes.default.func,
829
829
  renderFullDate: _propTypes.default.func,
830
- spacing: _propTypes.default.number,
830
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
831
831
  startDateOffset: _propTypes.default.func,
832
832
  endDateOffset: _propTypes.default.func,
833
833
  autoSwitchDate: _propTypes.default.bool,
@@ -69,7 +69,7 @@ declare class Dropdown extends BaseComponent<DropdownProps, DropdownState> {
69
69
  position: PropTypes.Requireable<"left" | "right" | "top" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
70
70
  rePosKey: PropTypes.Requireable<NonNullable<string | number>>;
71
71
  render: PropTypes.Requireable<PropTypes.ReactNodeLike>;
72
- spacing: PropTypes.Requireable<number>;
72
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
73
73
  showTick: PropTypes.Requireable<boolean>;
74
74
  style: PropTypes.Requireable<object>;
75
75
  trigger: PropTypes.Requireable<string>;
@@ -229,7 +229,7 @@ Dropdown.propTypes = {
229
229
  position: _propTypes.default.oneOf(positionSet),
230
230
  rePosKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
231
231
  render: _propTypes.default.node,
232
- spacing: _propTypes.default.number,
232
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
233
233
  showTick: _propTypes.default.bool,
234
234
  style: _propTypes.default.object,
235
235
  trigger: _propTypes.default.oneOf(triggerSet),
@@ -27,7 +27,7 @@ declare class ArrayFieldComponent extends Component<ArrayFieldProps, ArrayFieldS
27
27
  componentWillUnmount(): void;
28
28
  componentDidUpdate(): void;
29
29
  add(): void;
30
- addWithInitValue(lineObject: Record<string, any>): void;
30
+ addWithInitValue(rowVal: Record<string, any> | string): void;
31
31
  remove(i: number): void;
32
32
  render(): JSX.Element;
33
33
  }
@@ -120,13 +120,13 @@ class ArrayFieldComponent extends _react.Component {
120
120
  keys
121
121
  });
122
122
  }
123
- addWithInitValue(lineObject) {
123
+ addWithInitValue(rowVal) {
124
124
  const updater = this.context;
125
125
  const {
126
126
  field
127
127
  } = this.props;
128
128
  const newArrayFieldVal = updater.getValue(field) ? updater.getValue(field).slice() : [];
129
- newArrayFieldVal.push(lineObject);
129
+ newArrayFieldVal.push(rowVal);
130
130
  updater.updateStateValue(field, newArrayFieldVal, {});
131
131
  updater.updateArrayField(field, {
132
132
  updateKey: new Date().valueOf()
@@ -119,7 +119,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
119
119
  showClear?: boolean;
120
120
  showArrow?: boolean;
121
121
  renderSelectedItem?: import("../select").RenderSelectedItemFn;
122
- renderCreateItem?: (inputValue: string | number, focus: boolean) => React.ReactNode;
122
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: React.CSSProperties) => React.ReactNode;
123
123
  renderOptionItem?: (props: import("../select").optionRenderProps) => React.ReactNode;
124
124
  onMouseEnter?: (e: React.MouseEvent<Element, MouseEvent>) => any;
125
125
  onMouseLeave?: (e: React.MouseEvent<Element, MouseEvent>) => any;
@@ -65,7 +65,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
65
65
  showClear?: boolean;
66
66
  showArrow?: boolean;
67
67
  renderSelectedItem?: import("../select/index").RenderSelectedItemFn;
68
- renderCreateItem?: (inputValue: string | number, focus: boolean) => import("react").ReactNode;
68
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: import("react").CSSProperties) => import("react").ReactNode;
69
69
  renderOptionItem?: (props: import("../select/index").optionRenderProps) => import("react").ReactNode;
70
70
  onMouseEnter?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
71
71
  onMouseLeave?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
@@ -2,8 +2,12 @@ import React from 'react';
2
2
  import { ValidateStatus } from '../_base/baseComponent';
3
3
  import '@douyinfe/semi-foundation/lib/cjs/input/textarea.css';
4
4
  type OmitTextareaAttr = 'onChange' | 'onInput' | 'prefix' | 'size' | 'onFocus' | 'onBlur' | 'onKeyDown' | 'onKeyPress' | 'onKeyUp' | 'onResize';
5
+ export type AutosizeRow = {
6
+ minRows?: number;
7
+ maxRows?: number;
8
+ };
5
9
  export interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, OmitTextareaAttr> {
6
- autosize?: boolean;
10
+ autosize?: boolean | AutosizeRow;
7
11
  borderless?: boolean;
8
12
  placeholder?: string;
9
13
  value?: string;
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
8
+ var _isUndefined2 = _interopRequireDefault(require("lodash/isUndefined"));
7
9
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
8
10
  var _omit2 = _interopRequireDefault(require("lodash/omit"));
9
11
  var _noop2 = _interopRequireDefault(require("lodash/noop"));
@@ -219,7 +221,7 @@ class TextArea extends _baseComponent.default {
219
221
  const itemCls = (0, _classnames.default)(`${prefixCls}-textarea`, {
220
222
  [`${prefixCls}-textarea-disabled`]: disabled,
221
223
  [`${prefixCls}-textarea-readonly`]: readonly,
222
- [`${prefixCls}-textarea-autosize`]: autosize,
224
+ [`${prefixCls}-textarea-autosize`]: (0, _isObject2.default)(autosize) ? (0, _isUndefined2.default)(autosize === null || autosize === void 0 ? void 0 : autosize.maxRows) : autosize,
223
225
  [`${prefixCls}-textarea-showClear`]: showClear
224
226
  });
225
227
  const itemProps = Object.assign(Object.assign({}, (0, _omit2.default)(rest, 'insetLabel', 'insetLabelId', 'getValueLength', 'onClear', 'showClear')), {
@@ -251,7 +253,7 @@ class TextArea extends _baseComponent.default {
251
253
  }
252
254
  }
253
255
  TextArea.propTypes = {
254
- autosize: _propTypes.default.bool,
256
+ autosize: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.object]),
255
257
  borderless: _propTypes.default.bool,
256
258
  placeholder: _propTypes.default.string,
257
259
  value: _propTypes.default.string,
@@ -33,20 +33,22 @@ declare class NotificationList extends BaseComponent<NotificationListProps, Noti
33
33
  constructor(props: NotificationListProps);
34
34
  context: ContextValue;
35
35
  get adapter(): NotificationListAdapter;
36
- static addNotice(notice: NoticeProps): string;
36
+ static addNotice(notice: NoticeProps): string | number;
37
37
  static removeNotice(id: string): string;
38
- static info(opts: NoticeProps): string;
39
- static success(opts: NoticeProps): string;
40
- static error(opts: NoticeProps): string;
41
- static warning(opts: NoticeProps): string;
42
- static open(opts: NoticeProps): string;
38
+ static info(opts: NoticeProps): string | number;
39
+ static success(opts: NoticeProps): string | number;
40
+ static error(opts: NoticeProps): string | number;
41
+ static warning(opts: NoticeProps): string | number;
42
+ static open(opts: NoticeProps): string | number;
43
43
  static close(id: string): string;
44
44
  static destroyAll(): void;
45
45
  static config(opts: ConfigProps): void;
46
46
  add: (noticeOpts: NoticeProps) => any;
47
+ has: (id: string) => any;
47
48
  remove: (id: string | number) => void;
49
+ update: (id: string | number, opts: NoticeProps) => any;
48
50
  destroyAll: () => any;
49
- renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[]) => JSX.Element;
51
+ renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[], updatedItems?: NoticeInstance[]) => JSX.Element;
50
52
  setPosInStyle(noticeInstance: NoticeInstance): {};
51
53
  render(): JSX.Element;
52
54
  }
@@ -33,12 +33,17 @@ class NotificationList extends _baseComponent.default {
33
33
  super(props);
34
34
  _this = this;
35
35
  this.add = noticeOpts => this.foundation.addNotice(noticeOpts);
36
+ this.has = id => this.foundation.has(id);
36
37
  this.remove = id => {
37
38
  this.foundation.removeNotice(String(id));
38
39
  };
40
+ this.update = (id, opts) => {
41
+ return this.foundation.update(id, opts);
42
+ };
39
43
  this.destroyAll = () => this.foundation.destroyAll();
40
44
  this.renderNoticeInPosition = function (notices, position) {
41
45
  let removedItems = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
46
+ let updatedItems = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
42
47
  const className = (0, _classnames.default)(_constants.cssClasses.LIST);
43
48
  // TODO notifyOnClose
44
49
  if (notices.length) {
@@ -64,6 +69,11 @@ class NotificationList extends _baseComponent.default {
64
69
  isAnimating
65
70
  } = _ref;
66
71
  return isRemoved && !isAnimating ? null : /*#__PURE__*/_react.default.createElement(_notice.default, Object.assign({}, notice, {
72
+ ref: notice => {
73
+ if (notice && updatedItems.some(item => item.id === notice.props.id)) {
74
+ notice.foundation.restartCloseTimer();
75
+ }
76
+ },
67
77
  className: (0, _classnames.default)({
68
78
  [notice.className]: Boolean(notice.className),
69
79
  [animationClassName]: true
@@ -80,7 +90,8 @@ class NotificationList extends _baseComponent.default {
80
90
  };
81
91
  this.state = {
82
92
  notices: [],
83
- removedItems: []
93
+ removedItems: [],
94
+ updatedItems: []
84
95
  };
85
96
  this.noticeStorage = [];
86
97
  this.removeItemStorage = [];
@@ -91,19 +102,22 @@ class NotificationList extends _baseComponent.default {
91
102
  return Object.assign(Object.assign({}, super.adapter), {
92
103
  updateNotices: function (notices) {
93
104
  let removedItems = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
105
+ let updatedItems = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
94
106
  _this2.noticeStorage = [...notices];
95
107
  _this2.removeItemStorage = [...removedItems];
96
108
  // setState is async sometimes and react often merges state, so use "this" , make sure other code always get right data.
97
109
  _this2.setState({
98
110
  notices,
99
- removedItems
111
+ removedItems,
112
+ updatedItems
100
113
  });
101
114
  },
102
115
  getNotices: () => this.noticeStorage
103
116
  });
104
117
  }
105
118
  static addNotice(notice) {
106
- const id = (0, _uuid.default)('notification');
119
+ var _a;
120
+ const id = (_a = notice.id) !== null && _a !== void 0 ? _a : (0, _uuid.default)('notification');
107
121
  if (!ref) {
108
122
  const {
109
123
  getPopupContainer
@@ -129,9 +143,13 @@ class NotificationList extends _baseComponent.default {
129
143
  }));
130
144
  });
131
145
  } else {
132
- ref.add(Object.assign(Object.assign({}, notice), {
133
- id
134
- }));
146
+ if (ref.has(`${id}`)) {
147
+ ref.update(id, notice);
148
+ } else {
149
+ ref.add(Object.assign(Object.assign({}, notice), {
150
+ id
151
+ }));
152
+ }
135
153
  }
136
154
  return id;
137
155
  }
@@ -210,7 +228,8 @@ class NotificationList extends _baseComponent.default {
210
228
  notices
211
229
  } = this.state;
212
230
  const {
213
- removedItems
231
+ removedItems,
232
+ updatedItems
214
233
  } = this.state;
215
234
  notices = Array.from(new Set([...notices, ...removedItems]));
216
235
  const noticesInPosition = {
@@ -230,7 +249,7 @@ class NotificationList extends _baseComponent.default {
230
249
  const noticesList = Object.entries(noticesInPosition).map(obj => {
231
250
  const pos = obj[0];
232
251
  const noticesInPos = obj[1];
233
- return this.renderNoticeInPosition(noticesInPos, pos, removedItems);
252
+ return this.renderNoticeInPosition(noticesInPos, pos, removedItems, updatedItems);
234
253
  });
235
254
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, noticesList);
236
255
  }
@@ -26,7 +26,10 @@ export interface PopoverProps extends BaseProps {
26
26
  onVisibleChange?: (visible: boolean) => void;
27
27
  onClickOutSide?: (e: React.MouseEvent) => void;
28
28
  showArrow?: boolean;
29
- spacing?: number;
29
+ spacing?: number | {
30
+ x: number;
31
+ y: number;
32
+ };
30
33
  stopPropagation?: boolean | string;
31
34
  arrowStyle?: ArrowStyle;
32
35
  arrowBounding?: ArrowBounding;
@@ -64,7 +67,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
64
67
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
65
68
  onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
66
69
  style: PropTypes.Requireable<object>;
67
- spacing: PropTypes.Requireable<number>;
70
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
68
71
  zIndex: PropTypes.Requireable<number>;
69
72
  showArrow: PropTypes.Requireable<boolean>;
70
73
  arrowStyle: PropTypes.Requireable<PropTypes.InferProps<{
@@ -14,6 +14,7 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/popover/constants");
14
14
  var _index = _interopRequireDefault(require("../tooltip/index"));
15
15
  var _Arrow = _interopRequireDefault(require("./Arrow"));
16
16
  require("@douyinfe/semi-foundation/lib/cjs/popover/popover.css");
17
+ var _isNullOrUndefined = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/isNullOrUndefined"));
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
19
  var __rest = void 0 && (void 0).__rest || function (s, e) {
19
20
  var t = {};
@@ -95,7 +96,7 @@ class Popover extends _react.default.PureComponent {
95
96
  arrowStyle
96
97
  };
97
98
  const arrow = showArrow ? /*#__PURE__*/_react.default.createElement(_Arrow.default, Object.assign({}, arrowProps)) : false;
98
- if (typeof spacing !== 'number') {
99
+ if ((0, _isNullOrUndefined.default)(spacing)) {
99
100
  spacing = showArrow ? _constants.numbers.SPACING_WITH_ARROW : _constants.numbers.SPACING;
100
101
  }
101
102
  const role = trigger === 'click' || trigger === 'custom' ? 'dialog' : 'tooltip';
@@ -132,7 +133,7 @@ Popover.propTypes = {
132
133
  onVisibleChange: _propTypes.default.func,
133
134
  onClickOutSide: _propTypes.default.func,
134
135
  style: _propTypes.default.object,
135
- spacing: _propTypes.default.number,
136
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
136
137
  zIndex: _propTypes.default.number,
137
138
  showArrow: _propTypes.default.bool,
138
139
  arrowStyle: _propTypes.default.shape({
@@ -128,7 +128,7 @@ export type SelectProps = {
128
128
  showClear?: boolean;
129
129
  showArrow?: boolean;
130
130
  renderSelectedItem?: RenderSelectedItemFn;
131
- renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean) => React.ReactNode;
131
+ renderCreateItem?: (inputValue: OptionProps['value'], focus: boolean, style?: React.CSSProperties) => React.ReactNode;
132
132
  renderOptionItem?: (props: optionRenderProps) => React.ReactNode;
133
133
  onMouseEnter?: (e: React.MouseEvent) => any;
134
134
  onMouseLeave?: (e: React.MouseEvent) => any;
@@ -241,7 +241,7 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
241
241
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
242
242
  mouseEnterDelay: PropTypes.Requireable<number>;
243
243
  mouseLeaveDelay: PropTypes.Requireable<number>;
244
- spacing: PropTypes.Requireable<number>;
244
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
245
245
  onBlur: PropTypes.Requireable<(...args: any[]) => any>;
246
246
  onFocus: PropTypes.Requireable<(...args: any[]) => any>;
247
247
  onClear: PropTypes.Requireable<(...args: any[]) => any>;
@@ -559,7 +559,7 @@ class Select extends _baseComponent.default {
559
559
  }, locale.createText), option.value)));
560
560
  return defaultCreateItem;
561
561
  }
562
- const customCreateItem = renderCreateItem(option.value, isFocused);
562
+ const customCreateItem = renderCreateItem(option.value, isFocused, style);
563
563
  return (
564
564
  /*#__PURE__*/
565
565
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/interactive-supports-focus
@@ -1280,7 +1280,7 @@ Select.propTypes = {
1280
1280
  autoAdjustOverflow: _propTypes.default.bool,
1281
1281
  mouseEnterDelay: _propTypes.default.number,
1282
1282
  mouseLeaveDelay: _propTypes.default.number,
1283
- spacing: _propTypes.default.number,
1283
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
1284
1284
  onBlur: _propTypes.default.func,
1285
1285
  onFocus: _propTypes.default.func,
1286
1286
  onClear: _propTypes.default.func,
@@ -228,9 +228,6 @@ const createBaseToast = () => {
228
228
  const refFn = toast => {
229
229
  var _a;
230
230
  if (((_a = toast === null || toast === void 0 ? void 0 : toast.foundation) === null || _a === void 0 ? void 0 : _a._id) && updatedIds.includes(toast.foundation._id)) {
231
- toast.foundation.setState({
232
- duration: toast.props.duration
233
- });
234
231
  toast.foundation.restartCloseTimer();
235
232
  }
236
233
  };
@@ -36,7 +36,10 @@ export interface TooltipProps extends BaseProps {
36
36
  prefixCls?: string;
37
37
  onVisibleChange?: (visible: boolean) => void;
38
38
  onClickOutSide?: (e: React.MouseEvent) => void;
39
- spacing?: number;
39
+ spacing?: number | {
40
+ x: number;
41
+ y: number;
42
+ };
40
43
  margin?: number | {
41
44
  marginLeft: number;
42
45
  marginTop: number;
@@ -103,7 +106,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
103
106
  prefixCls: PropTypes.Requireable<string>;
104
107
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
105
108
  onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
106
- spacing: PropTypes.Requireable<number>;
109
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
107
110
  margin: PropTypes.Requireable<NonNullable<number | object>>;
108
111
  showArrow: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
109
112
  zIndex: PropTypes.Requireable<number>;
@@ -665,7 +665,7 @@ Tooltip.propTypes = {
665
665
  prefixCls: _propTypes.default.string,
666
666
  onVisibleChange: _propTypes.default.func,
667
667
  onClickOutSide: _propTypes.default.func,
668
- spacing: _propTypes.default.number,
668
+ spacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
669
669
  margin: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.object]),
670
670
  showArrow: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.node]),
671
671
  zIndex: _propTypes.default.number,
@@ -252,8 +252,10 @@ class Tree extends _baseComponent.default {
252
252
  const treeDataHasChange = prevProps && prevProps.treeData !== props.treeData;
253
253
  return firstInProps || treeDataHasChange;
254
254
  };
255
+ const needUpdateTreeData = needUpdate('treeData');
256
+ const needUpdateSimpleJson = needUpdate('treeDataSimpleJson');
255
257
  // Update the data of tree in state
256
- if (needUpdate('treeData') || props.draggable && needUpdateData()) {
258
+ if (needUpdateTreeData || props.draggable && needUpdateData()) {
257
259
  treeData = props.treeData;
258
260
  newState.treeData = treeData;
259
261
  const entitiesMap = (0, _treeUtil.convertDataToEntities)(treeData);
@@ -261,7 +263,7 @@ class Tree extends _baseComponent.default {
261
263
  keyEntities = newState.keyEntities;
262
264
  newState.cachedKeyValuePairs = Object.assign({}, entitiesMap.valueEntities);
263
265
  valueEntities = newState.cachedKeyValuePairs;
264
- } else if (needUpdate('treeDataSimpleJson')) {
266
+ } else if (needUpdateSimpleJson) {
265
267
  // Convert treeDataSimpleJson to treeData
266
268
  treeData = (0, _treeUtil.convertJsonToData)(props.treeDataSimpleJson);
267
269
  newState.treeData = treeData;
@@ -278,7 +280,7 @@ class Tree extends _baseComponent.default {
278
280
  newState.motionType = null;
279
281
  }
280
282
  }
281
- const dataUpdated = needUpdate('treeDataSimpleJson') || needUpdate('treeData');
283
+ const dataUpdated = needUpdateSimpleJson || needUpdateTreeData;
282
284
  const expandAllWhenDataChange = dataUpdated && props.expandAll;
283
285
  if (!isSeaching) {
284
286
  // Update expandedKeys
@@ -895,8 +895,10 @@ class TreeSelect extends _baseComponent.default {
895
895
  const newState = {
896
896
  prevProps: props
897
897
  };
898
+ const needUpdateTreeData = needUpdate('treeData');
899
+ const needUpdateExpandedKeys = needUpdate('expandedKeys');
898
900
  // TreeNode
899
- if (needUpdate('treeData')) {
901
+ if (needUpdateTreeData) {
900
902
  treeData = props.treeData;
901
903
  newState.treeData = treeData;
902
904
  const entitiesMap = (0, _treeUtil.convertDataToEntities)(treeData);
@@ -912,9 +914,9 @@ class TreeSelect extends _baseComponent.default {
912
914
  newState.motionType = null;
913
915
  }
914
916
  }
915
- const expandAllWhenDataChange = needUpdate('treeData') && props.expandAll;
917
+ const expandAllWhenDataChange = needUpdateTreeData && props.expandAll;
916
918
  // expandedKeys
917
- if (needUpdate('expandedKeys') || prevProps && needUpdate('autoExpandParent')) {
919
+ if (needUpdateExpandedKeys || prevProps && needUpdate('autoExpandParent')) {
918
920
  newState.expandedKeys = (0, _treeUtil.calcExpandedKeys)(props.expandedKeys, keyEntities, props.autoExpandParent || !prevProps);
919
921
  // only show animation when treeData does not change
920
922
  if (prevProps && props.motion && !treeData) {
@@ -935,7 +937,7 @@ class TreeSelect extends _baseComponent.default {
935
937
  newState.expandedKeys = (0, _treeUtil.calcExpandedKeysForValues)((0, _treeUtil.normalizeValue)(props.value, withObject), keyEntities, props.multiple, valueEntities);
936
938
  }
937
939
  // flattenNodes
938
- if (treeData || needUpdate('expandedKeys')) {
940
+ if (treeData || needUpdateExpandedKeys) {
939
941
  const flattenNodes = (0, _treeUtil.flattenTreeData)(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys);
940
942
  newState.flattenNodes = flattenNodes;
941
943
  }
@@ -987,7 +989,7 @@ class TreeSelect extends _baseComponent.default {
987
989
  newState.loadedKeys = new Set(props.loadedKeys);
988
990
  }
989
991
  // ================== rePosKey ==================
990
- if (needUpdate('treeData') || needUpdate('value')) {
992
+ if (needUpdateTreeData || needUpdate('value')) {
991
993
  newState.rePosKey = rePosKey + 1;
992
994
  }
993
995
  // ================ disableStrictly =================
@@ -110,7 +110,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
110
110
  validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
111
111
  renderDate: PropTypes.Requireable<(...args: any[]) => any>;
112
112
  renderFullDate: PropTypes.Requireable<(...args: any[]) => any>;
113
- spacing: PropTypes.Requireable<number>;
113
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
114
114
  startDateOffset: PropTypes.Requireable<(...args: any[]) => any>;
115
115
  endDateOffset: PropTypes.Requireable<(...args: any[]) => any>;
116
116
  autoSwitchDate: PropTypes.Requireable<boolean>;
@@ -818,7 +818,7 @@ DatePicker.propTypes = {
818
818
  validateStatus: PropTypes.oneOf(strings.STATUS),
819
819
  renderDate: PropTypes.func,
820
820
  renderFullDate: PropTypes.func,
821
- spacing: PropTypes.number,
821
+ spacing: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
822
822
  startDateOffset: PropTypes.func,
823
823
  endDateOffset: PropTypes.func,
824
824
  autoSwitchDate: PropTypes.bool,
@@ -69,7 +69,7 @@ declare class Dropdown extends BaseComponent<DropdownProps, DropdownState> {
69
69
  position: PropTypes.Requireable<"left" | "right" | "top" | "bottom" | "topLeft" | "topRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | "bottomLeft" | "bottomRight" | "leftTopOver" | "rightTopOver" | "leftBottomOver" | "rightBottomOver">;
70
70
  rePosKey: PropTypes.Requireable<NonNullable<string | number>>;
71
71
  render: PropTypes.Requireable<PropTypes.ReactNodeLike>;
72
- spacing: PropTypes.Requireable<number>;
72
+ spacing: PropTypes.Requireable<NonNullable<number | object>>;
73
73
  showTick: PropTypes.Requireable<boolean>;
74
74
  style: PropTypes.Requireable<object>;
75
75
  trigger: PropTypes.Requireable<string>;
@@ -222,7 +222,7 @@ Dropdown.propTypes = {
222
222
  position: PropTypes.oneOf(positionSet),
223
223
  rePosKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
224
224
  render: PropTypes.node,
225
- spacing: PropTypes.number,
225
+ spacing: PropTypes.oneOfType([PropTypes.number, PropTypes.object]),
226
226
  showTick: PropTypes.bool,
227
227
  style: PropTypes.object,
228
228
  trigger: PropTypes.oneOf(triggerSet),
@@ -27,7 +27,7 @@ declare class ArrayFieldComponent extends Component<ArrayFieldProps, ArrayFieldS
27
27
  componentWillUnmount(): void;
28
28
  componentDidUpdate(): void;
29
29
  add(): void;
30
- addWithInitValue(lineObject: Record<string, any>): void;
30
+ addWithInitValue(rowVal: Record<string, any> | string): void;
31
31
  remove(i: number): void;
32
32
  render(): JSX.Element;
33
33
  }
@@ -111,13 +111,13 @@ class ArrayFieldComponent extends Component {
111
111
  keys
112
112
  });
113
113
  }
114
- addWithInitValue(lineObject) {
114
+ addWithInitValue(rowVal) {
115
115
  const updater = this.context;
116
116
  const {
117
117
  field
118
118
  } = this.props;
119
119
  const newArrayFieldVal = updater.getValue(field) ? updater.getValue(field).slice() : [];
120
- newArrayFieldVal.push(lineObject);
120
+ newArrayFieldVal.push(rowVal);
121
121
  updater.updateStateValue(field, newArrayFieldVal, {});
122
122
  updater.updateArrayField(field, {
123
123
  updateKey: new Date().valueOf()
@@ -119,7 +119,7 @@ declare class Form<Values extends Record<string, any> = any> extends BaseCompone
119
119
  showClear?: boolean;
120
120
  showArrow?: boolean;
121
121
  renderSelectedItem?: import("../select").RenderSelectedItemFn;
122
- renderCreateItem?: (inputValue: string | number, focus: boolean) => React.ReactNode;
122
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: React.CSSProperties) => React.ReactNode;
123
123
  renderOptionItem?: (props: import("../select").optionRenderProps) => React.ReactNode;
124
124
  onMouseEnter?: (e: React.MouseEvent<Element, MouseEvent>) => any;
125
125
  onMouseLeave?: (e: React.MouseEvent<Element, MouseEvent>) => any;
@@ -65,7 +65,7 @@ declare const FormSelect: import("react").ComponentType<import("utility-types").
65
65
  showClear?: boolean;
66
66
  showArrow?: boolean;
67
67
  renderSelectedItem?: import("../select/index").RenderSelectedItemFn;
68
- renderCreateItem?: (inputValue: string | number, focus: boolean) => import("react").ReactNode;
68
+ renderCreateItem?: (inputValue: string | number, focus: boolean, style?: import("react").CSSProperties) => import("react").ReactNode;
69
69
  renderOptionItem?: (props: import("../select/index").optionRenderProps) => import("react").ReactNode;
70
70
  onMouseEnter?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
71
71
  onMouseLeave?: (e: import("react").MouseEvent<Element, MouseEvent>) => any;
@@ -2,8 +2,12 @@ import React from 'react';
2
2
  import { ValidateStatus } from '../_base/baseComponent';
3
3
  import '@douyinfe/semi-foundation/lib/es/input/textarea.css';
4
4
  type OmitTextareaAttr = 'onChange' | 'onInput' | 'prefix' | 'size' | 'onFocus' | 'onBlur' | 'onKeyDown' | 'onKeyPress' | 'onKeyUp' | 'onResize';
5
+ export type AutosizeRow = {
6
+ minRows?: number;
7
+ maxRows?: number;
8
+ };
5
9
  export interface TextAreaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, OmitTextareaAttr> {
6
- autosize?: boolean;
10
+ autosize?: boolean | AutosizeRow;
7
11
  borderless?: boolean;
8
12
  placeholder?: string;
9
13
  value?: string;
@@ -1,3 +1,5 @@
1
+ import _isObject from "lodash/isObject";
2
+ import _isUndefined from "lodash/isUndefined";
1
3
  import _isFunction from "lodash/isFunction";
2
4
  import _omit from "lodash/omit";
3
5
  import _noop from "lodash/noop";
@@ -212,7 +214,7 @@ class TextArea extends BaseComponent {
212
214
  const itemCls = cls(`${prefixCls}-textarea`, {
213
215
  [`${prefixCls}-textarea-disabled`]: disabled,
214
216
  [`${prefixCls}-textarea-readonly`]: readonly,
215
- [`${prefixCls}-textarea-autosize`]: autosize,
217
+ [`${prefixCls}-textarea-autosize`]: _isObject(autosize) ? _isUndefined(autosize === null || autosize === void 0 ? void 0 : autosize.maxRows) : autosize,
216
218
  [`${prefixCls}-textarea-showClear`]: showClear
217
219
  });
218
220
  const itemProps = Object.assign(Object.assign({}, _omit(rest, 'insetLabel', 'insetLabelId', 'getValueLength', 'onClear', 'showClear')), {
@@ -244,7 +246,7 @@ class TextArea extends BaseComponent {
244
246
  }
245
247
  }
246
248
  TextArea.propTypes = {
247
- autosize: PropTypes.bool,
249
+ autosize: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
248
250
  borderless: PropTypes.bool,
249
251
  placeholder: PropTypes.string,
250
252
  value: PropTypes.string,
@@ -33,20 +33,22 @@ declare class NotificationList extends BaseComponent<NotificationListProps, Noti
33
33
  constructor(props: NotificationListProps);
34
34
  context: ContextValue;
35
35
  get adapter(): NotificationListAdapter;
36
- static addNotice(notice: NoticeProps): string;
36
+ static addNotice(notice: NoticeProps): string | number;
37
37
  static removeNotice(id: string): string;
38
- static info(opts: NoticeProps): string;
39
- static success(opts: NoticeProps): string;
40
- static error(opts: NoticeProps): string;
41
- static warning(opts: NoticeProps): string;
42
- static open(opts: NoticeProps): string;
38
+ static info(opts: NoticeProps): string | number;
39
+ static success(opts: NoticeProps): string | number;
40
+ static error(opts: NoticeProps): string | number;
41
+ static warning(opts: NoticeProps): string | number;
42
+ static open(opts: NoticeProps): string | number;
43
43
  static close(id: string): string;
44
44
  static destroyAll(): void;
45
45
  static config(opts: ConfigProps): void;
46
46
  add: (noticeOpts: NoticeProps) => any;
47
+ has: (id: string) => any;
47
48
  remove: (id: string | number) => void;
49
+ update: (id: string | number, opts: NoticeProps) => any;
48
50
  destroyAll: () => any;
49
- renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[]) => JSX.Element;
51
+ renderNoticeInPosition: (notices: NoticeInstance[], position: NoticePosition, removedItems?: NoticeInstance[], updatedItems?: NoticeInstance[]) => JSX.Element;
50
52
  setPosInStyle(noticeInstance: NoticeInstance): {};
51
53
  render(): JSX.Element;
52
54
  }