@ucloud-fe/react-components 1.3.27 → 1.4.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 (88) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/icon.min.js +1 -1
  3. package/dist/main.min.js +4 -4
  4. package/lib/components/AutoComplete/AutoComplete.js +7 -4
  5. package/lib/components/Badge/Bubble.d.ts +2 -0
  6. package/lib/components/Box/Box.d.ts +1 -0
  7. package/lib/components/Calendar/Calendar.d.ts +6 -1
  8. package/lib/components/Calendar/Calendar.js +12 -4
  9. package/lib/components/Calendar/Cell.d.ts +8 -0
  10. package/lib/components/Calendar/Cell.js +55 -0
  11. package/lib/components/Calendar/HeaderButton.d.ts +8 -0
  12. package/lib/components/Calendar/HeaderButton.js +75 -0
  13. package/lib/components/Calendar/HeaderSwitcher.d.ts +2 -1
  14. package/lib/components/Calendar/Month.js +10 -4
  15. package/lib/components/Calendar/TwoSide.d.ts +4 -0
  16. package/lib/components/Calendar/TwoSide.js +155 -0
  17. package/lib/components/Calendar/index.d.ts +3 -0
  18. package/lib/components/Calendar/index.js +9 -0
  19. package/lib/components/Calendar/locale/en_US.js +2 -1
  20. package/lib/components/Calendar/locale/zh_CN.d.ts +1 -0
  21. package/lib/components/Calendar/locale/zh_CN.js +3 -2
  22. package/lib/components/Calendar/style/index.d.ts +13 -0
  23. package/lib/components/Calendar/style/index.js +29 -7
  24. package/lib/components/Calendar/utils.d.ts +1 -1
  25. package/lib/components/Calendar/utils.js +5 -5
  26. package/lib/components/DatePicker/DatePicker.d.ts +1 -1
  27. package/lib/components/DatePicker/DatePicker.js +5 -7
  28. package/lib/components/DatePicker/Footer.d.ts +5 -3
  29. package/lib/components/DatePicker/Footer.js +33 -57
  30. package/lib/components/DatePicker/Month.js +4 -6
  31. package/lib/components/DatePicker/Range.d.ts +2 -2
  32. package/lib/components/DatePicker/Range.js +179 -71
  33. package/lib/components/DatePicker/locale/en_US.js +2 -1
  34. package/lib/components/DatePicker/locale/zh_CN.d.ts +1 -0
  35. package/lib/components/DatePicker/locale/zh_CN.js +2 -1
  36. package/lib/components/DatePicker/style/index.d.ts +24 -5
  37. package/lib/components/DatePicker/style/index.js +102 -34
  38. package/lib/components/DatePicker/usePicker.js +90 -31
  39. package/lib/components/DatePicker/useRangePicker.d.ts +16 -0
  40. package/lib/components/DatePicker/{RangePicker.js → useRangePicker.js} +44 -80
  41. package/lib/components/DatePicker/utils.d.ts +1 -1
  42. package/lib/components/Form/ControllerContext.d.ts +1 -1
  43. package/lib/components/Input/Input.js +4 -2
  44. package/lib/components/Input/Search.js +1 -1
  45. package/lib/components/Input/style/index.d.ts +2 -1
  46. package/lib/components/Input/style/index.js +6 -4
  47. package/lib/components/Loading/Loading.d.ts +1 -0
  48. package/lib/components/NumberInput/NumberInput.d.ts +12 -0
  49. package/lib/components/NumberInput/NumberInput.js +1 -1
  50. package/lib/components/Pagination/Options.js +1 -1
  51. package/lib/components/Popover/Popover.d.ts +7 -0
  52. package/lib/components/Popover/style/index.d.ts +1 -0
  53. package/lib/components/Select/style/index.d.ts +6 -6
  54. package/lib/components/SvgIcon/SvgIcon.d.ts +1 -0
  55. package/lib/components/SvgIcon/SvgIcon.js +6 -0
  56. package/lib/components/SvgIcon/SvgIconWrap.d.ts +1 -0
  57. package/lib/components/SvgIcon/icons/DoubleArrowLeft.d.ts +3 -0
  58. package/lib/components/SvgIcon/icons/DoubleArrowLeft.js +27 -0
  59. package/lib/components/SvgIcon/icons/DoubleArrowRight.d.ts +3 -0
  60. package/lib/components/SvgIcon/icons/DoubleArrowRight.js +26 -0
  61. package/lib/components/Tabs/Tabs.js +1 -1
  62. package/lib/components/Tabs/style/index.d.ts +1 -1
  63. package/lib/components/Tag/Group.d.ts +1 -0
  64. package/lib/components/Tag/Icon.d.ts +1 -0
  65. package/lib/components/Tag/Tag.d.ts +1 -0
  66. package/lib/components/Textarea/Textarea.d.ts +1 -0
  67. package/lib/components/ThemeProvider/ThemeProvider.d.ts +6 -0
  68. package/lib/components/ThemeProvider/dark.js +6 -249
  69. package/lib/components/ThemeProvider/designTokens.d.ts +267 -258
  70. package/lib/components/ThemeProvider/designTokens.js +460 -185
  71. package/lib/components/ThemeProvider/designTokensDark.d.ts +267 -0
  72. package/lib/components/ThemeProvider/designTokensDark.js +540 -0
  73. package/lib/components/ThemeProvider/theme.d.ts +1 -1
  74. package/lib/components/ThemeProvider/theme.js +3 -3
  75. package/lib/components/TimePicker/TimePicker.d.ts +1 -1
  76. package/lib/components/TimePicker/TimePicker.js +11 -13
  77. package/lib/components/TimePicker/style/index.d.ts +3 -1
  78. package/lib/components/TimePicker/style/index.js +11 -21
  79. package/lib/hooks/usePopoverConfig.d.ts +4 -4
  80. package/lib/libs/rc-align/index.d.ts +4 -0
  81. package/lib/libs/rc-table/Table.d.ts +5 -0
  82. package/lib/libs/rc-table/TableCell.d.ts +1 -0
  83. package/lib/utils/KeyCode.d.ts +15 -0
  84. package/lib/{interfaces → utils}/KeyCode.js +0 -0
  85. package/package.json +3 -4
  86. package/lib/components/DatePicker/RangePicker.d.ts +0 -17
  87. package/lib/interfaces/KeyCode.d.ts +0 -15
  88. package/lib/style/color.js +0 -23
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = void 0;
10
+ exports.default = exports.TipIcon = void 0;
11
11
 
