@douyinfe/semi-ui 2.16.1 → 2.17.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 (67) hide show
  1. package/collapse/__test__/collapse.test.js +22 -2
  2. package/collapse/_story/accordion.stories.js +2 -2
  3. package/collapse/item.tsx +20 -6
  4. package/datePicker/__test__/datePicker.test.js +5 -5
  5. package/datePicker/_story/datePicker.stories.js +138 -22
  6. package/datePicker/datePicker.tsx +42 -7
  7. package/datePicker/monthsGrid.tsx +22 -10
  8. package/datePicker/quickControl.tsx +62 -16
  9. package/datePicker/yearAndMonth.tsx +31 -5
  10. package/dist/css/semi.css +289 -32
  11. package/dist/css/semi.min.css +1 -1
  12. package/dist/umd/semi-ui.js +45706 -45192
  13. package/dist/umd/semi-ui.js.map +1 -1
  14. package/dist/umd/semi-ui.min.js +1 -1
  15. package/dist/umd/semi-ui.min.js.map +1 -1
  16. package/lib/cjs/collapse/item.d.ts +8 -0
  17. package/lib/cjs/collapse/item.js +19 -8
  18. package/lib/cjs/datePicker/datePicker.d.ts +3 -0
  19. package/lib/cjs/datePicker/datePicker.js +56 -9
  20. package/lib/cjs/datePicker/monthsGrid.d.ts +3 -0
  21. package/lib/cjs/datePicker/monthsGrid.js +14 -3
  22. package/lib/cjs/datePicker/quickControl.d.ts +6 -0
  23. package/lib/cjs/datePicker/quickControl.js +61 -14
  24. package/lib/cjs/datePicker/yearAndMonth.d.ts +3 -0
  25. package/lib/cjs/datePicker/yearAndMonth.js +15 -3
  26. package/lib/cjs/popover/index.d.ts +3 -0
  27. package/lib/cjs/popover/index.js +4 -2
  28. package/lib/cjs/select/index.d.ts +6 -1
  29. package/lib/cjs/select/index.js +130 -72
  30. package/lib/cjs/select/option.js +4 -2
  31. package/lib/cjs/tag/index.js +6 -4
  32. package/lib/cjs/tag/interface.d.ts +1 -0
  33. package/lib/cjs/tagInput/index.d.ts +13 -1
  34. package/lib/cjs/tagInput/index.js +217 -91
  35. package/lib/cjs/tooltip/index.d.ts +4 -0
  36. package/lib/cjs/tooltip/index.js +5 -3
  37. package/lib/es/collapse/item.d.ts +8 -0
  38. package/lib/es/collapse/item.js +19 -8
  39. package/lib/es/datePicker/datePicker.d.ts +3 -0
  40. package/lib/es/datePicker/datePicker.js +56 -9
  41. package/lib/es/datePicker/monthsGrid.d.ts +3 -0
  42. package/lib/es/datePicker/monthsGrid.js +14 -3
  43. package/lib/es/datePicker/quickControl.d.ts +6 -0
  44. package/lib/es/datePicker/quickControl.js +61 -15
  45. package/lib/es/datePicker/yearAndMonth.d.ts +3 -0
  46. package/lib/es/datePicker/yearAndMonth.js +14 -3
  47. package/lib/es/popover/index.d.ts +3 -0
  48. package/lib/es/popover/index.js +4 -2
  49. package/lib/es/select/index.d.ts +6 -1
  50. package/lib/es/select/index.js +129 -71
  51. package/lib/es/select/option.js +4 -2
  52. package/lib/es/tag/index.js +6 -4
  53. package/lib/es/tag/interface.d.ts +1 -0
  54. package/lib/es/tagInput/index.d.ts +13 -1
  55. package/lib/es/tagInput/index.js +217 -93
  56. package/lib/es/tooltip/index.d.ts +4 -0
  57. package/lib/es/tooltip/index.js +5 -3
  58. package/package.json +7 -7
  59. package/popover/index.tsx +4 -1
  60. package/select/__test__/select.test.js +5 -3
  61. package/select/index.tsx +65 -30
  62. package/select/option.tsx +2 -0
  63. package/tag/index.tsx +3 -2
  64. package/tag/interface.ts +1 -0
  65. package/tagInput/_story/tagInput.stories.js +18 -0
  66. package/tagInput/index.tsx +126 -26
  67. package/tooltip/index.tsx +5 -2
