@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,72 @@
1
+ import { Divider } from '../../index';
2
+
3
+ describe('Divider', () => {
4
+ it('Divider-custom className & style', () => {
5
+ const props = {
6
+ className: 'test',
7
+ style: {
8
+ color: 'red',
9
+ },
10
+ };
11
+ const demo = mount(<Divider {...props}/>);
12
+ expect(demo.exists(`.semi-divider.test`)).toEqual(true);
13
+ expect(demo.find(`.semi-divider`)).toHaveStyle('color', 'red');
14
+ });
15
+
16
+ it('test title', () => {
17
+ const demo = mount(<Divider>divider title</Divider>);
18
+ expect(demo.getDOMNode().textContent).toEqual('divider title');
19
+ });
20
+
21
+ it('test align', () => {
22
+
23
+ const demo = mount(
24
+ <div>
25
+ Semi-Design
26
+ <Divider>divider center title</Divider>
27
+ Semi-Design
28
+ <Divider align="left">divider left title</Divider>
29
+ Semi-Design
30
+ <Divider align="right">divider right title</Divider>
31
+ </div>
32
+ );
33
+ expect(demo.exists(`.semi-divider-with-text-center`)).toBe(true);
34
+ expect(demo.exists(`.semi-divider-with-text-left`)).toBe(true);
35
+ expect(demo.exists(`.semi-divider-with-text-right`)).toBe(true);
36
+ });
37
+
38
+ it('test layout', () => {
39
+ const props = {
40
+ layout: 'vertical',
41
+ };
42
+ const demo = mount(
43
+ <div>
44
+ Semi-Design
45
+ <Divider {...props} />
46
+ Semi-Design
47
+ <Divider {...props} />
48
+ Semi-Design
49
+ <Divider {...props} />
50
+ </div>
51
+ );
52
+ expect(demo.exists(`.semi-divider-vertical`)).toBe(true);
53
+ demo.unmount();
54
+ });
55
+ it('test dashed',()=>{
56
+ const props = {
57
+ dashed:true
58
+ };
59
+ const demo = mount(
60
+ <div>
61
+ Semi-Design
62
+ <Divider {...props} />
63
+ Semi-Design
64
+ <Divider {...props} />
65
+ Semi-Design
66
+ <Divider {...props} />
67
+ </div>
68
+ );
69
+ expect(demo.exists('.semi-divider-dashed')).toBe(true);
70
+ demo.unmount();
71
+ })
72
+ });
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import Divider from '../index';
3
+
4
+ const Demo = () => {
5
+ return (
6
+ <>
7
+ <p>Semi Design </p>
8
+ <Divider />
9
+ <p>Semi Design </p>
10
+ <Divider />
11
+ <p>Semi Design </p>
12
+ </>
13
+ );
14
+ };
15
+
16
+ export default Demo;
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ // import { withKnobs, text, boolean } from '@storybook/addon-knobs';
4
+
5
+ import Divider from '../index';
6
+ import { IllustrationSuccess } from '@douyinfe/semi-illustrations';
7
+
8
+ const stories = storiesOf('Divider', module);
9
+
10
+ stories.add('Divider default', () => (
11
+ <div>
12
+ <p>Semi Design</p>
13
+ <Divider />
14
+ <p>Semi Design</p>
15
+ <Divider />
16
+ <p>Semi Design</p>
17
+ <Divider dashed />
18
+ <p>Semi Design</p>
19
+ </div>
20
+ ));
21
+
22
+ stories.add('Divider vertical', () => (
23
+ <div>
24
+ <span>Semi Design</span>
25
+ <Divider layout="vertical" />
26
+ <span>Semi Design</span>
27
+ <Divider layout="vertical" />
28
+ <span>Semi Design</span>
29
+ </div>
30
+ ));
31
+
32
+ stories.add('Divider title', () => (
33
+ <div>
34
+ <p>Semi Design </p>
35
+ <Divider>Title</Divider>
36
+ <p>Semi Design </p>
37
+ <Divider align='left'>Title</Divider>
38
+ <p>Semi Design </p>
39
+ <Divider align='right'>Title</Divider>
40
+ </div>
41
+ ));
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+
4
+ import Demo from './Demo';
5
+
6
+ const stories = storiesOf('Divider', module);
7
+
8
+ stories.add('Divider', () => <Demo />);
@@ -0,0 +1,72 @@
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import cls from 'classnames';
3
+ import { cssClasses } from '@douyinfe/semi-foundation/divider/constants';
4
+ import '@douyinfe/semi-foundation/divider/divider.scss';
5
+
6
+
7
+ const prefixCls = cssClasses.PREFIX;
8
+
9
+ export interface DividerProps {
10
+ /** The position of title inside divider */
11
+ align?: 'left' | 'right' | 'center';
12
+ /** space between divider and surroundings **/
13
+ margin?: number | string
14
+ /** The wrapped title */
15
+ children?: ReactNode;
16
+ /** Style class name */
17
+ className?: string;
18
+ /** Whether line is dashed */
19
+ dashed?: boolean;
20
+ /** The direction type of divider */
21
+ layout?: 'horizontal' | 'vertical';
22
+ /** Divider inline style */
23
+ style?: CSSProperties;
24
+ }
25
+
26
+ const Divider: React.FC<DividerProps> = props => {
27
+ const {
28
+ layout = 'horizontal',
29
+ dashed,
30
+ align = 'center',
31
+ className,
32
+ margin,
33
+ style,
34
+ children,
35
+ ...rest
36
+ } = props;
37
+
38
+ const dividerClassNames = cls(`${prefixCls}-divider`, className, {
39
+ [`${prefixCls}-divider-horizontal`]: layout === 'horizontal',
40
+ [`${prefixCls}-divider-vertical`]: layout === 'vertical',
41
+ [`${prefixCls}-divider-dashed`]: !!dashed,
42
+ [`${prefixCls}-divider-with-text`]: children && layout === 'horizontal',
43
+ [`${prefixCls}-divider-with-text-${align}`]: children && layout === 'horizontal',
44
+ });
45
+
46
+ let overrideDefaultStyle: CSSProperties = {};
47
+ if (margin !== undefined) {
48
+ if (layout === 'vertical') {
49
+ overrideDefaultStyle = {
50
+ 'marginLeft': margin,
51
+ 'marginRight': margin
52
+ };
53
+ } else if (layout === 'horizontal') {
54
+ overrideDefaultStyle = {
55
+ 'marginTop': margin,
56
+ 'marginBottom': margin,
57
+ };
58
+ }
59
+ }
60
+
61
+ return (
62
+ <div {...rest} className={dividerClassNames} style={{ ...overrideDefaultStyle, ...style }}>
63
+ {(children && layout === 'horizontal') ? (
64
+ typeof children === 'string' ? <span className={`${prefixCls}-divider_inner-text`}>
65
+ {children}
66
+ </span> : children
67
+ ) : null}
68
+ </div>
69
+ );
70
+ };
71
+
72
+ export default Divider;
@@ -283,6 +283,15 @@ class BasicDemoWithInit extends Component {
283
283
  </Form.AutoComplete>
284
284
  </Col>
285
285
  </Row>
286
+ <Row>
287
+ <Col span={12}>
288
+ <Form.TagInput
289
+ field='tags'
290
+ label='tags'
291
+ />
292
+ </Col>
293
+
294
+ </Row>
286
295
  </Form.Section>
287
296
  <Form.Section text='资源详情'>
288
297
 
package/index.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';
@@ -113,9 +113,18 @@ describe('Input', () => {
113
113
  });
114
114
 
115
115
  it('input password mode', () => {
116
- const inputMode = mount(<Input mode="password" />);
117
- const input = inputMode.find('input');
118
- expect(input.instance().type).toEqual('password');
116
+ const inputMode = mount(<Input />);
117
+ expect(inputMode.find('input').instance().type).toEqual('text');
118
+ inputMode.setProps({ mode: 'password' }) ;
119
+ expect(inputMode.find('input').instance().type).toEqual('password');
120
+ inputMode.setProps({ mode: '' }) ;
121
+ expect(inputMode.find('input').instance().type).toEqual('text');
122
+ });
123
+
124
+ it('input password click eyes icon', () => {
125
+ const inputMode = mount(<Input mode='password' defaultValue="123456" autofocus/>);
126
+ inputMode.simulate('mouseEnter', {}).find(`.${BASE_CLASS_PREFIX}-input-modebtn`).simulate('click');
127
+ expect(inputMode.find('input').instance().type).toEqual('text');
119
128
  });
120
129
 
121
130
  it('input controlled mode', () => {
@@ -116,4 +116,57 @@ describe('TextArea', () => {
116
116
  const counter2 = textarea.find(`.${BASE_CLASS_PREFIX}-input-textarea-counter`);
117
117
  expect(counter2.hasClass('semi-input-textarea-counter-exceed')).toEqual(false);
118
118
  });
119
+
120
+ it('test minLength', () => {
121
+ let inputValue = '💖💖💖';
122
+ let inputValue1 = '💖💖💖💖';
123
+ let minLength = 4;
124
+ let event = { target: { value: inputValue } };
125
+ let event1 = { target: { value: inputValue1 } };
126
+
127
+ let onChange = value => {
128
+ console.log(value);
129
+ };
130
+ let spyOnChange = sinon.spy(onChange);
131
+ const textArea = mount(<TextArea onChange={spyOnChange} minLength={minLength} getValueLength={getValueLength} />);
132
+ const textAreaDom = textArea.find('textarea');
133
+
134
+ textAreaDom.simulate('change', event);
135
+ expect(spyOnChange.calledOnce).toBe(true);
136
+ expect(spyOnChange.calledWithMatch(textAreaDom)).toBe(true);
137
+ expect(textAreaDom.instance().minLength).toEqual(inputValue.length + (minLength - getValueLength(inputValue)));
138
+
139
+ textAreaDom.simulate('change', event1);
140
+ expect(spyOnChange.calledWithMatch(textAreaDom)).toBe(true);
141
+ expect(textAreaDom.instance().minLength).toEqual(minLength)
142
+ });
143
+
144
+ it('test maxLength + truncateValue', () => {
145
+ function truncateValue(inputValue, maxLength, getValueLength) {
146
+ let event = { target: { value: inputValue } };
147
+ let onChange = value => {
148
+ console.log(value);
149
+ };
150
+
151
+ let spyOnChange = sinon.spy(onChange);
152
+ const textArea = mount(<TextArea onChange={spyOnChange} maxLength={maxLength} getValueLength={getValueLength} />);
153
+ const textAreaDom = textArea.find('textarea');
154
+ textAreaDom.simulate('change', event);
155
+ expect(spyOnChange.calledOnce).toBe(true);
156
+ return textAreaDom.instance().value;
157
+ }
158
+
159
+ const testCases = [
160
+ // 自定义valueLength
161
+ ['Semi', 5, getValueLength, 'Semi'],
162
+ ['Semi Design', 4, getValueLength, 'Semi'],
163
+ ['💖💖💖💖💖💖💖💖💖💖👨👩👧👦', 10, getValueLength, '💖💖💖💖💖💖💖💖💖💖'],
164
+ ['💖', -1, getValueLength, ''],
165
+ ['🆗', 1, getValueLength, '🆗'],
166
+ ];
167
+
168
+ for (let [value, length, fc, result] of testCases) {
169
+ expect(truncateValue(value, length, fc)).toBe(result);
170
+ }
171
+ })
119
172
  })
@@ -14,6 +14,9 @@ export interface BadgeProps {
14
14
  overflowCount?: number;
15
15
  style?: React.CSSProperties;
16
16
  className?: string;
17
+ onMouseEnter?: (e: React.MouseEvent) => any;
18
+ onMouseLeave?: (e: React.MouseEvent) => any;
19
+ onClick?: (e: React.MouseEvent) => any;
17
20
  children?: React.ReactNode | undefined;
18
21
  }
19
22
  export default class Badge extends PureComponent<BadgeProps> {
@@ -28,12 +31,18 @@ export default class Badge extends PureComponent<BadgeProps> {
28
31
  style: PropTypes.Requireable<object>;
29
32
  className: PropTypes.Requireable<string>;
30
33
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
34
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
35
+ onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
36
+ onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
31
37
  };
32
38
  static defaultProps: {
33
39
  dot: boolean;
34
40
  type: string;
35
41
  theme: string;
36
42
  className: string;
43
+ onClick: () => (...args: any[]) => void;
44
+ onMouseEnter: () => (...args: any[]) => void;
45
+ onMouseLeave: () => (...args: any[]) => void;
37
46
  };
38
47
  context: ContextValue;
39
48
  render(): JSX.Element;
@@ -14,8 +14,16 @@ _Object$defineProperty(exports, "__esModule", {
14
14
 
15
15
  exports.default = void 0;
16
16
 
17
+ var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
18
+
19
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
20
+
17
21
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
18
22
 
23
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
24
+
25
+ var _noop2 = _interopRequireDefault(require("lodash/noop"));
26
+
19
27
  var _isString2 = _interopRequireDefault(require("lodash/isString"));
20
28
 
21
29
  var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
@@ -36,6 +44,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
36
44
 
37
45
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
38
46
 
47
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
48
+ var t = {};
49
+
50
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && (0, _indexOf.default)(e).call(e, p) < 0) t[p] = s[p];
51
+
52
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
53
+ if ((0, _indexOf.default)(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
54
+ }
55
+ return t;
56
+ };
57
+
39
58
  const prefixCls = _constants.cssClasses.PREFIX;
40
59
 
41
60
  class Badge extends _react.PureComponent {
@@ -48,7 +67,8 @@ class Badge extends _react.PureComponent {
48
67
 
49
68
  const defaultPosition = direction === 'rtl' ? 'leftTop' : 'rightTop'; // eslint-disable-next-line max-len
50
69
 
51
- const {
70
+ const _a = this.props,
71
+ {
52
72
  count,
53
73
  dot,
54
74
  type,
@@ -58,7 +78,9 @@ class Badge extends _react.PureComponent {
58
78
  style,
59
79
  children,
60
80
  className
61
- } = this.props;
81
+ } = _a,
82
+ rest = __rest(_a, ["count", "dot", "type", "theme", "position", "overflowCount", "style", "children", "className"]);
83
+
62
84
  const custom = count && !((0, _isNumber2.default)(count) || (0, _isString2.default)(count));
63
85
  const showBadge = count !== null && typeof count !== 'undefined';
64
86
  const wrapper = (0, _classnames.default)(className, {
@@ -78,9 +100,9 @@ class Badge extends _react.PureComponent {
78
100
  content = count;
79
101
  }
80
102
 
81
- return /*#__PURE__*/_react.default.createElement("span", {
103
+ return /*#__PURE__*/_react.default.createElement("span", (0, _assign.default)({
82
104
  className: prefixCls
83
- }, children, /*#__PURE__*/_react.default.createElement("span", {
105
+ }, rest), children, /*#__PURE__*/_react.default.createElement("span", {
84
106
  className: wrapper,
85
107
  style: style
86
108
  }, dot ? null : content));
@@ -99,11 +121,17 @@ Badge.propTypes = {
99
121
  overflowCount: _propTypes.default.number,
100
122
  style: _propTypes.default.object,
101
123
  className: _propTypes.default.string,
102
- children: _propTypes.default.node
124
+ children: _propTypes.default.node,
125
+ onClick: _propTypes.default.func,
126
+ onMouseEnter: _propTypes.default.func,
127
+ onMouseLeave: _propTypes.default.func
103
128
  };
104
129
  Badge.defaultProps = {
105
130
  dot: false,
106
131
  type: 'primary',
107
132
  theme: 'solid',
108
- className: ''
133
+ className: '',
134
+ onClick: () => _noop2.default,
135
+ onMouseEnter: () => _noop2.default,
136
+ onMouseLeave: () => _noop2.default
109
137
  };
@@ -12,7 +12,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
12
12
  style: import("prop-types").Requireable<object>;
13
13
  loading: import("prop-types").Requireable<boolean>;
14
14
  prefixCls: import("prop-types").Requireable<string>;
15
- icon: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
15
+ icon: import("prop-types").Requireable<object | import("prop-types").ReactNodeLike>;
16
16
  iconSize: import("prop-types").Requireable<string>;
17
17
  noHorizontalPadding: import("prop-types").Requireable<string | boolean | any[]>;
18
18
  children: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
@@ -423,7 +423,7 @@ class Cascader extends _baseComponent.default {
423
423
 
424
424
  this.handleClearEnterPress = e => {
425
425
  e && e.stopPropagation();
426
- this.foundation.handleClearEnterPress();
426
+ this.foundation.handleClearEnterPress(e);
427
427
  };
428
428
 
429
429
  this.showClearBtn = () => {
@@ -103,9 +103,11 @@ class CollapsePanel extends _react.PureComponent {
103
103
  className,
104
104
  children,
105
105
  itemKey,
106
- reCalcKey
106
+ reCalcKey,
107
+ header,
108
+ extra
107
109
  } = _a,
108
- restProps = __rest(_a, ["className", "children", "itemKey", "reCalcKey"]);
110
+ restProps = __rest(_a, ["className", "children", "itemKey", "reCalcKey", "header", "extra"]);
109
111
 
110
112
  const {
111
113
  keepDOM,
@@ -6,8 +6,7 @@ import Item from './item';
6
6
  export { DescriptionsItemProps } from './item';
7
7
  export declare type DescriptionsSize = 'small' | 'medium' | 'large';
8
8
  export interface Data {
9
- [x: string]: any;
10
- key?: string | number;
9
+ key?: React.ReactNode;
11
10
  value?: (() => React.ReactNode) | React.ReactNode;
12
11
  hidden?: boolean;
13
12
  }
@@ -31,7 +30,7 @@ declare class Descriptions extends PureComponent<DescriptionsProps> {
31
30
  className: PropTypes.Requireable<string>;
32
31
  data: PropTypes.Requireable<PropTypes.InferProps<{
33
32
  key: PropTypes.Requireable<PropTypes.ReactNodeLike>;
34
- value: PropTypes.Requireable<PropTypes.ReactNodeLike>;
33
+ value: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
35
34
  hidden: PropTypes.Requireable<boolean>;
36
35
  className: PropTypes.Requireable<string>;
37
36
  style: PropTypes.Requireable<object>;
@@ -60,10 +60,11 @@ class Descriptions extends _react.PureComponent {
60
60
  ["".concat(prefixCls, "-double")]: row,
61
61
  [(0, _concat.default)(_context2 = "".concat(prefixCls, "-double-")).call(_context2, size)]: row
62
62
  });
63
- const childrenList = data && data.length ? (0, _map.default)(data).call(data, item => (0, _isPlainObject2.default)(item) ? /*#__PURE__*/_react.default.createElement(_item.default, (0, _assign.default)({
64
- key: item.key,
63
+ const childrenList = data && data.length ? (0, _map.default)(data).call(data, (item, index) => (0, _isPlainObject2.default)(item) ? /*#__PURE__*/_react.default.createElement(_item.default, (0, _assign.default)({
65
64
  itemKey: item.key
66
- }, item), item.value) : null) : children;
65
+ }, item, {
66
+ key: index
67
+ }), item.value) : null) : children;
67
68
  return /*#__PURE__*/_react.default.createElement("div", {
68
69
  className: classNames,
69
70
  style: style
@@ -7,7 +7,7 @@ export interface DescriptionsItemProps {
7
7
  className?: string;
8
8
  children?: React.ReactNode | undefined | (() => React.ReactNode);
9
9
  style?: React.CSSProperties;
10
- itemKey: string | number;
10
+ itemKey?: React.ReactNode;
11
11
  }
12
12
  export default class Item extends PureComponent<DescriptionsItemProps> {
13
13
  static propTypes: {
@@ -0,0 +1,20 @@
1
+ import React, { CSSProperties, ReactNode } from 'react';
2
+ import '@douyinfe/semi-foundation/lib/cjs/divider/divider.css';
3
+ export interface DividerProps {
4
+ /** The position of title inside divider */
5
+ align?: 'left' | 'right' | 'center';
6
+ /** space between divider and surroundings **/
7
+ margin?: number | string;
8
+ /** The wrapped title */
9
+ children?: ReactNode;
10
+ /** Style class name */
11
+ className?: string;
12
+ /** Whether line is dashed */
13
+ dashed?: boolean;
14
+ /** The direction type of divider */
15
+ layout?: 'horizontal' | 'vertical';
16
+ /** Divider inline style */
17
+ style?: CSSProperties;
18
+ }
19
+ declare const Divider: React.FC<DividerProps>;
20
+ export default Divider;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ exports.default = void 0;
12
+
13
+ var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
14
+
15
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
16
+
17
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
18
+
19
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
20
+
21
+ var _react = _interopRequireDefault(require("react"));
22
+
23
+ var _classnames = _interopRequireDefault(require("classnames"));
24
+
25
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/divider/constants");
26
+
27
+ require("@douyinfe/semi-foundation/lib/cjs/divider/divider.css");
28
+
29
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
30
+ var t = {};
31
+
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && (0, _indexOf.default)(e).call(e, p) < 0) t[p] = s[p];
33
+
34
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
35
+ if ((0, _indexOf.default)(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
36
+ }
37
+ return t;
38
+ };
39
+
40
+ const prefixCls = _constants.cssClasses.PREFIX;
41
+
42
+ const Divider = props => {
43
+ var _context;
44
+
45
+ const {
46
+ layout = 'horizontal',
47
+ dashed,
48
+ align = 'center',
49
+ className,
50
+ margin,
51
+ style,
52
+ children
53
+ } = props,
54
+ rest = __rest(props, ["layout", "dashed", "align", "className", "margin", "style", "children"]);
55
+
56
+ const dividerClassNames = (0, _classnames.default)("".concat(prefixCls, "-divider"), className, {
57
+ ["".concat(prefixCls, "-divider-horizontal")]: layout === 'horizontal',
58
+ ["".concat(prefixCls, "-divider-vertical")]: layout === 'vertical',
59
+ ["".concat(prefixCls, "-divider-dashed")]: !!dashed,
60
+ ["".concat(prefixCls, "-divider-with-text")]: children && layout === 'horizontal',
61
+ [(0, _concat.default)(_context = "".concat(prefixCls, "-divider-with-text-")).call(_context, align)]: children && layout === 'horizontal'
62
+ });
63
+ let overrideDefaultStyle = {};
64
+
65
+ if (margin !== undefined) {
66
+ if (layout === 'vertical') {
67
+ overrideDefaultStyle = {
68
+ 'marginLeft': margin,
69
+ 'marginRight': margin
70
+ };
71
+ } else if (layout === 'horizontal') {
72
+ overrideDefaultStyle = {
73
+ 'marginTop': margin,
74
+ 'marginBottom': margin
75
+ };
76
+ }
77
+ }
78
+
79
+ return /*#__PURE__*/_react.default.createElement("div", (0, _assign.default)({}, rest, {
80
+ className: dividerClassNames,
81
+ style: (0, _assign.default)((0, _assign.default)({}, overrideDefaultStyle), style)
82
+ }), children && layout === 'horizontal' ? typeof children === 'string' ? /*#__PURE__*/_react.default.createElement("span", {
83
+ className: "".concat(prefixCls, "-divider_inner-text")
84
+ }, children) : children : null);
85
+ };
86
+
87
+ var _default = Divider;
88
+ exports.default = _default;
@@ -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>;