UNPKG

shineout

Version:

Shein 前端组件库

158 lines (127 loc) 4.65 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose"; import _inheritsLoose from "@babel/runtime/helpers/inheritsLoose"; import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; import React from 'react'; import Day from './Day'; import Time from './Time'; import Year from './Year'; import Month from './Month'; import utils from './utils'; import Quick from './Quick'; import Quarter from './Quarter'; import paramUtils from './paramUtils'; import { getLocale } from '../locale'; import { datepickerClass } from './styles'; import { PureComponent } from '../component'; var Picker = /*#__PURE__*/ function (_PureComponent) { _inheritsLoose(Picker, _PureComponent); function Picker(props) { var _this; _this = _PureComponent.call(this, props) || this; _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "defaultCurrent", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "handleEnter", void 0); _defineProperty(_assertThisInitialized(_assertThisInitialized(_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.toDateWithFormat(utils.formatDateWithDefaultTime(utils.newDate(undefined, _this.getOptions()), undefined, props.defaultTime[0], format, _this.getOptions()), format, undefined, _this.getOptions()); _this.handleModeChange = _this.handleModeChange.bind(_assertThisInitialized(_assertThisInitialized(_this))); _this.handleEnter = _this.handleMouse.bind(_assertThisInitialized(_assertThisInitialized(_this)), true); _this.handleLeave = _this.handleMouse.bind(_assertThisInitialized(_assertThisInitialized(_this)), false); _this.handleQuick = _this.handleQuick.bind(_assertThisInitialized(_assertThisInitialized(_this))); return _this; } var _proto = Picker.prototype; _proto.getOptions = function getOptions() { var timeZone = this.props.timeZone; return { timeZone: timeZone, weekStartsOn: getLocale('startOfWeek') }; }; _proto.handleQuick = function handleQuick(quick) { var onChange = this.props.onChange; onChange.apply(void 0, paramUtils.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 = _objectWithoutPropertiesLoose(_this$props2, ["current", "index"]); var Render; switch (mode) { case 'year': Render = Year; break; case 'month': Render = Month; break; case 'time': Render = Time; break; case 'quarter': Render = Quarter; break; default: Render = Day; } // only range has index prop if (index === undefined) return React.createElement("div", { className: datepickerClass('split') }, React.createElement(Quick, _extends({}, otherProps, { current: current || this.defaultCurrent, onChange: this.handleQuick })), React.createElement(Render, _extends({}, otherProps, { current: current || this.defaultCurrent, onModeChange: this.handleModeChange }))); return React.createElement("div", { onMouseEnter: this.handleEnter, onMouseLeave: this.handleLeave }, React.createElement(Render, _extends({}, otherProps, { index: index, current: current || this.defaultCurrent, onModeChange: this.handleModeChange }))); }; return Picker; }(PureComponent); export default Picker;