From c4475a6a28d1b3984762b85e9a32b433a80a5585 Mon Sep 17 00:00:00 2001 From: John Wehr Date: Wed, 21 Sep 2016 19:48:44 -0400 Subject: [PATCH] Version bump to 3.5 --- lib/index.js | 43 ++++++++++++++++--------------------------- package.json | 2 +- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/lib/index.js b/lib/index.js index b6b766b..fb1b502 100644 --- a/lib/index.js +++ b/lib/index.js @@ -12,25 +12,7 @@ var _reactDom = require('react-dom'); var _reactDom2 = _interopRequireDefault(_reactDom); -var _FormControl = require('react-bootstrap/lib/FormControl'); - -var _FormControl2 = _interopRequireDefault(_FormControl); - -var _InputGroup = require('react-bootstrap/lib/InputGroup'); - -var _InputGroup2 = _interopRequireDefault(_InputGroup); - -var _Popover = require('react-bootstrap/lib/Popover'); - -var _Popover2 = _interopRequireDefault(_Popover); - -var _Button = require('react-bootstrap/lib/Button'); - -var _Button2 = _interopRequireDefault(_Button); - -var _Overlay = require('react-bootstrap/lib/Overlay'); - -var _Overlay2 = _interopRequireDefault(_Overlay); +var _reactBootstrap = require('react-bootstrap'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -87,7 +69,8 @@ var Calendar = _react2.default.createClass({ displayDate: _react2.default.PropTypes.object.isRequired, onChange: _react2.default.PropTypes.func.isRequired, dayLabels: _react2.default.PropTypes.array.isRequired, - cellPadding: _react2.default.PropTypes.string.isRequired + cellPadding: _react2.default.PropTypes.string.isRequired, + weekStartsOnMonday: _react2.default.PropTypes.bool }, handleClick: function handleClick(day) { var newSelectedDate = new Date(this.props.displayDate); @@ -111,7 +94,7 @@ var Calendar = _react2.default.createClass({ var year = this.props.displayDate.getFullYear(); var month = this.props.displayDate.getMonth(); var firstDay = new Date(year, month, 1); - var startingDay = firstDay.getDay(); + var startingDay = this.props.weekStartsOnMonday ? firstDay.getDay() - 1 : firstDay.getDay(); var monthLength = daysInMonth[month]; if (month == 1) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { @@ -186,6 +169,7 @@ exports.default = _react2.default.createClass({ monthLabels: _react2.default.PropTypes.array, onChange: _react2.default.PropTypes.func, onClear: _react2.default.PropTypes.func, + weekStartsOnMonday: _react2.default.PropTypes.bool, clearButtonElement: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.object]), previousButtonElement: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.object]), nextButtonElement: _react2.default.PropTypes.oneOfType([_react2.default.PropTypes.string, _react2.default.PropTypes.object]), @@ -208,6 +192,11 @@ exports.default = _react2.default.createClass({ }, getInitialState: function getInitialState() { var state = this.makeDateValues(this.props.value); + if (this.props.weekStartsOnMonday) { + state.dayLabels = this.props.dayLabels.slice(1).concat(this.props.dayLabels.slice(0, 1)); + } else { + state.dayLabels = this.props.dayLabels; + } state.focused = false; state.inputFocused = false; state.placeholder = this.props.placeholder || this.props.dateFormat; @@ -433,24 +422,24 @@ exports.default = _react2.default.createClass({ monthLabels: this.props.monthLabels, dateFormat: this.props.dateFormat }); return _react2.default.createElement( - _InputGroup2.default, + _reactBootstrap.InputGroup, { ref: 'inputGroup', bsClass: this.props.bsClass, bsSize: this.props.bsSize, id: this.props.id ? this.props.id + "_group" : null }, _react2.default.createElement( - _Overlay2.default, + _reactBootstrap.Overlay, { rootClose: true, onHide: this.handleHide, show: this.state.focused, container: function container() { return _reactDom2.default.findDOMNode(_this2.refs.overlayContainer); }, target: function target() { return _reactDom2.default.findDOMNode(_this2.refs.input); }, placement: this.props.calendarPlacement, delayHide: 200 }, _react2.default.createElement( - _Popover2.default, + _reactBootstrap.Popover, { id: 'calendar', title: calendarHeader }, - _react2.default.createElement(Calendar, { cellPadding: this.props.cellPadding, selectedDate: this.state.selectedDate, displayDate: this.state.displayDate, onChange: this.onChangeDate, dayLabels: this.props.dayLabels }) + _react2.default.createElement(Calendar, { cellPadding: this.props.cellPadding, selectedDate: this.state.selectedDate, displayDate: this.state.displayDate, onChange: this.onChangeDate, dayLabels: this.state.dayLabels, weekStartsOnMonday: this.props.weekStartsOnMonday }) ) ), _react2.default.createElement('div', { ref: 'overlayContainer' }), _react2.default.createElement('input', { ref: 'hiddenInput', type: 'hidden', id: this.props.id, name: this.props.name, value: this.state.value || '' }), - _react2.default.createElement(_FormControl2.default, { + _react2.default.createElement(_reactBootstrap.FormControl, { onKeyDown: this.handleKeyDown, value: this.state.inputValue || '', ref: 'input', @@ -461,7 +450,7 @@ exports.default = _react2.default.createClass({ onChange: this.handleInputChange }), _react2.default.createElement( - _InputGroup2.default.Addon, + _reactBootstrap.InputGroup.Addon, { onClick: this.clear, style: { cursor: this.state.inputValue ? "pointer" : "not-allowed" } }, this.props.clearButtonElement ) diff --git a/package.json b/package.json index 523037b..2f30087 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "picker" ], "main": "lib/index.js", - "version": "3.4.0", + "version": "3.5.0", "description": "React-Bootstrap based date picker.", "directories": { "test": "test"