UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

223 lines (222 loc) 11.2 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"] = wrapPicker; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var React = _interopRequireWildcard(require("react")); var _reactLifecyclesCompat = require("react-lifecycles-compat"); var _Panel = _interopRequireDefault(require("rc-time-picker/lib/Panel")); var _classnames = _interopRequireDefault(require("classnames")); var moment = _interopRequireWildcard(require("moment")); var _en_US = _interopRequireDefault(require("./locale/en_US")); var _interopDefault = _interopRequireDefault(require("../_util/interopDefault")); var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver")); var _timePicker = require("../time-picker"); var _context = require("../config-provider/context"); var _warning = _interopRequireDefault(require("../_util/warning")); 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; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable */ var DEFAULT_FORMAT = { date: 'YYYY-MM-DD', dateTime: 'YYYY-MM-DD HH:mm:ss', week: 'gggg-wo', month: 'YYYY-MM' }; var LOCALE_FORMAT_MAPPING = { date: 'dateFormat', dateTime: 'dateTimeFormat', week: 'weekFormat', month: 'monthFormat' }; function getColumns(_ref) { var showHour = _ref.showHour, showMinute = _ref.showMinute, showSecond = _ref.showSecond, use12Hours = _ref.use12Hours; var column = 0; if (showHour) { column += 1; } if (showMinute) { column += 1; } if (showSecond) { column += 1; } if (use12Hours) { column += 1; } return column; } function checkValidate(value, propName) { var values = Array.isArray(value) ? value : [value]; values.forEach(function (val) { if (!val) return; (0, _warning["default"])(!(0, _interopDefault["default"])(moment).isMoment(val) || val.isValid(), 'DatePicker', "`".concat(propName, "` provides invalidate moment time. If you want to set empty value, use `null` instead.")); }); } function wrapPicker(Picker, pickerType) { var PickerWrapper = /*#__PURE__*/function (_React$Component) { function PickerWrapper() { var _this; (0, _classCallCheck2["default"])(this, PickerWrapper); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, PickerWrapper, [].concat(args)); // Since we need call `getDerivedStateFromProps` for check. Need leave an empty `state` here. _this.state = {}; _this.picker = void 0; _this.savePicker = function (node) { _this.picker = node; }; _this.getDefaultLocale = function () { var result = _objectSpread(_objectSpread({}, _en_US["default"]), _this.props.locale); result.lang = _objectSpread(_objectSpread({}, result.lang), (_this.props.locale || {}).lang); return result; }; _this.handleOpenChange = function (open) { var onOpenChange = _this.props.onOpenChange; onOpenChange(open); }; _this.handleFocus = function (e) { var onFocus = _this.props.onFocus; if (onFocus) { onFocus(e); } }; _this.handleBlur = function (e) { var onBlur = _this.props.onBlur; if (onBlur) { onBlur(e); } }; _this.handleMouseEnter = function (e) { var onMouseEnter = _this.props.onMouseEnter; if (onMouseEnter) { onMouseEnter(e); } }; _this.handleMouseLeave = function (e) { var onMouseLeave = _this.props.onMouseLeave; if (onMouseLeave) { onMouseLeave(e); } }; _this.renderPicker = function (locale, localeCode) { var _this$props = _this.props, format = _this$props.format, showTime = _this$props.showTime; var mergedPickerType = showTime ? "".concat(pickerType, "Time") : pickerType; var mergedFormat = format || locale[LOCALE_FORMAT_MAPPING[mergedPickerType]] || DEFAULT_FORMAT[mergedPickerType]; return /*#__PURE__*/React.createElement(_context.ConfigConsumer, null, function (_ref2) { var getPrefixCls = _ref2.getPrefixCls, getContextPopupContainer = _ref2.getPopupContainer; var _this$props2 = _this.props, customizePrefixCls = _this$props2.prefixCls, customizeInputPrefixCls = _this$props2.inputPrefixCls, getCalendarContainer = _this$props2.getCalendarContainer, size = _this$props2.size, disabled = _this$props2.disabled; var getPopupContainer = getCalendarContainer || getContextPopupContainer; var prefixCls = getPrefixCls('calendar', customizePrefixCls); var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls); var pickerClass = (0, _classnames["default"])("".concat(prefixCls, "-picker"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-picker-").concat(size), !!size)); var pickerInputClass = (0, _classnames["default"])("".concat(prefixCls, "-picker-input"), inputPrefixCls, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, "".concat(inputPrefixCls, "-lg"), size === 'large'), "".concat(inputPrefixCls, "-sm"), size === 'small'), "".concat(inputPrefixCls, "-disabled"), disabled)); var timeFormat = showTime && showTime.format || 'HH:mm:ss'; var rcTimePickerProps = _objectSpread(_objectSpread({}, (0, _timePicker.generateShowHourMinuteSecond)(timeFormat)), {}, { format: timeFormat, use12Hours: showTime && showTime.use12Hours }); var columns = getColumns(rcTimePickerProps); var timePickerCls = "".concat(prefixCls, "-time-picker-column-").concat(columns); var timePicker = showTime ? /*#__PURE__*/React.createElement(_Panel["default"], (0, _extends2["default"])({}, rcTimePickerProps, showTime, { prefixCls: "".concat(prefixCls, "-time-picker"), className: timePickerCls, placeholder: locale.timePickerLocale.placeholder, transitionName: "slide-up", onEsc: function onEsc() {} })) : null; return /*#__PURE__*/React.createElement(Picker, (0, _extends2["default"])({}, _this.props, { getCalendarContainer: getPopupContainer, format: mergedFormat, ref: _this.savePicker, pickerClass: pickerClass, pickerInputClass: pickerInputClass, locale: locale, localeCode: localeCode, timePicker: timePicker, onOpenChange: _this.handleOpenChange, onFocus: _this.handleFocus, onBlur: _this.handleBlur, onMouseEnter: _this.handleMouseEnter, onMouseLeave: _this.handleMouseLeave })); }); }; return _this; } (0, _inherits2["default"])(PickerWrapper, _React$Component); return (0, _createClass2["default"])(PickerWrapper, [{ key: "componentDidMount", value: function componentDidMount() { var _this$props3 = this.props, autoFocus = _this$props3.autoFocus, disabled = _this$props3.disabled; if (autoFocus && !disabled) { this.focus(); } } }, { key: "focus", value: function focus() { this.picker.focus(); } }, { key: "blur", value: function blur() { this.picker.blur(); } }, { key: "render", value: function render() { return /*#__PURE__*/React.createElement(_LocaleReceiver["default"], { componentName: "DatePicker", defaultLocale: this.getDefaultLocale }, this.renderPicker); } }], [{ key: "getDerivedStateFromProps", value: function getDerivedStateFromProps(_ref3) { var value = _ref3.value, defaultValue = _ref3.defaultValue; checkValidate(defaultValue, 'defaultValue'); checkValidate(value, 'value'); return {}; } }]); }(React.Component); PickerWrapper.defaultProps = { transitionName: 'slide-up', popupStyle: {}, onChange: function onChange() {}, onOk: function onOk() {}, onOpenChange: function onOpenChange() {}, locale: {} }; (0, _reactLifecyclesCompat.polyfill)(PickerWrapper); return PickerWrapper; }