UNPKG

shineout

Version:

Shein 前端组件库

262 lines (220 loc) 8.81 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; 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 = _interopRequireWildcard(require("react")); var _styles = require("./styles"); var _TimeScroll = _interopRequireDefault(require("./TimeScroll")); var _utils = _interopRequireDefault(require("./utils")); var _config = require("../config"); var _paramUtils = _interopRequireDefault(require("./paramUtils")); var _locale = require("../locale"); var Time = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(Time, _PureComponent); function Time(props) { var _this; _this = _PureComponent.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "defaultValue", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleMinuteChange", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleHourChange", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleSecondChange", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleAMPMChange", void 0); _this.defaultValue = _this.getDefaultTime(); _this.handleHourChange = _this.handleChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'hour'); _this.handleMinuteChange = _this.handleChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'minute'); _this.handleSecondChange = _this.handleChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'second'); _this.handleAMPMChange = _this.handleChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'ampm'); _this.handleDisabled = _this.handleDisabled.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); props.disabledRegister(_this.handleDisabled, 'time', props.index); return _this; } var _proto = Time.prototype; _proto.getOptions = function getOptions() { var timeZone = this.props.timeZone; return { timeZone: timeZone, weekStartsOn: (0, _locale.getLocale)('startOfWeek') }; }; _proto.getDefaultTime = function getDefaultTime() { var idx = 0; var current = _utils.default.newDate(undefined, this.getOptions()); var _this$props = this.props, index = _this$props.index, defaultTime = _this$props.defaultTime, format = _this$props.format; if (typeof index === 'number') idx = index; if (!defaultTime[idx]) return current; return _utils.default.cloneTime(current, defaultTime[idx], format, this.getOptions()); }; _proto.getValue = function getValue() { return this.props.value || this.defaultValue; }; _proto.handleDisabled = function handleDisabled(value, val, mode, onlyVaild) { var _this$props2 = this.props, disabled = _this$props2.disabled, min = _this$props2.min, max = _this$props2.max, range = _this$props2.range, disabledTime = _this$props2.disabledTime, index = _this$props2.index, rangeDate = _this$props2.rangeDate; var _paramUtils$judgeTime = _paramUtils.default.judgeTimeByRange({ target: val, value: value, mode: mode, min: min, max: max, range: range, disabled: disabled, disabledTime: disabledTime, index: index, rangeDate: rangeDate, options: this.getOptions() }), isDisabled = _paramUtils$judgeTime[0], date = _paramUtils$judgeTime[1]; return onlyVaild ? isDisabled : [isDisabled, date]; }; _proto.handleChange = function handleChange(type, val) { var _this$props3; var format = this.props.format; var value = this.getValue(); var mode = type; if (type === 'hour') { if (format.indexOf('h') >= 0) { mode = 'h'; } else { mode = 'H'; } } var _this$handleDisabled = this.handleDisabled(value, val, mode), isDisabled = _this$handleDisabled[0], date = _this$handleDisabled[1]; if (isDisabled) return; (_this$props3 = this.props).onChange.apply(_this$props3, _paramUtils.default.timeHandleChangeParams(date, true, false, true)); }; _proto.renderTimeScroller = function renderTimeScroller(value, min, max, hours) { var _this$props4 = this.props, format = _this$props4.format, hourStep = _this$props4.hourStep, minuteStep = _this$props4.minuteStep, secondStep = _this$props4.secondStep, range = _this$props4.range, disabled = _this$props4.disabled, disabledTime = _this$props4.disabledTime, index = _this$props4.index, rangeDate = _this$props4.rangeDate, timeZone = _this$props4.timeZone; var rtl = (0, _config.isRTL)(); var res = [format.indexOf('H') >= 0 && _react.default.createElement(_TimeScroll.default, { key: "HH", current: value, value: _utils.default.getDateInfo(value, 'hour', this.getOptions()), mode: "H", range: range, min: min, max: max, disabled: disabled, total: 24, step: hourStep, onChange: this.handleHourChange, disabledTime: disabledTime, index: index, rangeDate: rangeDate, timeZone: timeZone }), format.indexOf('h') >= 0 && _react.default.createElement(_TimeScroll.default, { key: "hh", current: value, mode: "h", range: range, min: min, max: max, disabled: disabled, value: hours, total: 12, step: hourStep, onChange: this.handleHourChange, disabledTime: disabledTime, index: index, rangeDate: rangeDate, timeZone: timeZone }), format.indexOf('m') >= 0 && _react.default.createElement(_TimeScroll.default, { key: "mm", current: value, mode: "m", range: range, min: min, max: max, disabled: disabled, value: _utils.default.getDateInfo(value, 'minute', this.getOptions()), step: minuteStep, onChange: this.handleMinuteChange, disabledTime: disabledTime, index: index, rangeDate: rangeDate, timeZone: timeZone }), format.indexOf('s') >= 0 && _react.default.createElement(_TimeScroll.default, { key: "ss", current: value, mode: "s", range: range, min: min, max: max, disabled: disabled, value: _utils.default.getDateInfo(value, 'second', this.getOptions()), step: secondStep, onChange: this.handleSecondChange, disabledTime: disabledTime, index: index, rangeDate: rangeDate, timeZone: timeZone }), /a|A/.test(format) && _react.default.createElement(_TimeScroll.default, { key: "ampm", current: value, mode: "ampm", range: range, min: min, max: max, disabled: disabled, value: _utils.default.getDateInfo(value, 'hour', this.getOptions()) >= 12 ? 1 : 0, total: 2, ampm: true, onChange: this.handleAMPMChange, disabledTime: disabledTime, index: index, rangeDate: rangeDate, timeZone: timeZone })]; if (rtl) { res = res.reverse(); } return res; }; _proto.render = function render() { var _this$props5 = this.props, format = _this$props5.format, mi = _this$props5.min, ma = _this$props5.max; var value = this.getValue(); var className = (0, _styles.datepickerClass)('time-picker'); var hours = value.getHours(); if (format.indexOf('h') >= 0 && hours >= 12) { hours -= 12; } // reset var min = _utils.default.resetTimeByFormat(mi, format, this.getOptions()); var max = _utils.default.resetTimeByFormat(ma, format, this.getOptions()); return _react.default.createElement("div", { className: className }, this.renderTimeScroller(value, min, max, hours)); }; return Time; }(_react.PureComponent); var _default = Time; exports.default = _default;