@@ -9,6 +9,8 @@ export interface CollapsePanelProps {
9
9
  children?: React.ReactNode;
10
10
  reCalcKey?: number | string;
11
11
  style?: CSSProperties;
12
+ showArrow?: boolean;
13
+ disabled?: boolean;
12
14
  }
13
15
  export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
14
16
  static contextType: React.Context<CollapseContextType>;
@@ -18,6 +20,12 @@ export default class CollapsePanel extends PureComponent<CollapsePanelProps> {
18
20
  header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
19
21
  className: PropTypes.Requireable<string>;
20
22
  reCalcKey: PropTypes.Requireable<string | number>;
23
+ showArrow: PropTypes.Requireable<boolean>;
24
+ disabled: PropTypes.Requireable<boolean>;
25
+ };
26
+ static defaultProps: {
27
+ showArrow: boolean;
28
+ disabled: boolean;
21
29
  };
22
30
  private ariaID;
23
31
  context: CollapseContextType;
@@ -60,6 +60,7 @@ class CollapsePanel extends _react.PureComponent {
60
60
  renderHeader(active) {
61
61
  let expandIconEnable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
62
62
  const {
63
+ showArrow,
63
64
  header,
64
65
  extra
65
66
  } = this.props;
@@ -89,12 +90,12 @@ class CollapsePanel extends _react.PureComponent {
89
90
  const iconPosLeft = expandIconPosition === 'left';
90
91
 
91
92
  if (typeof header === 'string') {
92
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconPosLeft ? icon : null, /*#__PURE__*/_react.default.createElement("span", null, header), /*#__PURE__*/_react.default.createElement("span", {
93
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showArrow && (iconPosLeft ? icon : null), /*#__PURE__*/_react.default.createElement("span", null, header), /*#__PURE__*/_react.default.createElement("span", {
93
94
  className: "".concat(_constants.cssClasses.PREFIX, "-header-right")
94
- }, /*#__PURE__*/_react.default.createElement("span", null, extra), iconPosLeft ? null : icon));
95
+ }, /*#__PURE__*/_react.default.createElement("span", null, extra), showArrow && (iconPosLeft ? null : icon)));
95
96
  }
96
97
 
97
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, iconPosLeft ? icon : null, header, iconPosLeft ? null : icon);
98
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showArrow && (iconPosLeft ? icon : null), header, showArrow && (iconPosLeft ? null : icon));
98
99
  }
99
100
 
