UNPKG

ldx-widgets

Version:

widgets

90 lines (79 loc) 2.73 kB
(function() { var DatePicker, PropTypes, React, ReactDatepicker, _, createClass, div, moment, ref, span; React = require('react'); createClass = require('create-react-class'); PropTypes = require('prop-types'); ReactDatepicker = React.createFactory(require('react-datepicker')["default"]); moment = require('moment'); _ = require('lodash'); ref = React.DOM, div = ref.div, span = ref.span; DatePicker = createClass({ displayName: 'DatePicker', propTypes: { placeholderText: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), dateFormat: PropTypes.string, className: PropTypes.string, minDate: PropTypes.object, maxDate: PropTypes.object, onChange: PropTypes.func.isRequired, tabIndex: PropTypes.number, selected: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) }, getDefaultProps: function() { return { placeholderText: 'Select a date', dateFormat: 'MM/DD/YYYY', className: null, includeTime: false, returnDateString: null, onChange: function() {} }; }, getInitialState: function() { return { selected: this.props.selected || moment() }; }, componentWillReceiveProps: function(nextProps) { var ref1, ref2; if (((ref1 = nextProps.selected) != null ? ref1.format(this.props.returnDateString || this.props.dateFormat) : void 0) !== ((ref2 = this.props.selected) != null ? ref2.format(this.props.returnDateString || this.props.dateFormat) : void 0)) { return this.setState({ selected: nextProps.selected }); } }, render: function() { var mainClass, props; props = _.clone(this.props); props.onChange = this.handleDateChange; mainClass = 'datepicker-wrapper'; if (typeof className !== "undefined" && className !== null) { mainClass += " " + className; } return div({ className: mainClass }, ReactDatepicker(props)); }, handleDateChange: function(date) { return this.setState({ selected: date }, (function(_this) { return function() { var base; return typeof (base = _this.props).onChange === "function" ? base.onChange(date) : void 0; }; })(this)); }, getValue: function() { var returnDateString, selected; returnDateString = this.props.returnDateString; selected = this.state.selected; if ((returnDateString != null) && (selected != null)) { return selected.format(returnDateString); } else { return selected || moment(); } } }); module.exports = DatePicker; }).call(this);