UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

221 lines (193 loc) 7.39 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _noop = _interopRequireDefault(require("lodash/noop")); var _util = require("../util"); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } var CalendarHeader = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(CalendarHeader, _Component); var _super = _createSuper(CalendarHeader); function CalendarHeader() { (0, _classCallCheck2["default"])(this, CalendarHeader); return _super.apply(this, arguments); } (0, _createClass2["default"])(CalendarHeader, [{ key: "onYearChange", value: function onYearChange(year) { var newValue = this.props.value.clone(); newValue.year(parseInt(year, 10)); this.props.onValueChange(newValue); } }, { key: "onMonthChange", value: function onMonthChange(month) { var newValue = this.props.value.clone(); newValue.month(parseInt(month, 10)); this.props.onValueChange(newValue); } }, { key: "yearSelectElement", value: function yearSelectElement(year) { var _this$props = this.props, yearSelectOffset = _this$props.yearSelectOffset, yearSelectTotal = _this$props.yearSelectTotal, prefixCls = _this$props.prefixCls, Select = _this$props.Select; var start = year - yearSelectOffset; var end = start + yearSelectTotal; var options = []; for (var index = start; index < end; index++) { options.push(_react["default"].createElement(Select.Option, { key: "".concat(index) }, index)); } return _react["default"].createElement(Select, { className: "".concat(prefixCls, "-header-year-select"), onChange: this.onYearChange.bind(this), dropdownStyle: { zIndex: 2000 }, dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', fontSize: 12 }, optionLabelProp: "children", value: String(year), showSearch: false }, options); } }, { key: "monthSelectElement", value: function monthSelectElement(month) { var props = this.props; var t = props.value.clone(); var prefixCls = props.prefixCls; var options = []; var Select = props.Select; for (var index = 0; index < 12; index++) { t.month(index); options.push(_react["default"].createElement(Select.Option, { key: "".concat(index) }, (0, _util.getMonthName)(t))); } return _react["default"].createElement(Select, { className: "".concat(prefixCls, "-header-month-select"), dropdownStyle: { zIndex: 2000 }, dropdownMenuStyle: { maxHeight: 250, overflow: 'auto', overflowX: 'hidden', fontSize: 12 }, optionLabelProp: "children", value: String(month), showSearch: false, onChange: this.onMonthChange.bind(this) }, options); } }, { key: "changeTypeToDate", value: function changeTypeToDate() { this.props.onTypeChange('date'); } }, { key: "changeTypeToMonth", value: function changeTypeToMonth() { this.props.onTypeChange('month'); } }, { key: "render", value: function render() { var _this$props2 = this.props, value = _this$props2.value, locale = _this$props2.locale, prefixCls = _this$props2.prefixCls, type = _this$props2.type, showTypeSwitch = _this$props2.showTypeSwitch, headerComponents = _this$props2.headerComponents; var year = value.year(); var month = value.month(); var yearSelect = this.yearSelectElement(year); var monthSelect = type === 'month' ? null : this.monthSelectElement(month); var switchCls = "".concat(prefixCls, "-header-switcher"); var typeSwitcher = showTypeSwitch ? _react["default"].createElement("span", { className: switchCls }, type === 'date' ? _react["default"].createElement("span", { className: "".concat(switchCls, "-focus") }, locale.month) : _react["default"].createElement("span", { onClick: this.changeTypeToDate.bind(this), className: "".concat(switchCls, "-normal") }, locale.month), type === 'month' ? _react["default"].createElement("span", { className: "".concat(switchCls, "-focus") }, locale.year) : _react["default"].createElement("span", { onClick: this.changeTypeToMonth.bind(this), className: "".concat(switchCls, "-normal") }, locale.year)) : null; return _react["default"].createElement("div", { className: "".concat(prefixCls, "-header") }, typeSwitcher, monthSelect, yearSelect, headerComponents); } }]); return CalendarHeader; }(_react.Component); exports["default"] = CalendarHeader; (0, _defineProperty2["default"])(CalendarHeader, "propTypes", { value: _propTypes["default"].object, locale: _propTypes["default"].object, yearSelectOffset: _propTypes["default"].number, yearSelectTotal: _propTypes["default"].number, onValueChange: _propTypes["default"].func, onTypeChange: _propTypes["default"].func, Select: _propTypes["default"].func, prefixCls: _propTypes["default"].string, type: _propTypes["default"].string, showTypeSwitch: _propTypes["default"].bool, headerComponents: _propTypes["default"].array }); (0, _defineProperty2["default"])(CalendarHeader, "defaultProps", { yearSelectOffset: 10, yearSelectTotal: 20, onValueChange: _noop["default"], onTypeChange: _noop["default"] }); //# sourceMappingURL=CalendarHeader.js.map