12
12
  var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
13
13
 
@@ -19,10 +19,10 @@ var _Button = _interopRequireDefault(require("../../components/Button"));
19
19
 
20
20
  var _Box = _interopRequireDefault(require("../../components/Box"));
21
21
 
22
- var _Combine = _interopRequireDefault(require("../../components/Combine"));
23
-
24
22
  var _useLocale = _interopRequireDefault(require("../../components/LocaleProvider/useLocale"));
25
23
 
24
+ var _SvgIcon = _interopRequireDefault(require("../../components/SvgIcon"));
25
+
26
26
  var _zh_CN = _interopRequireDefault(require("./locale/zh_CN"));
27
27
 
28
28
  var _style = require("./style");
@@ -33,77 +33,51 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
33
 
34
34
  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; }
35
35
 
36
- var ShortcutWithoutMemo = function ShortcutWithoutMemo(_ref) {
37
- var _this2 = this;
38
-
39
- (0, _newArrowCheck2.default)(this, _this);
40
- var index = _ref.index,
41
- shortcut = _ref.shortcut,
42
- onShortcutClick = _ref.onShortcutClick,
43
- _locale = _ref.locale;
44
- var handleClick = (0, _react.useCallback)(function () {
45
- (0, _newArrowCheck2.default)(this, _this2);
46
- onShortcutClick(index);
47
- }.bind(this), [index, onShortcutClick]);
48
- var locale = (0, _useLocale.default)(_zh_CN.default, 'DatePicker', _locale);
49
- return /*#__PURE__*/_react.default.createElement("span", {
50
- className: _style.shortcutCls,
51
- onClick: handleClick
52
- }, shortcut.label ? shortcut.label : shortcut.locale ? locale[shortcut.locale] : 'shortcut');
53
- }.bind(void 0);
36
+ var TipIcon = /*#__PURE__*/_react.default.memo(function TipIcon() {
37
+ return /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
38
+ type: "exclamation-circle-filled",
39
+ className: _style.tipIconCls
40
+ });
41
+ });
54
42
 
55
- var Shortcut = /*#__PURE__*/(0, _react.memo)(ShortcutWithoutMemo);
43
+ exports.TipIcon = TipIcon;
56
44
 
