Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  8. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  9. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  10. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  11. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  12. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  13. var _createClass2 = require('babel-runtime/helpers/createClass');
  14. var _createClass3 = _interopRequireDefault(_createClass2);
  15. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  16. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  17. var _inherits2 = require('babel-runtime/helpers/inherits');
  18. var _inherits3 = _interopRequireDefault(_inherits2);
  19. var _react = require('react');
  20. var _react2 = _interopRequireDefault(_react);
  21. var _propTypes = require('prop-types');
  22. var _propTypes2 = _interopRequireDefault(_propTypes);
  23. var _transitions = require('../styles/transitions');
  24. var _transitions2 = _interopRequireDefault(_transitions);
  25. var _dateUtils = require('./dateUtils');
  26. var _EnhancedButton = require('../internal/EnhancedButton');
  27. var _EnhancedButton2 = _interopRequireDefault(_EnhancedButton);
  28. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  29. function getStyles(props, context, state) {
  30. var date = props.date,
  31. disabled = props.disabled,
  32. selected = props.selected;
  33. var hover = state.hover;
  34. var _context$muiTheme = context.muiTheme,
  35. baseTheme = _context$muiTheme.baseTheme,
  36. datePicker = _context$muiTheme.datePicker;
  37. var labelColor = baseTheme.palette.textColor;
  38. var buttonStateOpacity = 0;
  39. var buttonStateTransform = 'scale(0)';
  40. if (hover || selected) {
  41. labelColor = datePicker.selectTextColor;
  42. buttonStateOpacity = selected ? 1 : 0.6;
  43. buttonStateTransform = 'scale(1)';
  44. } else if ((0, _dateUtils.isEqualDate)(date, new Date())) {
  45. labelColor = datePicker.color;
  46. }
  47. return {
  48. root: {
  49. boxSizing: 'border-box',
  50. fontWeight: '400',
  51. opacity: disabled && '0.4',
  52. padding: '4px 0px',
  53. position: 'relative',
  54. WebkitTapHighlightColor: 'rgba(0,0,0,0)', // Remove mobile color flashing (deprecated)
  55. width: 42
  56. },
  57. label: {
  58. color: labelColor,
  59. fontWeight: '400',
  60. position: 'relative'
  61. },
  62. buttonState: {
  63. backgroundColor: datePicker.selectColor,
  64. borderRadius: '50%',
  65. height: 34,
  66. left: 4,
  67. opacity: buttonStateOpacity,
  68. position: 'absolute',
  69. top: 0,
  70. transform: buttonStateTransform,
  71. transition: _transitions2.default.easeOut(),
  72. width: 34
  73. }
  74. };
  75. }
  76. var DayButton = function (_Component) {
  77. (0, _inherits3.default)(DayButton, _Component);
  78. function DayButton() {
  79. var _ref;
  80. var _temp, _this, _ret;
  81. (0, _classCallCheck3.default)(this, DayButton);
  82. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  83. args[_key] = arguments[_key];
  84. }
  85. return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = DayButton.__proto__ || (0, _getPrototypeOf2.default)(DayButton)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
  86. hover: false
  87. }, _this.handleMouseEnter = function () {
  88. if (!_this.props.disabled) {
  89. _this.setState({ hover: true });
  90. }
  91. }, _this.handleMouseLeave = function () {
  92. if (!_this.props.disabled) {
  93. _this.setState({ hover: false });
  94. }
  95. }, _this.handleClick = function (event) {
  96. if (!_this.props.disabled && _this.props.onClick) {
  97. _this.props.onClick(event, _this.props.date);
  98. }
  99. }, _this.handleKeyboardFocus = function (event, keyboardFocused) {
  100. if (!_this.props.disabled && _this.props.onKeyboardFocus) {
  101. _this.props.onKeyboardFocus(event, keyboardFocused, _this.props.date);
  102. }
  103. }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
  104. }
  105. (0, _createClass3.default)(DayButton, [{
  106. key: 'render',
  107. value: function render() {
  108. var _props = this.props,
  109. DateTimeFormat = _props.DateTimeFormat,
  110. date = _props.date,
  111. disabled = _props.disabled,
  112. locale = _props.locale,
  113. onClick = _props.onClick,
  114. selected = _props.selected,
  115. other = (0, _objectWithoutProperties3.default)(_props, ['DateTimeFormat', 'date', 'disabled', 'locale', 'onClick', 'selected']);
  116. var prepareStyles = this.context.muiTheme.prepareStyles;
  117. var styles = getStyles(this.props, this.context, this.state);
  118. return date ? _react2.default.createElement(
  119. _EnhancedButton2.default,
  120. (0, _extends3.default)({}, other, {
  121. disabled: disabled,
  122. disableFocusRipple: true,
  123. disableTouchRipple: true,
  124. onKeyboardFocus: this.handleKeyboardFocus,
  125. onMouseEnter: this.handleMouseEnter,
  126. onMouseLeave: this.handleMouseLeave,
  127. onClick: this.handleClick,
  128. style: styles.root
  129. }),
  130. _react2.default.createElement('div', { style: prepareStyles(styles.buttonState) }),
  131. _react2.default.createElement(
  132. 'span',
  133. { style: prepareStyles(styles.label) },
  134. new DateTimeFormat(locale, {
  135. day: 'numeric'
  136. }).format(date)
  137. )
  138. ) : _react2.default.createElement('span', { style: prepareStyles(styles.root) });
  139. }
  140. }]);
  141. return DayButton;
  142. }(_react.Component);
  143. DayButton.defaultProps = {
  144. selected: false,
  145. disabled: false
  146. };
  147. DayButton.contextTypes = {
  148. muiTheme: _propTypes2.default.object.isRequired
  149. };
  150. DayButton.propTypes = process.env.NODE_ENV !== "production" ? {
  151. DateTimeFormat: _propTypes2.default.func.isRequired,
  152. date: _propTypes2.default.object,
  153. disabled: _propTypes2.default.bool,
  154. locale: _propTypes2.default.string.isRequired,
  155. onClick: _propTypes2.default.func,
  156. onKeyboardFocus: _propTypes2.default.func,
  157. selected: _propTypes2.default.bool
  158. } : {};
  159. exports.default = DayButton;