UNPKG

shineout

Version:

Shein 前端组件库

176 lines (132 loc) 5.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _Day = _interopRequireDefault(require("./Day")); var _Time = _interopRequireDefault(require("./Time")); var _Year = _interopRequireDefault(require("./Year")); var _Month = _interopRequireDefault(require("./Month")); var _utils = _interopRequireDefault(require("./utils")); var _Quick = _interopRequireDefault(require("./Quick")); var _Quarter = _interopRequireDefault(require("./Quarter")); var _paramUtils = _interopRequireDefault(require("./paramUtils")); var _locale = require("../locale"); var _styles = require("./styles"); var _component = require("../component"); var Picker = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(Picker, _PureComponent); function Picker(props) { var _this; _this = _PureComponent.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "defaultCurrent", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleEnter", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleLeave", void 0); var mode; switch (props.type) { case 'year': mode = 'year'; break; case 'month': mode = 'month'; break; case 'quarter': mode = 'quarter'; break; case 'time': mode = 'time'; break; default: mode = 'day'; } _this.state = { mode: mode }; var format = 'YYYY-MM-DD HH:mm:ss'; _this.defaultCurrent = _utils.default.toDateWithFormat(_utils.default.formatDateWithDefaultTime(_utils.default.newDate(undefined, _this.getOptions()), undefined, props.defaultTime[0], format, _this.getOptions()), format, undefined, _this.getOptions()); _this.handleModeChange = _this.handleModeChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.handleEnter = _this.handleMouse.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), true); _this.handleLeave = _this.handleMouse.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), false); _this.handleQuick = _this.handleQuick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); return _this; } var _proto = Picker.prototype; _proto.getOptions = function getOptions() { var timeZone = this.props.timeZone; return { timeZone: timeZone, weekStartsOn: (0, _locale.getLocale)('startOfWeek') }; }; _proto.handleQuick = function handleQuick(quick) { var onChange = this.props.onChange; onChange.apply(void 0, _paramUtils.default.quickHandleChangeParams(quick.value[0], true, false, false, quick)); }; _proto.handleMouse = function handleMouse(isEnter, e) { // stop e.stopPropagation(); var _this$props = this.props, index = _this$props.index, handleHover = _this$props.handleHover; if (handleHover && index !== undefined) handleHover(index, isEnter); }; _proto.handleModeChange = function handleModeChange(mode) { var _this2 = this; setTimeout(function () { _this2.setState({ mode: mode }); }, 10); }; _proto.render = function render() { var mode = this.state.mode; var _this$props2 = this.props, current = _this$props2.current, index = _this$props2.index, otherProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props2, ["current", "index"]); var Render; switch (mode) { case 'year': Render = _Year.default; break; case 'month': Render = _Month.default; break; case 'time': Render = _Time.default; break; case 'quarter': Render = _Quarter.default; break; default: Render = _Day.default; } // only range has index prop if (index === undefined) return _react.default.createElement("div", { className: (0, _styles.datepickerClass)('split') }, _react.default.createElement(_Quick.default, (0, _extends2.default)({}, otherProps, { current: current || this.defaultCurrent, onChange: this.handleQuick })), _react.default.createElement(Render, (0, _extends2.default)({}, otherProps, { current: current || this.defaultCurrent, onModeChange: this.handleModeChange }))); return _react.default.createElement("div", { onMouseEnter: this.handleEnter, onMouseLeave: this.handleLeave }, _react.default.createElement(Render, (0, _extends2.default)({}, otherProps, { index: index, current: current || this.defaultCurrent, onModeChange: this.handleModeChange }))); }; return Picker; }(_component.PureComponent); var _default = Picker; exports.default = _default;