You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 3 години
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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 _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
  8. var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
  9. var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
  10. var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
  11. var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
  12. var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
  13. var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
  14. var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  15. var _createClass2 = require('babel-runtime/helpers/createClass');
  16. var _createClass3 = _interopRequireDefault(_createClass2);
  17. var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
  18. var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
  19. var _inherits2 = require('babel-runtime/helpers/inherits');
  20. var _inherits3 = _interopRequireDefault(_inherits2);
  21. var _simpleAssign = require('simple-assign');
  22. var _simpleAssign2 = _interopRequireDefault(_simpleAssign);
  23. var _react = require('react');
  24. var _react2 = _interopRequireDefault(_react);
  25. var _propTypes = require('prop-types');
  26. var _propTypes2 = _interopRequireDefault(_propTypes);
  27. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  28. var TimeDisplay = function (_Component) {
  29. (0, _inherits3.default)(TimeDisplay, _Component);
  30. function TimeDisplay() {
  31. var _ref;
  32. var _temp, _this, _ret;
  33. (0, _classCallCheck3.default)(this, TimeDisplay);
  34. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  35. args[_key] = arguments[_key];
  36. }
  37. return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TimeDisplay.__proto__ || (0, _getPrototypeOf2.default)(TimeDisplay)).call.apply(_ref, [this].concat(args))), _this), _this.state = {
  38. transitionDirection: 'up'
  39. }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
  40. }
  41. (0, _createClass3.default)(TimeDisplay, [{
  42. key: 'componentWillReceiveProps',
  43. value: function componentWillReceiveProps(nextProps) {
  44. if (nextProps.selectedTime !== this.props.selectedTime) {
  45. var direction = nextProps.selectedTime > this.props.selectedTime ? 'up' : 'down';
  46. this.setState({
  47. transitionDirection: direction
  48. });
  49. }
  50. }
  51. }, {
  52. key: 'sanitizeTime',
  53. value: function sanitizeTime() {
  54. var hour = this.props.selectedTime.getHours();
  55. var min = this.props.selectedTime.getMinutes().toString();
  56. if (this.props.format === 'ampm') {
  57. hour %= 12;
  58. hour = hour || 12;
  59. }
  60. hour = hour.toString();
  61. if (hour.length < 2) hour = '0' + hour;
  62. if (min.length < 2) min = '0' + min;
  63. return [hour, min];
  64. }
  65. }, {
  66. key: 'render',
  67. value: function render() {
  68. var _props = this.props,
  69. affix = _props.affix,
  70. format = _props.format,
  71. mode = _props.mode,
  72. onSelectAffix = _props.onSelectAffix,
  73. onSelectHour = _props.onSelectHour,
  74. onSelectMin = _props.onSelectMin,
  75. selectedTime = _props.selectedTime,
  76. other = (0, _objectWithoutProperties3.default)(_props, ['affix', 'format', 'mode', 'onSelectAffix', 'onSelectHour', 'onSelectMin', 'selectedTime']);
  77. var _context$muiTheme = this.context.muiTheme,
  78. prepareStyles = _context$muiTheme.prepareStyles,
  79. timePicker = _context$muiTheme.timePicker;
  80. var styles = {
  81. root: {
  82. padding: '14px 0',
  83. borderTopLeftRadius: 2,
  84. borderTopRightRadius: 2,
  85. backgroundColor: timePicker.headerColor,
  86. color: timePicker.textColor
  87. },
  88. text: {
  89. margin: '6px 0',
  90. lineHeight: '58px',
  91. height: 58,
  92. fontSize: 58,
  93. display: 'flex',
  94. justifyContent: 'center',
  95. alignItems: 'baseline'
  96. },
  97. time: {
  98. margin: '0 10px'
  99. },
  100. affix: {
  101. flex: 1,
  102. position: 'relative',
  103. lineHeight: '17px',
  104. height: 17,
  105. fontSize: 17
  106. },
  107. affixTop: {
  108. position: 'absolute',
  109. top: -20,
  110. left: 0
  111. },
  112. clickable: {
  113. cursor: 'pointer'
  114. },
  115. inactive: {
  116. opacity: 0.7
  117. }
  118. };
  119. var _sanitizeTime = this.sanitizeTime(),
  120. _sanitizeTime2 = (0, _slicedToArray3.default)(_sanitizeTime, 2),
  121. hour = _sanitizeTime2[0],
  122. min = _sanitizeTime2[1];
  123. var buttons = [];
  124. if (format === 'ampm') {
  125. buttons = [_react2.default.createElement(
  126. 'div',
  127. {
  128. key: 'pm',
  129. style: prepareStyles((0, _simpleAssign2.default)({}, styles.clickable, affix === 'pm' ? {} : styles.inactive)),
  130. onClick: function onClick() {
  131. return onSelectAffix('pm');
  132. }
  133. },
  134. 'PM'
  135. ), _react2.default.createElement(
  136. 'div',
  137. {
  138. key: 'am',
  139. style: prepareStyles((0, _simpleAssign2.default)({}, styles.affixTop, styles.clickable, affix === 'am' ? {} : styles.inactive)),
  140. onClick: function onClick() {
  141. return onSelectAffix('am');
  142. }
  143. },
  144. 'AM'
  145. )];
  146. }
  147. return _react2.default.createElement(
  148. 'div',
  149. (0, _extends3.default)({}, other, { style: prepareStyles(styles.root) }),
  150. _react2.default.createElement(
  151. 'div',
  152. { style: prepareStyles(styles.text) },
  153. _react2.default.createElement('div', { style: prepareStyles((0, _simpleAssign2.default)({}, styles.affix)) }),
  154. _react2.default.createElement(
  155. 'div',
  156. { style: prepareStyles(styles.time) },
  157. _react2.default.createElement(
  158. 'span',
  159. {
  160. style: prepareStyles((0, _simpleAssign2.default)({}, styles.clickable, mode === 'hour' ? {} : styles.inactive)),
  161. onClick: onSelectHour
  162. },
  163. hour
  164. ),
  165. _react2.default.createElement(
  166. 'span',
  167. null,
  168. ':'
  169. ),
  170. _react2.default.createElement(
  171. 'span',
  172. {
  173. style: prepareStyles((0, _simpleAssign2.default)({}, styles.clickable, mode === 'minute' ? {} : styles.inactive)),
  174. onClick: onSelectMin
  175. },
  176. min
  177. )
  178. ),
  179. _react2.default.createElement(
  180. 'div',
  181. { style: prepareStyles((0, _simpleAssign2.default)({}, styles.affix)) },
  182. buttons
  183. )
  184. )
  185. );
  186. }
  187. }]);
  188. return TimeDisplay;
  189. }(_react.Component);
  190. TimeDisplay.defaultProps = {
  191. affix: '',
  192. mode: 'hour'
  193. };
  194. TimeDisplay.contextTypes = {
  195. muiTheme: _propTypes2.default.object.isRequired
  196. };
  197. TimeDisplay.propTypes = process.env.NODE_ENV !== "production" ? {
  198. affix: _propTypes2.default.oneOf(['', 'pm', 'am']),
  199. format: _propTypes2.default.oneOf(['ampm', '24hr']),
  200. mode: _propTypes2.default.oneOf(['hour', 'minute']),
  201. onSelectAffix: _propTypes2.default.func,
  202. onSelectHour: _propTypes2.default.func,
  203. onSelectMin: _propTypes2.default.func,
  204. selectedTime: _propTypes2.default.object.isRequired
  205. } : {};
  206. exports.default = TimeDisplay;