@douyinfe/semi-ui 2.51.3 → 2.52.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 (51) hide show
  1. package/dist/css/semi.css +285 -0
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +434 -111
  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/_utils/index.d.ts +2 -1
  8. package/lib/cjs/_utils/index.js +0 -5
  9. package/lib/cjs/avatar/TopSlotSvg.d.ts +5 -0
  10. package/lib/cjs/avatar/TopSlotSvg.js +74 -0
  11. package/lib/cjs/avatar/index.d.ts +25 -0
  12. package/lib/cjs/avatar/index.js +126 -8
  13. package/lib/cjs/avatar/interface.d.ts +24 -1
  14. package/lib/cjs/dropdown/dropdownItem.js +2 -1
  15. package/lib/cjs/input/index.d.ts +1 -0
  16. package/lib/cjs/input/index.js +12 -4
  17. package/lib/cjs/modal/Modal.d.ts +1 -0
  18. package/lib/cjs/modal/Modal.js +11 -3
  19. package/lib/cjs/modal/confirm.d.ts +5 -0
  20. package/lib/cjs/slider/index.js +33 -1
  21. package/lib/cjs/table/ColumnFilter.d.ts +34 -18
  22. package/lib/cjs/table/ColumnFilter.js +134 -73
  23. package/lib/cjs/table/Table.d.ts +5 -5
  24. package/lib/cjs/table/Table.js +38 -13
  25. package/lib/cjs/table/index.d.ts +1 -1
  26. package/lib/cjs/table/interface.d.ts +30 -10
  27. package/lib/cjs/treeSelect/index.d.ts +2 -0
  28. package/lib/cjs/treeSelect/index.js +4 -0
  29. package/lib/es/_utils/index.d.ts +2 -1
  30. package/lib/es/_utils/index.js +0 -5
  31. package/lib/es/avatar/TopSlotSvg.d.ts +5 -0
  32. package/lib/es/avatar/TopSlotSvg.js +66 -0
  33. package/lib/es/avatar/index.d.ts +25 -0
  34. package/lib/es/avatar/index.js +126 -8
  35. package/lib/es/avatar/interface.d.ts +24 -1
  36. package/lib/es/dropdown/dropdownItem.js +2 -1
  37. package/lib/es/input/index.d.ts +1 -0
  38. package/lib/es/input/index.js +12 -4
  39. package/lib/es/modal/Modal.d.ts +1 -0
  40. package/lib/es/modal/Modal.js +11 -3
  41. package/lib/es/modal/confirm.d.ts +5 -0
  42. package/lib/es/slider/index.js +33 -1
  43. package/lib/es/table/ColumnFilter.d.ts +34 -18
  44. package/lib/es/table/ColumnFilter.js +135 -74
  45. package/lib/es/table/Table.d.ts +5 -5
  46. package/lib/es/table/Table.js +38 -13
  47. package/lib/es/table/index.d.ts +1 -1
  48. package/lib/es/table/interface.d.ts +30 -10
  49. package/lib/es/treeSelect/index.d.ts +2 -0
  50. package/lib/es/treeSelect/index.js +4 -0
  51. package/package.json +8 -8
