diff --git a/dist/DateRangePicker.js b/dist/DateRangePicker.js index 390505fd..12877967 100644 --- a/dist/DateRangePicker.js +++ b/dist/DateRangePicker.js @@ -89,8 +89,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ singleDateRange: _reactAddons2['default'].PropTypes.bool, showLegend: _reactAddons2['default'].PropTypes.bool, stateDefinitions: _reactAddons2['default'].PropTypes.object, - value: _utilsCustomPropTypes2['default'].momentOrMomentRange - }, + value: _utilsCustomPropTypes2['default'].momentOrMomentRange }, getDefaultProps: function getDefaultProps() { var date = new Date(); @@ -112,16 +111,13 @@ var DateRangePicker = _reactAddons2['default'].createClass({ '__default': { color: null, selectable: true, - label: null - } - }, + label: null } }, selectedLabel: 'Your selected dates', defaultState: '__default', dateStates: [], showLegend: false, onSelect: noop, - paginationArrowComponent: _PaginationArrow2['default'] - }; + paginationArrowComponent: _PaginationArrow2['default'] }; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { @@ -130,8 +126,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ this.setState({ dateStates: this.state.dateStates && _immutable2['default'].is(this.state.dateStates, nextDateStates) ? this.state.dateStates : nextDateStates, - enabledRange: this.state.enabledRange && _immutable2['default'].is(this.state.enabledRange, nextEnabledRange) ? this.state.enabledRange : nextEnabledRange - }); + enabledRange: this.state.enabledRange && _immutable2['default'].is(this.state.enabledRange, nextEnabledRange) ? this.state.enabledRange : nextEnabledRange }); }, getInitialState: function getInitialState() { @@ -170,8 +165,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ highlightRange: null, hideSelection: false, enabledRange: this.getEnabledRange(this.props), - dateStates: this.getDateStates(this.props) - }; + dateStates: this.getDateStates(this.props) }; }, getEnabledRange: function getEnabledRange(props) { @@ -198,11 +192,10 @@ var DateRangePicker = _reactAddons2['default'].createClass({ var start = r.start.startOf('day'); var end = r.end.startOf('day'); - if (!dateCursor.isSame(start)) { + if (!dateCursor.isSame(start, 'day')) { actualStates.push({ state: defaultState, - range: _momentRange2['default'].range(dateCursor, start) - }); + range: _momentRange2['default'].range(dateCursor, start) }); } actualStates.push(s); dateCursor = end; @@ -210,8 +203,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ actualStates.push({ state: defaultState, - range: _momentRange2['default'].range(dateCursor, maxDate) - }); + range: _momentRange2['default'].range(dateCursor, maxDate) }); // sanitize date states return _immutable2['default'].List(actualStates).map(function (s) { @@ -220,8 +212,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ range: s.range, state: s.state, selectable: def.get('selectable', true), - color: def.get('color') - }); + color: def.get('color') }); }); }, @@ -288,8 +279,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ highlightRange: function highlightRange(range) { this.setState({ highlightedRange: range, - highlightedDate: null - }); + highlightedDate: null }); if (typeof this.props.onHighlightRange === 'function') { this.props.onHighlightRange(range, this.statesForRange(range)); } @@ -297,8 +287,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ onUnHighlightDate: function onUnHighlightDate() { this.setState({ - highlightedDate: null - }); + highlightedDate: null }); }, onSelectDate: function onSelectDate(date) { @@ -351,8 +340,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ startRangeSelection: function startRangeSelection(date) { this.setState({ hideSelection: true, - selectedStartDate: date - }); + selectedStartDate: date }); if (typeof this.props.onSelectStart === 'function') { this.props.onSelectStart((0, _momentRange2['default'])(date)); } @@ -367,7 +355,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ }, statesForRange: function statesForRange(range) { - if (range.start.isSame(range.end)) { + if (range.start.isSame(range.end, 'day')) { return this.statesForDate(range.start); } return this.state.dateStates.filter(function (d) { @@ -382,8 +370,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ if (highlightedDate) { this.setState({ hideSelection: false, - highlightedDate: null - }); + highlightedDate: null }); this.props.onSelect(highlightedDate, this.statesForDate(highlightedDate)); } }, @@ -391,21 +378,19 @@ var DateRangePicker = _reactAddons2['default'].createClass({ completeRangeSelection: function completeRangeSelection() { var range = this.state.highlightedRange; - if (range && (!range.start.isSame(range.end) || this.props.singleDateRange)) { + if (range && (!range.start.isSame(range.end, 'day') || this.props.singleDateRange)) { this.setState({ selectedStartDate: null, highlightedRange: null, highlightedDate: null, - hideSelection: false - }); + hideSelection: false }); this.props.onSelect(range, this.statesForRange(range)); } }, highlightDate: function highlightDate(date) { this.setState({ - highlightedDate: date - }); + highlightedDate: date }); if (typeof this.props.onHighlightDate === 'function') { this.props.onHighlightDate(date, this.statesForDate(date)); } @@ -430,8 +415,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ monthDate.subtract(1, 'months'); this.setState({ year: monthDate.year(), - month: monthDate.month() - }); + month: monthDate.month() }); } }, @@ -456,8 +440,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ monthDate.add(1, 'months'); this.setState({ year: monthDate.year(), - month: monthDate.month() - }); + month: monthDate.month() }); } }, @@ -482,14 +465,12 @@ var DateRangePicker = _reactAddons2['default'].createClass({ this.setState({ year: year, - month: month - }); + month: month }); }, changeMonth: function changeMonth(date) { this.setState({ - month: date - }); + month: date }); }, renderCalendar: function renderCalendar(index) { @@ -510,7 +491,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ var monthDate = this.getMonthDate(); var year = monthDate.year(); var month = monthDate.month(); - var key = index + '-' + year + '-' + month; + var key = '' + index + '-' + year + '-' + month; var props = undefined; monthDate.add(index, 'months'); @@ -560,8 +541,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ onHighlightDate: this.onHighlightDate, onUnHighlightDate: this.onUnHighlightDate, dateRangesForDate: this.dateRangesForDate, - dateComponent: _calendarCalendarDate2['default'] - }; + dateComponent: _calendarCalendarDate2['default'] }; return _reactAddons2['default'].createElement(_calendarCalendarMonth2['default'], props); }, @@ -590,8 +570,7 @@ var DateRangePicker = _reactAddons2['default'].createClass({ ) : null, showLegend ? _reactAddons2['default'].createElement(_Legend2['default'], { stateDefinitions: stateDefinitions, selectedLabel: selectedLabel }) : null ); - } -}); + } }); exports['default'] = DateRangePicker; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/Legend.js b/dist/Legend.js index 5bcb3cd7..21d6af9b 100644 --- a/dist/Legend.js +++ b/dist/Legend.js @@ -23,8 +23,7 @@ var Legend = _reactAddons2['default'].createClass({ propTypes: { selectedLabel: _reactAddons2['default'].PropTypes.string.isRequired, - stateDefinitions: _reactAddons2['default'].PropTypes.object.isRequired - }, + stateDefinitions: _reactAddons2['default'].PropTypes.object.isRequired }, render: function render() { var _props = this.props; @@ -40,8 +39,7 @@ var Legend = _reactAddons2['default'].createClass({ def = stateDefinitions[name]; if (def.label && def.color) { style = { - backgroundColor: def.color - }; + backgroundColor: def.color }; items.push(_reactAddons2['default'].createElement( 'li', { className: this.cx({ element: 'LegendItem' }), key: name }, @@ -70,8 +68,7 @@ var Legend = _reactAddons2['default'].createClass({ ), items ); - } -}); + } }); exports['default'] = Legend; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/PaginationArrow.js b/dist/PaginationArrow.js index 8f60ed9b..fd948f44 100644 --- a/dist/PaginationArrow.js +++ b/dist/PaginationArrow.js @@ -29,13 +29,11 @@ var PaginationArrow = _reactAddons2['default'].createClass({ propTypes: { disabled: _reactAddons2['default'].PropTypes.bool, - direction: _reactAddons2['default'].PropTypes.oneOf(['next', 'previous']) - }, + direction: _reactAddons2['default'].PropTypes.oneOf(['next', 'previous']) }, getDefaultProps: function getDefaultProps() { return { - disabled: false - }; + disabled: false }; }, render: function render() { @@ -50,22 +48,19 @@ var PaginationArrow = _reactAddons2['default'].createClass({ var elementOpts = { modifiers: modifiers, - states: states - }; + states: states }; var iconOpts = { element: 'PaginationArrowIcon', modifiers: modifiers, - states: states - }; + states: states }; return _reactAddons2['default'].createElement( 'div', _extends({ className: this.cx(elementOpts) }, props), _reactAddons2['default'].createElement('div', { className: this.cx(iconOpts) }) ); - } -}); + } }); exports['default'] = PaginationArrow; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/calendar/CalendarDate.js b/dist/calendar/CalendarDate.js index 21e3f02d..702d2bd8 100644 --- a/dist/calendar/CalendarDate.js +++ b/dist/calendar/CalendarDate.js @@ -70,13 +70,11 @@ var CalendarDate = _reactAddons2['default'].createClass({ dateRangesForDate: _reactAddons2['default'].PropTypes.func, onHighlightDate: _reactAddons2['default'].PropTypes.func, onUnHighlightDate: _reactAddons2['default'].PropTypes.func, - onSelectDate: _reactAddons2['default'].PropTypes.func - }, + onSelectDate: _reactAddons2['default'].PropTypes.func }, getInitialState: function getInitialState() { return { - mouseDown: false - }; + mouseDown: false }; }, mouseUp: function mouseUp() { @@ -84,16 +82,14 @@ var CalendarDate = _reactAddons2['default'].createClass({ if (this.state.mouseDown) { this.setState({ - mouseDown: false - }); + mouseDown: false }); } document.removeEventListener('mouseup', this.mouseUp); }, mouseDown: function mouseDown() { this.setState({ - mouseDown: true - }); + mouseDown: true }); document.addEventListener('mouseup', this.mouseUp); }, @@ -103,8 +99,7 @@ var CalendarDate = _reactAddons2['default'].createClass({ if (this.state.mouseDown) { this.setState({ - mouseDown: false - }); + mouseDown: false }); } document.removeEventListener('touchend', this.touchEnd); }, @@ -112,8 +107,7 @@ var CalendarDate = _reactAddons2['default'].createClass({ touchStart: function touchStart(event) { event.preventDefault(); this.setState({ - mouseDown: true - }); + mouseDown: true }); document.addEventListener('touchend', this.touchEnd); }, @@ -126,8 +120,7 @@ var CalendarDate = _reactAddons2['default'].createClass({ this.props.onSelectDate(this.props.date); this.setState({ - mouseDown: false - }); + mouseDown: false }); } this.props.onUnHighlightDate(this.props.date); }, @@ -214,12 +207,10 @@ var CalendarDate = _reactAddons2['default'].createClass({ if (color) { style = { - backgroundColor: color - }; + backgroundColor: color }; cellStyle = { borderLeftColor: (0, _utilsLightenDarkenColor2['default'])(color, -10), - borderRightColor: (0, _utilsLightenDarkenColor2['default'])(color, -10) - }; + borderRightColor: (0, _utilsLightenDarkenColor2['default'])(color, -10) }; } } else { amColor = states.getIn([0, 'color']); @@ -257,8 +248,7 @@ var CalendarDate = _reactAddons2['default'].createClass({ selectionModifier ? _reactAddons2['default'].createElement(_CalendarSelection2['default'], { modifier: selectionModifier, pending: pending }) : null, highlightModifier ? _reactAddons2['default'].createElement(_CalendarHighlight2['default'], { modifier: highlightModifier }) : null ); - } -}); + } }); exports['default'] = CalendarDate; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/calendar/CalendarDatePeriod.js b/dist/calendar/CalendarDatePeriod.js index 06b476cf..22ef1592 100644 --- a/dist/calendar/CalendarDatePeriod.js +++ b/dist/calendar/CalendarDatePeriod.js @@ -27,8 +27,7 @@ var CalendarDatePeriod = _reactAddons2['default'].createClass({ propTypes: { color: _reactAddons2['default'].PropTypes.string, - period: _reactAddons2['default'].PropTypes.string - }, + period: _reactAddons2['default'].PropTypes.string }, render: function render() { var _props = this.props; @@ -43,8 +42,7 @@ var CalendarDatePeriod = _reactAddons2['default'].createClass({ } return _reactAddons2['default'].createElement('div', { style: style, className: this.cx({ modifiers: modifiers }) }); - } -}); + } }); exports['default'] = CalendarDatePeriod; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/calendar/CalendarHighlight.js b/dist/calendar/CalendarHighlight.js index 321a1e61..b741a5af 100644 --- a/dist/calendar/CalendarHighlight.js +++ b/dist/calendar/CalendarHighlight.js @@ -26,8 +26,7 @@ var CalendarHighlight = _reactAddons2['default'].createClass({ mixins: [_utilsBemMixin2['default'], _utilsPureRenderMixin2['default']], propTypes: { - modifier: _reactAddons2['default'].PropTypes.string - }, + modifier: _reactAddons2['default'].PropTypes.string }, render: function render() { var modifier = this.props.modifier; @@ -36,8 +35,7 @@ var CalendarHighlight = _reactAddons2['default'].createClass({ var states = {}; return _reactAddons2['default'].createElement('div', { className: this.cx({ states: states, modifiers: modifiers }) }); - } -}); + } }); exports['default'] = CalendarHighlight; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/calendar/CalendarMonth.js b/dist/calendar/CalendarMonth.js index 06c7c344..189f54bd 100644 --- a/dist/calendar/CalendarMonth.js +++ b/dist/calendar/CalendarMonth.js @@ -63,8 +63,7 @@ var CalendarMonth = _reactAddons2['default'].createClass({ highlightedRange: _reactAddons2['default'].PropTypes.object, onMonthChange: _reactAddons2['default'].PropTypes.func, onYearChange: _reactAddons2['default'].PropTypes.func, - value: _utilsCustomPropTypes2['default'].momentOrMomentRange - }, + value: _utilsCustomPropTypes2['default'].momentOrMomentRange }, renderDay: function renderDay(date, i) { var _props = this.props; @@ -84,22 +83,22 @@ var CalendarMonth = _reactAddons2['default'].createClass({ var isSelectedRangeStart = undefined; var isSelectedRangeEnd = undefined; - if (!hideSelection && value && _momentRange2['default'].isMoment(value) && value.isSame(d)) { + if (!hideSelection && value && _momentRange2['default'].isMoment(value) && value.isSame(d, 'day')) { isSelectedDate = true; } else if (!hideSelection && value && (0, _utilsIsMomentRange2['default'])(value) && value.contains(d)) { isInSelectedRange = true; - isSelectedRangeStart = value.start.isSame(d); - isSelectedRangeEnd = value.end.isSame(d); + isSelectedRangeStart = value.start.isSame(d, 'day'); + isSelectedRangeEnd = value.end.isSame(d, 'day'); } return _reactAddons2['default'].createElement(CalendarDate, _extends({ key: i, isToday: d.isSame((0, _momentRange2['default'])(), 'day'), isDisabled: !enabledRange.contains(d), - isHighlightedDate: !!(highlightedDate && highlightedDate.isSame(d)), - isHighlightedRangeStart: !!(highlightedRange && highlightedRange.start.isSame(d)), - isHighlightedRangeEnd: !!(highlightedRange && highlightedRange.end.isSame(d)), + isHighlightedDate: !!(highlightedDate && highlightedDate.isSame(d, 'day')), + isHighlightedRangeStart: !!(highlightedRange && highlightedRange.start.isSame(d, 'day')), + isHighlightedRangeEnd: !!(highlightedRange && highlightedRange.end.isSame(d, 'day')), isInHighlightedRange: !!(highlightedRange && highlightedRange.contains(d)), isSelectedDate: isSelectedDate, isSelectedRangeStart: isSelectedRangeStart, @@ -268,8 +267,7 @@ var CalendarMonth = _reactAddons2['default'].createClass({ ) ) ); - } -}); + } }); exports['default'] = CalendarMonth; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/calendar/CalendarSelection.js b/dist/calendar/CalendarSelection.js index 27d82aea..5a84d71d 100644 --- a/dist/calendar/CalendarSelection.js +++ b/dist/calendar/CalendarSelection.js @@ -27,8 +27,7 @@ var CalendarSelection = _reactAddons2['default'].createClass({ propTypes: { modifier: _reactAddons2['default'].PropTypes.string, - pending: _reactAddons2['default'].PropTypes.bool.isRequired - }, + pending: _reactAddons2['default'].PropTypes.bool.isRequired }, render: function render() { var _props = this.props; @@ -37,12 +36,10 @@ var CalendarSelection = _reactAddons2['default'].createClass({ var modifiers = _defineProperty({}, modifier, true); var states = { - pending: pending - }; + pending: pending }; return _reactAddons2['default'].createElement('div', { className: this.cx({ states: states, modifiers: modifiers }) }); - } -}); + } }); exports['default'] = CalendarSelection; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/utils/BemMixin.js b/dist/utils/BemMixin.js index 0a6b3ece..017f89f7 100644 --- a/dist/utils/BemMixin.js +++ b/dist/utils/BemMixin.js @@ -19,24 +19,20 @@ var _bemCx2 = _interopRequireDefault(_bemCx); var BemMixin = { propTypes: { bemNamespace: _react2['default'].PropTypes.string, - bemBlock: _react2['default'].PropTypes.string - }, + bemBlock: _react2['default'].PropTypes.string }, contextTypes: { bemNamespace: _react2['default'].PropTypes.string, - bemBlock: _react2['default'].PropTypes.string - }, + bemBlock: _react2['default'].PropTypes.string }, childContextTypes: { bemNamespace: _react2['default'].PropTypes.string, - bemBlock: _react2['default'].PropTypes.string - }, + bemBlock: _react2['default'].PropTypes.string }, getChildContext: function getChildContext() { return { bemNamespace: this.getBemNamespace(), - bemBlock: this.getBemBlock() - }; + bemBlock: this.getBemBlock() }; }, getBemNamespace: function getBemNamespace() { @@ -65,13 +61,11 @@ var BemMixin = { var opts = { namespace: this.getBemNamespace(), element: this.constructor.displayName, - block: this.getBemBlock() - }; + block: this.getBemBlock() }; _extends(opts, options); return (0, _bemCx2['default'])(opts); - } -}; + } }; exports['default'] = BemMixin; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/utils/CustomPropTypes.js b/dist/utils/CustomPropTypes.js index 8af6ce79..baea76c4 100644 --- a/dist/utils/CustomPropTypes.js +++ b/dist/utils/CustomPropTypes.js @@ -48,6 +48,5 @@ exports['default'] = { return null; } return new Error('\'' + propName + '\' must be a moment range'); - } -}; + } }; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/utils/PureRenderMixin.js b/dist/utils/PureRenderMixin.js index 99df30dd..76a6461e 100644 --- a/dist/utils/PureRenderMixin.js +++ b/dist/utils/PureRenderMixin.js @@ -13,8 +13,7 @@ var _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual); var PureRenderMixin = { shouldComponentUpdate: function shouldComponentUpdate(nextProps, nextState) { return !(0, _utilsShallowEqual2['default'])(this.props, nextProps) || !(0, _utilsShallowEqual2['default'])(this.state, nextState); - } -}; + } }; exports['default'] = PureRenderMixin; module.exports = exports['default']; \ No newline at end of file diff --git a/dist/utils/areMomentRangesEqual.js b/dist/utils/areMomentRangesEqual.js index cdbe72eb..cf4f8c4b 100644 --- a/dist/utils/areMomentRangesEqual.js +++ b/dist/utils/areMomentRangesEqual.js @@ -1,12 +1,12 @@ -"use strict"; +'use strict'; -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, '__esModule', { value: true }); -exports["default"] = areMomentRangesEqual; +exports['default'] = areMomentRangesEqual; function areMomentRangesEqual(r1, r2) { - return r1.start.isSame(r2.start) && r1.end.isSame(r2.end); + return r1.start.isSame(r2.start, 'day') && r1.end.isSame(r2.end, 'day'); } -module.exports = exports["default"]; \ No newline at end of file +module.exports = exports['default']; \ No newline at end of file diff --git a/dist/utils/bemCx.js b/dist/utils/bemCx.js index 76f2c071..e12371a3 100644 --- a/dist/utils/bemCx.js +++ b/dist/utils/bemCx.js @@ -18,13 +18,13 @@ function bemCx() { if (element) { if (namespace) { - baseClassName = namespace + '-' + block + '__' + element; + baseClassName = '' + namespace + '-' + block + '__' + element; } else { - baseClassName = block + '__' + element; + baseClassName = '' + block + '__' + element; } } else { if (namespace) { - baseClassName = namespace + '-' + block; + baseClassName = '' + namespace + '-' + block; } else { baseClassName = block; } @@ -40,7 +40,7 @@ function bemCx() { } states.forEach(function (state) { - bemClasses.push(baseClassName + '--is-' + state); + bemClasses.push('' + baseClassName + '--is-' + state); }); } @@ -52,11 +52,11 @@ function bemCx() { } modifiers.forEach(function (modifier) { - bemClasses.push(baseClassName + '--' + modifier); + bemClasses.push('' + baseClassName + '--' + modifier); if (states) { states.forEach(function (state) { - bemClasses.push(baseClassName + '--' + modifier + '--is-' + state); + bemClasses.push('' + baseClassName + '--' + modifier + '--is-' + state); }); } }); diff --git a/dist/utils/lightenDarkenColor.js b/dist/utils/lightenDarkenColor.js index 2cd22bd3..52020772 100644 --- a/dist/utils/lightenDarkenColor.js +++ b/dist/utils/lightenDarkenColor.js @@ -27,7 +27,7 @@ function lightenDarkenColor(col, amt) { r = 0; } - b = (num >> 8 & 0x00FF) + amt; + b = (num >> 8 & 255) + amt; if (b > 255) { b = 255; @@ -35,7 +35,7 @@ function lightenDarkenColor(col, amt) { b = 0; } - g = (num & 0x0000FF) + amt; + g = (num & 255) + amt; if (g > 255) { g = 255; diff --git a/dist/utils/shallowEqual.js b/dist/utils/shallowEqual.js index 442ffd39..6b94ca20 100644 --- a/dist/utils/shallowEqual.js +++ b/dist/utils/shallowEqual.js @@ -30,7 +30,7 @@ function shallowEqual(objA, objB) { if (!objB.hasOwnProperty(key)) { return false; } else if (_momentRange2['default'].isMoment(objA[key]) && _momentRange2['default'].isMoment(objB[key])) { - if (!objA[key].isSame(objB[key])) { + if (!objA[key].isSame(objB[key], 'day')) { return false; } } else if ((0, _isMomentRange2['default'])(objA[key]) && (0, _isMomentRange2['default'])(objB[key]) && !(0, _areMomentRangesEqual2['default'])(objA[key], objB[key])) { diff --git a/package.json b/package.json index bdd75cf4..50a33384 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-daterange-picker", - "version": "0.9.0", + "version": "0.10.0", "description": "A React based date range picker", "author": "Jonathan Kim ", "contributors": [