UNPKG

d2-ui

Version:
185 lines (151 loc) 6.9 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); 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 }; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var TimePickerDialog = function (_Component) { _inherits(TimePickerDialog, _Component); function TimePickerDialog() { var _Object$getPrototypeO; var _temp, _this, _ret; _classCallCheck(this, TimePickerDialog); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(TimePickerDialog)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.state = { open: false }, _this.handleRequestClose = function () { _this.dismiss(); }, _this.handleTouchTapCancel = function () { _this.dismiss(); }, _this.handleTouchTapOK = function () { _this.dismiss(); if (_this.props.onAccept) { _this.props.onAccept(_this.refs.clock.getSelectedTime()); } }, _this.handleKeyUp = function (event) { switch ((0, _keycode2.default)(event)) { case 'enter': _this.handleTouchTapOK(); break; } }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(TimePickerDialog, [{ key: 'getTheme', value: function getTheme() { return this.context.muiTheme.timePicker; } }, { 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; var initialTime = _props.initialTime; var onAccept = _props.onAccept; var // eslint-disable-line no-unused-vars format = _props.format; var autoOk = _props.autoOk; var okLabel = _props.okLabel; var cancelLabel = _props.cancelLabel; var other = _objectWithoutProperties(_props, ['initialTime', 'onAccept', 'format', 'autoOk', 'okLabel', 'cancelLabel']); var styles = { root: { fontSize: 14, color: this.getTheme().clockColor }, dialogContent: { width: 280 }, body: { padding: 0 } }; var actions = [_react2.default.createElement(_FlatButton2.default, { key: 0, label: cancelLabel, primary: true, onTouchTap: this.handleTouchTapCancel }), _react2.default.createElement(_FlatButton2.default, { key: 1, label: okLabel, primary: true, onTouchTap: this.handleTouchTapOK })]; var onClockChangeMinutes = autoOk === true ? this.handleTouchTapOK : undefined; var open = this.state.open; return _react2.default.createElement( _Dialog2.default, _extends({}, other, { ref: 'dialogWindow', style: styles.root, bodyStyle: styles.body, actions: actions, contentStyle: styles.dialogContent, repositionOnUpdate: false, open: open, onRequestClose: this.handleRequestClose }), open && _react2.default.createElement(_reactEventListener2.default, { elementName: 'window', onKeyUp: this.handleKeyUp }), open && _react2.default.createElement(_Clock2.default, { ref: 'clock', format: format, initialTime: initialTime, onChangeMinutes: onClockChangeMinutes }) ); } }]); return TimePickerDialog; }(_react.Component); TimePickerDialog.propTypes = { autoOk: _react.PropTypes.bool, cancelLabel: _react.PropTypes.node, format: _react.PropTypes.oneOf(['ampm', '24hr']), initialTime: _react.PropTypes.object, okLabel: _react.PropTypes.node, onAccept: _react.PropTypes.func, onDismiss: _react.PropTypes.func, onShow: _react.PropTypes.func }; TimePickerDialog.defaultProps = { okLabel: 'OK', cancelLabel: 'Cancel' }; TimePickerDialog.contextTypes = { muiTheme: _react.PropTypes.object.isRequired }; exports.default = TimePickerDialog;