UNPKG

ldx-widgets

Version:

widgets

107 lines (96 loc) 3.31 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, wrapperClass: PropTypes.string, className: PropTypes.string, minDate: PropTypes.object, maxDate: PropTypes.object, onChange: PropTypes.func.isRequired, tabIndex: PropTypes.number, hasDefaultDate: PropTypes.bool, selected: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) }, getDefaultProps: function() { return { hasDefaultDate: true, placeholderText: 'Select a date', dateFormat: 'MM/DD/YYYY', className: null, includeTime: false, returnDateString: null, onChange: function() {} }; }, getInitialState: function() { var hasDefaultDate, selected; hasDefaultDate = this.props.hasDefaultDate; if (hasDefaultDate && (this.props.selected != null)) { selected = this.props.selected; } else if (hasDefaultDate) { selected = moment(); } else { selected = null; } return { selected: selected }; }, 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, wrapperClass; props = _.clone(this.props); props.onChange = this.handleDateChange; wrapperClass = props.wrapperClass; mainClass = 'datepicker-wrapper'; if (wrapperClass != null) { mainClass += " " + wrapperClass; } 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 hasDefaultDate, ref1, returnDateString, selected; ref1 = this.props, returnDateString = ref1.returnDateString, hasDefaultDate = ref1.hasDefaultDate; selected = this.state.selected; if ((returnDateString != null) && (selected != null)) { return selected.format(returnDateString); } else if (selected != null) { return selected; } else if (hasDefaultDate) { return moment(); } else { return ''; } } }); module.exports = DatePicker; }).call(this);