UNPKG

material-ui

Version:

React Components that Implement Google's Material Design.

210 lines (165 loc) 6.53 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties'); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _simpleAssign = require('simple-assign'); var _simpleAssign2 = _interopRequireDefault(_simpleAssign); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactEventListener = require('react-event-listener'); var _reactEventListener2 = _interopRequireDefault(_reactEventListener); var _keycode = require('keycode'); var _keycode2 = _interopRequireDefault(_keycode); var _Clock = require('./Clock'); var _Clock2 = _interopRequireDefault(_Clock); var _Dialog = require('../Dialog'); var _Dialog2 = _interopRequireDefault(_Dialog); var _FlatButton = require('../FlatButton'); var _FlatButton2 = _interopRequireDefault(_FlatButton); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var TimePickerDialog = function (_Component) { (0, _inherits3.default)(TimePickerDialog, _Component); function TimePickerDialog() { var _ref; var _temp, _this, _ret; (0, _classCallCheck3.default)(this, TimePickerDialog); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = TimePickerDialog.__proto__ || (0, _getPrototypeOf2.default)(TimePickerDialog)).call.apply(_ref, [this].concat(args))), _this), _this.state = { open: false }, _this.handleRequestClose = function () { _this.dismiss(); }, _this.handleClickCancel = function () { _this.dismiss(); }, _this.handleClickOK = function () { if (_this.props.onAccept) { _this.props.onAccept(_this.refs.clock.getSelectedTime()); } _this.setState({ open: false }); }, _this.handleKeyUp = function (event) { switch ((0, _keycode2.default)(event)) { case 'enter': _this.handleClickOK(); break; } }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); } (0, _createClass3.default)(TimePickerDialog, [{ key: 'show', value: function show() { if (this.props.onShow && !this.state.open) this.props.onShow(); this.setState({ open: true }); } }, { key: 'dismiss', value: function dismiss() { if (this.props.onDismiss && this.state.open) this.props.onDismiss(); this.setState({ open: false }); } }, { key: 'render', value: function render() { var _props = this.props, bodyStyle = _props.bodyStyle, initialTime = _props.initialTime, onAccept = _props.onAccept, format = _props.format, autoOk = _props.autoOk, okLabel = _props.okLabel, cancelLabel = _props.cancelLabel, style = _props.style, minutesStep = _props.minutesStep, other = (0, _objectWithoutProperties3.default)(_props, ['bodyStyle', 'initialTime', 'onAccept', 'format', 'autoOk', 'okLabel', 'cancelLabel', 'style', 'minutesStep']); var styles = { root: { fontSize: 14, color: this.context.muiTheme.timePicker.clockColor }, dialogContent: { width: 280 }, body: { padding: 0 } }; var actions = [_react2.default.createElement(_FlatButton2.default, { key: 0, label: cancelLabel, primary: true, onClick: this.handleClickCancel }), _react2.default.createElement(_FlatButton2.default, { key: 1, label: okLabel, primary: true, onClick: this.handleClickOK })]; var onClockChangeMinutes = autoOk === true ? this.handleClickOK : undefined; var open = this.state.open; return _react2.default.createElement( _Dialog2.default, (0, _extends3.default)({}, other, { style: (0, _simpleAssign2.default)(styles.root, style), bodyStyle: (0, _simpleAssign2.default)(styles.body, bodyStyle), actions: actions, contentStyle: styles.dialogContent, repositionOnUpdate: false, open: open, onRequestClose: this.handleRequestClose }), open && _react2.default.createElement(_reactEventListener2.default, { target: 'window', onKeyUp: this.handleKeyUp }), open && _react2.default.createElement(_Clock2.default, { ref: 'clock', format: format, initialTime: initialTime, onChangeMinutes: onClockChangeMinutes, minutesStep: minutesStep }) ); } }]); return TimePickerDialog; }(_react.Component); TimePickerDialog.defaultProps = { okLabel: 'OK', cancelLabel: 'Cancel' }; TimePickerDialog.contextTypes = { muiTheme: _propTypes2.default.object.isRequired }; TimePickerDialog.propTypes = process.env.NODE_ENV !== "production" ? { autoOk: _propTypes2.default.bool, bodyStyle: _propTypes2.default.object, cancelLabel: _propTypes2.default.node, format: _propTypes2.default.oneOf(['ampm', '24hr']), initialTime: _propTypes2.default.object, minutesStep: _propTypes2.default.number, okLabel: _propTypes2.default.node, onAccept: _propTypes2.default.func, onDismiss: _propTypes2.default.func, onShow: _propTypes2.default.func, style: _propTypes2.default.object } : {}; exports.default = TimePickerDialog;