@douyinfe/semi-ui 2.36.0-alpha.0 → 2.36.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 (169) hide show
  1. package/dist/css/semi.css +166 -510
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +247 -277
  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/anchor/index.d.ts +3 -2
  8. package/lib/cjs/anchor/link.js +13 -6
  9. package/lib/cjs/autoComplete/index.d.ts +1 -1
  10. package/lib/cjs/button/Button.d.ts +1 -1
  11. package/lib/cjs/button/buttonGroup.d.ts +1 -1
  12. package/lib/cjs/button/index.d.ts +1 -1
  13. package/lib/cjs/calendar/dayCalendar.d.ts +2 -1
  14. package/lib/cjs/calendar/dayCalendar.js +7 -2
  15. package/lib/cjs/calendar/index.d.ts +1 -0
  16. package/lib/cjs/calendar/index.js +1 -0
  17. package/lib/cjs/calendar/interface.d.ts +2 -0
  18. package/lib/cjs/calendar/monthCalendar.d.ts +1 -1
  19. package/lib/cjs/calendar/monthCalendar.js +12 -4
  20. package/lib/cjs/calendar/rangeCalendar.d.ts +3 -1
  21. package/lib/cjs/calendar/rangeCalendar.js +23 -9
  22. package/lib/cjs/calendar/weekCalendar.d.ts +3 -1
  23. package/lib/cjs/calendar/weekCalendar.js +23 -9
  24. package/lib/cjs/collapse/item.d.ts +0 -2
  25. package/lib/cjs/collapse/item.js +2 -3
  26. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  27. package/lib/cjs/datePicker/datePicker.d.ts +2 -2
  28. package/lib/cjs/datePicker/datePicker.js +12 -4
  29. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  30. package/lib/cjs/datePicker/monthsGrid.js +6 -2
  31. package/lib/cjs/datePicker/yearAndMonth.d.ts +3 -1
  32. package/lib/cjs/datePicker/yearAndMonth.js +4 -2
  33. package/lib/cjs/form/baseForm.d.ts +1 -1
  34. package/lib/cjs/form/field.d.ts +1 -1
  35. package/lib/cjs/input/index.d.ts +1 -1
  36. package/lib/cjs/input/inputGroup.d.ts +1 -1
  37. package/lib/cjs/input/textarea.d.ts +1 -1
  38. package/lib/cjs/modal/confirm.d.ts +17 -17
  39. package/lib/cjs/navigation/Footer.d.ts +3 -0
  40. package/lib/cjs/navigation/Footer.js +19 -9
  41. package/lib/cjs/navigation/Item.d.ts +0 -4
  42. package/lib/cjs/navigation/Item.js +10 -29
  43. package/lib/cjs/navigation/SubNav.d.ts +1 -18
  44. package/lib/cjs/navigation/SubNav.js +30 -70
  45. package/lib/cjs/navigation/index.d.ts +4 -1
  46. package/lib/cjs/navigation/index.js +7 -1
  47. package/lib/cjs/rating/index.d.ts +1 -1
  48. package/lib/cjs/rating/item.d.ts +1 -1
  49. package/lib/cjs/select/index.d.ts +2 -1
  50. package/lib/cjs/select/index.js +4 -0
  51. package/lib/cjs/skeleton/index.d.ts +0 -1
  52. package/lib/cjs/skeleton/index.js +0 -1
  53. package/lib/cjs/skeleton/item.d.ts +0 -1
  54. package/lib/cjs/skeleton/item.js +1 -6
  55. package/lib/cjs/steps/basicStep.d.ts +0 -3
  56. package/lib/cjs/steps/basicStep.js +2 -8
  57. package/lib/cjs/steps/basicSteps.js +1 -2
  58. package/lib/cjs/steps/fillStep.d.ts +0 -2
  59. package/lib/cjs/steps/fillStep.js +1 -3
  60. package/lib/cjs/steps/fillSteps.js +8 -5
  61. package/lib/cjs/steps/index.d.ts +1 -63
  62. package/lib/cjs/steps/index.js +0 -9
  63. package/lib/cjs/steps/navStep.d.ts +0 -3
  64. package/lib/cjs/steps/navStep.js +2 -6
  65. package/lib/cjs/steps/navSteps.js +1 -2
  66. package/lib/cjs/steps/step.d.ts +1 -4
  67. package/lib/cjs/steps/step.js +0 -1
  68. package/lib/cjs/switch/index.d.ts +1 -1
  69. package/lib/cjs/table/Body/index.d.ts +1 -1
  70. package/lib/cjs/table/ResizableTable.d.ts +1 -1
  71. package/lib/cjs/table/Table.d.ts +2 -2
  72. package/lib/cjs/table/TableHeaderRow.js +22 -14
  73. package/lib/cjs/table/index.d.ts +1 -1
  74. package/lib/cjs/table/interface.d.ts +5 -1
  75. package/lib/cjs/tagInput/index.d.ts +1 -1
  76. package/lib/cjs/timePicker/TimePicker.d.ts +1 -1
  77. package/lib/cjs/timePicker/index.d.ts +1 -1
  78. package/lib/cjs/timeline/index.d.ts +1 -2
  79. package/lib/cjs/timeline/index.js +2 -8
  80. package/lib/cjs/timeline/item.d.ts +0 -10
  81. package/lib/cjs/timeline/item.js +3 -42
  82. package/lib/cjs/typography/base.d.ts +1 -0
  83. package/lib/cjs/typography/base.js +28 -14
  84. package/lib/cjs/typography/title.d.ts +2 -0
  85. package/lib/cjs/typography/title.js +2 -1
  86. package/lib/es/anchor/index.d.ts +3 -2
  87. package/lib/es/anchor/link.js +12 -6
  88. package/lib/es/autoComplete/index.d.ts +1 -1
  89. package/lib/es/button/Button.d.ts +1 -1
  90. package/lib/es/button/buttonGroup.d.ts +1 -1
  91. package/lib/es/button/index.d.ts +1 -1
  92. package/lib/es/calendar/dayCalendar.d.ts +2 -1
  93. package/lib/es/calendar/dayCalendar.js +7 -2
  94. package/lib/es/calendar/index.d.ts +1 -0
  95. package/lib/es/calendar/index.js +1 -0
  96. package/lib/es/calendar/interface.d.ts +2 -0
  97. package/lib/es/calendar/monthCalendar.d.ts +1 -1
  98. package/lib/es/calendar/monthCalendar.js +12 -4
  99. package/lib/es/calendar/rangeCalendar.d.ts +3 -1
  100. package/lib/es/calendar/rangeCalendar.js +19 -9
  101. package/lib/es/calendar/weekCalendar.d.ts +3 -1
  102. package/lib/es/calendar/weekCalendar.js +19 -9
  103. package/lib/es/collapse/item.d.ts +0 -2
  104. package/lib/es/collapse/item.js +2 -3
  105. package/lib/es/datePicker/dateInput.d.ts +1 -1
  106. package/lib/es/datePicker/datePicker.d.ts +2 -2
  107. package/lib/es/datePicker/datePicker.js +12 -4
  108. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  109. package/lib/es/datePicker/monthsGrid.js +6 -2
  110. package/lib/es/datePicker/yearAndMonth.d.ts +3 -1
  111. package/lib/es/datePicker/yearAndMonth.js +4 -2
  112. package/lib/es/form/baseForm.d.ts +1 -1
  113. package/lib/es/form/field.d.ts +1 -1
  114. package/lib/es/input/index.d.ts +1 -1
  115. package/lib/es/input/inputGroup.d.ts +1 -1
  116. package/lib/es/input/textarea.d.ts +1 -1
  117. package/lib/es/modal/confirm.d.ts +17 -17
  118. package/lib/es/navigation/Footer.d.ts +3 -0
  119. package/lib/es/navigation/Footer.js +16 -7
  120. package/lib/es/navigation/Item.d.ts +0 -4
  121. package/lib/es/navigation/Item.js +10 -28
  122. package/lib/es/navigation/SubNav.d.ts +1 -18
  123. package/lib/es/navigation/SubNav.js +31 -72
  124. package/lib/es/navigation/index.d.ts +4 -1
  125. package/lib/es/navigation/index.js +7 -1
  126. package/lib/es/rating/index.d.ts +1 -1
  127. package/lib/es/rating/item.d.ts +1 -1
  128. package/lib/es/select/index.d.ts +2 -1
  129. package/lib/es/select/index.js +4 -0
  130. package/lib/es/skeleton/index.d.ts +0 -1
  131. package/lib/es/skeleton/index.js +0 -1
  132. package/lib/es/skeleton/item.d.ts +0 -1
  133. package/lib/es/skeleton/item.js +1 -6
  134. package/lib/es/steps/basicStep.d.ts +0 -3
  135. package/lib/es/steps/basicStep.js +2 -8
  136. package/lib/es/steps/basicSteps.js +1 -2
  137. package/lib/es/steps/fillStep.d.ts +0 -2
  138. package/lib/es/steps/fillStep.js +1 -3
  139. package/lib/es/steps/fillSteps.js +8 -6
  140. package/lib/es/steps/index.d.ts +1 -63
  141. package/lib/es/steps/index.js +0 -6
  142. package/lib/es/steps/navStep.d.ts +0 -3
  143. package/lib/es/steps/navStep.js +2 -6
  144. package/lib/es/steps/navSteps.js +1 -2
  145. package/lib/es/steps/step.d.ts +1 -4
  146. package/lib/es/steps/step.js +0 -1
  147. package/lib/es/switch/index.d.ts +1 -1
  148. package/lib/es/table/Body/index.d.ts +1 -1
  149. package/lib/es/table/ResizableTable.d.ts +1 -1
  150. package/lib/es/table/Table.d.ts +2 -2
  151. package/lib/es/table/TableHeaderRow.js +22 -14
  152. package/lib/es/table/index.d.ts +1 -1
  153. package/lib/es/table/interface.d.ts +5 -1
  154. package/lib/es/tagInput/index.d.ts +1 -1
  155. package/lib/es/timePicker/TimePicker.d.ts +1 -1
  156. package/lib/es/timePicker/index.d.ts +1 -1
  157. package/lib/es/timeline/index.d.ts +1 -2
  158. package/lib/es/timeline/index.js +2 -7
  159. package/lib/es/timeline/item.d.ts +0 -10
  160. package/lib/es/timeline/item.js +3 -41
  161. package/lib/es/typography/base.d.ts +1 -0
  162. package/lib/es/typography/base.js +28 -14
  163. package/lib/es/typography/title.d.ts +2 -0
  164. package/lib/es/typography/title.js +2 -1
  165. package/package.json +8 -9
  166. package/lib/cjs/timeline/context.d.ts +0 -8
  167. package/lib/cjs/timeline/context.js +0 -15
  168. package/lib/es/timeline/context.d.ts +0 -8
  169. package/lib/es/timeline/context.js +0 -3