57
- var Footer = function Footer(_ref2) {
58
- var _this3 = this;
45
+ // deprecated shortcuts for UX
46
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
+ var Footer = function Footer(_ref) {
48
+ var _this2 = this;
59
49
 
60
50
  (0, _newArrowCheck2.default)(this, _this);
61
- var confirmAble = _ref2.confirmAble,
62
- onConfirm = _ref2.onConfirm,
63
- shortcuts = _ref2.shortcuts,
64
- onShortcut = _ref2.onShortcut,
65
- tip = _ref2.tip,
66
- _locale = _ref2.locale;
67
- if (shortcuts == null) shortcuts = [];
68
- var handleShortcutClick = (0, _react.useCallback)(function (i) {
69
- var _shortcuts;
70
-
71
- (0, _newArrowCheck2.default)(this, _this3);
72
- var shortcut = (_shortcuts = shortcuts) === null || _shortcuts === void 0 ? void 0 : _shortcuts[i];
73
- if (!shortcut) return;
74
- var d = shortcut.handle();
75
- onShortcut(d);
76
- }.bind(this), [onShortcut, shortcuts]);
51
+ var isError = _ref.isError,
52
+ onConfirm = _ref.onConfirm,
53
+ shortcuts = _ref.shortcuts,
54
+ onShortcut = _ref.onShortcut,
55
+ tip = _ref.tip,
56
+ showConfirm = _ref.showConfirm,
57
+ _locale = _ref.locale;
77
58
  var handleConfirm = (0, _react.useCallback)(function () {
78
- (0, _newArrowCheck2.default)(this, _this3);
59
+ (0, _newArrowCheck2.default)(this, _this2);
79
60
  return onConfirm();
80
61
  }.bind(this), [onConfirm]);
81
62
  var locale = (0, _useLocale.default)(_zh_CN.default, 'DatePicker', _locale);
82
- return /*#__PURE__*/_react.default.createElement(_Box.default, {
63
+ return !tip && !showConfirm ? null : /*#__PURE__*/_react.default.createElement(_Box.default, {
83
64
  className: _style.footerCls,
84
65
  container: true,
85
66
  justifyContent: "space-between",
86
67
  alignItems: "center"
87
- }, /*#__PURE__*/_react.default.createElement(_Combine.default, null, shortcuts.map(function (shortcut, i) {
88
- (0, _newArrowCheck2.default)(this, _this3);
89
- return /*#__PURE__*/_react.default.createElement(Shortcut, {
90
- index: i,
91
- key: i,
92
- shortcut: shortcut,
93
- onShortcutClick: handleShortcutClick
94
- });
95
- }.bind(this))), /*#__PURE__*/_react.default.createElement(_Combine.default, null, tip ? /*#__PURE__*/_react.default.createElement("span", {
96
- className: _style.tipCls
97
- }, tip) : null, /*#__PURE__*/_react.default.createElement(_Button.default, {
68
+ }, tip ? /*#__PURE__*/_react.default.createElement("span", {
69
+ className: isError ? _style.errorTipCls : _style.tipCls,
70
+ title: typeof tip === 'string' ? tip : ''
71
+ }, /*#__PURE__*/_react.default.createElement(TipIcon, null), /*#__PURE__*/_react.default.createElement("span", null, tip)) : /*#__PURE__*/_react.default.createElement("span", null), showConfirm && /*#__PURE__*/_react.default.createElement(_Button.default, {
98
72
  styleType: "primary",
99
- disabled: !confirmAble,
73
+ size: "sm",
74
+ disabled: isError,
100
75
  onClick: handleConfirm
101
- }, locale.confirm)));
76
+ }, locale.confirm));
102
77
  }.bind(void 0);
103
78
 
104
79
  Footer.propTypes = {
105
80
  mode: _propTypes.default.oneOf(['date', 'month']).isRequired,
106
- confirmAble: _propTypes.default.bool.isRequired,
107
81
  onConfirm: _propTypes.default.func.isRequired,
108
82
  shortcuts: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
109
83
  handle: _propTypes.default.func.isRequired,
@@ -111,8 +85,10 @@ Footer.propTypes = {
111
85
  label: _propTypes.default.node
112
86
  })), _propTypes.default.oneOf([null])]),
113
87
  onShortcut: _propTypes.default.func.isRequired,
88
+ isError: _propTypes.default.bool,
114
89
  tip: _propTypes.default.node,
115
- locale: _propTypes.default.any
90
+ locale: _propTypes.default.any,
91
+ showConfirm: _propTypes.default.bool
116
92
  };
117
93
 
118
94
  var _default = /*#__PURE__*/(0, _react.memo)(Footer);
@@ -21,8 +21,6 @@ var _Calendar = _interopRequireDefault(require("../../components/Calendar"));
21
21
 
22
22
  var _Popover = _interopRequireDefault(require("../../components/Popover"));
23
23
 
24
- var _Notice = _interopRequireDefault(require("../../components/Notice"));
25
-
26
24
  var _SvgIcon = _interopRequireDefault(require("../../components/SvgIcon"));
27
25
 
28
26
  var _usePopoverConfig = _interopRequireDefault(require("../../hooks/usePopoverConfig"));
