UNPKG

ldx-widgets

Version:

widgets

78 lines (69 loc) 2.27 kB
(function() { var DatePicker, React, ReactDatepicker, _, div, moment, ref, span; React = require('react'); ReactDatepicker = React.createFactory(require('react-datepicker')); moment = require('moment'); _ = require('lodash'); ref = React.DOM, div = ref.div, span = ref.span; DatePicker = React.createClass({ displayName: 'DatePicker', propTypes: { placeholderText: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]), dateFormat: React.PropTypes.string, className: React.PropTypes.string, minDate: React.PropTypes.object, maxDate: React.PropTypes.object, onChange: React.PropTypes.func.isRequired, tabIndex: React.PropTypes.number, selected: React.PropTypes.oneOfType([React.PropTypes.string, React.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() }; }, 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);