@@ -17,8 +17,6 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/timeline/constants")
17
17
 
18
18
  require("@douyinfe/semi-foundation/lib/cjs/timeline/timeline.css");
19
19
 
20
- var _context = _interopRequireDefault(require("./context"));
21
-
22
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
21
 
24
22
  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; }
@@ -28,39 +26,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
28
26
  const prefixCls = _constants.cssClasses.ITEM;
29
27
 
30
28
  class Item extends _react.PureComponent {
31
- constructor() {
32
- super(...arguments); // getC2DCls is used in C2D, it does not work in non-C2D scenes
33
-
34
- this.getC2DCls = () => {
35
- let c2dCls = '';
36
- const {
37
- mode,
38
- odd,
39
- usedInC2D
40
- } = this.props;
41
-
42
- if (usedInC2D) {
43
- switch (mode) {
44
- case 'center':
45
- c2dCls = `${prefixCls}-center ${prefixCls}-left`;
46
- break;
47
-
48
- case 'alternate':
49
- c2dCls = `${prefixCls}-alternate ${prefixCls}-${odd ? 'left' : 'right'}`;
50
- break;
51
-
52
- default:
53
- c2dCls = `${prefixCls}-${mode} ${mode === 'right' ? `${prefixCls}-mode-right` : ''}`;
54
- break;
55
- }
56
-
57
- c2dCls += ` ${prefixCls}-not-last-child`;
58
- }
59
-
60
- return c2dCls;
61
- };
62
- }
63
-
64
29
  render() {
65
30
  const {
66
31
  className,
@@ -73,7 +38,7 @@ class Item extends _react.PureComponent {
73
38
  extra,
74
39
  onClick
75
40
  } = this.props;
76
- const itemCls = (0, _classnames.default)(prefixCls, className, this.getC2DCls());
41
+ const itemCls = (0, _classnames.default)(prefixCls, className);
77
42
  const dotCls = (0, _classnames.default)({
78
43
  [`${prefixCls}-head`]: true,
79
44
  [`${prefixCls}-head-custom`]: dot,
@@ -106,7 +71,6 @@ class Item extends _react.PureComponent {
106
71
  }
107
72
 
108
73
  exports.default = Item;
109
- Item.contextType = _context.default;
110
74
  Item.propTypes = {
111
75
  color: _propTypes.default.string,
112
76
  time: _propTypes.default.node,
@@ -116,13 +80,10 @@ Item.propTypes = {
116
80
  position: _propTypes.default.oneOf(_constants.strings.ITEM_POS),
117
81
  className: _propTypes.default.string,
118
82
  style: _propTypes.default.object,
119
- onClick: _propTypes.default.func,
120
- mode: _propTypes.default.string,
121
- lastChild: _propTypes.default.bool
83
+ onClick: _propTypes.default.func
122
84
  };
123
85
  Item.defaultProps = {
124
86
  type: 'default',
125
87
  time: '',
126
88
  onClick: _noop2.default
127
- };
128
- Item.elementType = 'Timeline.Item';
89
+ };
@@ -22,6 +22,7 @@ export interface BaseTypographyProps extends BaseProps {
22
22
  component?: React.ElementType;
23
23
  spacing?: string;
24
24
  heading?: string;
25
+ weight?: string | number;
25
26
  }
26
27
  interface BaseTypographyState {
27
28
  editable: boolean;
@@ -107,7 +107,7 @@ class Base extends _react.Component {
107
107
  }
108
108
 
109
109
  this.rafId = window.requestAnimationFrame(this.getEllipsisState.bind(this));
110
- }; // if need to use js overflowed:
110
+ }; // if it needs to use js overflowed:
111
111
  // 1. text is expandable 2. expandText need to be shown 3. has extra operation 4. text need to ellipse from mid
112
112
 
113
113
 
@@ -445,10 +445,7 @@ class Base extends _react.Component {
445
445
  const {
446
446
  expanded
447
447
  } = this.state;
448
- const canUseCSSEllipsis = this.canUseCSSEllipsis(); // Currently only text truncation is supported, if there is non-text,
449
- // both css truncation and js truncation should throw a warning
450
-
451
- (0, _warning.default)('children' in this.props && typeof children !== 'string', "[Semi Typography] 'Only children with pure text could be used with ellipsis at this moment."); // If children is null, css/js truncated flag isTruncate is false
448
+ const canUseCSSEllipsis = this.canUseCSSEllipsis(); // If children is null, css/js truncated flag isTruncate is false
452
449
 
453
450
  if ((0, _isNull2.default)(children)) {
454
451
  this.setState({
@@ -456,7 +453,11 @@ class Base extends _react.Component {
456
453
  isOverflowed: false
457
454
  });
458
455
  return undefined;
459
- }
456
+ } // Currently only text truncation is supported, if there is non-text,
457
+ // both css truncation and js truncation should throw a warning
458
+
459
+
460
+ (0, _warning.default)('children' in this.props && typeof children !== 'string', "[Semi Typography] Only children with pure text could be used with ellipsis at this moment.");
460
461
 
461
462
  if (!rows || rows < 0 || expanded) {
462
463
  return undefined;
@@ -565,9 +566,10 @@ class Base extends _react.Component {
565
566
  icon,
566
567
  size,
567
568
  link,
568
- heading
569
+ heading,
570
+ weight
569
571
  } = _a,
570
- rest = __rest(_a, ["component", "children", "className", "type", "spacing", "disabled", "style", "ellipsis", "icon", "size", "link", "heading"]);
572
+ rest = __rest(_a, ["component", "children", "className", "type", "spacing", "disabled", "style", "ellipsis", "icon", "size", "link", "heading", "weight"]);
571
573
 
572
574
  const textProps = (0, _omit2.default)(rest, ['strong', 'editable', 'mark', 'copyable', 'underline', 'code', // 'link',
573
575
  'delete']);
@@ -586,6 +588,7 @@ class Base extends _react.Component {
586
588
  className: linkCls
587
589
  }, textNode) : textNode));
588
590
  const hTagReg = /^h[1-6]$/;
591
+ const isHeader = (0, _isString2.default)(heading) && hTagReg.test(heading);
589
592
  const wrapperCls = (0, _classnames.default)(className, ellipsisCls, {
590
593
  // [`${prefixCls}-primary`]: !type || type === 'primary',
591
594
  [`${prefixCls}-${type}`]: type && !link,
@@ -593,11 +596,15 @@ class Base extends _react.Component {
593
596
  [`${prefixCls}-link`]: link,
594
597
  [`${prefixCls}-disabled`]: disabled,
595
598
  [`${prefixCls}-${spacing}`]: spacing,
596
- [`${prefixCls}-${heading}`]: (0, _isString2.default)(heading) && hTagReg.test(heading)
599
+ [`${prefixCls}-${heading}`]: isHeader,
600
+ [`${prefixCls}-${heading}-weight-${weight}`]: isHeader && isNaN(Number(weight))
597
601
  });
602
+ const textStyle = Object.assign(Object.assign({}, isNaN(Number(weight)) ? {} : {
603
+ fontWeight: weight
604
+ }), style);
598
605
  return /*#__PURE__*/_react.default.createElement(_typography.default, Object.assign({
599
606
  className: wrapperCls,
600
- style: Object.assign(Object.assign({}, style), ellipsisStyle),
607
+ style: Object.assign(Object.assign({}, textStyle), ellipsisStyle),
601
608
  component: component,
602
609
  forwardRef: this.wrapperRef
603
610
  }, textProps), textNode, this.renderOperations());
@@ -633,15 +640,22 @@ class Base extends _react.Component {
633
640
  }
634
641
 
635
642
  render() {
636
- return /*#__PURE__*/_react.default.createElement(_resizeObserver.default, {
637
- onResize: this.onResize
638
- }, /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
643
+ const content = /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
639
644
  componentName: "Typography"
640
645
  }, locale => {
641
646
  this.expandStr = locale.expand;
642
647
  this.collapseStr = locale.collapse;
643
648
  return this.renderTipWrapper();
644
- }));
649
+ });
650
+
651
+ if (this.props.ellipsis) {
652
+ return /*#__PURE__*/_react.default.createElement(_resizeObserver.default, {
653
+ onResize: this.onResize,
654
+ observeParent: true
655
+ }, content);
656
+ }
657
+
658
+ return content;
645
659
  }
