@douyinfe/semi-ui 2.8.2 → 2.9.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 (118) hide show
  1. package/anchor/__test__/anchor.test.js +1 -0
  2. package/anchor/_story/anchor.stories.js +23 -1
  3. package/badge/index.tsx +12 -3
  4. package/cascader/_story/cascader.stories.js +17 -2
  5. package/cascader/index.tsx +1 -1
  6. package/checkbox/_story/checkbox.stories.js +1 -1
  7. package/collapse/item.tsx +2 -0
  8. package/datePicker/_story/datePicker.stories.js +37 -0
  9. package/descriptions/index.tsx +3 -4
  10. package/descriptions/item.tsx +1 -1
  11. package/dist/css/semi.css +63 -17
  12. package/dist/css/semi.min.css +1 -1
  13. package/dist/umd/semi-ui.js +7444 -3323
  14. package/dist/umd/semi-ui.js.map +1 -1
  15. package/dist/umd/semi-ui.min.js +1 -1
  16. package/dist/umd/semi-ui.min.js.map +1 -1
  17. package/divider/__test__/divider.test.js +72 -0
  18. package/divider/_story/Demo.tsx +16 -0
  19. package/divider/_story/divider.stories.js +41 -0
  20. package/divider/_story/divider.stories.tsx +8 -0
  21. package/divider/index.tsx +72 -0
  22. package/form/_story/demo.jsx +9 -0
  23. package/index.ts +1 -0
  24. package/input/__test__/input.test.js +12 -3
  25. package/input/__test__/textArea.test.js +53 -0
  26. package/lib/cjs/badge/index.d.ts +9 -0
  27. package/lib/cjs/badge/index.js +34 -6
  28. package/lib/cjs/button/index.d.ts +1 -1
  29. package/lib/cjs/cascader/index.js +1 -1
  30. package/lib/cjs/collapse/item.js +4 -2
  31. package/lib/cjs/descriptions/index.d.ts +2 -3
  32. package/lib/cjs/descriptions/index.js +4 -3
  33. package/lib/cjs/descriptions/item.d.ts +1 -1
  34. package/lib/cjs/divider/index.d.ts +20 -0
  35. package/lib/cjs/divider/index.js +88 -0
  36. package/lib/cjs/form/baseForm.d.ts +1 -1
  37. package/lib/cjs/form/errorMessage.d.ts +1 -1
  38. package/lib/cjs/iconButton/index.d.ts +1 -1
  39. package/lib/cjs/index.d.ts +1 -0
  40. package/lib/cjs/index.js +9 -0
  41. package/lib/cjs/modal/Modal.js +3 -0
  42. package/lib/cjs/modal/confirm.d.ts +5 -5
  43. package/lib/cjs/navigation/Header.d.ts +1 -1
  44. package/lib/cjs/navigation/index.d.ts +2 -2
  45. package/lib/cjs/popover/index.d.ts +1 -1
  46. package/lib/cjs/progress/index.d.ts +1 -1
  47. package/lib/cjs/scrollList/scrollItem.js +4 -0
  48. package/lib/cjs/select/optionGroup.d.ts +1 -1
  49. package/lib/cjs/slider/index.js +16 -12
  50. package/lib/cjs/table/Body/BaseRow.d.ts +1 -1
  51. package/lib/cjs/table/Body/ExpandedRow.d.ts +1 -1
  52. package/lib/cjs/table/Column.d.ts +1 -1
  53. package/lib/cjs/table/ColumnShape.d.ts +1 -1
  54. package/lib/cjs/table/CustomExpandIcon.d.ts +1 -1
  55. package/lib/cjs/table/Table.d.ts +5 -5
  56. package/lib/cjs/table/index.d.ts +4 -4
  57. package/lib/cjs/tabs/TabPane.js +4 -0
  58. package/lib/cjs/tabs/index.js +2 -0
  59. package/lib/cjs/tagInput/index.d.ts +1 -1
  60. package/lib/cjs/tooltip/index.d.ts +1 -1
  61. package/lib/cjs/transfer/index.d.ts +1 -0
  62. package/lib/cjs/transfer/index.js +3 -1
  63. package/lib/es/badge/index.d.ts +9 -0
  64. package/lib/es/badge/index.js +31 -6
  65. package/lib/es/button/index.d.ts +1 -1
  66. package/lib/es/cascader/index.js +1 -1
  67. package/lib/es/collapse/item.js +4 -2
  68. package/lib/es/descriptions/index.d.ts +2 -3
  69. package/lib/es/descriptions/index.js +4 -3
  70. package/lib/es/descriptions/item.d.ts +1 -1
  71. package/lib/es/divider/index.d.ts +20 -0
  72. package/lib/es/divider/index.js +68 -0
  73. package/lib/es/form/baseForm.d.ts +1 -1
  74. package/lib/es/form/errorMessage.d.ts +1 -1
  75. package/lib/es/iconButton/index.d.ts +1 -1
  76. package/lib/es/index.d.ts +1 -0
  77. package/lib/es/index.js +1 -0
  78. package/lib/es/modal/Modal.js +3 -0
  79. package/lib/es/modal/confirm.d.ts +5 -5
  80. package/lib/es/navigation/Header.d.ts +1 -1
  81. package/lib/es/navigation/index.d.ts +2 -2
  82. package/lib/es/popover/index.d.ts +1 -1
  83. package/lib/es/progress/index.d.ts +1 -1
  84. package/lib/es/scrollList/scrollItem.js +4 -0
  85. package/lib/es/select/optionGroup.d.ts +1 -1
  86. package/lib/es/slider/index.js +16 -12
  87. package/lib/es/table/Body/BaseRow.d.ts +1 -1
  88. package/lib/es/table/Body/ExpandedRow.d.ts +1 -1
  89. package/lib/es/table/Column.d.ts +1 -1
  90. package/lib/es/table/ColumnShape.d.ts +1 -1
  91. package/lib/es/table/CustomExpandIcon.d.ts +1 -1
  92. package/lib/es/table/Table.d.ts +5 -5
  93. package/lib/es/table/index.d.ts +4 -4
  94. package/lib/es/tabs/TabPane.js +4 -0
  95. package/lib/es/tabs/index.js +2 -0
  96. package/lib/es/tagInput/index.d.ts +1 -1
  97. package/lib/es/tooltip/index.d.ts +1 -1
  98. package/lib/es/transfer/index.d.ts +1 -0
  99. package/lib/es/transfer/index.js +3 -1
  100. package/modal/Modal.tsx +2 -0
  101. package/modal/confirm.tsx +1 -1
  102. package/overflowList/_story/overflowList.stories.js +44 -0
  103. package/package.json +9 -9
  104. package/scrollList/_story/SingleWheelList/index.js +72 -0
  105. package/scrollList/_story/scrolllist.stories.js +7 -0
  106. package/scrollList/scrollItem.tsx +3 -0
  107. package/slider/_story/slider.stories.js +28 -6
  108. package/slider/index.tsx +15 -10
  109. package/table/__test__/table.test.js +1 -0
  110. package/tabs/TabPane.tsx +2 -0
  111. package/tabs/_story/tabs.stories.js +72 -0
  112. package/tabs/index.tsx +1 -0
  113. package/tagInput/_story/tagInput.stories.js +14 -1
  114. package/tooltip/_story/tooltip.stories.js +127 -15
  115. package/transfer/index.tsx +4 -1
  116. package/typography/__test__/typography.test.js +1 -0
  117. package/upload/__test__/upload.test.js +2 -0
  118. package/upload/_story/upload.stories.js +2 -2
