@douyinfe/semi-ui 2.47.0-beta.0 → 2.48.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.
@@ -10,12 +10,14 @@ export interface AvatarState {
10
10
  isImgExist: boolean;
11
11
  hoverContent: React.ReactNode;
12
12
  focusVisible: boolean;
13
+ scale: number;
13
14
  }
14
15
  export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
15
16
  static defaultProps: {
16
17
  size: string;
17
18
  color: string;
18
19
  shape: string;
20
+ gap: number;
19
21
  onClick: typeof noop;
20
22
  onMouseEnter: typeof noop;
21
23
  onMouseLeave: typeof noop;
@@ -29,6 +31,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
29
31
  hoverMask: PropTypes.Requireable<PropTypes.ReactNodeLike>;
30
32
  className: PropTypes.Requireable<string>;
31
33
  style: PropTypes.Requireable<object>;
34
+ gap: PropTypes.Requireable<number>;
32
35
  imgAttr: PropTypes.Requireable<object>;
33
36
  src: PropTypes.Requireable<string>;
34
37
  srcSet: PropTypes.Requireable<string>;
@@ -39,6 +42,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
39
42
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
40
43
  };
41
44
  foundation: AvatarFoundation;
45
+ avatarRef: React.RefObject<HTMLElement | null>;
42
46
  constructor(props: AvatarProps);
43
47
  get adapter(): AvatarAdapter<AvatarProps, AvatarState>;
44
48
  componentDidMount(): void;
@@ -95,8 +95,12 @@ class Avatar extends _baseComponent.default {
95
95
  })
96
96
  };
97
97
  const finalProps = clickable ? Object.assign(Object.assign({}, props), a11yFocusProps) : props;
98
+ const stringStyle = {
99
+ transform: `scale(${this.state.scale})`
100
+ };
98
101
  content = /*#__PURE__*/_react.default.createElement("span", {
99
- className: `${prefixCls}-content`
102
+ className: `${prefixCls}-content`,
103
+ style: stringStyle
100
104
  }, /*#__PURE__*/_react.default.createElement("span", Object.assign({}, finalProps, {
101
105
  "x-semi-prop": "children"
102
106
  }), children));
@@ -106,13 +110,15 @@ class Avatar extends _baseComponent.default {
106
110
  this.state = {
107
111
  isImgExist: true,
108
112
  hoverContent: '',
109
- focusVisible: false
113
+ focusVisible: false,
114
+ scale: 1
110
115
  };
111
116
  this.onEnter = this.onEnter.bind(this);
112
117
  this.onLeave = this.onLeave.bind(this);
113
118
  this.handleError = this.handleError.bind(this);
114
119
  this.handleKeyDown = this.handleKeyDown.bind(this);
115
120
  this.getContent = this.getContent.bind(this);
121
+ this.avatarRef = /*#__PURE__*/_react.default.createRef();
116
122
  }
117
123
  get adapter() {
118
124
  return Object.assign(Object.assign({}, super.adapter), {
@@ -149,6 +155,15 @@ class Avatar extends _baseComponent.default {
149
155
  this.setState({
150
156
  focusVisible
151
157
  });
158
+ },
159
+ setScale: scale => {
160
+ this.setState({
161
+ scale
162
+ });
163
+ },
164
+ getAvatarNode: () => {
165
+ var _a;
166
+ return (_a = this.avatarRef) === null || _a === void 0 ? void 0 : _a.current;
152
167
  }
153
168
  });
154
169
  }
@@ -176,6 +191,9 @@ class Avatar extends _baseComponent.default {
176
191
  });
177
192
  };
178
193
  }
194
+ if (typeof this.props.children === "string" && this.props.children !== prevProps.children) {
195
+ this.foundation.changeScale();
196
+ }
179
197
  }
180
198
  componentWillUnmount() {
181
199
  this.foundation.destroy();
@@ -219,9 +237,10 @@ class Avatar extends _baseComponent.default {
219
237
  src,
220
238
  srcSet,
221
239
  style,
222
- alt
240
+ alt,
241
+ gap
223
242
  } = _a,
224
- others = __rest(_a, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt"]);
243
+ others = __rest(_a, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt", "gap"]);
225
244
  const {
226
245
  isImgExist,
227
246
  hoverContent,
@@ -245,7 +264,8 @@ class Avatar extends _baseComponent.default {
245
264
  onClick: onClick,
246
265
  onMouseEnter: this.onEnter,
247
266
  onMouseLeave: this.onLeave,
248
- role: 'listitem'
267
+ role: 'listitem',
268
+ ref: this.avatarRef
249
269
  }), this.getContent(), hoverRender);
250
270
  }
251
271
  }