646
660
 
647
661
  }
@@ -26,6 +26,7 @@ export interface TitleProps extends Omit<React.HTMLAttributes<HTMLHeadingElement
26
26
  style?: React.CSSProperties;
27
27
  type?: TypographyBaseType;
28
28
  underline?: boolean;
29
+ weight?: ArrayElement<typeof strings.WEIGHT> | number;
29
30
  }
30
31
  export default class Title extends PureComponent<TitleProps> {
31
32
  static propTypes: {
@@ -42,6 +43,7 @@ export default class Title extends PureComponent<TitleProps> {
42
43
  style: PropTypes.Requireable<object>;
43
44
  className: PropTypes.Requireable<string>;
44
45
  component: PropTypes.Requireable<string>;
46
+ weight: PropTypes.Requireable<NonNullable<number | "default" | "bold" | "medium" | "light" | "regular" | "semibold">>;
45
47
  };
46
48
  static defaultProps: {
47
49
  copyable: boolean;
@@ -63,7 +63,8 @@ Title.propTypes = {
63
63
  heading: _propTypes.default.oneOf(_constants.strings.HEADING),
64
64
  style: _propTypes.default.object,
65
65
  className: _propTypes.default.string,
66
- component: _propTypes.default.string
66
+ component: _propTypes.default.string,
67
+ weight: _propTypes.default.oneOfType([_propTypes.default.oneOf(_constants.strings.WEIGHT), _propTypes.default.number])
67
68
  };
68
69
  Title.defaultProps = {
69
70
  copyable: false,
@@ -7,6 +7,7 @@ import Link from './link';
7
7
  import '@douyinfe/semi-foundation/lib/es/anchor/anchor.css';
8
8
  import { ArrayElement } from '../_base/base';
9
9
  import { ContextValue } from '../configProvider/context';
10
+ import { ShowTooltip } from '../typography/interface';
10
11
  export type { LinkProps } from './link';
11
12
  export interface AnchorProps {
12
13
  autoCollapse?: boolean;
@@ -20,7 +21,7 @@ export interface AnchorProps {
20
21
  position?: ArrayElement<typeof strings.POSITION_SET>;
21
22
  railTheme?: ArrayElement<typeof strings.SLIDE_COLOR>;
22
23
  scrollMotion?: boolean;
23
- showTooltip?: boolean;
24
+ showTooltip?: boolean | ShowTooltip;
24
25
  size?: ArrayElement<typeof strings.SIZE>;
25
26
  style?: React.CSSProperties;
26
27
  targetOffset?: number;
@@ -39,7 +40,7 @@ declare class Anchor extends BaseComponent<AnchorProps, AnchorState> {
39
40
  static contextType: React.Context<ContextValue>;
40
41
  static Link: typeof Link;
41
42
  static PropTypes: {
42
- size: PropTypes.Requireable<"small" | "default">;
43
+ size: PropTypes.Requireable<"default" | "small">;
43
44
  railTheme: PropTypes.Requireable<"primary" | "tertiary" | "muted">;
44
45
  className: PropTypes.Requireable<string>;
45
46
  style: PropTypes.Requireable<object>;
@@ -1,3 +1,4 @@
1
+ import _isObject from "lodash/isObject";
1
2
  import React from 'react';
2
3
  import cls from 'classnames';
3
4
  import PropTypes from 'prop-types';
@@ -30,17 +31,22 @@ export default class Link extends BaseComponent {
30
31
  [`${prefixCls}-link-tooltip-active`]: active,
31
32
  [`${prefixCls}-link-tooltip-disabled`]: disabled
32
33
  });
33
- const toolTipOpt = position ? {
34
- position
35
- } : {};
36
34
 
37
35
  if (showTooltip) {
36
+ const showTooltipObj = _isObject(showTooltip) ? Object.assign({
37
+ opts: {}
38
+ }, showTooltip) : {
39
+ opts: {}
40
+ }; // The position can be set through showTooltip, here it is compatible with the position API
41
+
42
+ if (position) {
43
+ showTooltipObj.opts['position'] = position;
44
+ }
45
+
38
46
  return /*#__PURE__*/React.createElement(Typography.Text, {
39
47
  size: size === 'default' ? 'normal' : 'small',
40
48
  ellipsis: {
41
- showTooltip: {
42
- opts: Object.assign({}, toolTipOpt)
43
- }
49
+ showTooltip: showTooltipObj
44
50
  },
45
51
  type: 'tertiary',
46
52
  className: linkTitleCls
@@ -125,7 +125,7 @@ declare class AutoComplete<T extends AutoCompleteItems> extends BaseComponent<Au
125
125
  renderSelectedItem: PropTypes.Requireable<(...args: any[]) => any>;
126
126
  suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
127
127
  showClear: PropTypes.Requireable<boolean>;
128
- size: PropTypes.Requireable<"small" | "default" | "large">;
128
+ size: PropTypes.Requireable<"default" | "small" | "large">;
129
129
  style: PropTypes.Requireable<object>;
130
130
  stopPropagation: PropTypes.Requireable<NonNullable<string | boolean>>;
131
131
  maxHeight: PropTypes.Requireable<NonNullable<string | number>>;
@@ -47,7 +47,7 @@ export default class Button extends PureComponent<ButtonProps> {
47
47
  disabled: PropTypes.Requireable<boolean>;
48
48
  prefixCls: PropTypes.Requireable<string>;
49
49
  style: PropTypes.Requireable<object>;
50
- size: PropTypes.Requireable<"small" | "default" | "large">;
50
+ size: PropTypes.Requireable<"default" | "small" | "large">;
51
51
  type: PropTypes.Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
52
52
  block: PropTypes.Requireable<boolean>;
53
53
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -18,7 +18,7 @@ export default class ButtonGroup extends BaseComponent<ButtonGroupProps> {
18
18
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
19
  disabled: PropTypes.Requireable<boolean>;
20
20
  type: PropTypes.Requireable<string>;
21
- size: PropTypes.Requireable<"small" | "default" | "large">;
21
+ size: PropTypes.Requireable<"default" | "small" | "large">;
22
22
  theme: PropTypes.Requireable<"solid" | "light" | "borderless">;
23
23
  'aria-label': PropTypes.Requireable<string>;
24
24
  };
@@ -22,7 +22,7 @@ declare class Button extends React.PureComponent<ButtonProps> {
22
22
  onMouseEnter: import("prop-types").Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: import("prop-types").Requireable<(...args: any[]) => any>;
24
24
  disabled: import("prop-types").Requireable<boolean>;
25
- size: import("prop-types").Requireable<"small" | "default" | "large">;
25
+ size: import("prop-types").Requireable<"default" | "small" | "large">;
26
26
  type: import("prop-types").Requireable<"warning" | "primary" | "tertiary" | "secondary" | "danger">;
27
27
  block: import("prop-types").Requireable<boolean>;
28
28
  onClick: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -26,6 +26,7 @@ export default class DayCalendar extends BaseComponent<DayCalendarProps, DayCale
26
26
  style: PropTypes.Requireable<object>;
27
27
  className: PropTypes.Requireable<string>;
28
28
  dateGridRender: PropTypes.Requireable<(...args: any[]) => any>;
29
+ allDayEventsRender: PropTypes.Requireable<(...args: any[]) => any>;
29
30
  };
30
31
  static defaultProps: {
31
32
  events: import("@douyinfe/semi-foundation/lib/es/calendar/foundation").EventObject[];
@@ -43,7 +44,7 @@ export default class DayCalendar extends BaseComponent<DayCalendarProps, DayCale
43
44
  componentDidUpdate(prevProps: DayCalendarProps, prevState: DayCalendarState): void;
44
45
  componentWillUnmount(): void;
45
46
  checkWeekend: (val: Date) => boolean;
46
- renderAllDayEvents: (events: ParsedEventsWithArray['allDay']) => JSX.Element[];
47
+ renderAllDayEvents: (events: ParsedEventsWithArray['allDay']) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment | JSX.Element[];
47
48
  handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void;
48
49
  renderAllDay: (events: ParsedEventsWithArray['allDay']) => JSX.Element;
49
50
  render(): JSX.Element;
@@ -18,6 +18,10 @@ export default class DayCalendar extends BaseComponent {
18
18
  this.checkWeekend = val => this.foundation.checkWeekend(val);
19
19
 
20
20
  this.renderAllDayEvents = events => {
21
+ if (this.props.allDayEventsRender) {
22
+ return this.props.allDayEventsRender(this.props.events);
23
+ }
24
+
21
25
  const list = events.map((event, ind) => {
22
26
  const {
23
27
  children,
@@ -110,7 +114,7 @@ export default class DayCalendar extends BaseComponent {
110
114
  const prevEventKeys = prevState.cachedKeys;
111
115
  const nowEventKeys = this.props.events.map(event => event.key);
112
116
 
113
- if (!_isEqual(prevEventKeys, nowEventKeys)) {
117
+ if (!_isEqual(prevEventKeys, nowEventKeys) || !_isEqual(prevProps.displayValue, this.props.displayValue)) {
114
118
  this.foundation.parseDailyEvents();
115
119
  }
116
120
  }
@@ -183,7 +187,8 @@ DayCalendar.propTypes = {
183
187
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
184
188
  style: PropTypes.object,
185
189
  className: PropTypes.string,
186
- dateGridRender: PropTypes.func
190
+ dateGridRender: PropTypes.func,
191
+ allDayEventsRender: PropTypes.func
187
192
  };
188
193
  DayCalendar.defaultProps = {
189
194
  events: [],
@@ -22,6 +22,7 @@ declare class Calendar extends BaseComponent<CalendarProps, {}> {
22
22
  scrollTop: PropTypes.Requireable<number>;
23
23
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
24
24
  renderTimeDisplay: PropTypes.Requireable<(...args: any[]) => any>;
25
+ renderDateDisplay: PropTypes.Requireable<(...args: any[]) => any>;
25
26
  markWeekend: PropTypes.Requireable<boolean>;
26
27
  width: PropTypes.Requireable<NonNullable<string | number>>;
27
28
  height: PropTypes.Requireable<NonNullable<string | number>>;
@@ -54,6 +54,7 @@ Calendar.propTypes = {
54
54
  scrollTop: PropTypes.number,
55
55
  onClick: PropTypes.func,
56
56
  renderTimeDisplay: PropTypes.func,
57
+ renderDateDisplay: PropTypes.func,
57
58
  markWeekend: PropTypes.bool,
58
59
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
59
60
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -18,7 +18,9 @@ export interface CalendarProps extends BaseProps {
18
18
  markWeekend?: boolean;
19
19
  width?: number | string;
20
20
  height?: number | string;
21
+ renderDateDisplay?: (date: Date) => React.ReactNode;
21
22
  dateGridRender?: (dateString?: string, date?: Date) => React.ReactNode;
23
+ allDayEventsRender?: (events: EventObject[]) => React.ReactNode;
22
24
  }
23
25
  export declare type DayCalendarProps = Omit<CalendarProps, 'mode'>;
24
26
  declare type DayCalendarPropsKeys = 'events' | 'displayValue' | 'showCurrTime' | 'mode' | 'dateGridRender';
@@ -51,7 +51,7 @@ export default class monthCalendar extends BaseComponent<MonthCalendarProps, Mon
51
51
  renderHeader: (dateFnsLocale: Locale['dateFnsLocale']) => JSX.Element;
52
52
  renderEvents: (events: ParsedRangeEvent[]) => JSX.Element[];
53
53
  renderCollapsed: (events: MonthlyEvent['day'][number], itemInfo: DateObj, listCls: string, month: string) => JSX.Element;
54
- formatDayString: (month: string, date: string) => JSX.Element;
54
+ formatDayString: (dateObj: Date, month: string, date: string) => string | number | boolean | React.ReactFragment | JSX.Element;
55
55
  renderCusDateGrid: (date: Date) => React.ReactNode;
56
56
  renderWeekRow: (index: number | string, weekDay: MonthData[number], events?: MonthlyEvent) => JSX.Element;
57
57
  renderMonthGrid: () => JSX.Element;
@@ -173,10 +173,18 @@ export default class monthCalendar extends BaseComponent {
173
173
  key: date,
174
174
  className: listCls,
175
175
  onClick: e => this.handleClick(e, [date])
176
- }, this.formatDayString(month, dayString), shouldRenderCard ? text : null, this.renderCusDateGrid(date)));
176
+ }, this.formatDayString(date, month, dayString), shouldRenderCard ? text : null, this.renderCusDateGrid(date)));
177
177
  };
178
178
 
179
- this.formatDayString = (month, date) => {
179
+ this.formatDayString = (dateObj, month, date) => {
180
+ const {
181
+ renderDateDisplay
182
+ } = this.props;
183
+
184
+ if (renderDateDisplay) {
185
+ return renderDateDisplay(dateObj);
186
+ }
187
+
180
188
  if (date === '1') {
181
189
  return /*#__PURE__*/React.createElement(LocaleConsumer, {
182
190
  componentName: "Calendar"
@@ -253,7 +261,7 @@ export default class monthCalendar extends BaseComponent {
253
261
  key: `${date}-weeksk`,
254
262
  className: listCls,
255
263
  onClick: e => _this.handleClick(e, [date])
256
- }, _this.formatDayString(month, dayString), _this.renderCusDateGrid(date));
264
+ }, _this.formatDayString(date, month, dayString), _this.renderCusDateGrid(date));
257
265
 
258
266
  if (!shouldRenderCollapsed) {
259
267
  return inner;
@@ -373,7 +381,7 @@ export default class monthCalendar extends BaseComponent {
373
381
  }
374
382
  }
375
383
 
376
- if (!_isEqual(prevEventKeys, nowEventKeys) || itemLimitUpdate) {
384
+ if (!_isEqual(prevEventKeys, nowEventKeys) || itemLimitUpdate || !_isEqual(prevProps.displayValue, this.props.displayValue)) {
377
385
  this.foundation.parseMonthlyEvents(itemLimit || this.props.events);
378
386
  }
379
387
  }
@@ -20,7 +20,9 @@ export default class RangeCalendar extends BaseComponent<RangeCalendarProps, Ran
20
20
  markWeekend: PropTypes.Requireable<boolean>;
21
21
  scrollTop: PropTypes.Requireable<number>;
22
22
  renderTimeDisplay: PropTypes.Requireable<(...args: any[]) => any>;
23
+ renderDateDisplay: PropTypes.Requireable<(...args: any[]) => any>;
23
24
  dateGridRender: PropTypes.Requireable<(...args: any[]) => any>;
25
+ allDayEventsRender: PropTypes.Requireable<(...args: any[]) => any>;
24
26
  width: PropTypes.Requireable<NonNullable<string | number>>;
25
27
  height: PropTypes.Requireable<NonNullable<string | number>>;
26
28
  style: PropTypes.Requireable<object>;
@@ -45,7 +47,7 @@ export default class RangeCalendar extends BaseComponent<RangeCalendarProps, Ran
45
47
  handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void;
46
48
  renderDayGrid: () => JSX.Element[];
47
49
  renderHeader: (dateFnsLocale: Locale['dateFnsLocale']) => JSX.Element;
48
- renderAllDayEvents: (events: Array<ParsedRangeEvent>) => JSX.Element[];
50
+ renderAllDayEvents: (events: Array<ParsedRangeEvent>) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment | JSX.Element[];
49
51
  renderAllDay: (locale: Locale['Calendar']) => JSX.Element;
50
52
  render(): JSX.Element;
51
53
  }
@@ -1,5 +1,5 @@
1
1
  import _isEqual from "lodash/isEqual";
2
- import React from 'react';
2
+ import React, { Fragment } from 'react';
3
3
  import cls from 'classnames';
4
4
  import PropTypes from 'prop-types'; // eslint-disable-next-line max-len
5
5
 
@@ -65,7 +65,8 @@ export default class RangeCalendar extends BaseComponent {
65
65
  this.renderHeader = dateFnsLocale => {
66
66
  const {
67
67
  markWeekend,
68
- range
68
+ range,
69
+ renderDateDisplay
69
70
  } = this.props;
70
71
  const {
71
72
  month,
@@ -91,16 +92,21 @@ export default class RangeCalendar extends BaseComponent {
91
92
  [`${cssClasses.PREFIX}-today`]: isToday,
92
93
  [`${cssClasses.PREFIX}-weekend`]: markWeekend && day.isWeekend
93
94
  });
95
+ const dateContent = renderDateDisplay ? renderDateDisplay(date) : /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
96
+ className: `${cssClasses.PREFIX}-today-date`
97
+ }, dayString), /*#__PURE__*/React.createElement("span", null, weekday));
94
98
  return /*#__PURE__*/React.createElement("li", {
95
99
  key: `${date.toString()}-weekheader`,
96
100
  className: listCls
97
- }, /*#__PURE__*/React.createElement("span", {
98
- className: `${cssClasses.PREFIX}-today-date`
99
- }, dayString), /*#__PURE__*/React.createElement("span", null, weekday));
101
+ }, dateContent);
100
102
  }))));
101
103
  };
102
104
 
103
105
  this.renderAllDayEvents = events => {
106
+ if (this.props.allDayEventsRender) {
107
+ return this.props.allDayEventsRender(this.props.events);
108
+ }
109
+
104
110
  const list = events.map((event, ind) => {
105
111
  const {
106
112
  leftPos,
@@ -124,13 +130,15 @@ export default class RangeCalendar extends BaseComponent {
124
130
  };
125
131
 
126
132
  this.renderAllDay = locale => {
133
+ const {
134
+ allDayEventsRender
135
+ } = this.props;
127
136
  const {
128
137
  allDay
129
138
  } = this.state.parsedEvents;
130
139
  const parsed = this.foundation.parseRangeAllDayEvents(allDay);
131
- const maxRowHeight = calcRowHeight(parsed);
132
- const style = {
133
- height: `${maxRowHeight}em`
140
+ const style = allDayEventsRender ? null : {
141
+ height: `${calcRowHeight(parsed)}em`
134
142
  };
135
143
  const {
136
144
  markWeekend
@@ -214,7 +222,7 @@ export default class RangeCalendar extends BaseComponent {
214
222
  const prevEventKeys = prevState.cachedKeys;
215
223
  const nowEventKeys = this.props.events.map(event => event.key);
216
224
 
217
- if (!_isEqual(prevEventKeys, nowEventKeys)) {
225
+ if (!_isEqual(prevEventKeys, nowEventKeys) || !_isEqual(prevProps.range, this.props.range)) {
218
226
  this.foundation.parseRangeEvents();
219
227
  }
220
228
  }
@@ -267,7 +275,9 @@ RangeCalendar.propTypes = {
267
275
  markWeekend: PropTypes.bool,
268
276
  scrollTop: PropTypes.number,
269
277
  renderTimeDisplay: PropTypes.func,
278
+ renderDateDisplay: PropTypes.func,
270
279
  dateGridRender: PropTypes.func,
280
+ allDayEventsRender: PropTypes.func,
271
281
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
272
282
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
273
283
  style: PropTypes.object,
@@ -20,7 +20,9 @@ export default class WeekCalendar extends BaseComponent<WeekCalendarProps, WeekC
20
20
  markWeekend: PropTypes.Requireable<boolean>;
21
21
  scrollTop: PropTypes.Requireable<number>;
22
22
  renderTimeDisplay: PropTypes.Requireable<(...args: any[]) => any>;
23
+ renderDateDisplay: PropTypes.Requireable<(...args: any[]) => any>;
23
24
  dateGridRender: PropTypes.Requireable<(...args: any[]) => any>;
25
+ allDayEventsRender: PropTypes.Requireable<(...args: any[]) => any>;
24
26
  width: PropTypes.Requireable<NonNullable<string | number>>;
25
27
  height: PropTypes.Requireable<NonNullable<string | number>>;
26
28
  style: PropTypes.Requireable<object>;
@@ -46,7 +48,7 @@ export default class WeekCalendar extends BaseComponent<WeekCalendarProps, WeekC
46
48
  handleClick: (e: React.MouseEvent, val: [Date, number, number, number]) => void;
47
49
  renderDayGrid: () => JSX.Element[];
48
50
  renderHeader: (dateFnsLocale: any) => JSX.Element;
49
- renderAllDayEvents: (events: ParsedRangeEvent[]) => JSX.Element[];
51
+ renderAllDayEvents: (events: ParsedRangeEvent[]) => string | number | boolean | React.ReactElement<any, string | React.JSXElementConstructor<any>> | React.ReactFragment | JSX.Element[];
50
52
  renderAllDay: (locale: Locale['Calendar']) => JSX.Element;
51
53
  render(): JSX.Element;
52
54
  }
@@ -1,5 +1,5 @@
1
1
  import _isEqual from "lodash/isEqual";
2
- import React from 'react';
2
+ import React, { Fragment } from 'react';
3
3
  import cls from 'classnames';
4
4
  import PropTypes from 'prop-types';
5
5
  import CalendarFoundation from '@douyinfe/semi-foundation/lib/es/calendar/foundation';
@@ -66,7 +66,8 @@ export default class WeekCalendar extends BaseComponent {
66
66
  this.renderHeader = dateFnsLocale => {
67
67
  const {
68
68
  markWeekend,
69
- displayValue
69
+ displayValue,
70
+ renderDateDisplay
70
71
  } = this.props;
71
72
  const {
72
73
  month,
@@ -92,16 +93,21 @@ export default class WeekCalendar extends BaseComponent {
92
93
  [`${cssClasses.PREFIX}-today`]: isToday,
93
94
  [`${cssClasses.PREFIX}-weekend`]: markWeekend && day.isWeekend
94
95
  });
96
+ const dateContent = renderDateDisplay ? renderDateDisplay(date) : /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
97
+ className: `${cssClasses.PREFIX}-today-date`
98
+ }, dayString), /*#__PURE__*/React.createElement("span", null, weekday));
95
99
  return /*#__PURE__*/React.createElement("li", {
96
100
  key: `${date.toString()}-weekheader`,
97
101
  className: listCls
98
- }, /*#__PURE__*/React.createElement("span", {
99
- className: `${cssClasses.PREFIX}-today-date`
100
- }, dayString), /*#__PURE__*/React.createElement("span", null, weekday));
102
+ }, dateContent);
101
103
  }))));
102
104
  };
103
105
 
104
106
  this.renderAllDayEvents = events => {
107
+ if (this.props.allDayEventsRender) {
108
+ return this.props.allDayEventsRender(this.props.events);
109
+ }
110
+
105
111
  const list = events.map((event, ind) => {
106
112
  const {
107
113
  leftPos,
@@ -126,13 +132,15 @@ export default class WeekCalendar extends BaseComponent {
126
132
  };
127
133
 
128
134
  this.renderAllDay = locale => {
135
+ const {
136
+ allDayEventsRender
137
+ } = this.props;
129
138
  const {
130
139
  allDay
131
140
  } = this.state.parsedEvents;
132
141
  const parsed = this.foundation.parseWeeklyAllDayEvents(allDay);
133
- const maxRowHeight = calcRowHeight(parsed);
134
- const style = {
135
- height: `${maxRowHeight}em`
142
+ const style = allDayEventsRender ? null : {
143
+ height: `${calcRowHeight(parsed)}em`
136
144
  };
137
145
  const {
138
146
  markWeekend
@@ -216,7 +224,7 @@ export default class WeekCalendar extends BaseComponent {
216
224
  const prevEventKeys = prevState.cachedKeys;
217
225
  const nowEventKeys = this.props.events.map(event => event.key);
218
226
 
219
- if (!_isEqual(prevEventKeys, nowEventKeys)) {
227
+ if (!_isEqual(prevEventKeys, nowEventKeys) || !_isEqual(prevProps.displayValue, this.props.displayValue)) {
220
228
  this.foundation.parseWeeklyEvents();
221
229
  }
222
230
  }
@@ -268,7 +276,9 @@ WeekCalendar.propTypes = {
268
276
  markWeekend: PropTypes.bool,
269
277
  scrollTop: PropTypes.number,
270
278
  renderTimeDisplay: PropTypes.func,
279
+ renderDateDisplay: PropTypes.func,
271
280
  dateGridRender: PropTypes.func,
281
+ allDayEventsRender: PropTypes.func,
272
282
  width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
273
283
  height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
274
284
  style: PropTypes.object,
@@ -11,10 +11,8 @@ export interface CollapsePanelProps {
11
11
  style?: CSSProperties;
12
12
  showArrow?: boolean;
13
13
  disabled?: boolean;
14
- active?: boolean;
15
14
  }
16
15
  export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
17
- static elementType: string;
18
16
  static contextType: React.Context<CollapseContextType>;
19
17
  headerExpandIconTriggerRef: React.RefObject<HTMLElement>;
20
18
  static propTypes: {