@@ -0,0 +1,68 @@
1
+ import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
+ import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
5
+
6
+ var __rest = this && this.__rest || function (s, e) {
7
+ var t = {};
8
+
9
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
10
+
11
+ if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
12
+ if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
+ }
14
+ return t;
15
+ };
16
+
17
+ import React from 'react';
18
+ import cls from 'classnames';
19
+ import { cssClasses } from '@douyinfe/semi-foundation/lib/es/divider/constants';
20
+ import '@douyinfe/semi-foundation/lib/es/divider/divider.css';
21
+ const prefixCls = cssClasses.PREFIX;
22
+
23
+ const Divider = props => {
24
+ var _context;
25
+
26
+ const {
27
+ layout = 'horizontal',
28
+ dashed,
29
+ align = 'center',
30
+ className,
31
+ margin,
32
+ style,
33
+ children
34
+ } = props,
35
+ rest = __rest(props, ["layout", "dashed", "align", "className", "margin", "style", "children"]);
36
+
37
+ const dividerClassNames = cls("".concat(prefixCls, "-divider"), className, {
38
+ ["".concat(prefixCls, "-divider-horizontal")]: layout === 'horizontal',
39
+ ["".concat(prefixCls, "-divider-vertical")]: layout === 'vertical',
40
+ ["".concat(prefixCls, "-divider-dashed")]: !!dashed,
41
+ ["".concat(prefixCls, "-divider-with-text")]: children && layout === 'horizontal',
42
+ [_concatInstanceProperty(_context = "".concat(prefixCls, "-divider-with-text-")).call(_context, align)]: children && layout === 'horizontal'
43
+ });
44
+ let overrideDefaultStyle = {};
45
+
46
+ if (margin !== undefined) {
47
+ if (layout === 'vertical') {
48
+ overrideDefaultStyle = {
49
+ 'marginLeft': margin,
50
+ 'marginRight': margin
51
+ };
52
+ } else if (layout === 'horizontal') {
53
+ overrideDefaultStyle = {
54
+ 'marginTop': margin,
55
+ 'marginBottom': margin
56
+ };
57
+ }
58
+ }
59
+
60
+ return /*#__PURE__*/React.createElement("div", _Object$assign({}, rest, {
61
+ className: dividerClassNames,
62
+ style: _Object$assign(_Object$assign({}, overrideDefaultStyle), style)
63
+ }), children && layout === 'horizontal' ? typeof children === 'string' ? /*#__PURE__*/React.createElement("span", {
64
+ className: "".concat(prefixCls, "-divider_inner-text")
65
+ }, children) : children : null);
66
+ };
67
+
68
+ export default Divider;
@@ -21,7 +21,7 @@ declare class Form extends BaseComponent<BaseFormProps, BaseFormState> {
21
21
  onValueChange: PropTypes.Requireable<(...args: any[]) => any>;
22
22
  initValues: PropTypes.Requireable<object>;
23
23
  getFormApi: PropTypes.Requireable<(...args: any[]) => any>;
24
- component: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
+ component: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
25
25
  render: PropTypes.Requireable<(...args: any[]) => any>;
26
26
  validateFields: PropTypes.Requireable<(...args: any[]) => any>;
27
27
  style: PropTypes.Requireable<object>;
@@ -14,7 +14,7 @@ export interface ErrorMessageProps {
14
14
  }
15
15
  export default class ErrorMessage extends PureComponent<ErrorMessageProps> {
16
16
  static propTypes: {
17
- error: PropTypes.Requireable<PropTypes.ReactNodeLike>;
17
+ error: PropTypes.Requireable<any[] | PropTypes.ReactNodeLike>;
18
18
  className: PropTypes.Requireable<string>;
19
19
  style: PropTypes.Requireable<object>;
20
20
  validateStatus: PropTypes.Requireable<string>;
@@ -31,7 +31,7 @@ declare class IconButton extends PureComponent<IconButtonProps> {
31
31
  style: PropTypes.Requireable<object>;
32
32
  loading: PropTypes.Requireable<boolean>;
33
33
  prefixCls: PropTypes.Requireable<string>;
34
- icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
34
+ icon: PropTypes.Requireable<object | PropTypes.ReactNodeLike>;
35
35
  iconSize: PropTypes.Requireable<string>;
36
36
  noHorizontalPadding: PropTypes.Requireable<string | boolean | any[]>;
37
37
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
package/lib/es/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export { default as Collapsible } from './collapsible';
20
20
  export { default as ConfigProvider } from './configProvider';
21
21
  export { default as DatePicker } from './datePicker';
22
22
  export { default as Descriptions } from './descriptions';
23
+ export { default as Divider } from './divider';
23
24
  export { default as Empty } from './empty';
24
25
  export { default as Modal } from './modal';
25
26
  export { default as Dropdown } from './dropdown';
package/lib/es/index.js CHANGED
@@ -20,6 +20,7 @@ export { default as Collapsible } from './collapsible';
20
20
  export { default as ConfigProvider } from './configProvider';
21
21
  export { default as DatePicker } from './datePicker';
22
22
  export { default as Descriptions } from './descriptions';
23
+ export { default as Divider } from './divider';
23
24
  export { default as Empty } from './empty';
24
25
  export { default as Modal } from './modal';
25
26
  export { default as Dropdown } from './dropdown';
@@ -214,6 +214,9 @@ class Modal extends BaseComponent {
214
214
  this.props.onOk(e);
215
215
  },
216
216
  notifyClose: () => {
217
+ var _a, _b;
218
+
219
+ (_b = (_a = this.props.motion) === null || _a === void 0 ? void 0 : _a.didLeave) === null || _b === void 0 ? void 0 : _b.call(_a);
217
220
  this.props.afterClose();
218
221
  },
219
222
  toggleHidden: (hidden, callback) => {
@@ -15,7 +15,7 @@ export declare function withInfo(props: ModalReactProps): {
15
15
  bodyStyle?: React.CSSProperties;
16
16
  maskStyle?: React.CSSProperties;
17
17
  style?: React.CSSProperties;
18
- icon: React.ReactNode | JSX.Element;
18
+ icon: string | number | boolean | React.ReactFragment | JSX.Element;
19
19
  closeIcon?: React.ReactNode;
20
20
  title?: React.ReactNode;
21
21
  content?: React.ReactNode;
@@ -57,7 +57,7 @@ export declare function withSuccess(props: ModalReactProps): {
57
57
  bodyStyle?: React.CSSProperties;
58
58
  maskStyle?: React.CSSProperties;
59
59
  style?: React.CSSProperties;
60
- icon: React.ReactNode | JSX.Element;
60
+ icon: string | number | boolean | React.ReactFragment | JSX.Element;
61
61
  closeIcon?: React.ReactNode;
62
62
  title?: React.ReactNode;
63
63
  content?: React.ReactNode;
@@ -99,7 +99,7 @@ export declare function withWarning(props: ModalReactProps): {
99
99
  bodyStyle?: React.CSSProperties;
100
100
  maskStyle?: React.CSSProperties;
101
101
  style?: React.CSSProperties;
102
- icon: React.ReactNode | JSX.Element;
102
+ icon: string | number | boolean | React.ReactFragment | JSX.Element;
103
103
  closeIcon?: React.ReactNode;
104
104
  title?: React.ReactNode;
105
105
  content?: React.ReactNode;
@@ -141,7 +141,7 @@ export declare function withError(props: ModalReactProps): {
141
141
  bodyStyle?: React.CSSProperties;
142
142
  maskStyle?: React.CSSProperties;
143
143
  style?: React.CSSProperties;
144
- icon: React.ReactNode | JSX.Element;
144
+ icon: string | number | boolean | React.ReactFragment | JSX.Element;
145
145
  closeIcon?: React.ReactNode;
146
146
  title?: React.ReactNode;
147
147
  content?: React.ReactNode;
@@ -183,7 +183,7 @@ export declare function withConfirm(props: ModalReactProps): {
183
183
  bodyStyle?: React.CSSProperties;
184
184
  maskStyle?: React.CSSProperties;
185
185
  style?: React.CSSProperties;
186
- icon: React.ReactNode | JSX.Element;
186
+ icon: string | number | boolean | React.ReactFragment | JSX.Element;
187
187
  closeIcon?: React.ReactNode;
188
188
  title?: React.ReactNode;
189
189
  content?: React.ReactNode;
@@ -15,7 +15,7 @@ export default class NavHeader extends PureComponent<NavHeaderProps> {
15
15
  static contextType: React.Context<NavContextType>;
16
16
  static propTypes: {
17
17
  prefixCls: PropTypes.Requireable<string>;
18
- logo: PropTypes.Requireable<PropTypes.ReactNodeLike>;
18
+ logo: PropTypes.Requireable<object | PropTypes.ReactNodeLike>;
19
19
  text: PropTypes.Requireable<PropTypes.ReactNodeLike>;
20
20
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
21
21
  style: PropTypes.Requireable<object>;
@@ -107,8 +107,8 @@ declare class Nav extends BaseComponent<NavProps, NavState> {
107
107
  className: PropTypes.Requireable<string>;
108
108
  toggleIconPosition: PropTypes.Requireable<string>;
109
109
  prefixCls: PropTypes.Requireable<string>;
110
- header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
111
- footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
110
+ header: PropTypes.Requireable<object | PropTypes.ReactNodeLike>;
111
+ footer: PropTypes.Requireable<object | PropTypes.ReactNodeLike>;
112
112
  limitIndent: PropTypes.Requireable<boolean>;
113
113
  };
114
114
  static defaultProps: {
@@ -46,7 +46,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
46
46
  static contextType: React.Context<ContextValue>;
47
47
  static propTypes: {
48
48
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
49
- content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
49
+ content: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
50
50
  visible: PropTypes.Requireable<boolean>;
51
51
  autoAdjustOverflow: PropTypes.Requireable<boolean>;
52
52
  motion: PropTypes.Requireable<boolean | object>;
@@ -33,7 +33,7 @@ declare class Progress extends Component<ProgressProps, ProgressState> {
33
33
  'aria-valuetext': PropTypes.Requireable<string>;
34
34
  className: PropTypes.Requireable<string>;
35
35
  direction: PropTypes.Requireable<string>;
36
- format: PropTypes.Requireable<PropTypes.ReactNodeLike>;
36
+ format: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
37
37
  id: PropTypes.Requireable<string>;
38
38
  motion: PropTypes.Requireable<boolean | object>;
39
39
  orbitStroke: PropTypes.Requireable<string>;
@@ -39,6 +39,8 @@ export default class ScrollItem extends BaseComponent {
39
39
  this._cacheSelectorNode = selector => this._cacheNode('selector', selector);
40
40
 
41
41
  this._cacheWrapperNode = wrapper => this._cacheNode('wrapper', wrapper);
42
+ /* istanbul ignore next */
43
+
42
44
 
43
45
  this._isFirst = node => {
44
46
  const {
@@ -55,6 +57,8 @@ export default class ScrollItem extends BaseComponent {
55
57
 
56
58
  return false;
57
59
  };
60
+ /* istanbul ignore next */
61
+
58
62
 
59
63
  this._isLast = node => {
60
64
  const {
@@ -10,7 +10,7 @@ export interface OptionGroupProps {
10
10
  declare class OptionGroup extends BaseComponent<OptionGroupProps> {
11
11
  static isSelectOptionGroup: boolean;
12
12
  static propTypes: {
13
- children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
13
+ children: PropTypes.Requireable<any[] | PropTypes.ReactNodeLike>;
14
14
  label: PropTypes.Requireable<PropTypes.ReactNodeLike>;
15
15
  className: PropTypes.Requireable<string>;
16
16
  style: PropTypes.Requireable<object>;
@@ -266,7 +266,10 @@ export default class Slider extends BaseComponent {
266
266
  ["".concat(prefixCls, "-dot-active")]: this.foundation.isMarkActive(Number(mark)) === 'active'
267
267
  });
268
268
  const markPercent = (Number(mark) - min) / (max - min);
269
- return activeResult ? /*#__PURE__*/React.createElement("span", {
269
+ return activeResult ?
270
+ /*#__PURE__*/
271
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
272
+ React.createElement("span", {
270
273
  key: mark,
271
274
  onClick: e => this.foundation.handleWrapClick(e),
272
275
  className: markClass,
@@ -448,6 +451,7 @@ export default class Slider extends BaseComponent {
448
451
  onHandleMove: function (mousePos, isMin) {
449
452
  let stateChangeCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _noop;
450
453
  let clickTrack = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
454
+ let outPutValue = arguments.length > 4 ? arguments[4] : undefined;
451
455
 
452
456
  const sliderDOMIsInRenderTree = _this.foundation.checkAndUpdateIsInRenderTreeState();
453
457
 
@@ -456,32 +460,32 @@ export default class Slider extends BaseComponent {
456
460
  }
457
461
 
458
462
  const {
459
- value,
460
- onChange
463
+ value
461
464
  } = _this.props;
465
+ let finalOutPutValue = outPutValue;
462
466
 
463
- const moveValue = _this.foundation.transPosToValue(mousePos, isMin);
467
+ if (finalOutPutValue === undefined) {
468
+ const moveValue = _this.foundation.transPosToValue(mousePos, isMin);
464
469
 
465
- if (moveValue === false) {
466
- return;
467
- }
470
+ if (moveValue === false) {
471
+ return;
472
+ }
468
473
 
469
- const outPutValue = _this.foundation.outPutValue(moveValue);
474
+ finalOutPutValue = _this.foundation.outPutValue(moveValue);
475
+ }
470
476
 
471
477
  const {
472
478
  currentValue
473
479
  } = _this.state;
474
480
 
475
- if (!_isEqual(_this.foundation.outPutValue(currentValue), outPutValue)) {
476
- onChange(outPutValue);
477
-
481
+ if (!_isEqual(_this.foundation.outPutValue(currentValue), finalOutPutValue)) {
478
482
  if (!clickTrack && _this.foundation.valueFormatIsCorrect(value)) {
479
483
  // still require afterChangeCallback when click on the track directly, need skip here
480
484
  return false;
481
485
  }
482
486
 
483
487
  _this.setState({
484
- currentValue: outPutValue
488
+ currentValue: finalOutPutValue
485
489
  }, stateChangeCallback);
486
490
  }
487
491
  },
@@ -52,7 +52,7 @@ export default class TableRow extends BaseComponent<BaseRowProps, Record<string,
52
52
  columns: PropTypes.Validator<any[]>;
53
53
  components: PropTypes.Validator<object>;
54
54
  disabled: PropTypes.Requireable<boolean>;
55
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
55
+ expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
56
56
  expandableRow: PropTypes.Requireable<boolean>;
57
57
  expanded: PropTypes.Requireable<boolean>;
58
58
  expandedRow: PropTypes.Requireable<boolean>;
@@ -36,7 +36,7 @@ export default class TableExpandedRow extends PureComponent<TableExpandedRowProp
36
36
  components: PropTypes.Requireable<object>;
37
37
  defaultExpandAllRows: PropTypes.Requireable<boolean>;
38
38
  defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
39
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
39
+ expandIcon: PropTypes.Requireable<object | PropTypes.ReactNodeLike>;
40
40
  expandRowByClick: PropTypes.Requireable<boolean>;
41
41
  expanded: PropTypes.Requireable<boolean>;
42
42
  expandedRowKeys: PropTypes.Requireable<any[]>;
@@ -27,7 +27,7 @@ export default class Column extends React.PureComponent<ColumnProps> {
27
27
  sortDirections: import("prop-types").Requireable<string[]>;
28
28
  sortOrder: import("prop-types").Requireable<string | boolean>;
29
29
  sorter: import("prop-types").Requireable<boolean | ((...args: any[]) => any)>;
30
- title: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
30
+ title: import("prop-types").Requireable<import("prop-types").ReactNodeLike | ((...args: any[]) => any)>;
31
31
  useFullRender: import("prop-types").Requireable<boolean>;
32
32
  width: import("prop-types").Requireable<string | number>;
33
33
  };
@@ -25,7 +25,7 @@ declare const _default: {
25
25
  sortDirections: PropTypes.Requireable<string[]>;
26
26
  sortOrder: PropTypes.Requireable<string | boolean>;
27
27
  sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
28
- title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
28
+ title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
29
29
  useFullRender: PropTypes.Requireable<boolean>;
30
30
  width: PropTypes.Requireable<string | number>;
31
31
  };
@@ -21,7 +21,7 @@ declare namespace CustomExpandIcon {
21
21
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
22
22
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
24
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
+ expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
25
25
  prefixCls: PropTypes.Requireable<string>;
26
26
  motion: PropTypes.Requireable<boolean>;
27
27
  };
@@ -80,15 +80,15 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
80
80
  sortDirections: PropTypes.Requireable<string[]>;
81
81
  sortOrder: PropTypes.Requireable<string | boolean>;
82
82
  sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
83
- title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
83
+ title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
84
84
  useFullRender: PropTypes.Requireable<boolean>;
85
85
  width: PropTypes.Requireable<string | number>;
86
86
  }>[]>;
87
87
  hideExpandedColumn: PropTypes.Requireable<boolean>;
88
88
  id: PropTypes.Requireable<string>;
89
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
89
+ expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
90
90
  expandCellFixed: PropTypes.Requireable<boolean | "left" | "right">;
91
- title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
91
+ title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
92
92
  onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
93
93
  showHeader: PropTypes.Requireable<boolean>;
94
94
  indentSize: PropTypes.Requireable<number>;
@@ -106,7 +106,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
106
106
  defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
107
107
  pagination: PropTypes.Requireable<boolean | object>;
108
108
  renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
109
- footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
109
+ footer: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
110
110
  empty: PropTypes.Requireable<PropTypes.ReactNodeLike>;
111
111
  dataSource: PropTypes.Requireable<any[]>;
112
112
  childrenRecordName: PropTypes.Requireable<string>;
@@ -294,7 +294,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
296
296
  onPageSizeChange?: (newPageSize: number) => void;
297
- onChange: ((currentPage: number, pageSize: number) => void) | ((currentPage: number, currentPageSize: number) => void);
297
+ onChange: (currentPage: number, pageSize: number) => void;
298
298
  prevText?: React.ReactNode;
299
299
  nextText?: React.ReactNode;
300
300
  showSizeChanger?: boolean;
@@ -43,15 +43,15 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
43
43
  sortDirections: PropTypes.Requireable<string[]>;
44
44
  sortOrder: PropTypes.Requireable<string | boolean>;
45
45
  sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
46
- title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
46
+ title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
47
47
  useFullRender: PropTypes.Requireable<boolean>;
48
48
  width: PropTypes.Requireable<string | number>;
49
49
  }>[]>;
50
50
  hideExpandedColumn: PropTypes.Requireable<boolean>;
51
51
  id: PropTypes.Requireable<string>;
52
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
52
+ expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
53
53
  expandCellFixed: PropTypes.Requireable<boolean | "left" | "right">;
54
- title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
54
+ title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
55
55
  onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
56
56
  showHeader: PropTypes.Requireable<boolean>;
57
57
  indentSize: PropTypes.Requireable<number>;
@@ -69,7 +69,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
69
69
  defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
70
70
  pagination: PropTypes.Requireable<boolean | object>;
71
71
  renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
72
- footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
72
+ footer: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
73
73
  empty: PropTypes.Requireable<PropTypes.ReactNodeLike>;
74
74
  dataSource: PropTypes.Requireable<any[]>;
75
75
  childrenRecordName: PropTypes.Requireable<string>;
@@ -48,6 +48,8 @@ class TabPane extends PureComponent {
48
48
 
49
49
  return false;
50
50
  };
51
+ /* istanbul ignore next */
52
+
51
53
 
52
54
  this.hideScroll = () => {
53
55
  if (this.ref && this.ref.current) {
@@ -55,6 +57,8 @@ class TabPane extends PureComponent {
55
57
  this.isAnimating = true;
56
58
  }
57
59
  };
60
+ /* istanbul ignore next */
61
+
58
62
 
59
63
  this.autoScroll = () => {
60
64
  if (this.ref && this.ref.current) {
@@ -49,6 +49,8 @@ class Tabs extends BaseComponent {
49
49
  this.onTabClick = (activeKey, event) => {
50
50
  this.foundation.handleTabClick(activeKey, event);
51
51
  };
52
+ /* istanbul ignore next */
53
+
52
54
 
53
55
  this.rePosChildren = (children, activeKey) => {
54
56
  const newChildren = [];
@@ -82,7 +82,7 @@ declare class TagInput extends BaseComponent<TagInputProps, TagInputState> {
82
82
  onRemove: PropTypes.Requireable<(...args: any[]) => any>;
83
83
  onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
84
84
  size: PropTypes.Requireable<"default" | "small" | "large">;
85
- validateStatus: PropTypes.Requireable<"default" | "error" | "warning">;
85
+ validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">;
86
86
  prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
87
87
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
88
88
  'aria-label': PropTypes.Requireable<string>;
@@ -87,7 +87,7 @@ export default class Tooltip extends BaseComponent<TooltipProps, TooltipState> {
87
87
  clickTriggerToHide: PropTypes.Requireable<boolean>;
88
88
  visible: PropTypes.Requireable<boolean>;
89
89
  style: PropTypes.Requireable<object>;
90
- content: PropTypes.Requireable<PropTypes.ReactNodeLike>;
90
+ content: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
91
91
  prefixCls: PropTypes.Requireable<string>;
92
92
  onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
93
93
  onClickOutSide: PropTypes.Requireable<(...args: any[]) => any>;
@@ -39,6 +39,7 @@ export interface SourcePanelProps {
39
39
  noMatch: boolean;
40
40
  filterData: Array<DataItem>;
41
41
  sourceData: Array<DataItem>;
42
+ propsDataSource: DataSource;
42
43
  allChecked: boolean;
43
44
  showNumber: number;
44
45
  inputValue: string;
@@ -254,7 +254,8 @@ class Transfer extends BaseComponent {
254
254
  loading,
255
255
  type,
256
256
  emptyContent,
257
- renderSourcePanel
257
+ renderSourcePanel,
258
+ dataSource
258
259
  } = this.props;
259
260
  const totalToken = locale.total;
260
261
  const inSearchMode = inputValue !== '';
@@ -312,6 +313,7 @@ class Transfer extends BaseComponent {
312
313
  noMatch,
313
314
  filterData,
314
315
  sourceData: data,
316
+ propsDataSource: dataSource,
315
317
  allChecked: !leftContainesNotInSelected,
316
318
  showNumber,
317
319
  inputValue,
package/modal/Modal.tsx CHANGED
@@ -15,6 +15,7 @@ import confirm, { withConfirm, withError, withInfo, withSuccess, withWarning } f
15
15
  import { Locale } from '../locale/interface';
16
16
  import useModal from './useModal';
17
17
  import { ButtonProps } from '../button/Button';
18
+ import { MotionObject } from "@douyinfe/semi-foundation/utils/type";
18
19
 
19
20
  export const destroyFns: any[] = [];
20
21
  export type ConfirmType = 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
@@ -156,6 +157,7 @@ class Modal extends BaseComponent<ModalReactProps, ModalState> {
156
157
  this.props.onOk(e);
157
158
  },
158
159
  notifyClose: () => {
160
+ (this.props.motion as MotionObject)?.didLeave?.();
159
161
  this.props.afterClose();
160
162
  },
161
163
  toggleHidden: (hidden: boolean, callback?: (hidden: boolean) => void) => {
package/modal/confirm.tsx CHANGED
@@ -118,4 +118,4 @@ export function withConfirm(props: ModalReactProps) {
118
118
  icon: <IconHelpCircle />,
119
119
  ...props
120
120
  };
121
- }
121
+ }
@@ -352,5 +352,49 @@ const LargeData = () => {
352
352
  );
353
353
  };
354
354
 
355
+ export const OverflowListWithSlide = () =>{
356
+ const [width, setWidth] = useState(100);
357
+ const renderOverflow = items => {
358
+ return items.length ? <Tag style={{ flex: '0 0 auto' }}>+{items.length}</Tag> : null;
359
+ };
360
+ const renderItem = (item, ind) => {
361
+ return (
362
+ <Tag color="blue" key={item.key} style={{ marginRight: 8, flex: '0 0 auto' }}>
363
+ {item.icon}
364
+ {item.key}
365
+ </Tag>
366
+ );
367
+ };
368
+
369
+ const items = [
370
+ { icon: <IconAlarm style={{ marginRight: 4 }} />, key: 'alarm' },
371
+ { icon: <IconBookmark style={{ marginRight: 4 }} />, key: 'bookmark' },
372
+ { icon: <IconCamera style={{ marginRight: 4 }} />, key: 'camera' },
373
+ { icon: <IconDuration style={{ marginRight: 4 }} />, key: 'duration' },
374
+ { icon: <IconEdit style={{ marginRight: 4 }} />, key: 'edit' },
375
+ { icon: <IconFolder style={{ marginRight: 4 }} />, key: 'folder' },
376
+ ];
377
+
378
+ return (
379
+ <div>
380
+ <Slider step={1} value={width} onChange={value => setWidth(value)} />
381
+ <br />
382
+ <br />
383
+ <div style={{ width: `${width}%` }}>
384
+ <OverflowList
385
+ items={items}
386
+ // minVisibleItems={3}
387
+ overflowRenderer={renderOverflow}
388
+ visibleItemRenderer={renderItem}
389
+ />
390
+ </div>
391
+ </div>
392
+ );
393
+ }
394
+
395
+ OverflowListWithSlide.story = {
396
+ name: 'overflowList with slide',
397
+ };
398
+
355
399
  // TODO large data will cause memory heap
356
400
  // stories.add('large amount of data', () => <LargeData />);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.8.2",
3
+ "version": "2.9.0",
4
4
  "description": "",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -14,12 +14,12 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@babel/runtime-corejs3": "^7.15.4",
17
- "@douyinfe/semi-animation": "2.8.2",
18
- "@douyinfe/semi-animation-react": "2.8.2",
19
- "@douyinfe/semi-foundation": "2.8.2",
20
- "@douyinfe/semi-icons": "2.8.2",
21
- "@douyinfe/semi-illustrations": "2.8.2",
22
- "@douyinfe/semi-theme-default": "2.8.2",
17
+ "@douyinfe/semi-animation": "2.9.0",
18
+ "@douyinfe/semi-animation-react": "2.9.0",
19
+ "@douyinfe/semi-foundation": "2.9.0",
20
+ "@douyinfe/semi-icons": "2.9.0",
21
+ "@douyinfe/semi-illustrations": "2.9.0",
22
+ "@douyinfe/semi-theme-default": "2.9.0",
23
23
  "@types/react-window": "^1.8.2",
24
24
  "async-validator": "^3.5.0",
25
25
  "classnames": "^2.2.6",
@@ -69,13 +69,13 @@
69
69
  ],
70
70
  "author": "",
71
71
  "license": "MIT",
72
- "gitHead": "436e0a2bd28a1d641c26cd9a35269e05abe205cd",
72
+ "gitHead": "22b74e58077b068daa6b35bc8b32f47a064734a3",
73
73
  "devDependencies": {
74
74
  "@babel/plugin-proposal-decorators": "^7.15.8",
75
75
  "@babel/plugin-transform-runtime": "^7.15.8",
76
76
  "@babel/preset-env": "^7.15.8",
77
77
  "@babel/preset-react": "^7.14.5",
78
- "@douyinfe/semi-scss-compile": "2.8.2",
78
+ "@douyinfe/semi-scss-compile": "2.9.0",
79
79
  "@storybook/addon-knobs": "^6.3.1",
80
80
  "@types/lodash": "^4.14.176",
81
81
  "babel-loader": "^8.2.2",