100
101
  render() {
@@ -105,9 +106,11 @@ class CollapsePanel extends _react.PureComponent {
105
106
  itemKey,
106
107
  reCalcKey,
107
108
  header,
108
- extra
109
+ extra,
110
+ showArrow,
111
+ disabled
109
112
  } = _a,
110
- restProps = __rest(_a, ["className", "children", "itemKey", "reCalcKey", "header", "extra"]);
113
+ restProps = __rest(_a, ["className", "children", "itemKey", "reCalcKey", "header", "extra", "showArrow", "disabled"]);
111
114
 
112
115
  const {
113
116
  keepDOM,
@@ -122,6 +125,7 @@ class CollapsePanel extends _react.PureComponent {
122
125
  });
123
126
  const headerCls = (0, _classnames.default)({
124
127
  ["".concat(_constants.cssClasses.PREFIX, "-header")]: true,
128
+ ["".concat(_constants.cssClasses.PREFIX, "-header-disabled")]: disabled,
125
129
  ["".concat(_constants.cssClasses.PREFIX, "-header-iconLeft")]: expandIconPosition === 'left'
126
130
  });
127
131
  const contentCls = (0, _classnames.default)({
@@ -133,10 +137,11 @@ class CollapsePanel extends _react.PureComponent {
133
137
  role: "button",
134
138
  tabIndex: 0,
135
139
  className: headerCls,
140
+ "aria-disabled": disabled,
136
141
  "aria-expanded": active ? 'true' : 'false',
137
142
  "aria-owns": this.ariaID,
138
- onClick: e => onClick(itemKey, e)
139
- }, this.renderHeader(active, children !== undefined)), children && /*#__PURE__*/_react.default.createElement(_collapsible.default, {
143
+ onClick: e => !disabled && onClick(itemKey, e)
144
+ }, this.renderHeader(active, children !== undefined && !disabled)), children && /*#__PURE__*/_react.default.createElement(_collapsible.default, {
140
145
  isOpen: active,
141
146
  keepDOM: keepDOM,
142
147
  motion: motion,
@@ -159,5 +164,11 @@ CollapsePanel.propTypes = {
159
164
  extra: _propTypes.default.node,
160
165
  header: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]),
161
166
  className: _propTypes.default.string,
162
- reCalcKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
167
+ reCalcKey: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
168
+ showArrow: _propTypes.default.bool,
169
+ disabled: _propTypes.default.bool
170
+ };
171
+ CollapsePanel.defaultProps = {
172
+ showArrow: true,
173
+ disabled: false
163
174
  };
@@ -56,6 +56,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
56
56
  max: PropTypes.Requireable<number>;
57
57
  placeholder: PropTypes.Requireable<string | any[]>;
58
58
  presets: PropTypes.Requireable<any[]>;
59
+ presetPosition: PropTypes.Requireable<"top" | "left" | "right" | "bottom">;
59
60
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
60
61
  onChangeWithDateFirst: PropTypes.Requireable<boolean>;
61
62
  weekStartsOn: PropTypes.Requireable<number>;
@@ -111,6 +112,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
111
112
  stopPropagation: boolean;
112
113
  motion: boolean;
113
114
  prefixCls: "semi-datepicker";
115
+ presetPosition: string;
114
116
  zIndex: number;
115
117
  type: string;
116
118
  size: string;
@@ -172,6 +174,7 @@ export default class DatePicker extends BaseComponent<DatePickerProps, DatePicke
172
174
  disabledDisposeTime: MonthsGridProps['disabledTime'];
173
175
  renderMonthGrid(locale: Locale['DatePicker'], localeCode: string, dateFnsLocale: Locale['dateFnsLocale']): JSX.Element;
174
176
  renderQuickControls(): JSX.Element;
177
+ renderDateInput(): JSX.Element;
175
178
  handleOpenPanel: () => void;
176
179
  handleInputChange: DatePickerFoundation['handleInputChange'];
177
180
  handleInsetInputChange: (options: InsetInputChangeProps) => void;
@@ -190,7 +190,8 @@ class DatePicker extends _baseComponent.default {
190
190
  type,
191
191
  format,
192
192
  rangeSeparator,
193
- defaultPickerValue
193
+ defaultPickerValue,
194
+ presetPosition
194
195
  } = this.props;
195
196
  const {
196
197
  insetInputValue,
@@ -222,9 +223,7 @@ class DatePicker extends _baseComponent.default {
222
223
  }, topSlot && /*#__PURE__*/_react.default.createElement("div", {
223
224
  className: "".concat(_constants.cssClasses.PREFIX, "-topSlot"),
224
225
  "x-semi-prop": "topSlot"
225
- }, topSlot), insetInput && /*#__PURE__*/_react.default.createElement(_dateInput.default, (0, _assign.default)({}, insetInputProps, {
226
- insetInput: true
227
- })), this.adapter.typeIsYearOrMonth() ? this.renderYearMonthPanel(locale, localeCode) : this.renderMonthGrid(locale, localeCode, dateFnsLocale), this.renderQuickControls(), bottomSlot && /*#__PURE__*/_react.default.createElement("div", {
226
+ }, topSlot), presetPosition === "top" && this.renderQuickControls(), this.adapter.typeIsYearOrMonth() ? this.renderYearMonthPanel(locale, localeCode) : this.renderMonthGrid(locale, localeCode, dateFnsLocale), presetPosition === "bottom" && this.renderQuickControls(), bottomSlot && /*#__PURE__*/_react.default.createElement("div", {
228
227
  className: "".concat(_constants.cssClasses.PREFIX, "-bottomSlot"),
229
228
  "x-semi-prop": "bottomSlot"
230
229
  }, bottomSlot), this.renderFooter(locale, localeCode));
@@ -232,7 +231,8 @@ class DatePicker extends _baseComponent.default {
232
231
 
233
232
  this.renderYearMonthPanel = (locale, localeCode) => {
234
233
  const {
235
- density
234
+ density,
235
+ presetPosition
236
236
  } = this.props;
237
237
  const date = this.state.value[0];
238
238
  let year = 0;
@@ -252,7 +252,10 @@ class DatePicker extends _baseComponent.default {
252
252
  onSelect: this.handleYMSelectedChange,
253
253
  currentYear: year,
254
254
  currentMonth: month,
255
- density: density
255
+ density: density,
256
+ presetPosition: presetPosition,
257
+ renderQuickControls: this.renderQuickControls(),
258
+ renderDateInput: this.renderDateInput()
256
259
  });
257
260
  };
258
261
 
@@ -592,7 +595,8 @@ class DatePicker extends _baseComponent.default {
592
595
  onPanelChange,
593
596
  timeZone,
594
597
  triggerRender,
595
- insetInput
598
+ insetInput,
599
+ presetPosition
596
600
  } = this.props;
597
601
  const {
598
602
  cachedSelectedValue,
@@ -634,22 +638,63 @@ class DatePicker extends _baseComponent.default {
634
638
  timeZone: timeZone,
635
639
  focusRecordsRef: this.focusRecordsRef,
636
640
  triggerRender: triggerRender,
637
- insetInput: insetInput
641
+ insetInput: insetInput,
642
+ presetPosition: presetPosition,
643
+ renderQuickControls: this.renderQuickControls(),
644
+ renderDateInput: this.renderDateInput()
638
645
  });
639
646
  }
640
647
 
641
648
  renderQuickControls() {
642
649
  const {
643
650
  presets,
644
- type
651
+ type,
652
+ presetPosition,
653
+ insetInput
645
654
  } = this.props;
646
655
  return /*#__PURE__*/_react.default.createElement(_quickControl.default, {
647
656
  type: type,
648
657
  presets: presets,
658
+ insetInput: insetInput,
659
+ presetPosition: presetPosition,
649
660
  onPresetClick: (item, e) => this.foundation.handlePresetClick(item, e)
650
661
  });
651
662
  }
652
663
 
664
+ renderDateInput() {
665
+ const {
666
+ insetInput,
667
+ dateFnsLocale,
668
+ density,
669
+ type,
670
+ format,
671
+ rangeSeparator,
672
+ defaultPickerValue
673
+ } = this.props;
674
+ const {
675
+ insetInputValue,
676
+ value
677
+ } = this.state;
678
+ const insetInputProps = {
679
+ dateFnsLocale,
680
+ format,
681
+ insetInputValue,
682
+ rangeSeparator,
683
+ type,
684
+ value: value,
685
+ handleInsetDateFocus: this.handleInsetDateFocus,
686
+ handleInsetTimeFocus: this.handleInsetTimeFocus,
687
+ onInsetInputChange: this.handleInsetInputChange,
688
+ rangeInputStartRef: this.rangeInputStartRef,
689
+ rangeInputEndRef: this.rangeInputEndRef,
690
+ density,
691
+ defaultPickerValue
692
+ };
693
+ return insetInput ? /*#__PURE__*/_react.default.createElement(_dateInput.default, (0, _assign.default)({}, insetInputProps, {
694
+ insetInput: true
695
+ })) : null;
696
+ }
697
+
653
698
  renderInner(extraProps) {
654
699
  var _context3, _context4;
655
700
 
@@ -791,6 +836,7 @@ DatePicker.propTypes = {
791
836
  max: _propTypes.default.number,
792
837
  placeholder: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.array]),
793
838
  presets: _propTypes.default.array,
839
+ presetPosition: _propTypes.default.oneOf(_constants.strings.PRESET_POSITION_SET),
794
840
  onChange: _propTypes.default.func,
795
841
  onChangeWithDateFirst: _propTypes.default.bool,
796
842
  weekStartsOn: _propTypes.default.number,
@@ -848,6 +894,7 @@ DatePicker.defaultProps = {
848
894
  stopPropagation: true,
849
895
  motion: true,
850
896
  prefixCls: _constants.cssClasses.PREFIX,
897
+ presetPosition: 'bottom',
851
898
  // position: 'bottomLeft',
852
899
  zIndex: _constants2.numbers.DEFAULT_Z_INDEX,
853
900
  type: 'date',
@@ -50,6 +50,9 @@ export default class MonthsGrid extends BaseComponent<MonthsGridProps, MonthsGri
50
50
  onPanelChange: PropTypes.Requireable<(...args: any[]) => any>;
51
51
  focusRecordsRef: PropTypes.Requireable<object>;
52
52
  triggerRender: PropTypes.Requireable<(...args: any[]) => any>;
53
+ presetPosition: PropTypes.Requireable<"top" | "left" | "right" | "bottom">;
54
+ renderQuickControls: PropTypes.Requireable<PropTypes.ReactNodeLike>;
55
+ renderDateInput: PropTypes.Requireable<PropTypes.ReactNodeLike>;
53
56
  };
54
57
  static defaultProps: {
55
58
  type: string;
@@ -647,7 +647,10 @@ class MonthsGrid extends _baseComponent.default {
647
647
  } = this.state;
648
648
  const {
649
649
  type,
650
- insetInput
650
+ insetInput,
651
+ presetPosition,
652
+ renderQuickControls,
653
+ renderDateInput
651
654
  } = this.props;
652
655
  const monthGridCls = (0, _classnames.default)({
653
656
  ["".concat(prefixCls, "-month-grid")]: true
@@ -666,12 +669,17 @@ class MonthsGrid extends _baseComponent.default {
666
669
 
667
670
  const yearOpenType = this.getYAMOpenType();
668
671
  return /*#__PURE__*/_react.default.createElement("div", {
672
+ style: {
673
+ display: 'flex'
674
+ }
675
+ }, presetPosition === "left" && renderQuickControls, /*#__PURE__*/_react.default.createElement("div", null, renderDateInput, /*#__PURE__*/_react.default.createElement("div", {
669
676
  className: monthGridCls,
670
677
  "x-type": type,
671
678
  "x-panel-yearandmonth-open-type": yearOpenType,
672
679
  "x-insetinput": insetInput ? "true" : "false",
680
+ "x-preset-position": renderQuickControls === null ? 'null' : presetPosition,
673
681
  ref: current => this.cacheRefCurrent('monthGrid', current)
674
- }, content);
682
+ }, content)), presetPosition === "right" && renderQuickControls);
675
683
  }
676
684
 
677
685
  }
@@ -713,7 +721,10 @@ MonthsGrid.propTypes = {
713
721
  // Callback function for panel date switching
714
722
  onPanelChange: _propTypes.default.func,
715
723
  focusRecordsRef: _propTypes.default.object,
716
- triggerRender: _propTypes.default.func
724
+ triggerRender: _propTypes.default.func,
725
+ presetPosition: _propTypes.default.oneOf(_constants.strings.PRESET_POSITION_SET),
726
+ renderQuickControls: _propTypes.default.node,
727
+ renderDateInput: _propTypes.default.node
717
728
  };
718
729
  MonthsGrid.defaultProps = {
719
730
  type: 'date',
@@ -1,20 +1,26 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ import { strings } from '@douyinfe/semi-foundation/lib/cjs/datePicker/constants';
3
4
  import { noop } from '@douyinfe/semi-foundation/lib/cjs/utils/function';
4
5
  import { PresetsType, PresetType } from '@douyinfe/semi-foundation/lib/cjs/datePicker/foundation';
5
6
  export interface QuickControlProps {
6
7
  presets: PresetsType;
8
+ presetPosition: typeof strings.PRESET_POSITION_SET[number];
7
9
  onPresetClick: (preset: PresetType, e: React.MouseEvent) => void;
8
10
  type: string;
11
+ insetInput: boolean;
9
12
  }
10
13
  declare class QuickControl extends PureComponent<QuickControlProps> {
11
14
  static propTypes: {
12
15
  presets: PropTypes.Requireable<any[]>;
16
+ presetPosition: PropTypes.Requireable<"top" | "left" | "right" | "bottom">;
13
17
  onPresetClick: PropTypes.Requireable<(...args: any[]) => any>;
14
18
  type: PropTypes.Requireable<string>;
19
+ insetInput: PropTypes.Requireable<boolean>;
15
20
  };
16
21
  static defaultProps: {
17
22
  presets: PresetsType;
23
+ presetPosition: string;
18
24
  onPresetClick: typeof noop;
19
25
  };
20
26
  render(): JSX.Element;
@@ -28,6 +28,8 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/datePicker/constants
28
28
 
29
29
  var _index = _interopRequireDefault(require("../button/index"));
30
30
 
31
+ var _index2 = _interopRequireDefault(require("../typography/index"));
32
+
31
33
  var _function = require("@douyinfe/semi-foundation/lib/cjs/utils/function");
32
34
 
33
35
  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); }
@@ -36,51 +38,96 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
38
 
37
39
  /* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */
38
40
  const prefixCls = _constants.cssClasses.PREFIX;
41
+ const {
42
+ Text
43
+ } = _index2.default;
39
44
 
40
45
  class QuickControl extends _react.PureComponent {
41
46
  render() {
42
- var _context;
47
+ var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12;
43
48
 
44
49
  const {
45
50
  presets,
46
51
  onPresetClick,
47
- type
52
+ type,
53
+ presetPosition,
54
+ insetInput
48
55
  } = this.props;
56
+ const isTypeRange = type === 'dateRange' || type === 'dateTimeRange';
57
+ const isPanelTopAndBottom = presetPosition === 'top' || presetPosition === 'bottom';
58
+ const isMonth = type === 'month';
59
+ const isTopAndBottomRange = isPanelTopAndBottom && isTypeRange;
60
+ const isTopAndBottomMonth = isPanelTopAndBottom && isMonth;
49
61
  const wrapperCls = (0, _classnames.default)("".concat(prefixCls, "-quick-control"), {
50
- [(0, _concat.default)(_context = "".concat(prefixCls, "-quick-control-")).call(_context, type)]: type
62
+ [(0, _concat.default)(_context = "".concat(prefixCls, "-quick-control-")).call(_context, type)]: type,
63
+ [(0, _concat.default)(_context2 = "".concat(prefixCls, "-quick-control-")).call(_context2, presetPosition)]: true
64
+ });
65
+ const headerCls = (0, _classnames.default)({
66
+ ["".concat(prefixCls, "-quick-control-header")]: true
67
+ });
68
+ const contentWrapperCls = (0, _classnames.default)({
69
+ [(0, _concat.default)(_context3 = "".concat(prefixCls, "-quick-control-")).call(_context3, presetPosition, "-content-wrapper")]: true
70
+ });
71
+ const contentCls = (0, _classnames.default)({
72
+ [(0, _concat.default)(_context4 = "".concat(prefixCls, "-quick-control-")).call(_context4, presetPosition, "-content")]: !isTopAndBottomRange && !isTopAndBottomMonth,
73
+ [(0, _concat.default)(_context5 = "".concat(prefixCls, "-quick-control-")).call(_context5, presetPosition, "-range-content")]: isTopAndBottomRange,
74
+ [(0, _concat.default)(_context6 = "".concat(prefixCls, "-quick-control-")).call(_context6, presetPosition, "-month-content")]: isTopAndBottomMonth
75
+ });
76
+ const itemCls = (0, _classnames.default)({
77
+ [(0, _concat.default)(_context7 = "".concat(prefixCls, "-quick-control-")).call(_context7, presetPosition, "-content-item")]: !isTopAndBottomRange && !isTopAndBottomMonth,
78
+ [(0, _concat.default)(_context8 = "".concat(prefixCls, "-quick-control-")).call(_context8, presetPosition, "-range-content-item")]: isTopAndBottomRange,
79
+ [(0, _concat.default)(_context9 = "".concat(prefixCls, "-quick-control-")).call(_context9, presetPosition, "-month-content-item")]: isTopAndBottomMonth
80
+ });
81
+ const ellipsisCls = (0, _classnames.default)({
82
+ [(0, _concat.default)(_context10 = "".concat(prefixCls, "-quick-control-")).call(_context10, presetPosition, "-content-item-ellipsis")]: !isTopAndBottomRange && !isTopAndBottomMonth,
83
+ [(0, _concat.default)(_context11 = "".concat(prefixCls, "-quick-control-")).call(_context11, presetPosition, "-range-content-item-ellipsis")]: isTopAndBottomRange,
84
+ [(0, _concat.default)(_context12 = "".concat(prefixCls, "-quick-control-")).call(_context12, presetPosition, "-month-content-item-ellipsis")]: isTopAndBottomMonth
51
85
  });
52
- const itemCls = (0, _classnames.default)("".concat(prefixCls, "-quick-control-item"));
53
86
 
54
87
  if (!presets.length) {
55
88
  return null;
56
89
  }
57
90
 
58
91
  return /*#__PURE__*/_react.default.createElement("div", {
59
- className: wrapperCls
92
+ className: wrapperCls,
93
+ "x-insetinput": insetInput ? "true" : "false"
94
+ }, !isPanelTopAndBottom && /*#__PURE__*/_react.default.createElement("div", {
95
+ className: headerCls
96
+ }, "\u5FEB\u6377\u9009\u62E9"), /*#__PURE__*/_react.default.createElement("div", {
97
+ className: contentWrapperCls
98
+ }, /*#__PURE__*/_react.default.createElement("div", {
99
+ className: contentCls
60
100
  }, (0, _map.default)(presets).call(presets, (item, index) => {
61
101
  const _item = typeof item === 'function' ? item() : item;
62
102
 
63
- return /*#__PURE__*/_react.default.createElement("div", {
64
- className: itemCls,
103
+ return /*#__PURE__*/_react.default.createElement(_index.default, {
104
+ size: "small",
105
+ type: "primary",
65
106
  onClick: e => onPresetClick(_item, e),
66
107
  key: index
67
- }, /*#__PURE__*/_react.default.createElement(_index.default, {
68
- size: "small",
69
- theme: "borderless",
70
- type: "primary"
71
- }, /*#__PURE__*/_react.default.createElement("span", null, _item.text)));
72
- }));
108
+ }, /*#__PURE__*/_react.default.createElement("div", {
109
+ className: itemCls
110
+ }, /*#__PURE__*/_react.default.createElement(Text, {
111
+ ellipsis: {
112
+ showTooltip: true
113
+ },
114
+ className: ellipsisCls
115
+ }, _item.text)));
116
+ }))));
73
117
  }
