UNPKG

shineout

Version:

Shein 前端组件库

178 lines (139 loc) 6.64 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 _Icon = _interopRequireDefault(require("./Icon")); var _utils = _interopRequireDefault(require("./utils")); var _paramUtils = _interopRequireDefault(require("./paramUtils")); var _styles = require("./styles"); var _locale = require("../locale"); var _is = require("../utils/is"); var Quarters = ['Q1', 'Q2', 'Q3', 'Q4']; var Quarter = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(Quarter, _PureComponent); function Quarter(props) { var _this; _this = _PureComponent.call(this, props) || this; (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleNextYear", void 0); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handlePrevYear", void 0); _this.handleNextYear = _this.handleYearChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 1); _this.handlePrevYear = _this.handleYearChange.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), -1); _this.handleQuarterClick = _this.handleQuarterClick.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); _this.handleDisabled = _this.handleDisabled.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); props.disabledRegister(_this.handleDisabled, 'quarter', props.index); return _this; } var _proto = Quarter.prototype; _proto.getOptions = function getOptions() { var timeZone = this.props.timeZone; return { timeZone: timeZone, weekStartsOn: (0, _locale.getLocale)('startOfWeek') }; }; _proto.handleYearChange = function handleYearChange(year) { var _this$props = this.props, current = _this$props.current, onChange = _this$props.onChange; onChange.apply(void 0, _paramUtils.default.yearHandleChangeParams(_utils.default.addYears(current, year, this.getOptions()))); }; _proto.handleYearClick = function handleYearClick() { this.props.onModeChange('year'); }; _proto.handleQuarterClick = function handleQuarterClick(date) { var onChange = this.props.onChange; onChange.apply(void 0, _paramUtils.default.quarterHandleChangeParams(date, true, true)); }; _proto.handleDisabled = function handleDisabled(date) { var _this$props2 = this.props, disabled = _this$props2.disabled, index = _this$props2.index, min = _this$props2.min, max = _this$props2.max, rangeDate = _this$props2.rangeDate, range = _this$props2.range, type = _this$props2.type; var isDisabled = min && _utils.default.compareQuarter(min, date, 1, this.getOptions()) >= 0; if (!isDisabled) { isDisabled = max && _utils.default.compareQuarter(date, max, 1, this.getOptions()) >= 0; } if (!isDisabled && type === 'quarter' && typeof disabled === 'function') { isDisabled = disabled(date); } if (!isDisabled && index === 1 && (0, _is.isArray)(rangeDate)) { if ((0, _is.isNumber)(range) && rangeDate[0] && _utils.default.compareAsc(date, _utils.default.addSeconds(rangeDate[0], range, this.getOptions())) > 0) { isDisabled = true; } } return isDisabled; }; _proto.renderQuarter = function renderQuarter(q, i) { var _this$props3 = this.props, current = _this$props3.current, index = _this$props3.index, rangeDate = _this$props3.rangeDate, value = _this$props3.value; var year = _utils.default.getDateInfo(current, 'year', this.getOptions()); var date = _utils.default.parse(year + " " + (i + 1), 'YYYY Q', this.getOptions()); var isDisabled = this.handleDisabled(date); // let hoverClass var classList = [isDisabled && 'disabled']; if (rangeDate && index !== undefined) { if (_utils.default.isSameQuarter(date, rangeDate[index], this.getOptions())) { classList.push('active'); } // hoverClass = datepickerClass( // rangeDate[0] && // utils.compareQuarter(rangeDate[0], date) <= 0 && // rangeDate[1] && // utils.compareQuarter(rangeDate[1], date) >= 0 && // 'hover', // // Datetime Picker range end datetime classname #330 // utils.isSameQuarter(rangeDate[index], date) && `hover-${index === 0 ? 'start' : 'end'} active` // ) } else if (value) { if (_utils.default.isSameQuarter(date, value, this.getOptions())) { classList.push('active'); } } return _react.default.createElement("div", { key: date.getTime() // className={hoverClass} , onClick: isDisabled ? undefined : this.handleQuarterClick.bind(this, date, undefined) }, _react.default.createElement("span", { className: _styles.datepickerClass.apply(void 0, classList) }, q)); }; _proto.render = function render() { var _this2 = this; var current = this.props.current; return _react.default.createElement("div", { className: (0, _styles.datepickerClass)('quarter-picker') }, _react.default.createElement("div", { className: (0, _styles.datepickerClass)('header') }, _react.default.createElement(_Icon.default, { name: "AngleLeft", className: "left", onClick: this.handlePrevYear }), _react.default.createElement("span", { onClick: this.handleYearClick.bind(this), className: (0, _styles.datepickerClass)('ym') }, _utils.default.getDateInfo(current, 'year', this.getOptions())), _react.default.createElement(_Icon.default, { name: "AngleRight", className: "right", onClick: this.handleNextYear })), _react.default.createElement("div", { className: (0, _styles.datepickerClass)('list') }, Quarters.map(function (q, i) { return _this2.renderQuarter(q, i); }))); }; return Quarter; }(_react.PureComponent); var _default = Quarter; exports.default = _default;