@@ -254,6 +274,7 @@ Avatar.defaultProps = {
254
274
  size: 'medium',
255
275
  color: 'grey',
256
276
  shape: 'circle',
277
+ gap: 3,
257
278
  onClick: _function.noop,
258
279
  onMouseEnter: _function.noop,
259
280
  onMouseLeave: _function.noop
@@ -266,6 +287,7 @@ Avatar.propTypes = {
266
287
  hoverMask: _propTypes.default.node,
267
288
  className: _propTypes.default.string,
268
289
  style: _propTypes.default.object,
290
+ gap: _propTypes.default.number,
269
291
  imgAttr: _propTypes.default.object,
270
292
  src: _propTypes.default.string,
271
293
  srcSet: _propTypes.default.string,
@@ -12,6 +12,7 @@ export interface AvatarProps extends BaseProps {
12
12
  src?: string;
13
13
  srcSet?: string;
14
14
  alt?: string;
15
+ gap?: number;
15
16
  onError?: React.MouseEventHandler;
16
17
  onClick?: React.MouseEventHandler;
17
18
  onMouseEnter?: React.MouseEventHandler;
@@ -45,7 +45,11 @@ class DropdownItem extends _baseComponent.default {
45
45
  if (!disabled) {
46
46
  ['onClick', 'onMouseEnter', 'onMouseLeave', 'onContextMenu'].forEach(eventName => {
47
47
  if (eventName === "onClick") {
48
- events["onMouseDown"] = this.props[eventName];
48
+ events["onMouseDown"] = e => {
49
+ if (e.button === 0) {
50
+ this.props[eventName](e);
51
+ }
52
+ };
49
53
  } else {
50
54
  events[eventName] = this.props[eventName];
51
55
  }
@@ -82,6 +82,7 @@ class Slider extends _baseComponent.default {
82
82
  });
83
83
  const handleContents = !range ? /*#__PURE__*/_react.default.createElement(_index.default, {
84
84
  content: tipChildren.min,
85
+ showArrow: this.props.showArrow,
85
86
  position: "top",
86
87
  trigger: "custom",
87
88
  rePosKey: minPercent,
@@ -280,7 +281,7 @@ class Slider extends _baseComponent.default {
280
281
  [`${prefixCls}-dot-active`]: this.foundation.isMarkActive(Number(mark)) === 'active'
281
282
  });
282
283
  const markPercent = (Number(mark) - min) / (max - min);
283
- return activeResult ?
284
+ const dotDOM =
284
285
  /*#__PURE__*/
285
286
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
286
287
  _react.default.createElement("span", {
@@ -290,11 +291,17 @@ class Slider extends _baseComponent.default {
290
291
  style: {
291
292
  [stylePos]: `calc(${markPercent * 100}% - 2px)`
292
293
  }
293
- }) : null;
294
+ });
295
+ return activeResult ? this.props.tooltipOnMark ? /*#__PURE__*/_react.default.createElement(_index.default, {
296
+ content: marks[mark]
297
+ }, dotDOM) : dotDOM : null;
294
298
  })) : null;
295
299
  return labelContent;
296
300
  };
297
301
  this.renderLabel = () => {
302
+ if (!this.props.showMarkLabel) {
303
+ return null;
304
+ }
298
305
  const {
299
306
  min,
300
307
  max,
@@ -624,6 +631,7 @@ Slider.propTypes = {
624
631
  // allowClear: PropTypes.bool,
625
632
  defaultValue: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.array]),
626
633
  disabled: _propTypes.default.bool,
634
+ showMarkLabel: _propTypes.default.bool,
627
635
  included: _propTypes.default.bool,
628
636
  marks: _propTypes.default.object,
629
637
  max: _propTypes.default.number,
@@ -636,7 +644,9 @@ Slider.propTypes = {
636
644
  onAfterChange: _propTypes.default.func,
637
645
  onChange: _propTypes.default.func,
638
646
  onMouseUp: _propTypes.default.func,
647
+ tooltipOnMark: _propTypes.default.bool,
639
648
  tooltipVisible: _propTypes.default.bool,
649
+ showArrow: _propTypes.default.bool,
640
650
  style: _propTypes.default.object,
641
651
  className: _propTypes.default.string,
642
652
  showBoundary: _propTypes.default.bool,
@@ -647,10 +657,13 @@ Slider.propTypes = {
647
657
  Slider.defaultProps = {
648
658
  // allowClear: false,
649
659
  disabled: false,
660
+ showMarkLabel: true,
661
+ tooltipOnMark: false,
650
662
  included: true,
651
663
  max: 100,
652
664
  min: 0,
653
665
  range: false,
666
+ showArrow: true,
654
667
  step: 1,
655
668
  tipFormatter: value => value,
656
669
  vertical: false,
@@ -37,9 +37,6 @@ class HeadTable extends _react.default.PureComponent {
37
37
  bodyHasScrollBar,
38
38
  sticky
39
39
  } = this.props;
40
- if (!showHeader) {
41
- return null;
42
- }
43
40
  const Table = (0, _get2.default)(components, 'header.outer', 'table');
44
41
  const x = (0, _get2.default)(scroll, 'x');
45
42
  const headStyle = {};
@@ -60,7 +57,8 @@ class HeadTable extends _react.default.PureComponent {
60
57
  onDidUpdate: onDidUpdate
61
58
  }));
62
59
  const headTableCls = (0, _classnames.default)(`${prefixCls}-header`, {
63
- [`${prefixCls}-header-sticky`]: sticky
60
+ [`${prefixCls}-header-sticky`]: sticky,
61
+ [`${prefixCls}-header-hidden`]: !showHeader
64
62
  });
65
63
  const stickyTop = (0, _get2.default)(sticky, 'top', 0);
66
64
  if (typeof stickyTop === 'number') {
@@ -10,12 +10,14 @@ export interface AvatarState {
10
10
  isImgExist: boolean;
11
11
  hoverContent: React.ReactNode;
12
12
  focusVisible: boolean;
13
+ scale: number;
13
14
  }
14
15
  export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
15
16
  static defaultProps: {
16
17
  size: string;
17
18
  color: string;
18
19
  shape: string;
20
+ gap: number;
19
21
  onClick: typeof noop;
20
22
  onMouseEnter: typeof noop;
21
23
  onMouseLeave: typeof noop;
@@ -29,6 +31,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
29
31
  hoverMask: PropTypes.Requireable<PropTypes.ReactNodeLike>;
30
32
  className: PropTypes.Requireable<string>;
31
33
  style: PropTypes.Requireable<object>;
34
+ gap: PropTypes.Requireable<number>;
32
35
  imgAttr: PropTypes.Requireable<object>;
33
36
  src: PropTypes.Requireable<string>;
34
37
  srcSet: PropTypes.Requireable<string>;
@@ -39,6 +42,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
39
42
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
40
43
  };
41
44
  foundation: AvatarFoundation;
45
+ avatarRef: React.RefObject<HTMLElement | null>;
42
46
  constructor(props: AvatarProps);
43
47
  get adapter(): AvatarAdapter<AvatarProps, AvatarState>;
44
48
  componentDidMount(): void;
@@ -76,8 +76,12 @@ export default class Avatar extends BaseComponent {
76
76
  })
77
77
  };
78
78
  const finalProps = clickable ? Object.assign(Object.assign({}, props), a11yFocusProps) : props;
79
+ const stringStyle = {
80
+ transform: `scale(${this.state.scale})`
81
+ };
79
82
  content = /*#__PURE__*/React.createElement("span", {
80
- className: `${prefixCls}-content`
83
+ className: `${prefixCls}-content`,
84
+ style: stringStyle
81
85
  }, /*#__PURE__*/React.createElement("span", Object.assign({}, finalProps, {
82
86
  "x-semi-prop": "children"
83
87
  }), children));
@@ -87,13 +91,15 @@ export default class Avatar extends BaseComponent {
87
91
  this.state = {
88
92
  isImgExist: true,
89
93
  hoverContent: '',
90
- focusVisible: false
94
+ focusVisible: false,
95
+ scale: 1
91
96
  };
92
97
  this.onEnter = this.onEnter.bind(this);
93
98
  this.onLeave = this.onLeave.bind(this);
94
99
  this.handleError = this.handleError.bind(this);
95
100
  this.handleKeyDown = this.handleKeyDown.bind(this);
96
101
  this.getContent = this.getContent.bind(this);
102
+ this.avatarRef = /*#__PURE__*/React.createRef();
97
103
  }
98
104
  get adapter() {
99
105
  return Object.assign(Object.assign({}, super.adapter), {
@@ -130,6 +136,15 @@ export default class Avatar extends BaseComponent {
130
136
  this.setState({
131
137
  focusVisible
132
138
  });
139
+ },
140
+ setScale: scale => {
141
+ this.setState({
142
+ scale
143
+ });
144
+ },
145
+ getAvatarNode: () => {
146
+ var _a;
147
+ return (_a = this.avatarRef) === null || _a === void 0 ? void 0 : _a.current;
133
148
  }
134
149
  });
135
150
  }
@@ -157,6 +172,9 @@ export default class Avatar extends BaseComponent {
157
172
  });
158
173
  };
159
174
  }