74
118
 
75
119
  }
76
120
 
77
121
  QuickControl.propTypes = {
78
122
  presets: _propTypes.default.array,
123
+ presetPosition: _propTypes.default.oneOf(_constants.strings.PRESET_POSITION_SET),
79
124
  onPresetClick: _propTypes.default.func,
80
- type: _propTypes.default.string
125
+ type: _propTypes.default.string,
126
+ insetInput: _propTypes.default.bool
81
127
  };
82
128
  QuickControl.defaultProps = {
83
129
  presets: [],
130
+ presetPosition: 'bottom',
84
131
  onPresetClick: _function.noop
85
132
  };
86
133
  var _default = QuickControl;
@@ -20,6 +20,9 @@ declare class YearAndMonth extends BaseComponent<YearAndMonthProps, YearAndMonth
20
20
  noBackBtn: PropTypes.Requireable<boolean>;
21
21
  disabledDate: PropTypes.Requireable<(...args: any[]) => any>;
22
22
  density: PropTypes.Requireable<string>;
23
+ presetPosition: PropTypes.Requireable<"top" | "left" | "right" | "bottom">;
24
+ renderQuickControls: PropTypes.Requireable<PropTypes.ReactNodeLike>;
25
+ renderDateInput: PropTypes.Requireable<PropTypes.ReactNodeLike>;
23
26
  };