@@ -11,7 +11,8 @@ export declare function stopPropagation(e: React.MouseEvent | React.FocusEvent<H
11
11
  *
12
12
  * skip clone function and react element
13
13
  */
14
- export declare function cloneDeep(value: any, customizer?: (value: any) => void): any;
14
+ export declare function cloneDeep<T>(value: T): T;
15
+ export declare function cloneDeep<T>(value: T, customizer: (value: any) => any): any;
15
16
  /**
16
17
  * [getHighLightTextHTML description]
17
18
  *
@@ -33,11 +33,6 @@ function stopPropagation(e, noImmediate) {
33
33
  e.nativeEvent.stopImmediatePropagation();
34
34
  }
35
35
  }
36
- /**
37
- * use in Table, Form, Navigation
38
- *
39
- * skip clone function and react element
40
- */
41
36
  function cloneDeep(value, customizer) {
42
37
  return (0, _cloneDeepWith2.default)(value, v => {
43
38
  if (typeof customizer === 'function') {
@@ -0,0 +1,5 @@
1
+ declare const TopSlotSvg: ({ gradientStart, gradientEnd }: {
2
+ gradientStart: string;
3
+ gradientEnd: string;
4
+ }) => JSX.Element;
5
+ export default TopSlotSvg;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _uuid = require("@douyinfe/semi-foundation/lib/cjs/utils/uuid");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ const TopSlotSvg = _ref => {
11
+ let {
12
+ gradientStart,
13
+ gradientEnd
14
+ } = _ref;
15
+ const id = (0, _uuid.getUuidShort)();
16
+ return /*#__PURE__*/_react.default.createElement("svg", {
17
+ xmlns: "http://www.w3.org/2000/svg",
18
+ width: "51",
19
+ height: "52",
20
+ viewBox: "0 0 51 52",
21
+ fill: "none"
22
+ }, /*#__PURE__*/_react.default.createElement("g", {
23
+ filter: "url(#filter0_d_6_2)"
24
+ }, /*#__PURE__*/_react.default.createElement("path", {
25
+ d: "M40.4918 46.5592C44.6795 43.176 46.261 34.1333 47.5301 25.6141C49.5854 11.8168 39.6662 1 25.8097 1C11.2857 1 3 11.4279 3 25.3518C3 33.7866 6.29361 43.8947 10.4602 46.5592C12.5868 47.9192 12.5868 47.9051 25.8097 47.9192C38.3651 47.9282 38.5352 48.14 40.4918 46.5592Z",
26
+ fill: `url(#${id})`
27
+ })), /*#__PURE__*/_react.default.createElement("defs", null, /*#__PURE__*/_react.default.createElement("filter", {
28
+ id: "filter0_d_6_2",
29
+ x: "0.789215",
30
+ y: "0.447304",
31
+ width: "49.2216",
32
+ height: "51.3549",
33
+ filterUnits: "userSpaceOnUse",
34
+ colorInterpolationFilters: "sRGB"
35
+ }, /*#__PURE__*/_react.default.createElement("feFlood", {
36
+ floodOpacity: "0",
37
+ result: "BackgroundImageFix"
38
+ }), /*#__PURE__*/_react.default.createElement("feColorMatrix", {
39
+ in: "SourceAlpha",
40
+ type: "matrix",
41
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",
42
+ result: "hardAlpha"
43
+ }), /*#__PURE__*/_react.default.createElement("feOffset", {
44
+ dy: "1.65809"
45
+ }), /*#__PURE__*/_react.default.createElement("feGaussianBlur", {
46
+ stdDeviation: "1.10539"
47
+ }), /*#__PURE__*/_react.default.createElement("feColorMatrix", {
48
+ type: "matrix",
49
+ values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0"
50
+ }), /*#__PURE__*/_react.default.createElement("feBlend", {
51
+ mode: "normal",
52
+ in2: "BackgroundImageFix",
53
+ result: "effect1_dropShadow_6_2"
54
+ }), /*#__PURE__*/_react.default.createElement("feBlend", {
55
+ mode: "normal",
56
+ in: "SourceGraphic",
57
+ in2: "effect1_dropShadow_6_2",
58
+ result: "shape"
59
+ })), /*#__PURE__*/_react.default.createElement("linearGradient", {
60
+ id: id,
61
+ x1: "17.671",
62
+ y1: "31.7392",
63
+ x2: "17.671",
64
+ y2: "47.9333",
65
+ gradientUnits: "userSpaceOnUse"
66
+ }, /*#__PURE__*/_react.default.createElement("stop", {
67
+ stopColor: gradientStart
68
+ }), /*#__PURE__*/_react.default.createElement("stop", {
69
+ offset: "1",
70
+ stopColor: gradientEnd
71
+ }))));
72
+ };
73
+ var _default = TopSlotSvg;
74
+ exports.default = _default;
@@ -40,6 +40,29 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
40
40
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
41
41
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
42
42
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
43
+ bottomSlot: PropTypes.Requireable<PropTypes.InferProps<{
44
+ render: PropTypes.Requireable<(...args: any[]) => any>;
45
+ shape: PropTypes.Requireable<string>;
46
+ text: PropTypes.Requireable<PropTypes.ReactNodeLike>;
47
+ bgColor: PropTypes.Requireable<string>;
48
+ textColor: PropTypes.Requireable<string>;
49
+ className: PropTypes.Requireable<string>;
50
+ style: PropTypes.Requireable<object>;
51
+ }>>;
52
+ topSlot: PropTypes.Requireable<PropTypes.InferProps<{
53
+ render: PropTypes.Requireable<(...args: any[]) => any>;
54
+ gradientStart: PropTypes.Requireable<string>;
55
+ gradientEnd: PropTypes.Requireable<string>;
56
+ text: PropTypes.Requireable<PropTypes.ReactNodeLike>;
57
+ textColor: PropTypes.Requireable<string>;
58
+ className: PropTypes.Requireable<string>;
59
+ style: PropTypes.Requireable<object>;
60
+ }>>;
61
+ border: PropTypes.Requireable<NonNullable<boolean | PropTypes.InferProps<{
62
+ color: PropTypes.Requireable<string>;
63
+ motion: PropTypes.Requireable<boolean>;
64
+ }>>>;
65
+ contentMotion: PropTypes.Requireable<boolean>;
43
66
  };
44
67
  foundation: AvatarFoundation;
45
68
  avatarRef: React.RefObject<HTMLElement | null>;
@@ -55,5 +78,7 @@ export default class Avatar extends BaseComponent<AvatarProps, AvatarState> {
55
78
  handleFocusVisible: (event: React.FocusEvent) => void;
56
79
  handleBlur: (event: React.FocusEvent) => void;
57
80
  getContent: () => React.ReactNode;
81
+ renderBottomSlot: () => string | number | boolean | React.ReactFragment | JSX.Element;
82
+ renderTopSlot: () => string | number | boolean | React.ReactFragment | JSX.Element;
58
83
  render(): JSX.Element;
59
84
  }
@@ -14,6 +14,7 @@ require("@douyinfe/semi-foundation/lib/cjs/avatar/avatar.css");
14
14
  var _function = require("@douyinfe/semi-foundation/lib/cjs/utils/function");
15
15
  var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
16
16
  var _a11y = require("@douyinfe/semi-foundation/lib/cjs/utils/a11y");
17
+ var _TopSlotSvg = _interopRequireDefault(require("./TopSlotSvg"));
17
18
  var _interface = require("./interface");
18
19
  Object.keys(_interface).forEach(function (key) {
19
20
  if (key === "default" || key === "__esModule") return;
@@ -107,6 +108,64 @@ class Avatar extends _baseComponent.default {
107
108
  }
108
109
  return content;
109
110
  };
111
+ this.renderBottomSlot = () => {
112
+ var _a, _b;
113
+ if (!this.props.bottomSlot) {
114
+ return null;
115
+ }
116
+ if (this.props.bottomSlot.render) {
117
+ return this.props.bottomSlot.render();
118
+ }
119
+ const renderContent = (_a = this.props.bottomSlot.render) !== null && _a !== void 0 ? _a : () => {
120
+ var _a;
121
+ const style = {};
122
+ if (this.props.bottomSlot.bgColor) {
123
+ style['backgroundColor'] = this.props.bottomSlot.bgColor;
124
+ }
125
+ if (this.props.bottomSlot.textColor) {
126
+ style['color'] = this.props.bottomSlot.textColor;
127
+ }
128
+ return /*#__PURE__*/_react.default.createElement("span", {
129
+ style: style,
130
+ className: (0, _classnames.default)(`${prefixCls}-bottom_slot-shape_${this.props.bottomSlot.shape}`, `${prefixCls}-bottom_slot-shape_${this.props.bottomSlot.shape}-${this.props.size}`, (_a = this.props.bottomSlot.className) !== null && _a !== void 0 ? _a : "")
131
+ }, this.props.bottomSlot.text);
132
+ };
133
+ return /*#__PURE__*/_react.default.createElement("div", {
134
+ className: (0, _classnames.default)([`${prefixCls}-bottom_slot`]),
135
+ style: (_b = this.props.bottomSlot.style) !== null && _b !== void 0 ? _b : {}
136
+ }, renderContent());
137
+ };
138
+ this.renderTopSlot = () => {
139
+ var _a, _b, _c, _d;
140
+ if (!this.props.topSlot) {
141
+ return null;
142
+ }
143
+ if (this.props.topSlot.render) {
144
+ return this.props.topSlot.render();
145
+ }
146
+ const textStyle = {};
147
+ if (this.props.topSlot.textColor) {
148
+ textStyle['color'] = this.props.topSlot.textColor;
149
+ }
150
+ return /*#__PURE__*/_react.default.createElement("div", {
151
+ style: (_a = this.props.topSlot.style) !== null && _a !== void 0 ? _a : {},
152
+ className: (0, _classnames.default)([`${prefixCls}-top_slot-wrapper`, (_b = this.props.topSlot.className) !== null && _b !== void 0 ? _b : "", {
153
+ [`${prefixCls}-animated`]: this.props.contentMotion
154
+ }])
155
+ }, /*#__PURE__*/_react.default.createElement("div", {
156
+ className: (0, _classnames.default)([`${prefixCls}-top_slot-bg`, `${prefixCls}-top_slot-bg-${this.props.size}`])
157
+ }, /*#__PURE__*/_react.default.createElement("div", {
158
+ className: (0, _classnames.default)([`${prefixCls}-top_slot-bg-svg`, `${prefixCls}-top_slot-bg-svg-${this.props.size}`])
159
+ }, /*#__PURE__*/_react.default.createElement(_TopSlotSvg.default, {
160
+ gradientStart: (_c = this.props.topSlot.gradientStart) !== null && _c !== void 0 ? _c : "var(--semi-color-primary)",
161
+ gradientEnd: (_d = this.props.topSlot.gradientEnd) !== null && _d !== void 0 ? _d : "var(--semi-color-primary)"
162
+ }))), /*#__PURE__*/_react.default.createElement("div", {
163
+ className: (0, _classnames.default)([`${prefixCls}-top_slot`])
164
+ }, /*#__PURE__*/_react.default.createElement("div", {
165
+ style: textStyle,
166
+ className: (0, _classnames.default)([`${prefixCls}-top_slot-content`, `${prefixCls}-top_slot-content-${this.props.size}`])
167
+ }, this.props.topSlot.text)));
168
+ };
110
169
  this.state = {
111
170
  isImgExist: true,
112
171
  hoverContent: '',
@@ -224,7 +283,8 @@ class Avatar extends _baseComponent.default {
224
283
  }
225
284
  }
226
285
  render() {
227
- const _a = this.props,
286
+ var _a, _b;
287
+ const _c = this.props,
228
288
  {
229
289
  shape,
230
290
  children,
@@ -238,9 +298,13 @@ class Avatar extends _baseComponent.default {
238
298
  srcSet,
239
299
  style,
240
300
  alt,
241
- gap
242
- } = _a,
243
- others = __rest(_a, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt", "gap"]);
301
+ gap,
302
+ bottomSlot,
303
+ topSlot,
304
+ border,
305
+ contentMotion
306
+ } = _c,
307
+ others = __rest(_c, ["shape", "children", "size", "color", "className", "hoverMask", "onClick", "imgAttr", "src", "srcSet", "style", "alt", "gap", "bottomSlot", "topSlot", "border", "contentMotion"]);
244
308
  const {
245
309
  isImgExist,
246
310
  hoverContent,
@@ -252,14 +316,15 @@ class Avatar extends _baseComponent.default {
252
316
  [`${prefixCls}-${size}`]: size,
253
317
  [`${prefixCls}-${color}`]: color && !isImg,
254
318
  [`${prefixCls}-img`]: isImg,
255
- [`${prefixCls}-focus`]: focusVisible
319
+ [`${prefixCls}-focus`]: focusVisible,
320
+ [`${prefixCls}-animated`]: contentMotion
256
321
  }, className);
257
322
  const hoverRender = hoverContent ? /*#__PURE__*/_react.default.createElement("div", {
258
323
  className: `${prefixCls}-hover`,
259
324
  "x-semi-prop": "hoverContent"
260
325
  }, hoverContent) : null;
261
- return /*#__PURE__*/_react.default.createElement("span", Object.assign({}, others, {
262
- style: style,
326
+ let avatar = /*#__PURE__*/_react.default.createElement("span", Object.assign({}, others, {
327
+ style: border || bottomSlot || topSlot || border ? {} : style,
263
328
  className: avatarCls,
264
329
  onClick: onClick,
265
330
  onMouseEnter: this.onEnter,
@@ -267,6 +332,36 @@ class Avatar extends _baseComponent.default {
267
332
  role: 'listitem',
268
333
  ref: this.avatarRef
269
334
  }), this.getContent(), hoverRender);
335
+ if (border) {
336
+ const borderStyle = {};
337
+ if (border === null || border === void 0 ? void 0 : border.color) {
338
+ borderStyle['borderColor'] = border.color;
339
+ }
340
+ avatar = /*#__PURE__*/_react.default.createElement("div", {
341
+ style: Object.assign({
342
+ position: "relative"
343
+ }, style)
344
+ }, avatar, /*#__PURE__*/_react.default.createElement("span", {
345
+ style: borderStyle,
346
+ className: (0, _classnames.default)([`${prefixCls}-additionalBorder`, `${prefixCls}-additionalBorder-${size}`, {
347
+ [`${prefixCls}-${shape}`]: shape
348
+ }])
349
+ }), ((_a = this.props.border) === null || _a === void 0 ? void 0 : _a.motion) && /*#__PURE__*/_react.default.createElement("span", {
350
+ style: borderStyle,
351
+ className: (0, _classnames.default)([`${prefixCls}-additionalBorder`, `${prefixCls}-additionalBorder-${size}`, {
352
+ [`${prefixCls}-${shape}`]: shape,
353
+ [`${prefixCls}-additionalBorder-animated`]: (_b = this.props.border) === null || _b === void 0 ? void 0 : _b.motion
354
+ }])
355
+ }));
356
+ }
357
+ if (bottomSlot || topSlot || border) {
358
+ return /*#__PURE__*/_react.default.createElement("span", {
359
+ className: (0, _classnames.default)([`${prefixCls}-wrapper`]),
360
+ style: style
361
+ }, avatar, topSlot && ["small", "default", "medium", "large", "extra-large"].includes(size) && shape === "circle" && this.renderTopSlot(), bottomSlot && ["small", "default", "medium", "large", "extra-large"].includes(size) && this.renderBottomSlot());
362
+ } else {
363
+ return avatar;
364
+ }
270
365
  }
271
366
  }
272
367
  exports.default = Avatar;
@@ -295,6 +390,29 @@ Avatar.propTypes = {
295
390
  onError: _propTypes.default.func,
296
391
  onClick: _propTypes.default.func,
297
392
  onMouseEnter: _propTypes.default.func,
298
- onMouseLeave: _propTypes.default.func
393
+ onMouseLeave: _propTypes.default.func,
394
+ bottomSlot: _propTypes.default.shape({
395
+ render: _propTypes.default.func,
396
+ shape: _propTypes.default.oneOf(['circle', 'square']),
397
+ text: _propTypes.default.node,
398
+ bgColor: _propTypes.default.string,
399
+ textColor: _propTypes.default.string,
400
+ className: _propTypes.default.string,
401
+ style: _propTypes.default.object
402
+ }),
403
+ topSlot: _propTypes.default.shape({
404
+ render: _propTypes.default.func,
405
+ gradientStart: _propTypes.default.string,
406
+ gradientEnd: _propTypes.default.string,
407
+ text: _propTypes.default.node,
408
+ textColor: _propTypes.default.string,
409
+ className: _propTypes.default.string,
410
+ style: _propTypes.default.object
411
+ }),
412
+ border: _propTypes.default.oneOfType([_propTypes.default.shape({
413
+ color: _propTypes.default.string,
414
+ motion: _propTypes.default.bool
415
+ }), _propTypes.default.bool]),
416
+ contentMotion: _propTypes.default.bool
299
417
  };
300
418
  Avatar.elementType = 'Avatar';
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { CSSProperties } from 'react';
2
2
  import { BaseProps } from '../_base/baseComponent';
3
3
  export type AvatarShape = 'circle' | 'square';
4
4
  export type AvatarSize = 'extra-extra-small' | 'extra-small' | 'small' | 'default' | 'medium' | 'large' | 'extra-large';
@@ -18,6 +18,29 @@ export interface AvatarProps extends BaseProps {
18
18
  onMouseEnter?: React.MouseEventHandler;
19
19
  onMouseLeave?: React.MouseEventHandler;
20
20
  imgAttr?: React.ImgHTMLAttributes<HTMLImageElement>;
21
+ bottomSlot?: {
22
+ render?: () => React.ReactNode;
23
+ shape?: "circle" | "square";
24
+ text: React.ReactNode;
25
+ bgColor: string;
26
+ textColor: string;
27
+ className: string;
28
+ style?: CSSProperties;
29
+ };
30
+ topSlot?: {
31
+ render?: () => React.ReactNode;
32
+ gradientStart?: string;
33
+ gradientEnd?: string;
34
+ text: React.ReactNode;
35
+ textColor: string;
36
+ className: string;
37
+ style?: CSSProperties;
38
+ };
39
+ border?: {
40
+ color?: string;
41
+ motion?: boolean;
42
+ } & boolean;
43
+ contentMotion?: boolean;
21
44
  }
22
45
  export type AvatarGroupShape = 'circle' | 'square';
23
46
  export type AvatarGroupSize = 'extra-extra-small' | 'extra-small' | 'small' | 'default' | 'medium' | 'large' | 'extra-large';
@@ -44,7 +44,8 @@ class DropdownItem extends _baseComponent.default {
44
44
  const events = {};
45
45
  if (!disabled) {
46
46
  ['onClick', 'onMouseEnter', 'onMouseLeave', 'onContextMenu'].forEach(eventName => {
47
- if (eventName === "onClick") {
47
+ const isInAnotherDropdown = this.context.level !== 1;
48
+ if (isInAnotherDropdown && eventName === "onClick") {
48
49
  events["onMouseDown"] = e => {
49
50
  var _a, _b;
50
51
  if (e.button === 0) {
@@ -51,6 +51,7 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
51
51
  preventScroll?: boolean;
52
52
  /** internal prop, DatePicker use it */
53
53
  showClearIgnoreDisabled?: boolean;
54
+ onlyBorder?: number;
54
55
  }
55
56
  export interface InputState {
56
57
  value: React.ReactText;
@@ -340,9 +340,10 @@ class Input extends _baseComponent.default {
340
340
  getValueLength,
341
341
  preventScroll,
342
342
  borderless,
343
- showClearIgnoreDisabled
343
+ showClearIgnoreDisabled,
344
+ onlyBorder
344
345
  } = _a,
345
- rest = __rest(_a, ["addonAfter", "addonBefore", "autoFocus", "clearIcon", "className", "disabled", "defaultValue", "placeholder", "prefix", "mode", "insetLabel", "insetLabelId", "validateStatus", "type", "readonly", "size", "suffix", "style", "showClear", "onEnterPress", "onClear", "hideSuffix", "inputStyle", "forwardRef", "maxLength", "getValueLength", "preventScroll", "borderless", "showClearIgnoreDisabled"]);
346
+ rest = __rest(_a, ["addonAfter", "addonBefore", "autoFocus", "clearIcon", "className", "disabled", "defaultValue", "placeholder", "prefix", "mode", "insetLabel", "insetLabelId", "validateStatus", "type", "readonly", "size", "suffix", "style", "showClear", "onEnterPress", "onClear", "hideSuffix", "inputStyle", "forwardRef", "maxLength", "getValueLength", "preventScroll", "borderless", "showClearIgnoreDisabled", "onlyBorder"]);
346
347
  const {
347
348
  value,
348
349
  isFocus,
@@ -370,7 +371,8 @@ class Input extends _baseComponent.default {
370
371
  [`${wrapperPrefix}-modebtn`]: mode === 'password',
371
372
  [`${wrapperPrefix}-hidden`]: type === 'hidden',
372
373
  [`${wrapperPrefix}-${size}`]: size,
373
- [`${prefixCls}-borderless`]: borderless
374
+ [`${prefixCls}-borderless`]: borderless,
375
+ [`${prefixCls}-only_border`]: onlyBorder !== undefined && onlyBorder !== null
374
376
  });
375
377
  const inputCls = (0, _classnames.default)(prefixCls, {
376
378
  [`${prefixCls}-${size}`]: size,
@@ -404,12 +406,18 @@ class Input extends _baseComponent.default {
404
406
  if (validateStatus === 'error') {
405
407
  inputProps['aria-invalid'] = 'true';
406
408
  }
409
+ let wrapperStyle = Object.assign({}, style);
410
+ if (onlyBorder !== undefined) {
411
+ wrapperStyle = Object.assign({
412
+ borderWidth: onlyBorder
413
+ }, style);
414
+ }
407
415
  return (
408
416
  /*#__PURE__*/
409
417
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
410
418
  _react.default.createElement("div", {
411
419
  className: wrapperCls,
412
- style: style,
420
+ style: wrapperStyle,
413
421
  onMouseEnter: e => this.handleMouseOver(e),
414
422
  onMouseLeave: e => this.handleMouseLeave(e),
415
423
  onClick: e => this.handleClick(e)
@@ -66,6 +66,7 @@ declare class Modal extends BaseComponent<ModalReactProps, ModalState> {
66
66
  lazyRender: PropTypes.Requireable<boolean>;
67
67
  direction: PropTypes.Requireable<string>;
68
68
  fullScreen: PropTypes.Requireable<boolean>;
69
+ footerFill: PropTypes.Requireable<boolean>;
69
70
  };
70
71
  static defaultProps: {
71
72
  zIndex: number;
@@ -55,7 +55,8 @@ class Modal extends _baseComponent.default {
55
55
  cancelText,
56
56
  confirmLoading,
57
57
  cancelLoading,
58
- hasCancel
58
+ hasCancel,
59
+ footerFill
59
60
  } = this.props;
60
61
  const getCancelButton = locale => {
61
62
  if (!hasCancel) {
@@ -66,6 +67,7 @@ class Modal extends _baseComponent.default {
66
67
  onClick: this.handleCancel,
67
68
  loading: cancelLoading === undefined ? this.state.onCancelReturnPromiseStatus === "pending" : cancelLoading,
68
69
  type: "tertiary",
70
+ block: footerFill,
69
71
  autoFocus: true
70
72
  }, this.props.cancelButtonProps, {
71
73
  "x-semi-children-alias": "cancelText"
@@ -74,10 +76,15 @@ class Modal extends _baseComponent.default {
74
76
  };
75
77
  return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
76
78
  componentName: "Modal"
77
- }, (locale, localeCode) => /*#__PURE__*/_react.default.createElement("div", null, getCancelButton(locale), /*#__PURE__*/_react.default.createElement(_button.default, Object.assign({
79
+ }, (locale, localeCode) => /*#__PURE__*/_react.default.createElement("div", {
80
+ className: (0, _classnames.default)({
81
+ [`${_constants.cssClasses.DIALOG}-footerfill`]: footerFill
82
+ })
83
+ }, getCancelButton(locale), /*#__PURE__*/_react.default.createElement(_button.default, Object.assign({
78
84
  "aria-label": "confirm",
79
85
  type: okType,
80
86
  theme: "solid",
87
+ block: footerFill,
81
88
  loading: confirmLoading === undefined ? this.state.onOKReturnPromiseStatus === "pending" : confirmLoading,
82
89
  onClick: this.handleOk
83
90
  }, this.props.okButtonProps, {
@@ -311,7 +318,8 @@ Modal.propTypes = {
311
318
  keepDOM: _propTypes.default.bool,
312
319
  lazyRender: _propTypes.default.bool,
313
320
  direction: _propTypes.default.oneOf(_constants.strings.directions),
314
- fullScreen: _propTypes.default.bool
321
+ fullScreen: _propTypes.default.bool,
322
+ footerFill: _propTypes.default.bool
315
323
  };
316
324
  Modal.defaultProps = {
317
325
  zIndex: 1000,
@@ -51,6 +51,7 @@ export declare function withInfo(props: ModalReactProps): {
51
51
  direction?: any;
52
52
  fullScreen?: boolean;
53
53
  preventScroll?: boolean;
54
+ footerFill?: boolean;
54
55
  type: "info";
55
56
  };
56
57
  export declare function withSuccess(props: ModalReactProps): {
@@ -94,6 +95,7 @@ export declare function withSuccess(props: ModalReactProps): {
94
95
  direction?: any;
95
96
  fullScreen?: boolean;
96
97
  preventScroll?: boolean;
98
+ footerFill?: boolean;
97
99
  type: "success";
98
100
  };
99
101
  export declare function withWarning(props: ModalReactProps): {
@@ -137,6 +139,7 @@ export declare function withWarning(props: ModalReactProps): {
137
139
  direction?: any;
138
140
  fullScreen?: boolean;
139
141
  preventScroll?: boolean;
142
+ footerFill?: boolean;
140
143
  type: "warning";
141
144
  };
142
145
  export declare function withError(props: ModalReactProps): {
@@ -179,6 +182,7 @@ export declare function withError(props: ModalReactProps): {
179
182
  onOk?: (e: React.MouseEvent<Element, MouseEvent>) => void | Promise<any>;
180
183
  lazyRender?: boolean;
181
184
  fullScreen?: boolean;
185
+ footerFill?: boolean;
182
186
  type: "error";
183
187
  okButtonProps: {
184
188
  id?: string;
@@ -506,5 +510,6 @@ export declare function withConfirm(props: ModalReactProps): {
506
510
  direction?: any;
507
511
  fullScreen?: boolean;
508
512
  preventScroll?: boolean;
513
+ footerFill?: boolean;
509
514
  type: "confirm";
510
515
  };
@@ -35,6 +35,7 @@ class Slider extends _baseComponent.default {
35
35
  constructor(props) {
36
36
  super(props);
37
37
  this.renderHandle = () => {
38
+ var _a, _b, _c, _d, _e, _f, _g, _h;
38
39
  const {
39
40
  vertical,
40
41
  range,
@@ -133,6 +134,14 @@ class Slider extends _baseComponent.default {
133
134
  "aria-valuenow": currentValue,
134
135
  "aria-valuemax": max,
135
136
  "aria-valuemin": min
137
+ }), this.props.handleDot && /*#__PURE__*/_react.default.createElement("div", {
138
+ className: _constants.cssClasses.HANDLE_DOT,
139
+ style: Object.assign(Object.assign({}, ((_a = this.props.handleDot) === null || _a === void 0 ? void 0 : _a.size) ? {
140
+ width: this.props.handleDot.size,
141
+ height: this.props.handleDot.size
142
+ } : {}), ((_b = this.props.handleDot) === null || _b === void 0 ? void 0 : _b.color) ? {
143
+ backgroundColor: this.props.handleDot.color
144
+ } : {})
136
145
  }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_index.default, {
137
146
  content: tipChildren.min,
138
147
  position: "top",
@@ -184,6 +193,14 @@ class Slider extends _baseComponent.default {
184
193
  "aria-valuenow": currentValue[0],
185
194
  "aria-valuemax": currentValue[1],
186
195
  "aria-valuemin": min
196
+ }), ((_c = this.props.handleDot) === null || _c === void 0 ? void 0 : _c[0]) && /*#__PURE__*/_react.default.createElement("div", {
197
+ className: _constants.cssClasses.HANDLE_DOT,
198
+ style: Object.assign(Object.assign({}, ((_d = this.props.handleDot[0]) === null || _d === void 0 ? void 0 : _d.size) ? {
199
+ width: this.props.handleDot[0].size,
200
+ height: this.props.handleDot[0].size
201
+ } : {}), ((_e = this.props.handleDot[0]) === null || _e === void 0 ? void 0 : _e.color) ? {
202
+ backgroundColor: this.props.handleDot[0].color
203
+ } : {})
187
204
  }))), /*#__PURE__*/_react.default.createElement(_index.default, {
188
205
  content: tipChildren.max,
189
206
  position: "top",
@@ -235,6 +252,14 @@ class Slider extends _baseComponent.default {
235
252
  "aria-valuenow": currentValue[1],
236
253
  "aria-valuemax": max,
237
254
  "aria-valuemin": currentValue[0]
255
+ }), ((_f = this.props.handleDot) === null || _f === void 0 ? void 0 : _f[1]) && /*#__PURE__*/_react.default.createElement("div", {
256
+ className: _constants.cssClasses.HANDLE_DOT,
257
+ style: Object.assign(Object.assign({}, ((_g = this.props.handleDot[1]) === null || _g === void 0 ? void 0 : _g.size) ? {
258
+ width: this.props.handleDot[1].size,
259
+ height: this.props.handleDot[1].size
260
+ } : {}), ((_h = this.props.handleDot[1]) === null || _h === void 0 ? void 0 : _h.color) ? {
261
+ backgroundColor: this.props.handleDot[1].color
262
+ } : {})
238
263
  }))));
239
264
  return handleContents;
240
265
  };
@@ -652,7 +677,14 @@ Slider.propTypes = {
652
677
  showBoundary: _propTypes.default.bool,
653
678
  railStyle: _propTypes.default.object,
654
679
  verticalReverse: _propTypes.default.bool,
655
- getAriaValueText: _propTypes.default.func
680
+ getAriaValueText: _propTypes.default.func,
681
+ handleDot: _propTypes.default.oneOfType([_propTypes.default.shape({
682
+ size: _propTypes.default.string,
683
+ color: _propTypes.default.string
684
+ }), _propTypes.default.arrayOf(_propTypes.default.shape({
685
+ size: _propTypes.default.string,
686
+ color: _propTypes.default.string
687
+ }))])
656
688
  };
657
689
  Slider.defaultProps = {
658
690
  // allowClear: false,
@@ -1,34 +1,50 @@
1
1
  import React from 'react';
2
2
  import { DropdownProps } from '../dropdown';
3
- import { Trigger, Position } from '../tooltip';
4
3
  import { FilterIcon, Filter, OnFilterDropdownVisibleChange, RenderFilterDropdownItem } from './interface';
5
- export interface ColumnFilterProps {
4
+ export default function ColumnFilter(props?: ColumnFilterProps): React.ReactElement;
5
+ export interface ColumnFilterProps extends Omit<RenderDropdownProps, keyof RenderFilterDropdownProps> {
6
6
  prefixCls?: string;
7
7
  filteredValue?: any[];
8
8
  filterIcon?: FilterIcon;
9
9
  filterDropdown?: React.ReactElement;
10
- renderFilterDropdown?: (props: RenderDropdownProps, options: {
11
- iconElem: React.ReactNode;
12
- }) => React.ReactElement;
13
- filterDropdownProps?: DropdownProps;
14
- onFilterDropdownVisibleChange?: OnFilterDropdownVisibleChange;
15
- onSelect?: (data: OnSelectData) => void;
16
- }
17
- export default function ColumnFilter(props?: ColumnFilterProps): React.ReactElement;
18
- export interface OnSelectData {
19
- value: any;
20
- filteredValue: any;
21
- included: boolean;
22
- domEvent: React.MouseEvent<HTMLElement>;
10
+ filterDropdownProps?: FilterDropdownProps;
11
+ filters?: Filter[];
23
12
  }
24
- export interface RenderDropdownProps {
13
+ export interface RenderDropdownProps extends FilterDropdownProps, RenderFilterDropdownProps {
25
14
  filterMultiple?: boolean;
26
15
  filters?: Filter[];
27
16
  filteredValue?: any[];
28
17
  filterDropdownVisible?: boolean;
29
18
  onSelect?: (data: OnSelectData) => void;
30
19
  onFilterDropdownVisibleChange?: OnFilterDropdownVisibleChange;
31
- trigger?: Trigger;
32
- position?: Position;
20
+ renderFilterDropdown?: (props?: RenderFilterDropdownProps) => React.ReactNode;
33
21
  renderFilterDropdownItem?: RenderFilterDropdownItem;
34
22
  }
23
+ export interface FilterDropdownProps extends Omit<DropdownProps, 'render' | 'onVisibleChange'> {
24
+ }
25
+ export interface OnSelectData {
26
+ value?: any;
27
+ /** only this value is used now */
28
+ filteredValue: any;
29
+ included?: boolean;
30
+ domEvent?: React.MouseEvent<HTMLElement>;
31
+ }
32
+ export interface RenderFilterDropdownProps {
33
+ /** temporary filteredValue */
34
+ tempFilteredValue: any[];
35
+ /** set temporary filteredValue */
36
+ setTempFilteredValue: (tempFilteredValue: any[]) => void;
37
+ /** set tempFilteredValue to filteredValue. You can also pass filteredValue to directly set the filteredValue */
38
+ confirm: (props?: {
39
+ closeDropdown?: boolean;
40
+ filteredValue?: any[];
41
+ }) => void;
42
+ /** clear tempFilteredValue and filteredValue */
43
+ clear: (props?: {
44
+ closeDropdown?: boolean;
45
+ }) => void;
46
+ /** close dropdown */
47
+ close: () => void;
48
+ /** column filters */
49
+ filters?: RenderDropdownProps['filters'];
50
+ }