@@ -73,10 +71,10 @@ var Month = function Month(props) {
73
71
  return /*#__PURE__*/_react.default.createElement(_style.PickerContainer, (0, _extends2.default)({
74
72
  isMonth: true
75
73
  }, containerProps), /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({
76
- popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_Calendar.default.Month, calendarProps), error && /*#__PURE__*/_react.default.createElement(_Notice.default, {
77
- styleType: "error",
78
- closable: false
79
- }, error), /*#__PURE__*/_react.default.createElement(_Footer.default, footerProps))
74
+ popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(_style.Arrow, null), /*#__PURE__*/_react.default.createElement(_Calendar.default.Month, calendarProps), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerProps, {
75
+ tip: error,
76
+ isError: !!error
77
+ })))
80
78
  }, popoverConfigProps, popoverProps), /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, inputProps, {
81
79
  prefix: /*#__PURE__*/_react.default.createElement(_SvgIcon.default, {
82
80
  type: "calendar"
@@ -1,6 +1,6 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { Moment } from 'moment';
3
- import { TDate } from '@z-r/calendar/types/interface';
3
+ import { TDate } from '@z-r/calendar';
4
4
  import LOCALE from './locale/zh_CN';
5
5
  import { TShortcut } from './Footer';
6
6
  interface RangeProps {
@@ -97,5 +97,5 @@ interface RangeProps {
97
97
  /** @ignore */
98
98
  locale?: typeof LOCALE;
99
99
  }
100
- declare const _default: React.MemoExoticComponent<({ options: _options, option: _option, defaultOption, onOptionChange: _onOptionChange, hideOptions, value: _value, defaultValue, onChange: _onChange, onInitialChange, nullable, size, display, format, rules, type, disabled, zIndex, locale: _locale, selectProps, popoverProps, rangeTip, status, placeholder, shortcuts, customRender, ...rest }: RangeProps) => JSX.Element>;
100
+ declare const _default: React.MemoExoticComponent<({ options: _options, option: _option, defaultOption, onOptionChange: _onOptionChange, hideOptions, value: _value, defaultValue, onChange: _onChange, onInitialChange, nullable, size, display, format, rules, type, disabled, zIndex, locale: _locale, selectProps, popoverProps: _popoverProps, rangeTip, status, placeholder, shortcuts, customRender, ...rest }: RangeProps) => JSX.Element>;
101
101
  export default _default;
@@ -11,6 +11,8 @@ exports.default = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
14
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
17
 
16
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -35,9 +37,13 @@ var _isArray = _interopRequireDefault(require("../../utils/isArray"));
35
37
 
36
38
  var _isNumber = _interopRequireDefault(require("../../utils/isNumber"));
37
39
 
40
+ var _Calendar = _interopRequireWildcard(require("../../components/Calendar"));
41
+
38
42
  var _pick = _interopRequireDefault(require("../../utils/pick"));
39
43
 
40
- var _RangePicker = _interopRequireDefault(require("./RangePicker"));
44
+ var _Popover = _interopRequireDefault(require("../../components/Popover"));
45
+
46
+ var _Input = _interopRequireDefault(require("../../components/Input"));
41
47
 
42
48
  var _zh_CN = _interopRequireDefault(require("./locale/zh_CN"));
43
49
 
@@ -45,6 +51,10 @@ var _utils = require("./utils");
45
51
 
46
52
  var _style = require("./style");
47
53
 
54
+ var _Footer = _interopRequireDefault(require("./Footer"));
55
+
56
+ var _useRangePicker5 = _interopRequireDefault(require("./useRangePicker"));
57
+
48
58
  var _excluded = ["options", "option", "defaultOption", "onOptionChange", "hideOptions", "value", "defaultValue", "onChange", "onInitialChange", "nullable", "size", "display", "format", "rules", "type", "disabled", "zIndex", "locale", "selectProps", "popoverProps", "rangeTip", "status", "placeholder", "shortcuts", "customRender"],
49
59
  _excluded2 = ["range"];
50
60
 
@@ -54,6 +64,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
54
64
 
55
65
  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; }
56
66
 
67
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
68
+
69
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
70
+
57
71
  var formatValue = function formatValue(v) {
58
72
  var nullable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
59
73
  var defaultV = arguments.length > 2 ? arguments[2] : undefined;
@@ -97,7 +111,9 @@ var getValueFromOption = function getValueFromOption() {
97
111
  };
98
112
 
99
113
  var Range = function Range(_ref2) {
100
- var _this3 = this;
114
+ var _this3 = this,
115
+ _rules$range,
116
+ _rules$range2;
101
117
 
102
118
  (0, _newArrowCheck2.default)(this, _this);
103
119
  var _options = _ref2.options,
@@ -117,12 +133,13 @@ var Range = function Range(_ref2) {
117
133
  format = _ref2.format,
118
134
  _ref2$rules = _ref2.rules,
119
135
  rules = _ref2$rules === void 0 ? {} : _ref2$rules,
120
- type = _ref2.type,
136
+ _ref2$type = _ref2.type,
137
+ type = _ref2$type === void 0 ? 'date' : _ref2$type,
121
138
  disabled = _ref2.disabled,
122
139
  zIndex = _ref2.zIndex,
123
140
  _locale = _ref2.locale,
124
141
  selectProps = _ref2.selectProps,
125
- popoverProps = _ref2.popoverProps,
142
+ _popoverProps = _ref2.popoverProps,
126
143
  rangeTip = _ref2.rangeTip,
127
144
  status = _ref2.status,
128
145
  placeholder = _ref2.placeholder,
@@ -133,17 +150,6 @@ var Range = function Range(_ref2) {
133
150
  (0, _newArrowCheck2.default)(this, _this3);
134
151
  return new Date();
135
152
  }.bind(this), []);
136
-
137
- var _useState = (0, _react.useState)(false),
138
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
139
- activeS = _useState2[0],
140
- setActiveS = _useState2[1];
141
-
142
- var _useState3 = (0, _react.useState)(false),
143
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
144
- activeE = _useState4[0],
145
- setActiveE = _useState4[1];
146
-
147
153
  var locale = (0, _useLocale.default)(_zh_CN.default, 'DatePicker', _locale);
148
154
 
149
155
  var _useUncontrolled = (0, _useUncontrolled5.default)(_option, defaultOption || 'custom', _onOptionChange),
@@ -165,21 +171,28 @@ var Range = function Range(_ref2) {
165
171
  onChange = _useUncontrolled4[1],
166
172
  updateValueWithoutCallOnChange = _useUncontrolled4[2];
167
173
 
168
- var _useState5 = (0, _react.useState)(function () {
174
+ var _useState = (0, _react.useState)(function () {
169
175
  (0, _newArrowCheck2.default)(this, _this3);
170
176
  return formatRangeValue(value, nullable, d);
171
177
  }.bind(this)),
172
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
173
- cacheValue = _useState6[0],
174
- setCacheValue = _useState6[1];
178
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
179
+ cacheValue = _useState2[0],
180
+ setCacheValue = _useState2[1];
175
181
 
176
- var _useState7 = (0, _react.useState)(),
177
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
178
- rangeError = _useState8[0],
179
- setRangeError = _useState8[1];
182
+ var _useState3 = (0, _react.useState)(),
183
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
184
+ rangeError = _useState4[0],
185
+ setRangeError = _useState4[1];
180
186
 
181
187
  var inputRefS = (0, _react.useRef)();
182
188
  var inputRefE = (0, _react.useRef)();
189
+ var actionRefS = (0, _react.useRef)();
190
+ var actionRefE = (0, _react.useRef)(); // 0 没有编辑中 1 第一个编辑中 2 非第一个编辑中
191
+
192
+ var _useState5 = (0, _react.useState)(0),
193
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
194
+ isFirstEditing = _useState6[0],
195
+ setIsFirstEditing = _useState6[1];
183
196
 
184
197
  var _useContext = (0, _react.useContext)(_ControllerContext.default),
185
198
  contextStatus = _useContext.status;
@@ -228,17 +241,32 @@ var Range = function Range(_ref2) {
228
241
 
229
242
  var newValue = [value, valueE];
230
243
  var rangeDateValidResult = (0, _utils.isRangeDateValid)(newValue, rules, precision);
244
+ setRangeError(undefined);
231
245
 
232
246
  if (rangeDateValidResult !== true) {
233
- setRangeError(rangeDateValidResult);
234
- inputRefE.current && inputRefE.current.focus();
247
+ var _inputRefE$current;
248
+
249
+ (_inputRefE$current = inputRefE.current) === null || _inputRefE$current === void 0 ? void 0 : _inputRefE$current.focus();
250
+
251
+ if (rangeDateValidResult === 'startGreaterThanEnd') {
252
+ var _actionRefE$current;
253
+
254
+ (_actionRefE$current = actionRefE.current) === null || _actionRefE$current === void 0 ? void 0 : _actionRefE$current.clear();
255
+ } else {
256
+ setRangeError(locale[rangeDateValidResult + 'Tip']);
257
+ }
258
+
259
+ newValue[1] = null;
260
+ } else if (isFirstEditing === 1) {
261
+ var _inputRefE$current2;
262
+
263
+ (_inputRefE$current2 = inputRefE.current) === null || _inputRefE$current2 === void 0 ? void 0 : _inputRefE$current2.focus();
235
264
  } else {
236
- setRangeError(undefined);
237
265
  onChange(newValue);
238
266
  }
239
267
 
240
268
  setCacheValue(newValue);
241
- }.bind(this), [onChange, precision, rules, cacheValue]);
269
+ }.bind(this), [cacheValue, rules, precision, isFirstEditing, locale, onChange]);
242
270
  var handleEndChange = (0, _react.useCallback)(function (value) {
243
271
  (0, _newArrowCheck2.default)(this, _this3);
244
272
 
@@ -247,52 +275,51 @@ var Range = function Range(_ref2) {
247
275
 
248
276
  var newValue = [valueS, value];
249
277
  var rangeDateValidResult = (0, _utils.isRangeDateValid)(newValue, rules, precision);
278
+ setRangeError(undefined);
250
279
 
251
280
  if (rangeDateValidResult !== true) {
252
- setRangeError(rangeDateValidResult);
253
- inputRefS.current && inputRefS.current.focus();
281
+ var _inputRefS$current;
282
+
283
+ (_inputRefS$current = inputRefS.current) === null || _inputRefS$current === void 0 ? void 0 : _inputRefS$current.focus();
284
+
285
+ if (rangeDateValidResult === 'startGreaterThanEnd') {
286
+ var _actionRefS$current;
287
+
288
+ (_actionRefS$current = actionRefS.current) === null || _actionRefS$current === void 0 ? void 0 : _actionRefS$current.clear();
289
+ } else {
290
+ setRangeError(locale[rangeDateValidResult + 'Tip']);
291
+ }
292
+
293
+ newValue[0] = null;
294
+ } else if (isFirstEditing === 1) {
295
+ var _inputRefS$current2;
296
+
297
+ (_inputRefS$current2 = inputRefS.current) === null || _inputRefS$current2 === void 0 ? void 0 : _inputRefS$current2.focus();
254
298
  } else {
255
- setRangeError(undefined);
256
299
  onChange(newValue);
257
300
  }
258
301
 
259
302
  setCacheValue(newValue);
260
- }.bind(this), [onChange, precision, rules, cacheValue]);
303
+ }.bind(this), [cacheValue, rules, precision, isFirstEditing, locale, onChange]);
261
304
  var handleOptionChange = (0, _react.useCallback)(function (value) {
262
305
  (0, _newArrowCheck2.default)(this, _this3);
263
306
  if (value !== 'custom') onChange(getValueFromOption(options, value));
264
307
  onOptionChange(value);
265
308
  }.bind(this), [onChange, onOptionChange, options]);
266
- var handleStartActiveChange = (0, _react.useCallback)(function (active) {
267
- (0, _newArrowCheck2.default)(this, _this3);
268
- return setActiveS(active);
269
- }.bind(this), []);
270
- var handleEndActiveChange = (0, _react.useCallback)(function (active) {
271
- (0, _newArrowCheck2.default)(this, _this3);
272
- return setActiveE(active);
273
- }.bind(this), []);
274
309
  var handleInputMouseDown = (0, _react.useCallback)(function (e) {
275
310
  (0, _newArrowCheck2.default)(this, _this3);
276
311
  if (e.target === e.currentTarget) e.preventDefault();
277
312
  }.bind(this), []);
278
- (0, _react.useEffect)(function () {
279
- (0, _newArrowCheck2.default)(this, _this3);
280
- if (activeS || activeE) return;
281
- setCacheValue(formatRangeValue(value, nullable, d));
282
- }.bind(this), [activeE, activeS, d, nullable, value]);
283
- var rangeErrorTip = locale["".concat(rangeError, "Tip")];
284
313
  var sharedPickerProps = {
285
314
  size: size,
286
315
  format: format,
287
316
  display: pickerDisplay,
288
317
  disabled: disabled,
289
- popoverProps: popoverProps,
318
+ popoverProps: _popoverProps,
290
319
  zIndex: zIndex,
291
320
  type: type,
292
- readonly: readonly,
293
- tip: rangeTip,
294
- error: rangeErrorTip,
295
- rules: rules
321
+ rules: rules,
322
+ status: status
296
323
  };
297
324
 
298
325
  var _cacheValue3 = (0, _slicedToArray2.default)(cacheValue, 2),
@@ -306,6 +333,75 @@ var Range = function Range(_ref2) {
306
333
  _ref10$2 = _ref10[1],
307
334
  placeholderE = _ref10$2 === void 0 ? locale.placeholderRangeEnd : _ref10$2;
308
335
 
336
+ var _useRangePicker = (0, _useRangePicker5.default)(_objectSpread(_objectSpread({
337
+ value: valueS,
338
+ onChange: handleStartChange,
339
+ nullable: nullableS,
340
+ placeholder: placeholderS,
341
+ shortcuts: shortcutsS,
342
+ actionRef: actionRefS
343
+ }, sharedPickerProps), {}, {
344
+ rules: isFirstEditing === 2 ? _objectSpread(_objectSpread({}, rules), {}, {
345
+ range: [(_rules$range = rules.range) === null || _rules$range === void 0 ? void 0 : _rules$range[0], cacheValue[1]]
346
+ }) : rules,
347
+ prefix: true,
348
+ suffix: locale.to
349
+ })),
350
+ _useRangePicker2 = (0, _slicedToArray2.default)(_useRangePicker, 8),
351
+ inputPropsS = _useRangePicker2[0],
352
+ inputWrapPropsS = _useRangePicker2[1],
353
+ calendarPropsS = _useRangePicker2[2],
354
+ footerPropsS = _useRangePicker2[3],
355
+ _useRangePicker2$ = _useRangePicker2[4],
356
+ activeS = _useRangePicker2$.active,
357
+ errorS = _useRangePicker2$.error,
358
+ popoverProps = _useRangePicker2[5],
359
+ popupProps = _useRangePicker2[6],
360
+ _useRangePicker2$2 = _useRangePicker2[7],
361
+ hasTime = _useRangePicker2$2.hasTime,
362
+ isMonth = _useRangePicker2$2.isMonth;
363
+
364
+ var _useRangePicker3 = (0, _useRangePicker5.default)(_objectSpread(_objectSpread({
365
+ value: valueE,
366
+ onChange: handleEndChange,
367
+ nullable: nullableE,
368
+ placeholder: placeholderE,
369
+ shortcuts: shortcutsE,
370
+ actionRef: actionRefE
371
+ }, sharedPickerProps), {}, {
372
+ rules: isFirstEditing === 2 ? _objectSpread(_objectSpread({}, rules), {}, {
373
+ range: [cacheValue[0], (_rules$range2 = rules.range) === null || _rules$range2 === void 0 ? void 0 : _rules$range2[1]]
374
+ }) : rules
375
+ })),
376
+ _useRangePicker4 = (0, _slicedToArray2.default)(_useRangePicker3, 5),
377
+ inputPropsE = _useRangePicker4[0],
378
+ inputWrapPropsE = _useRangePicker4[1],
379
+ calendarPropsE = _useRangePicker4[2],
380
+ footerPropsE = _useRangePicker4[3],
381
+ _useRangePicker4$ = _useRangePicker4[4],
382
+ activeE = _useRangePicker4$.active,
383
+ errorE = _useRangePicker4$.error;
384
+
385
+ (0, _react.useEffect)(function () {
386
+ (0, _newArrowCheck2.default)(this, _this3);
387
+ if (activeS || activeE) return;
388
+ setCacheValue(formatRangeValue(value, nullable, d));
389
+ }.bind(this), [activeE, activeS, d, nullable, value]);
390
+ (0, _react.useEffect)(function () {
391
+ var _this4 = this;
392
+
393
+ (0, _newArrowCheck2.default)(this, _this3);
394
+
395
+ if (!activeS && !activeE) {
396
+ setIsFirstEditing(0);
397
+ } else {
398
+ setIsFirstEditing(function (v) {
399
+ (0, _newArrowCheck2.default)(this, _this4);
400
+ return v === 0 ? 1 : 2;
401
+ }.bind(this));
402
+ }
403
+ }.bind(this), [activeE, activeS]);
404
+ var CalendarComp = isMonth ? _Calendar.default.Month : hasTime ? _Calendar.default : _Calendar.TwoSide;
309
405
  return /*#__PURE__*/_react.default.createElement(_style.RangeContainer, (0, _extends2.default)({}, rest, {
310
406
  disabled: disabled
311
407
  }), !!options.length && /*#__PURE__*/_react.default.createElement(_style.RangeSelect, (0, _extends2.default)({}, selectProps, {
@@ -317,33 +413,45 @@ var Range = function Range(_ref2) {
317
413
  value: option,
318
414
  disabled: disabled,
319
415
  onChange: handleOptionChange
320
- })), readonly && customRender !== null && customRender !== void 0 && customRender.readonlyDisplay ? customRender.readonlyDisplay(cacheValue) : /*#__PURE__*/_react.default.createElement(_style.SRangeInputWrap, {
416
+ })), readonly && customRender !== null && customRender !== void 0 && customRender.readonlyDisplay ? customRender.readonlyDisplay(cacheValue) : /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({}, popoverProps, {
417
+ visible: activeS || activeE,
418
+ popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, (0, _extends2.default)({}, popupProps, {
419
+ endInputHighlight: activeE
420
+ }, inputWrapPropsS), /*#__PURE__*/_react.default.createElement(_style.Arrow, null), /*#__PURE__*/_react.default.createElement(_style.RangeCalendarWrap, {
421
+ visible: activeS
422
+ }, /*#__PURE__*/_react.default.createElement(CalendarComp, (0, _extends2.default)({}, calendarPropsS, {
423
+ rangeValue: [calendarPropsS.value, cacheValue === null || cacheValue === void 0 ? void 0 : cacheValue[1]],
424
+ value: null
425
+ })), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerPropsS, {
426
+ tip: rangeError || errorS || rangeTip,
427
+ isError: !!rangeError || !!errorS
428
+ }))), /*#__PURE__*/_react.default.createElement(_style.RangeCalendarWrap, {
429
+ visible: activeE
430
+ }, /*#__PURE__*/_react.default.createElement(CalendarComp, (0, _extends2.default)({}, calendarPropsE, {
431
+ rangeValue: [cacheValue === null || cacheValue === void 0 ? void 0 : cacheValue[0], calendarPropsE.value],
432
+ value: null
433
+ })), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerPropsE, {
434
+ tip: rangeError || errorE || rangeTip,
435
+ isError: !!rangeError || !!errorE
436
+ }))))
437
+ }), /*#__PURE__*/_react.default.createElement(_style.SRangeInputWrap, {
321
438
  size: size,
322
439
  disabled: disabled,
323
440
  focused: activeS || activeE,
324
441
  readonly: readonly,
325
442
  onMouseDown: handleInputMouseDown,
326
443
  status: status || contextStatus
327
- }, /*#__PURE__*/_react.default.createElement(_RangePicker.default, (0, _extends2.default)({
328
- value: valueS,
329
- onChange: handleStartChange,
330
- nullable: nullableS,
331
- prefix: true,
332
- ref: inputRefS,
333
- onActiveChange: handleStartActiveChange,
334
- placeholder: placeholderS,
335
- shortcuts: shortcutsS,
336
- footerTip: locale.chooseTipRangeStart
337
- }, sharedPickerProps)), /*#__PURE__*/_react.default.createElement(_style.RangeDateSeparator, null), /*#__PURE__*/_react.default.createElement(_RangePicker.default, (0, _extends2.default)({
338
- value: valueE,
339
- onChange: handleEndChange,
340
- nullable: nullableE,
341
- ref: inputRefE,
342
- onActiveChange: handleEndActiveChange,
343
- placeholder: placeholderE,
344
- shortcuts: shortcutsE,
345
- footerTip: locale.chooseTipRangeEnd
346
- }, sharedPickerProps))));
444
+ }, readonly ? /*#__PURE__*/_react.default.createElement("span", {
445
+ className: _style.readonlyInputCls
446
+ }, inputPropsS.value) : /*#__PURE__*/_react.default.createElement(_style.RangeInputWrap, inputWrapPropsS, /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, inputPropsS, {
447
+ ref: inputRefS
448
+ }))), readonly ? /*#__PURE__*/_react.default.createElement("span", {
449
+ className: _style.readonlyInputCls
450
+ }, inputPropsE.value) : /*#__PURE__*/_react.default.createElement(_style.RangeInputWrap, (0, _extends2.default)({}, inputWrapPropsE, {
451
+ isEnd: true
452
+ }), /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, inputPropsE, {
453
+ ref: inputRefE
454
+ }))))));
347
455
  }.bind(void 0);
348
456
 
349
457
  Range.propTypes = {
@@ -20,6 +20,7 @@ var _default = {
20
20
  placeholderRangeStart: 'Start date',
21
21
  placeholderRangeEnd: 'End date',
22
22
  chooseTipRangeStart: 'Choose start date',
23
- chooseTipRangeEnd: 'Choose end date'
23
+ chooseTipRangeEnd: 'Choose end date',
24
+ to: 'to'
24
25
  };
25
26
  exports.default = _default;
@@ -15,5 +15,6 @@ declare namespace _default {
15
15
  const placeholderRangeEnd: string;
16
16
  const chooseTipRangeStart: string;
17
17
  const chooseTipRangeEnd: string;
18
+ const to: string;
18
19
  }
19
20
  export default _default;
@@ -20,6 +20,7 @@ var _default = {
20
20
  placeholderRangeStart: '开始时间',
21
21
  placeholderRangeEnd: '结束时间',
22
22
  chooseTipRangeStart: '选择开始时间',
23
- chooseTipRangeEnd: '选择结束时间'
23
+ chooseTipRangeEnd: '选择结束时间',
24
+ to: '至'
24
25
  };
25
26
  exports.default = _default;