UNPKG

choerodon-ui

Version:

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

226 lines (182 loc) 7.1 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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); 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 _classnames = _interopRequireDefault(require("classnames")); 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 ROW = 4; var COL = 3; function chooseMonth(month) { var next = this.state.value.clone(); next.month(month); this.setAndSelectValue(next); } var MonthTable = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(MonthTable, _Component); var _super = _createSuper(MonthTable); function MonthTable() { var _this; (0, _classCallCheck2["default"])(this, MonthTable); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", { value: _this.props.value }); return _this; } (0, _createClass2["default"])(MonthTable, [{ key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { if ('value' in nextProps) { this.setState({ value: nextProps.value }); } } }, { key: "setAndSelectValue", value: function setAndSelectValue(value) { this.setState({ value: value }); this.props.onSelect(value); } }, { key: "months", value: function months() { var value = this.state.value; var current = value.clone(); var months = []; var index = 0; for (var rowIndex = 0; rowIndex < ROW; rowIndex++) { months[rowIndex] = []; for (var colIndex = 0; colIndex < COL; colIndex++) { current.month(index); var content = (0, _util.getMonthName)(current); months[rowIndex][colIndex] = { value: index, content: content, title: content }; index++; } } return months; } }, { key: "render", value: function render() { var _this2 = this; var props = this.props; var value = this.state.value; var today = (0, _util.getTodayTime)(value); var months = this.months(); var currentMonth = value.month(); var prefixCls = props.prefixCls, locale = props.locale, contentRender = props.contentRender, cellRender = props.cellRender; var monthsEls = months.map(function (month, index) { var tds = month.map(function (monthData) { var _classNameMap; var disabled = false; if (props.disabledDate) { var testValue = value.clone(); testValue.month(monthData.value); disabled = props.disabledDate(testValue); } var classNameMap = (_classNameMap = {}, (0, _defineProperty2["default"])(_classNameMap, "".concat(prefixCls, "-cell"), 1), (0, _defineProperty2["default"])(_classNameMap, "".concat(prefixCls, "-cell-disabled"), disabled), (0, _defineProperty2["default"])(_classNameMap, "".concat(prefixCls, "-selected-cell"), monthData.value === currentMonth), (0, _defineProperty2["default"])(_classNameMap, "".concat(prefixCls, "-current-cell"), today.year() === value.year() && monthData.value === today.month()), _classNameMap); var cellEl; if (cellRender) { var currentValue = value.clone(); currentValue.month(monthData.value); cellEl = cellRender(currentValue, locale); } else { var content; if (contentRender) { var _currentValue = value.clone(); _currentValue.month(monthData.value); content = contentRender(_currentValue, locale); } else { content = monthData.content; } cellEl = _react["default"].createElement("a", { className: "".concat(prefixCls, "-month") }, content); } return _react["default"].createElement("td", { role: "gridcell", key: monthData.value, onClick: disabled ? null : chooseMonth.bind(_this2, monthData.value), title: monthData.title, className: (0, _classnames["default"])(classNameMap) }, cellEl); }); return _react["default"].createElement("tr", { key: index, role: "row" }, tds); }); return _react["default"].createElement("table", { className: "".concat(prefixCls, "-table"), cellSpacing: "0", role: "grid" }, _react["default"].createElement("tbody", { className: "".concat(prefixCls, "-tbody") }, monthsEls)); } }]); return MonthTable; }(_react.Component); exports["default"] = MonthTable; (0, _defineProperty2["default"])(MonthTable, "defaultProps", { onSelect: _noop["default"] }); (0, _defineProperty2["default"])(MonthTable, "propTypes", { onSelect: _propTypes["default"].func, cellRender: _propTypes["default"].func, prefixCls: _propTypes["default"].string, value: _propTypes["default"].object }); //# sourceMappingURL=MonthTable.js.map