24
27
  static defaultProps: {
25
28
  disabledDate: {
@@ -50,6 +50,8 @@ var _constants = require("@douyinfe/semi-foundation/lib/cjs/base/constants");
50
50
 
51
51
  var _dateFns = require("date-fns");
52
52
 
53
+ var _constants2 = require("@douyinfe/semi-foundation/lib/cjs/datePicker/constants");
54
+
53
55
  /* eslint-disable max-len */
54
56
  const prefixCls = "".concat(_constants.BASE_CLASS_PREFIX, "-datepicker");
55
57
 
@@ -237,7 +239,10 @@ class YearAndMonth extends _baseComponent.default {
237
239
  const {
238
240
  locale,
239
241
  noBackBtn,
240
- density
242
+ density,
243
+ presetPosition,
244
+ renderQuickControls,
245
+ renderDateInput
241
246
  } = this.props;
242
247
  const prefix = "".concat(prefixCls, "-yearmonth-header"); // i18n
243
248
 
@@ -254,7 +259,11 @@ class YearAndMonth extends _baseComponent.default {
254
259
  }),
255
260
  size: buttonSize,
256
261
  onClick: this.backToMain
257
- }, /*#__PURE__*/_react.default.createElement("span", null, selectDateText))), /*#__PURE__*/_react.default.createElement(_index.default, null, this.renderColYear(), this.renderColMonth()));
262
+ }, /*#__PURE__*/_react.default.createElement("span", null, selectDateText))), presetPosition ? /*#__PURE__*/_react.default.createElement("div", {
263
+ style: {
264
+ display: 'flex'
265
+ }
266
+ }, presetPosition === "left" && renderQuickControls, /*#__PURE__*/_react.default.createElement("div", null, renderDateInput, /*#__PURE__*/_react.default.createElement(_index.default, null, this.renderColYear(), this.renderColMonth())), presetPosition === "right" && renderQuickControls) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderDateInput, /*#__PURE__*/_react.default.createElement(_index.default, null, this.renderColYear(), this.renderColMonth())));
258
267
  }
