material-ui-datetime-range-picker
Version:
React Datetime Range Picker Component that Implements Google's Material Design Via Material-UI.
161 lines (130 loc) • 12.5 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
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 _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _IconButton = require('@material-ui/core/IconButton');
var _IconButton2 = _interopRequireDefault(_IconButton);
var _SlideIn = require('../internal/SlideIn');
var _SlideIn2 = _interopRequireDefault(_SlideIn);
var _ChevronLeft = require('@material-ui/icons/ChevronLeft');
var _ChevronLeft2 = _interopRequireDefault(_ChevronLeft);
var _ChevronRight = require('@material-ui/icons/ChevronRight');
var _ChevronRight2 = _interopRequireDefault(_ChevronRight);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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 styles = {
root: {
display: 'flex',
justifyContent: 'space-between',
backgroundColor: 'inherit',
height: 48
},
titleDiv: {
fontSize: 14,
fontWeight: '500',
textAlign: 'center',
width: 'calc(100% - 96px)'
},
titleText: {
height: 'inherit',
paddingTop: 12
}
};
var CalendarToolbar = function (_Component) {
_inherits(CalendarToolbar, _Component);
function CalendarToolbar(props) {
_classCallCheck(this, CalendarToolbar);
var _this = _possibleConstructorReturn(this, (CalendarToolbar.__proto__ || Object.getPrototypeOf(CalendarToolbar)).call(this, props));
_this.handleTouchTapPrevMonth = function () {
if (_this.props.onMonthChange) {
_this.props.onMonthChange(-1);
}
};
_this.handleTouchTapNextMonth = function () {
if (_this.props.onMonthChange) {
_this.props.onMonthChange(1);
}
};
_this.state = {
transitionDirection: 'up'
};
return _this;
}
_createClass(CalendarToolbar, [{
key: 'UNSAFE_componentWillReceiveProps',
value: function UNSAFE_componentWillReceiveProps(nextProps) {
if (nextProps.displayDate !== this.props.displayDate) {
var direction = nextProps.displayDate > this.props.displayDate ? 'left' : 'right';
this.setState({
transitionDirection: direction
});
}
}
}, {
key: 'render',
value: function render() {
var _props = this.props,
DateTimeFormat = _props.DateTimeFormat,
locale = _props.locale,
displayDate = _props.displayDate;
var dateTimeFormatted = new DateTimeFormat(locale, {
month: 'long',
year: 'numeric'
}).format(displayDate);
return _react2.default.createElement(
'div',
{ style: styles.root },
_react2.default.createElement(
_IconButton2.default,
{
disabled: !this.props.prevMonth,
onClick: this.handleTouchTapPrevMonth
},
_react2.default.createElement(_ChevronLeft2.default, null)
),
_react2.default.createElement(
_SlideIn2.default,
{
direction: this.state.transitionDirection,
style: styles.titleDiv
},
_react2.default.createElement(
'div',
{ key: dateTimeFormatted, style: styles.titleText },
dateTimeFormatted
)
),
_react2.default.createElement(
_IconButton2.default,
{
disabled: !this.props.nextMonth,
onClick: this.handleTouchTapNextMonth
},
_react2.default.createElement(_ChevronRight2.default, null)
)
);
}
}]);
return CalendarToolbar;
}(_react.Component);
CalendarToolbar.propTypes = {
DateTimeFormat: _propTypes2.default.func.isRequired,
displayDate: _propTypes2.default.object.isRequired,
locale: _propTypes2.default.string.isRequired,
nextMonth: _propTypes2.default.bool,
onMonthChange: _propTypes2.default.func,
prevMonth: _propTypes2.default.bool
};
CalendarToolbar.defaultProps = {
nextMonth: true,
prevMonth: true
};
exports.default = CalendarToolbar;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EYXRlUGlja2VyL0NhbGVuZGFyVG9vbGJhci5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJyb290IiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYmFja2dyb3VuZENvbG9yIiwiaGVpZ2h0IiwidGl0bGVEaXYiLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsInRpdGxlVGV4dCIsInBhZGRpbmdUb3AiLCJDYWxlbmRhclRvb2xiYXIiLCJwcm9wcyIsImhhbmRsZVRvdWNoVGFwUHJldk1vbnRoIiwib25Nb250aENoYW5nZSIsImhhbmRsZVRvdWNoVGFwTmV4dE1vbnRoIiwic3RhdGUiLCJ0cmFuc2l0aW9uRGlyZWN0aW9uIiwibmV4dFByb3BzIiwiZGlzcGxheURhdGUiLCJkaXJlY3Rpb24iLCJzZXRTdGF0ZSIsIkRhdGVUaW1lRm9ybWF0IiwibG9jYWxlIiwiZGF0ZVRpbWVGb3JtYXR0ZWQiLCJtb250aCIsInllYXIiLCJmb3JtYXQiLCJwcmV2TW9udGgiLCJuZXh0TW9udGgiLCJDb21wb25lbnQiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJmdW5jIiwiaXNSZXF1aXJlZCIsIm9iamVjdCIsInN0cmluZyIsImJvb2wiLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxTQUFTO0FBQ2JDLFFBQU07QUFDSkMsYUFBUyxNQURMO0FBRUpDLG9CQUFnQixlQUZaO0FBR0pDLHFCQUFpQixTQUhiO0FBSUpDLFlBQVE7QUFKSixHQURPO0FBT2JDLFlBQVU7QUFDUkMsY0FBVSxFQURGO0FBRVJDLGdCQUFZLEtBRko7QUFHUkMsZUFBVyxRQUhIO0FBSVJDLFdBQU87QUFKQyxHQVBHO0FBYWJDLGFBQVc7QUFDVE4sWUFBUSxTQURDO0FBRVRPLGdCQUFZO0FBRkg7QUFiRSxDQUFmOztJQW1CTUMsZTs7O0FBZUosMkJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQSxrSUFDWEEsS0FEVzs7QUFBQSxVQWdCbkJDLHVCQWhCbUIsR0FnQk8sWUFBTTtBQUM5QixVQUFJLE1BQUtELEtBQUwsQ0FBV0UsYUFBZixFQUE4QjtBQUM1QixjQUFLRixLQUFMLENBQVdFLGFBQVgsQ0FBeUIsQ0FBQyxDQUExQjtBQUNEO0FBQ0YsS0FwQmtCOztBQUFBLFVBc0JuQkMsdUJBdEJtQixHQXNCTyxZQUFNO0FBQzlCLFVBQUksTUFBS0gsS0FBTCxDQUFXRSxhQUFmLEVBQThCO0FBQzVCLGNBQUtGLEtBQUwsQ0FBV0UsYUFBWCxDQUF5QixDQUF6QjtBQUNEO0FBQ0YsS0ExQmtCOztBQUVqQixVQUFLRSxLQUFMLEdBQWE7QUFDWEMsMkJBQXFCO0FBRFYsS0FBYjtBQUZpQjtBQUtsQjs7OztxREFFZ0NDLFMsRUFBVztBQUMxQyxVQUFJQSxVQUFVQyxXQUFWLEtBQTBCLEtBQUtQLEtBQUwsQ0FBV08sV0FBekMsRUFBc0Q7QUFDcEQsWUFBTUMsWUFBWUYsVUFBVUMsV0FBVixHQUF3QixLQUFLUCxLQUFMLENBQVdPLFdBQW5DLEdBQWlELE1BQWpELEdBQTBELE9BQTVFO0FBQ0EsYUFBS0UsUUFBTCxDQUFjO0FBQ1pKLCtCQUFxQkc7QUFEVCxTQUFkO0FBR0Q7QUFDRjs7OzZCQWNRO0FBQUEsbUJBQ3VDLEtBQUtSLEtBRDVDO0FBQUEsVUFDQVUsY0FEQSxVQUNBQSxjQURBO0FBQUEsVUFDZ0JDLE1BRGhCLFVBQ2dCQSxNQURoQjtBQUFBLFVBQ3dCSixXQUR4QixVQUN3QkEsV0FEeEI7OztBQUdQLFVBQU1LLG9CQUFvQixJQUFJRixjQUFKLENBQW1CQyxNQUFuQixFQUEyQjtBQUNuREUsZUFBTyxNQUQ0QztBQUVuREMsY0FBTTtBQUY2QyxPQUEzQixFQUd2QkMsTUFIdUIsQ0FHaEJSLFdBSGdCLENBQTFCOztBQU1BLGFBQ0U7QUFBQTtBQUFBLFVBQUssT0FBT3JCLE9BQU9DLElBQW5CO0FBQ0U7QUFBQyw4QkFBRDtBQUFBO0FBQ0Usc0JBQVUsQ0FBQyxLQUFLYSxLQUFMLENBQVdnQixTQUR4QjtBQUVFLHFCQUFTLEtBQUtmO0FBRmhCO0FBSUUsd0NBQUMscUJBQUQ7QUFKRixTQURGO0FBT0U7QUFBQywyQkFBRDtBQUFBO0FBQ0UsdUJBQVcsS0FBS0csS0FBTCxDQUFXQyxtQkFEeEI7QUFFRSxtQkFBT25CLE9BQU9NO0FBRmhCO0FBSUU7QUFBQTtBQUFBLGNBQUssS0FBS29CLGlCQUFWLEVBQTZCLE9BQU8xQixPQUFPVyxTQUEzQztBQUNHZTtBQURIO0FBSkYsU0FQRjtBQWVFO0FBQUMsOEJBQUQ7QUFBQTtBQUNFLHNCQUFVLENBQUMsS0FBS1osS0FBTCxDQUFXaUIsU0FEeEI7QUFFRSxxQkFBUyxLQUFLZDtBQUZoQjtBQUlFLHdDQUFDLHNCQUFEO0FBSkY7QUFmRixPQURGO0FBd0JEOzs7O0VBNUUyQmUsZ0I7O0FBQXhCbkIsZSxDQUNHb0IsUyxHQUFZO0FBQ2pCVCxrQkFBZ0JVLG9CQUFVQyxJQUFWLENBQWVDLFVBRGQ7QUFFakJmLGVBQWFhLG9CQUFVRyxNQUFWLENBQWlCRCxVQUZiO0FBR2pCWCxVQUFRUyxvQkFBVUksTUFBVixDQUFpQkYsVUFIUjtBQUlqQkwsYUFBV0csb0JBQVVLLElBSko7QUFLakJ2QixpQkFBZWtCLG9CQUFVQyxJQUxSO0FBTWpCTCxhQUFXSSxvQkFBVUs7QUFOSixDO0FBRGYxQixlLENBVUcyQixZLEdBQWU7QUFDcEJULGFBQVcsSUFEUztBQUVwQkQsYUFBVztBQUZTLEM7a0JBcUVUakIsZSIsImZpbGUiOiJDYWxlbmRhclRvb2xiYXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9JY29uQnV0dG9uJztcbmltcG9ydCBTbGlkZUluVHJhbnNpdGlvbkdyb3VwIGZyb20gJy4uL2ludGVybmFsL1NsaWRlSW4nO1xuaW1wb3J0IENoZXZyb25MZWZ0IGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DaGV2cm9uTGVmdCc7XG5pbXBvcnQgQ2hldnJvblJpZ2h0IGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9DaGV2cm9uUmlnaHQnO1xuXG5jb25zdCBzdHlsZXMgPSB7XG4gIHJvb3Q6IHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdpbmhlcml0JyxcbiAgICBoZWlnaHQ6IDQ4LFxuICB9LFxuICB0aXRsZURpdjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBmb250V2VpZ2h0OiAnNTAwJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIHdpZHRoOiAnY2FsYygxMDAlIC0gOTZweCknLFxuICB9LFxuICB0aXRsZVRleHQ6IHtcbiAgICBoZWlnaHQ6ICdpbmhlcml0JyxcbiAgICBwYWRkaW5nVG9wOiAxMixcbiAgfSxcbn07XG5cbmNsYXNzIENhbGVuZGFyVG9vbGJhciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgRGF0ZVRpbWVGb3JtYXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgZGlzcGxheURhdGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICBsb2NhbGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBuZXh0TW9udGg6IFByb3BUeXBlcy5ib29sLFxuICAgIG9uTW9udGhDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAgIHByZXZNb250aDogUHJvcFR5cGVzLmJvb2wsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBuZXh0TW9udGg6IHRydWUsXG4gICAgcHJldk1vbnRoOiB0cnVlLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICB0cmFuc2l0aW9uRGlyZWN0aW9uOiAndXAnLFxuICAgIH07XG4gIH1cblxuICBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0UHJvcHMpIHtcbiAgICBpZiAobmV4dFByb3BzLmRpc3BsYXlEYXRlICE9PSB0aGlzLnByb3BzLmRpc3BsYXlEYXRlKSB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSBuZXh0UHJvcHMuZGlzcGxheURhdGUgPiB0aGlzLnByb3BzLmRpc3BsYXlEYXRlID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICB0cmFuc2l0aW9uRGlyZWN0aW9uOiBkaXJlY3Rpb24sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVUb3VjaFRhcFByZXZNb250aCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbk1vbnRoQ2hhbmdlKSB7XG4gICAgICB0aGlzLnByb3BzLm9uTW9udGhDaGFuZ2UoLTEpO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVUb3VjaFRhcE5leHRNb250aCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbk1vbnRoQ2hhbmdlKSB7XG4gICAgICB0aGlzLnByb3BzLm9uTW9udGhDaGFuZ2UoMSk7XG4gICAgfVxuICB9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7RGF0ZVRpbWVGb3JtYXQsIGxvY2FsZSwgZGlzcGxheURhdGV9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRhdGVUaW1lRm9ybWF0dGVkID0gbmV3IERhdGVUaW1lRm9ybWF0KGxvY2FsZSwge1xuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICB9KS5mb3JtYXQoZGlzcGxheURhdGUpO1xuXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnJvb3R9PlxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGRpc2FibGVkPXshdGhpcy5wcm9wcy5wcmV2TW9udGh9XG4gICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVUb3VjaFRhcFByZXZNb250aH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDaGV2cm9uTGVmdCAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgIDxTbGlkZUluVHJhbnNpdGlvbkdyb3VwXG4gICAgICAgICAgZGlyZWN0aW9uPXt0aGlzLnN0YXRlLnRyYW5zaXRpb25EaXJlY3Rpb259XG4gICAgICAgICAgc3R5bGU9e3N0eWxlcy50aXRsZURpdn1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYga2V5PXtkYXRlVGltZUZvcm1hdHRlZH0gc3R5bGU9e3N0eWxlcy50aXRsZVRleHR9PlxuICAgICAgICAgICAge2RhdGVUaW1lRm9ybWF0dGVkfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1NsaWRlSW5UcmFuc2l0aW9uR3JvdXA+XG4gICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgZGlzYWJsZWQ9eyF0aGlzLnByb3BzLm5leHRNb250aH1cbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVRvdWNoVGFwTmV4dE1vbnRofVxuICAgICAgICA+XG4gICAgICAgICAgPENoZXZyb25SaWdodCAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IENhbGVuZGFyVG9vbGJhcjtcbiJdfQ==
;