UNPKG

@ucloud-pccl/react-components

Version:
102 lines (101 loc) 6.63 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck")); var _react = _interopRequireWildcard(require("react")); var _Popover = _interopRequireDefault(require("../../components/Popover")); var _Input = _interopRequireDefault(require("../../components/Input")); var _Calendar = _interopRequireDefault(require("../../components/Calendar")); var _Notice = _interopRequireDefault(require("../../components/Notice")); var _Time = _interopRequireDefault(require("../../components/TimePicker/Time")); var _SvgIcon = _interopRequireDefault(require("../../components/SvgIcon")); var _usePopoverConfig = _interopRequireDefault(require("../../hooks/usePopoverConfig")); var _DatePicker = require("./DatePicker"); var _Month = require("./Month"); var _style = require("./style"); var _usePicker3 = _interopRequireDefault(require("./usePicker")); var _Footer = _interopRequireDefault(require("./Footer")); var _excluded = ["prefix", "onActiveChange", "type", "readonly", "tip", "error", "footerTip"]; var _this = void 0; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var RangePickerWithoutMemo = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) { var _this2 = this; (0, _newArrowCheck2.default)(this, _this); var prefix = _ref.prefix, onActiveChange = _ref.onActiveChange, _ref$type = _ref.type, type = _ref$type === void 0 ? 'date' : _ref$type, readonly = _ref.readonly, tip = _ref.tip, error = _ref.error, footerTip = _ref.footerTip, pickProps = (0, _objectWithoutProperties2.default)(_ref, _excluded); var _usePicker = (0, _usePicker3.default)(_objectSpread({}, pickProps), type === 'month' ? _Month.displayToFormatAndTimeMode : _DatePicker.displayToFormatAndTimeMode, type), _usePicker2 = (0, _slicedToArray2.default)(_usePicker, 8), inputProps = _usePicker2[0], popoverProps = _usePicker2[2], popupProps = _usePicker2[3], calendarProps = _usePicker2[4], timeProps = _usePicker2[5], footerProps = _usePicker2[6], _usePicker2$ = _usePicker2[7], pickerError = _usePicker2$.error, active = _usePicker2$.active; var inputRef = /*#__PURE__*/(0, _react.createRef)(); (0, _react.useImperativeHandle)(ref, function () { var _this3 = this; (0, _newArrowCheck2.default)(this, _this2); return { focus: function focus() { var _inputRef$current; (0, _newArrowCheck2.default)(this, _this3); return inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus(); }.bind(this) }; }.bind(this), [inputRef]); (0, _react.useEffect)(function () { (0, _newArrowCheck2.default)(this, _this2); onActiveChange(active); }.bind(this), [active, onActiveChange]); var popoverConfigProps = (0, _usePopoverConfig.default)(); var CalendarComp = type === 'month' ? _Calendar.default.Month : _Calendar.default; return readonly ? /*#__PURE__*/_react.default.createElement("span", { className: _style.readonlyInputCls }, inputProps.value) : /*#__PURE__*/_react.default.createElement(_Popover.default, (0, _extends2.default)({ popup: /*#__PURE__*/_react.default.createElement(_style.SPopup, popupProps, /*#__PURE__*/_react.default.createElement(CalendarComp, (0, _extends2.default)({}, calendarProps, { sidebar: type === 'month' ? null : timeProps.mode.length ? /*#__PURE__*/_react.default.createElement(_Time.default, timeProps) : null })), pickerError && /*#__PURE__*/_react.default.createElement(_Notice.default, { styleType: "error", closable: false }, pickerError), error && /*#__PURE__*/_react.default.createElement(_Notice.default, { styleType: "error", closable: false }, error), tip && /*#__PURE__*/_react.default.createElement(_Notice.default, { closable: false }, tip), /*#__PURE__*/_react.default.createElement(_Footer.default, (0, _extends2.default)({}, footerProps, { tip: footerTip }))) }, popoverConfigProps, popoverProps), /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, inputProps, { prefix: prefix ? /*#__PURE__*/_react.default.createElement(_SvgIcon.default, { type: "calendar" }) : null, customStyle: { border: 'none', boxShadow: 'none', background: 'none' }, ref: inputRef }))); }.bind(void 0)); var _default = exports.default = /*#__PURE__*/(0, _react.memo)(RangePickerWithoutMemo);