175
+ if (typeof this.props.children === "string" && this.props.children !== prevProps.children) {
176
+ this.foundation.changeScale();
177
+ }
160
178
  }
161
179
  componentWillUnmount() {
162
180
  this.foundation.destroy();
@@ -200,9 +218,10 @@ export default class Avatar extends BaseComponent {
200
218
  src,
201
219
  srcSet,
202
220
  style,
203
- alt
221
+ alt,
222
+ gap
204
223
  } = _a,
205
- others = __rest(_a, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt"]);
224
+ others = __rest(_a, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt", "gap"]);
206
225
  const {
207
226
  isImgExist,
208
227
  hoverContent,
@@ -226,7 +245,8 @@ export default class Avatar extends BaseComponent {
226
245
  onClick: onClick,
227
246
  onMouseEnter: this.onEnter,
228
247
  onMouseLeave: this.onLeave,
229
- role: 'listitem'
248
+ role: 'listitem',
249
+ ref: this.avatarRef
230
250
  }), this.getContent(), hoverRender);
231
251
  }
232
252
  }
@@ -234,6 +254,7 @@ Avatar.defaultProps = {
234
254
  size: 'medium',
235
255
  color: 'grey',
236
256
  shape: 'circle',
257
+ gap: 3,
237
258
  onClick: noop,
238
259
  onMouseEnter: noop,
239
260
  onMouseLeave: noop
@@ -246,6 +267,7 @@ Avatar.propTypes = {
246
267
  hoverMask: PropTypes.node,
247
268
  className: PropTypes.string,
248
269
  style: PropTypes.object,
270
+ gap: PropTypes.number,
249
271
  imgAttr: PropTypes.object,
250
272
  src: PropTypes.string,
251
273
  srcSet: PropTypes.string,
@@ -12,6 +12,7 @@ export interface AvatarProps extends BaseProps {
12
12
  src?: string;
13
13
  srcSet?: string;
14
14
  alt?: string;
15
+ gap?: number;
15
16
  onError?: React.MouseEventHandler;
16
17
  onClick?: React.MouseEventHandler;
17
18
  onMouseEnter?: React.MouseEventHandler;
@@ -38,7 +38,11 @@ class DropdownItem extends BaseComponent {
38
38
  if (!disabled) {
39
39
  ['onClick', 'onMouseEnter', 'onMouseLeave', 'onContextMenu'].forEach(eventName => {
40
40
  if (eventName === "onClick") {
41
- events["onMouseDown"] = this.props[eventName];
41
+ events["onMouseDown"] = e => {
42
+ if (e.button === 0) {
43
+ this.props[eventName](e);
44
+ }
45
+ };
42
46
  } else {
43
47
  events[eventName] = this.props[eventName];
44
48
  }
@@ -75,6 +75,7 @@ export default class Slider extends BaseComponent {
75
75
  });
76
76
  const handleContents = !range ? /*#__PURE__*/React.createElement(Tooltip, {
77
77
  content: tipChildren.min,
78
+ showArrow: this.props.showArrow,
78
79
  position: "top",
79
80
  trigger: "custom",
80
81
  rePosKey: minPercent,
@@ -273,7 +274,7 @@ export default class Slider extends BaseComponent {
273
274
  [`${prefixCls}-dot-active`]: this.foundation.isMarkActive(Number(mark)) === 'active'
274
275
  });
275
276
  const markPercent = (Number(mark) - min) / (max - min);
276
- return activeResult ?
277
+ const dotDOM =
277
278
  /*#__PURE__*/
278
279
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
279
280
  React.createElement("span", {
@@ -283,11 +284,17 @@ export default class Slider extends BaseComponent {
283
284
  style: {
284
285
  [stylePos]: `calc(${markPercent * 100}% - 2px)`
285
286
  }
286
- }) : null;
287
+ });
288
+ return activeResult ? this.props.tooltipOnMark ? /*#__PURE__*/React.createElement(Tooltip, {
289
+ content: marks[mark]
290
+ }, dotDOM) : dotDOM : null;
287
291
  })) : null;
288
292
  return labelContent;
289
293
  };
290
294
  this.renderLabel = () => {
295
+ if (!this.props.showMarkLabel) {
296
+ return null;
297
+ }
291
298
  const {
292
299
  min,
293
300
  max,
@@ -616,6 +623,7 @@ Slider.propTypes = {
616
623
  // allowClear: PropTypes.bool,
617
624
  defaultValue: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),
618
625
  disabled: PropTypes.bool,
626
+ showMarkLabel: PropTypes.bool,
619
627
  included: PropTypes.bool,
620
628
  marks: PropTypes.object,
621
629
  max: PropTypes.number,
@@ -628,7 +636,9 @@ Slider.propTypes = {
628
636
  onAfterChange: PropTypes.func,
629
637
  onChange: PropTypes.func,
630
638
  onMouseUp: PropTypes.func,
639
+ tooltipOnMark: PropTypes.bool,
631
640
  tooltipVisible: PropTypes.bool,
641
+ showArrow: PropTypes.bool,
632
642
  style: PropTypes.object,
633
643
  className: PropTypes.string,
634
644
  showBoundary: PropTypes.bool,
@@ -639,10 +649,13 @@ Slider.propTypes = {
639
649
  Slider.defaultProps = {
640
650
  // allowClear: false,
641
651
  disabled: false,
652
+ showMarkLabel: true,
653
+ tooltipOnMark: false,
642
654
  included: true,
643
655
  max: 100,
644
656
  min: 0,
645
657
  range: false,
658
+ showArrow: true,
646
659
  step: 1,
647
660
  tipFormatter: value => value,
648
661
  vertical: false,
@@ -30,9 +30,6 @@ class HeadTable extends React.PureComponent {
30
30
  bodyHasScrollBar,
31
31
  sticky
32
32
  } = this.props;
33
- if (!showHeader) {
34
- return null;
35
- }
36
33
  const Table = _get(components, 'header.outer', 'table');
37
34
  const x = _get(scroll, 'x');
38
35
  const headStyle = {};
@@ -53,7 +50,8 @@ class HeadTable extends React.PureComponent {
53
50
  onDidUpdate: onDidUpdate
54
51
  }));
55
52
  const headTableCls = classnames(`${prefixCls}-header`, {
56
- [`${prefixCls}-header-sticky`]: sticky
53
+ [`${prefixCls}-header-sticky`]: sticky,
54
+ [`${prefixCls}-header-hidden`]: !showHeader
57
55
  });
58
56
  const stickyTop = _get(sticky, 'top', 0);
59
57
  if (typeof stickyTop === 'number') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@douyinfe/semi-ui",
3
- "version": "2.47.0-beta.0",
3
+ "version": "2.48.0-beta.0",
4
4
  "description": "A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es/index.js",
@@ -20,12 +20,12 @@
20
20
  "@dnd-kit/core": "^6.0.8",
21
21
  "@dnd-kit/sortable": "^7.0.2",
22
22
  "@dnd-kit/utilities": "^3.2.1",
23
- "@douyinfe/semi-animation": "2.47.0-beta.0",
24
- "@douyinfe/semi-animation-react": "2.47.0-beta.0",
25
- "@douyinfe/semi-foundation": "2.47.0-beta.0",
26
- "@douyinfe/semi-icons": "2.47.0-beta.0",
27
- "@douyinfe/semi-illustrations": "2.47.0-beta.0",
28
- "@douyinfe/semi-theme-default": "2.47.0-beta.0",
23
+ "@douyinfe/semi-animation": "2.48.0-beta.0",
24
+ "@douyinfe/semi-animation-react": "2.48.0-beta.0",
25
+ "@douyinfe/semi-foundation": "2.48.0-beta.0",
26
+ "@douyinfe/semi-icons": "2.48.0-beta.0",
27
+ "@douyinfe/semi-illustrations": "2.48.0-beta.0",
28
+ "@douyinfe/semi-theme-default": "2.48.0-beta.0",
29
29
  "async-validator": "^3.5.0",
30
30
  "classnames": "^2.2.6",
31
31
  "copy-text-to-clipboard": "^2.1.1",
@@ -75,7 +75,7 @@
75
75
  ],
76
76
  "author": "",
77
77
  "license": "MIT",
78
- "gitHead": "201c3696de1cfe4686903a3a50c68ca07272742a",
78
+ "gitHead": "2eb75459ef1df87a83949a2f609da9468cd200c6",
79
79
  "devDependencies": {
80
80
  "@babel/plugin-proposal-decorators": "^7.15.8",
81
81
  "@babel/plugin-transform-runtime": "^7.15.8",