259
268
 
260
269
  }
@@ -269,7 +278,10 @@ YearAndMonth.propTypes = {
269
278
  yearCycled: _propTypes.default.bool,
270
279
  noBackBtn: _propTypes.default.bool,
271
280
  disabledDate: _propTypes.default.func,
272
- density: _propTypes.default.string
281
+ density: _propTypes.default.string,
282
+ presetPosition: _propTypes.default.oneOf(_constants2.strings.PRESET_POSITION_SET),
283
+ renderQuickControls: _propTypes.default.node,
284
+ renderDateInput: _propTypes.default.node
273
285
  };
274
286
  YearAndMonth.defaultProps = {
275
287
  disabledDate: _stubFalse2.default,
@@ -39,6 +39,7 @@ export interface PopoverProps extends BaseProps {
39
39
  returnFocusOnClose?: TooltipProps['returnFocusOnClose'];
40
40
  onEscKeyDown?: TooltipProps['onEscKeyDown'];
41
41
  clickToHide?: TooltipProps['clickToHide'];
42
+ disableFocusListener?: boolean;
42
43
  }
43
44
  export interface PopoverState {
44
45
  popConfirmVisible: boolean;
@@ -71,6 +72,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
71
72
  arrowBounding: PropTypes.Requireable<object>;
72
73
  prefixCls: PropTypes.Requireable<string>;
73
74
  guardFocus: PropTypes.Requireable<boolean>;
75
+ disableArrowKeyDown: PropTypes.Requireable<boolean>;
74
76
  };
75
77
  static defaultProps: {
76
78
  arrowBounding: {
@@ -93,6 +95,7 @@ declare class Popover extends React.PureComponent<PopoverProps, PopoverState> {
93
95
  closeOnEsc: boolean;
94
96
  returnFocusOnClose: boolean;
95
97
  guardFocus: boolean;
98
+ disableFocusListener: boolean;
96
99
  };
97
100
  context: ContextValue;
98
101
  renderPopCard: ({ initialFocusRef }: {
@@ -166,7 +166,8 @@ Popover.propTypes = {
166
166
  arrowPointAtCenter: _propTypes.default.bool,
167
167
  arrowBounding: _propTypes.default.object,
168
168
  prefixCls: _propTypes.default.string,
169
- guardFocus: _propTypes.default.bool
169
+ guardFocus: _propTypes.default.bool,
170
+ disableArrowKeyDown: _propTypes.default.bool
170
171
  };
171
172
  Popover.defaultProps = {
172
173
  arrowBounding: _constants.numbers.ARROW_BOUNDING,
@@ -183,7 +184,8 @@ Popover.defaultProps = {
183
184
  onEscKeyDown: _noop2.default,
184
185
  closeOnEsc: true,
185
186
  returnFocusOnClose: true,
186
- guardFocus: true
187
+ guardFocus: true,
188
+ disableFocusListener: true
187
189
  };
188
190
  var _default = Popover;
189
191
  exports.default = _default;
@@ -137,6 +137,7 @@ export interface SelectState {
137
137
  keyboardEventSet: any;
138
138
  optionGroups: Array<any>;
139
139
  isHovering: boolean;
140
+ isFocusInContainer: boolean;
140
141
  }
141
142
  declare class Select extends BaseComponent<SelectProps, SelectState> {
142
143
  static contextType: React.Context<ContextValue>;
@@ -220,13 +221,18 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
220
221
  static defaultProps: Partial<SelectProps>;
221
222
  inputRef: React.RefObject<HTMLInputElement>;
222
223
  triggerRef: React.RefObject<HTMLDivElement>;
224
+ optionContainerEl: React.RefObject<HTMLDivElement>;
223
225
  optionsRef: React.RefObject<any>;
224
226
  virtualizeListRef: React.RefObject<any>;
225
227
  selectOptionListID: string;
228
+ selectID: string;
226
229
  clickOutsideHandler: (e: MouseEvent) => void;
227
230
  foundation: SelectFoundation;
228
231
  context: ContextValue;
229
232
  constructor(props: SelectProps);
233
+ setOptionContainerEl: (node: HTMLDivElement) => {
234
+ current: HTMLDivElement;
235
+ };
230
236
  get adapter(): SelectAdapter<SelectProps, SelectState>;
231
237
  componentDidMount(): void;
232
238
  componentWillUnmount(): void;
@@ -241,7 +247,6 @@ declare class Select extends BaseComponent<SelectProps, SelectState> {
241
247
  focus(): void;
242
248
  onSelect(option: OptionProps, optionIndex: number, e: any): void;
243
249
  onClear(e: React.MouseEvent): void;
244
- onClearBtnEnterPress(e: React.KeyboardEvent): void;
245
250
  renderEmpty(): JSX.Element;
246
251
  renderLoading(): JSX.Element;
247
252
  renderOption(option: OptionProps, optionIndex: number, style?: React.CSSProperties): any;