Merge branch 'master' into alex1712-master
# Conflicts:
# examples/basic/basic.jsx
# src/DateTimeField.jsx
| | |
| | | | **daysOfWeekDisabled** | array of integer | [] | Disables clicking on some days. Goes from 0 (Sunday) to 6 (Saturday). | |
| | | | **viewMode** | string or number | 'days' | The default view to display when the picker is shown. ('years', 'months', 'days') | |
| | | | **inputProps** | object | undefined | Defines additional attributes for the input element of the component. | |
| | | | **minDate** | moment | undefined | The earliest date allowed for entry in the calendar view. | |
| | | | **maxDate** | moment | undefined | The latest date allowed for entry in the calendar view. | |
| | | |
| | | Update Warning |
| | | =============================== |
| | |
| | | { |
| | | "name": "react-bootstrap-datetimepicker", |
| | | "version": "0.0.14", |
| | | "version": "0.0.15", |
| | | "main": [ |
| | | "./dist/react-bootstrap-datetimepicker.min.js" |
| | | ], |
| | |
| | | format: React.PropTypes.string, |
| | | inputFormat: React.PropTypes.string, |
| | | inputProps: React.PropTypes.object, |
| | | defaultText: React.PropTypes.string |
| | | defaultText: React.PropTypes.string, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getDefaultProps: function() { |
| | | return { |
| | |
| | | |
| | | }, |
| | | setSelectedDate: function(e) { |
| | | return this.setState({ |
| | | selectedDate: this.state.viewDate.clone().date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes()) |
| | | }, function() { |
| | | this.closePicker(); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | if (e.target.className && !e.target.className.match(/disabled/g)) { |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | selectedDate: this.state.viewDate.clone().date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes()) |
| | | }, function () { |
| | | this.closePicker(); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | }); |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | setSelectedHour: function(e) { |
| | | return this.setState({ |
| | |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().add(1, "minutes") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | }); |
| | | }); |
| | | }, |
| | | addHour: function() { |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().add(1, "hours") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | }); |
| | | }); |
| | | }, |
| | | addMonth: function() { |
| | |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().subtract(1, "minutes") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | }); |
| | | }); |
| | | }, |
| | | subtractHour: function() { |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().subtract(1, "hours") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.props.inputFormat) |
| | | }); |
| | | }); |
| | | }, |
| | | subtractMonth: function() { |
| | |
| | | showToday: this.props.showToday, |
| | | viewMode: this.props.viewMode, |
| | | daysOfWeekDisabled: this.props.daysOfWeekDisabled, |
| | | minDate: this.props.minDate, |
| | | maxDate: this.props.maxDate, |
| | | addDecade: this.addDecade, |
| | | addYear: this.addYear, |
| | | addMonth: this.addMonth, |
| | |
| | | addMinute: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | togglePeriod: React.PropTypes.func.isRequired |
| | | togglePeriod: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | renderDatePicker: function() { |
| | | if (this.props.showDatePicker) { |
| | |
| | | setViewMonth: this.props.setViewMonth, |
| | | setViewYear: this.props.setViewYear, |
| | | addDecade: this.props.addDecade, |
| | | subtractDecade: this.props.subtractDecade} |
| | | subtractDecade: this.props.subtractDecade, |
| | | minDate: this.props.minDate, |
| | | maxDate: this.props.maxDate} |
| | | ) |
| | | ) |
| | | ); |
| | |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | DateTimePickerDays = __webpack_require__(8); |
| | | DateTimePickerDays = __webpack_require__(10); |
| | | |
| | | DateTimePickerMonths = __webpack_require__(9); |
| | | DateTimePickerMonths = __webpack_require__(11); |
| | | |
| | | DateTimePickerYears = __webpack_require__(10); |
| | | DateTimePickerYears = __webpack_require__(12); |
| | | |
| | | DateTimePickerDate = React.createClass({displayName: "DateTimePickerDate", |
| | | propTypes: { |
| | |
| | | setViewMonth: React.PropTypes.func.isRequired, |
| | | setViewYear: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | subtractDecade: React.PropTypes.func.isRequired |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getInitialState: function() { |
| | | var viewModes = { |
| | |
| | | selectedDate: this.props.selectedDate, |
| | | showToday: this.props.showToday, |
| | | daysOfWeekDisabled: this.props.daysOfWeekDisabled, |
| | | showMonths: this.showMonths} |
| | | showMonths: this.showMonths, |
| | | minDate: this.props.minDate, |
| | | maxDate: this.props.maxDate} |
| | | ) |
| | | ); |
| | | } else { |
| | |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | DateTimePickerMinutes = __webpack_require__(11); |
| | | DateTimePickerMinutes = __webpack_require__(8); |
| | | |
| | | DateTimePickerHours = __webpack_require__(12); |
| | | DateTimePickerHours = __webpack_require__(9); |
| | | |
| | | Glyphicon = __webpack_require__(4).Glyphicon; |
| | | |
| | |
| | | /* 8 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerDays, React, moment; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | moment = __webpack_require__(3); |
| | | |
| | | DateTimePickerDays = React.createClass({displayName: "DateTimePickerDays", |
| | | propTypes: { |
| | | subtractMonth: React.PropTypes.func.isRequired, |
| | | addMonth: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | showToday: React.PropTypes.bool, |
| | | daysOfWeekDisabled: React.PropTypes.array, |
| | | setSelectedDate: React.PropTypes.func.isRequired, |
| | | showMonths: React.PropTypes.func.isRequired |
| | | }, |
| | | getDefaultProps: function() { |
| | | return { |
| | | showToday: true |
| | | }; |
| | | }, |
| | | renderDays: function() { |
| | | var cells, classes, days, html, i, month, nextMonth, prevMonth, row, year, _i, _len, _ref; |
| | | year = this.props.viewDate.year(); |
| | | month = this.props.viewDate.month(); |
| | | prevMonth = this.props.viewDate.clone().subtract(1, "months"); |
| | | days = prevMonth.daysInMonth(); |
| | | prevMonth.date(days).startOf('week'); |
| | | nextMonth = moment(prevMonth).clone().add(42, "d"); |
| | | html = []; |
| | | cells = []; |
| | | while (prevMonth.isBefore(nextMonth)) { |
| | | classes = { |
| | | day: true |
| | | }; |
| | | if (prevMonth.year() < year || (prevMonth.year() === year && prevMonth.month() < month)) { |
| | | classes['old'] = true; |
| | | } else if (prevMonth.year() > year || (prevMonth.year() === year && prevMonth.month() > month)) { |
| | | classes['new'] = true; |
| | | } |
| | | if (prevMonth.isSame(moment({ |
| | | y: this.props.selectedDate.year(), |
| | | M: this.props.selectedDate.month(), |
| | | d: this.props.selectedDate.date() |
| | | }))) { |
| | | classes['active'] = true; |
| | | } |
| | | if (this.props.showToday) { |
| | | if (prevMonth.isSame(moment(), 'day')) { |
| | | classes['today'] = true; |
| | | } |
| | | } |
| | | if (this.props.daysOfWeekDisabled) { |
| | | _ref = this.props.daysOfWeekDisabled; |
| | | for (_i = 0, _len = _ref.length; _i < _len; _i++) { |
| | | i = _ref[_i]; |
| | | if (prevMonth.day() === this.props.daysOfWeekDisabled[i]) { |
| | | classes['disabled'] = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | cells.push(React.createElement("td", {key: prevMonth.month() + '-' + prevMonth.date(), className: React.addons.classSet(classes), onClick: this.props.setSelectedDate}, prevMonth.date())); |
| | | if (prevMonth.weekday() === moment().endOf('week').weekday()) { |
| | | row = React.createElement("tr", {key: prevMonth.month() + '-' + prevMonth.date()}, cells); |
| | | html.push(row); |
| | | cells = []; |
| | | } |
| | | prevMonth.add(1, "d"); |
| | | } |
| | | return html; |
| | | }, |
| | | render: function() { |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-days", style: {display: 'block'}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractMonth}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5", onClick: this.props.showMonths}, moment.months()[this.props.viewDate.month()], " ", this.props.viewDate.year()), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addMonth}, "›") |
| | | ), |
| | | |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "dow"}, "Su"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Mo"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Tu"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "We"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Th"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Fr"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Sa") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | this.renderDays() |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerDays; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 9 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerMonths, React, moment; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | moment = __webpack_require__(3); |
| | | |
| | | DateTimePickerMonths = React.createClass({displayName: "DateTimePickerMonths", |
| | | propTypes: { |
| | | subtractYear: React.PropTypes.func.isRequired, |
| | | addYear: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | showYears: React.PropTypes.func.isRequired, |
| | | setViewMonth: React.PropTypes.func.isRequired |
| | | }, |
| | | renderMonths: function() { |
| | | var classes, i, month, months, monthsShort; |
| | | month = this.props.selectedDate.month(); |
| | | monthsShort = moment.monthsShort(); |
| | | i = 0; |
| | | months = []; |
| | | while (i < 12) { |
| | | classes = { |
| | | month: true, |
| | | 'active': i === month && this.props.viewDate.year() === this.props.selectedDate.year() |
| | | }; |
| | | months.push(React.createElement("span", {className: React.addons.classSet(classes), onClick: this.props.setViewMonth}, monthsShort[i])); |
| | | i++; |
| | | } |
| | | return months; |
| | | }, |
| | | render: function() { |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-months", style: {display: 'block'}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractYear}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5", onClick: this.props.showYears}, this.props.viewDate.year()), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addYear}, "›") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("td", {colSpan: "7"}, this.renderMonths()) |
| | | ) |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerMonths; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 10 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerYears, React; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | DateTimePickerYears = React.createClass({displayName: "DateTimePickerYears", |
| | | propTypes: { |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | setViewYear: React.PropTypes.func.isRequired |
| | | }, |
| | | renderYears: function() { |
| | | var classes, i, year, years; |
| | | years = []; |
| | | year = parseInt(this.props.viewDate.year() / 10, 10) * 10; |
| | | year--; |
| | | i = -1; |
| | | while (i < 11) { |
| | | classes = { |
| | | year: true, |
| | | old: i === -1 | i === 10, |
| | | active: this.props.selectedDate.year() === year |
| | | }; |
| | | years.push(React.createElement("span", {className: React.addons.classSet(classes), onClick: this.props.setViewYear}, year)); |
| | | year++; |
| | | i++; |
| | | } |
| | | return years; |
| | | }, |
| | | render: function() { |
| | | var year; |
| | | year = parseInt(this.props.viewDate.year() / 10, 10) * 10; |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-years", style: {display: "block"}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractDecade}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5"}, year, " - ", year+9), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addDecade}, "›") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("td", {colSpan: "7"}, this.renderYears()) |
| | | ) |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerYears; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 11 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerMinutes, React; |
| | | |
| | | React = __webpack_require__(2); |
| | |
| | | |
| | | |
| | | /***/ }, |
| | | /* 12 */ |
| | | /* 9 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerHours, React; |
| | |
| | | module.exports = DateTimePickerHours; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 10 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerDays, React, moment; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | moment = __webpack_require__(3); |
| | | |
| | | DateTimePickerDays = React.createClass({displayName: "DateTimePickerDays", |
| | | propTypes: { |
| | | subtractMonth: React.PropTypes.func.isRequired, |
| | | addMonth: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | showToday: React.PropTypes.bool, |
| | | daysOfWeekDisabled: React.PropTypes.array, |
| | | setSelectedDate: React.PropTypes.func.isRequired, |
| | | showMonths: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getDefaultProps: function() { |
| | | return { |
| | | showToday: true |
| | | }; |
| | | }, |
| | | renderDays: function() { |
| | | var cells, classes, days, html, i, month, nextMonth, prevMonth, minDate, maxDate, row, year, _i, _len, _ref; |
| | | year = this.props.viewDate.year(); |
| | | month = this.props.viewDate.month(); |
| | | prevMonth = this.props.viewDate.clone().subtract(1, "months"); |
| | | days = prevMonth.daysInMonth(); |
| | | prevMonth.date(days).startOf('week'); |
| | | nextMonth = moment(prevMonth).clone().add(42, "d"); |
| | | minDate = this.props.minDate ? this.props.minDate.clone().subtract(1, 'days') : this.props.minDate; |
| | | maxDate = this.props.maxDate ? this.props.maxDate.clone() : this.props.maxDate; |
| | | html = []; |
| | | cells = []; |
| | | while (prevMonth.isBefore(nextMonth)) { |
| | | classes = { |
| | | day: true |
| | | }; |
| | | if (prevMonth.year() < year || (prevMonth.year() === year && prevMonth.month() < month)) { |
| | | classes['old'] = true; |
| | | } else if (prevMonth.year() > year || (prevMonth.year() === year && prevMonth.month() > month)) { |
| | | classes['new'] = true; |
| | | } |
| | | if (prevMonth.isSame(moment({ |
| | | y: this.props.selectedDate.year(), |
| | | M: this.props.selectedDate.month(), |
| | | d: this.props.selectedDate.date() |
| | | }))) { |
| | | classes['active'] = true; |
| | | } |
| | | if (this.props.showToday) { |
| | | if (prevMonth.isSame(moment(), 'day')) { |
| | | classes['today'] = true; |
| | | } |
| | | } |
| | | if ((minDate && prevMonth.isBefore(minDate)) || (maxDate && prevMonth.isAfter(maxDate))) { |
| | | classes['disabled'] = true; |
| | | } |
| | | if (this.props.daysOfWeekDisabled) { |
| | | _ref = this.props.daysOfWeekDisabled; |
| | | for (_i = 0, _len = _ref.length; _i < _len; _i++) { |
| | | i = _ref[_i]; |
| | | if (prevMonth.day() === this.props.daysOfWeekDisabled[i]) { |
| | | classes['disabled'] = true; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | cells.push(React.createElement("td", {key: prevMonth.month() + '-' + prevMonth.date(), className: React.addons.classSet(classes), onClick: this.props.setSelectedDate}, prevMonth.date())); |
| | | if (prevMonth.weekday() === moment().endOf('week').weekday()) { |
| | | row = React.createElement("tr", {key: prevMonth.month() + '-' + prevMonth.date()}, cells); |
| | | html.push(row); |
| | | cells = []; |
| | | } |
| | | prevMonth.add(1, "d"); |
| | | } |
| | | return html; |
| | | }, |
| | | render: function() { |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-days", style: {display: 'block'}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractMonth}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5", onClick: this.props.showMonths}, moment.months()[this.props.viewDate.month()], " ", this.props.viewDate.year()), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addMonth}, "›") |
| | | ), |
| | | |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "dow"}, "Su"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Mo"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Tu"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "We"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Th"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Fr"), |
| | | |
| | | React.createElement("th", {className: "dow"}, "Sa") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | this.renderDays() |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerDays; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 11 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerMonths, React, moment; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | moment = __webpack_require__(3); |
| | | |
| | | DateTimePickerMonths = React.createClass({displayName: "DateTimePickerMonths", |
| | | propTypes: { |
| | | subtractYear: React.PropTypes.func.isRequired, |
| | | addYear: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | showYears: React.PropTypes.func.isRequired, |
| | | setViewMonth: React.PropTypes.func.isRequired |
| | | }, |
| | | renderMonths: function() { |
| | | var classes, i, month, months, monthsShort; |
| | | month = this.props.selectedDate.month(); |
| | | monthsShort = moment.monthsShort(); |
| | | i = 0; |
| | | months = []; |
| | | while (i < 12) { |
| | | classes = { |
| | | month: true, |
| | | 'active': i === month && this.props.viewDate.year() === this.props.selectedDate.year() |
| | | }; |
| | | months.push(React.createElement("span", {className: React.addons.classSet(classes), onClick: this.props.setViewMonth}, monthsShort[i])); |
| | | i++; |
| | | } |
| | | return months; |
| | | }, |
| | | render: function() { |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-months", style: {display: 'block'}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractYear}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5", onClick: this.props.showYears}, this.props.viewDate.year()), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addYear}, "›") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("td", {colSpan: "7"}, this.renderMonths()) |
| | | ) |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerMonths; |
| | | |
| | | |
| | | /***/ }, |
| | | /* 12 */ |
| | | /***/ function(module, exports, __webpack_require__) { |
| | | |
| | | var DateTimePickerYears, React; |
| | | |
| | | React = __webpack_require__(2); |
| | | |
| | | DateTimePickerYears = React.createClass({displayName: "DateTimePickerYears", |
| | | propTypes: { |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | viewDate: React.PropTypes.object.isRequired, |
| | | selectedDate: React.PropTypes.object.isRequired, |
| | | setViewYear: React.PropTypes.func.isRequired |
| | | }, |
| | | renderYears: function() { |
| | | var classes, i, year, years; |
| | | years = []; |
| | | year = parseInt(this.props.viewDate.year() / 10, 10) * 10; |
| | | year--; |
| | | i = -1; |
| | | while (i < 11) { |
| | | classes = { |
| | | year: true, |
| | | old: i === -1 | i === 10, |
| | | active: this.props.selectedDate.year() === year |
| | | }; |
| | | years.push(React.createElement("span", {className: React.addons.classSet(classes), onClick: this.props.setViewYear}, year)); |
| | | year++; |
| | | i++; |
| | | } |
| | | return years; |
| | | }, |
| | | render: function() { |
| | | var year; |
| | | year = parseInt(this.props.viewDate.year() / 10, 10) * 10; |
| | | return ( |
| | | React.createElement("div", {className: "datepicker-years", style: {display: "block"}}, |
| | | React.createElement("table", {className: "table-condensed"}, |
| | | React.createElement("thead", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("th", {className: "prev", onClick: this.props.subtractDecade}, "‹"), |
| | | |
| | | React.createElement("th", {className: "switch", colSpan: "5"}, year, " - ", year+9), |
| | | |
| | | React.createElement("th", {className: "next", onClick: this.props.addDecade}, "›") |
| | | ) |
| | | ), |
| | | |
| | | React.createElement("tbody", null, |
| | | React.createElement("tr", null, |
| | | React.createElement("td", {colSpan: "7"}, this.renderYears()) |
| | | ) |
| | | ) |
| | | ) |
| | | ) |
| | | ); |
| | | } |
| | | }); |
| | | |
| | | module.exports = DateTimePickerYears; |
| | | |
| | | |
| | | /***/ } |
| | | /******/ ]) |
| | | }); |
| | |
| | | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React"),require("moment"),require("ReactBootstrap")):"function"==typeof define&&define.amd?define(["React","moment","ReactBootstrap"],t):"object"==typeof exports?exports.ReactBootstrapDatetimepicker=t(require("React"),require("moment"),require("ReactBootstrap")):e.ReactBootstrapDatetimepicker=t(e.React,e.moment,e.ReactBootstrap)}(this,function(e,t,s){return function(e){function t(r){if(s[r])return s[r].exports;var a=s[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){e.exports=s(1)},function(e,t,s){var r,a,i,o,n;o=s(2),a=s(5),n=s(3),i=s(4).Glyphicon,r=o.createClass({displayName:"DateTimeField",propTypes:{dateTime:o.PropTypes.string,onChange:o.PropTypes.func,format:o.PropTypes.string,inputFormat:o.PropTypes.string,inputProps:o.PropTypes.object,defaultText:o.PropTypes.string},getDefaultProps:function(){return{dateTime:n().format("x"),format:"x",inputFormat:"MM/DD/YY h:mm A",showToday:!0,viewMode:"days",daysOfWeekDisabled:[],onChange:function(e){console.log(e)}}},getInitialState:function(){return{showDatePicker:!0,showTimePicker:!1,widgetStyle:{display:"block",position:"absolute",left:-9999,zIndex:"9999 !important"},viewDate:n(this.props.dateTime,this.props.format,!0).startOf("month"),selectedDate:n(this.props.dateTime,this.props.format,!0),inputValue:"undefined"!=typeof this.props.defaultText?this.props.defaultText:n(this.props.dateTime,this.props.format,!0).format(this.props.inputFormat)}},componentWillReceiveProps:function(e){return n(e.dateTime,e.format,!0).isValid()?this.setState({viewDate:n(e.dateTime,e.format,!0).startOf("month"),selectedDate:n(e.dateTime,e.format,!0),inputValue:n(e.dateTime,e.format,!0).format(e.inputFormat)}):void 0},onChange:function(e){var t=null==e.target?e:e.target.value;return n(t,this.props.inputFormat,!0).isValid()&&this.setState({selectedDate:n(t,this.props.inputFormat,!0),viewDate:n(t,this.props.inputFormat,!0).startOf("month")}),this.setState({inputValue:t},function(){return this.props.onChange(n(this.state.inputValue,this.props.inputFormat,!0).format(this.props.format))})},setSelectedDate:function(e){return this.setState({selectedDate:this.state.viewDate.clone().date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes())},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},setSelectedHour:function(e){return this.setState({selectedDate:this.state.selectedDate.clone().hour(parseInt(e.target.innerHTML)).minute(this.state.selectedDate.minutes())},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},setSelectedMinute:function(e){return this.setState({selectedDate:this.state.selectedDate.clone().hour(this.state.selectedDate.hours()).minute(parseInt(e.target.innerHTML))},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},setViewMonth:function(e){return this.setState({viewDate:this.state.viewDate.clone().month(e)})},setViewYear:function(e){return this.setState({viewDate:this.state.viewDate.clone().year(e)})},addMinute:function(){return this.setState({selectedDate:this.state.selectedDate.clone().add(1,"minutes")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format))})},addHour:function(){return this.setState({selectedDate:this.state.selectedDate.clone().add(1,"hours")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format))})},addMonth:function(){return this.setState({viewDate:this.state.viewDate.add(1,"months")})},addYear:function(){return this.setState({viewDate:this.state.viewDate.add(1,"years")})},addDecade:function(){return this.setState({viewDate:this.state.viewDate.add(10,"years")})},subtractMinute:function(){return this.setState({selectedDate:this.state.selectedDate.clone().subtract(1,"minutes")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format))})},subtractHour:function(){return this.setState({selectedDate:this.state.selectedDate.clone().subtract(1,"hours")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format))})},subtractMonth:function(){return this.setState({viewDate:this.state.viewDate.subtract(1,"months")})},subtractYear:function(){return this.setState({viewDate:this.state.viewDate.subtract(1,"years")})},subtractDecade:function(){return this.setState({viewDate:this.state.viewDate.subtract(10,"years")})},togglePeriod:function(){return this.onChange(this.state.selectedDate.hour()>12?this.state.selectedDate.clone().subtract(12,"hours").format(this.props.inputFormat):this.state.selectedDate.clone().add(12,"hours").format(this.props.inputFormat))},togglePicker:function(){return this.setState({showDatePicker:!this.state.showDatePicker,showTimePicker:!this.state.showTimePicker})},onClick:function(){var e,t,s,r,a,i;return this.state.showPicker?this.closePicker():(this.setState({showPicker:!0}),t=this.refs.dtpbutton.getDOMNode().getBoundingClientRect(),e={"bootstrap-datetimepicker-widget":!0,"dropdown-menu":!0},s={top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft},s.top=s.top+this.refs.datetimepicker.getDOMNode().offsetHeight,a=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop,r="up"===this.props.direction?"top":"bottom"===this.props.direction?"bottom":"auto"===this.props.direction?s.top+this.refs.widget.getDOMNode().offsetHeight>window.offsetHeight+a&&this.refs.widget.offsetHeight+this.refs.datetimepicker.getDOMNode().offsetHeight>s.top?"top":"bottom":void 0,"top"===r?(s.top=-this.refs.widget.getDOMNode().offsetHeight-this.getDOMNode().clientHeight-2,e.top=!0,e.bottom=!1,e["pull-right"]=!0):(s.top=40,e.top=!1,e.bottom=!0,e["pull-right"]=!0),i={display:"block",position:"absolute",top:s.top,left:"auto",right:40},this.setState({widgetStyle:i,widgetClasses:e}))},closePicker:function(e){var t;return t=this.state.widgetStyle,t.left=-9999,t.display="none",this.setState({showPicker:!1,widgetStyle:t})},renderOverlay:function(){var e;return e={position:"fixed",top:0,bottom:0,left:0,right:0,zIndex:"999"},this.state.showPicker?o.createElement("div",{style:e,onClick:this.closePicker}):o.createElement("span",null)},render:function(){return o.createElement("div",null,this.renderOverlay(),o.createElement(a,{ref:"widget",widgetClasses:this.state.widgetClasses,widgetStyle:this.state.widgetStyle,showDatePicker:this.state.showDatePicker,showTimePicker:this.state.showTimePicker,viewDate:this.state.viewDate,selectedDate:this.state.selectedDate,showToday:this.props.showToday,viewMode:this.props.viewMode,daysOfWeekDisabled:this.props.daysOfWeekDisabled,addDecade:this.addDecade,addYear:this.addYear,addMonth:this.addMonth,addHour:this.addHour,addMinute:this.addMinute,subtractDecade:this.subtractDecade,subtractYear:this.subtractYear,subtractMonth:this.subtractMonth,subtractHour:this.subtractHour,subtractMinute:this.subtractMinute,setViewYear:this.setViewYear,setViewMonth:this.setViewMonth,setSelectedDate:this.setSelectedDate,setSelectedHour:this.setSelectedHour,setSelectedMinute:this.setSelectedMinute,togglePicker:this.togglePicker,togglePeriod:this.togglePeriod}),o.createElement("div",{className:"input-group date",ref:"datetimepicker"},o.createElement("input",o.__spread({type:"text",className:"form-control",onChange:this.onChange,value:this.state.inputValue},this.props.inputProps)),o.createElement("span",{className:"input-group-addon",onClick:this.onClick,onBlur:this.onBlur,ref:"dtpbutton"},o.createElement(i,{glyph:"calendar"}))))}}),e.exports=r},function(t,s,r){t.exports=e},function(e,s,r){e.exports=t},function(e,t,r){e.exports=s},function(e,t,s){var r,a,i,o,n;n=s(2),a=s(6),i=s(7),o=s(4).Glyphicon,r=n.createClass({displayName:"DateTimePicker",propTypes:{showDatePicker:n.PropTypes.bool,showTimePicker:n.PropTypes.bool,subtractMonth:n.PropTypes.func.isRequired,addMonth:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,showToday:n.PropTypes.bool,viewMode:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number]),daysOfWeekDisabled:n.PropTypes.array,setSelectedDate:n.PropTypes.func.isRequired,subtractYear:n.PropTypes.func.isRequired,addYear:n.PropTypes.func.isRequired,setViewMonth:n.PropTypes.func.isRequired,setViewYear:n.PropTypes.func.isRequired,subtractHour:n.PropTypes.func.isRequired,addHour:n.PropTypes.func.isRequired,subtractMinute:n.PropTypes.func.isRequired,addMinute:n.PropTypes.func.isRequired,addDecade:n.PropTypes.func.isRequired,subtractDecade:n.PropTypes.func.isRequired,togglePeriod:n.PropTypes.func.isRequired},renderDatePicker:function(){return this.props.showDatePicker?n.createElement("li",null,n.createElement(a,{addMonth:this.props.addMonth,subtractMonth:this.props.subtractMonth,setSelectedDate:this.props.setSelectedDate,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showToday:this.props.showToday,viewMode:this.props.viewMode,daysOfWeekDisabled:this.props.daysOfWeekDisabled,subtractYear:this.props.subtractYear,addYear:this.props.addYear,setViewMonth:this.props.setViewMonth,setViewYear:this.props.setViewYear,addDecade:this.props.addDecade,subtractDecade:this.props.subtractDecade})):void 0},renderTimePicker:function(){return this.props.showTimePicker?n.createElement("li",null,n.createElement(i,{viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,setSelectedHour:this.props.setSelectedHour,setSelectedMinute:this.props.setSelectedMinute,addHour:this.props.addHour,subtractHour:this.props.subtractHour,addMinute:this.props.addMinute,subtractMinute:this.props.subtractMinute,togglePeriod:this.props.togglePeriod})):void 0},render:function(){return n.createElement("div",{className:n.addons.classSet(this.props.widgetClasses),style:this.props.widgetStyle},n.createElement("ul",{className:"list-unstyled"},this.renderDatePicker(),n.createElement("li",null,n.createElement("span",{className:"btn picker-switch",style:{width:"100%"},onClick:this.props.togglePicker},n.createElement(o,{glyph:this.props.showTimePicker?"calendar":"time"}))),this.renderTimePicker()))}}),e.exports=r},function(e,t,s){var r,a,i,o,n;n=s(2),a=s(8),i=s(9),o=s(10),r=n.createClass({displayName:"DateTimePickerDate",propTypes:{subtractMonth:n.PropTypes.func.isRequired,addMonth:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,showToday:n.PropTypes.bool,viewMode:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number]),daysOfWeekDisabled:n.PropTypes.array,setSelectedDate:n.PropTypes.func.isRequired,subtractYear:n.PropTypes.func.isRequired,addYear:n.PropTypes.func.isRequired,setViewMonth:n.PropTypes.func.isRequired,setViewYear:n.PropTypes.func.isRequired,addDecade:n.PropTypes.func.isRequired,subtractDecade:n.PropTypes.func.isRequired},getInitialState:function(){var e={days:{daysDisplayed:!0,monthsDisplayed:!1,yearsDisplayed:!1},months:{daysDisplayed:!1,monthsDisplayed:!0,yearsDisplayed:!1},years:{daysDisplayed:!1,monthsDisplayed:!1,yearsDisplayed:!0}};return e[this.props.viewMode]||e[Object.keys(e)[this.props.viewMode]]||e.days},showMonths:function(){return this.setState({daysDisplayed:!1,monthsDisplayed:!0})},showYears:function(){return this.setState({monthsDisplayed:!1,yearsDisplayed:!0})},setViewYear:function(e){return this.props.setViewYear(e.target.innerHTML),this.setState({yearsDisplayed:!1,monthsDisplayed:!0})},setViewMonth:function(e){return this.props.setViewMonth(e.target.innerHTML),this.setState({monthsDisplayed:!1,daysDisplayed:!0})},renderDays:function(){return this.state.daysDisplayed?n.createElement(a,{addMonth:this.props.addMonth,subtractMonth:this.props.subtractMonth,setSelectedDate:this.props.setSelectedDate,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showToday:this.props.showToday,daysOfWeekDisabled:this.props.daysOfWeekDisabled,showMonths:this.showMonths}):null},renderMonths:function(){return this.state.monthsDisplayed?n.createElement(i,{subtractYear:this.props.subtractYear,addYear:this.props.addYear,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showYears:this.showYears,setViewMonth:this.setViewMonth}):null},renderYears:function(){return this.state.yearsDisplayed?n.createElement(o,{viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,setViewYear:this.setViewYear,addDecade:this.props.addDecade,subtractDecade:this.props.subtractDecade}):null},render:function(){return n.createElement("div",{className:"datepicker"},this.renderDays(),this.renderMonths(),this.renderYears())}}),e.exports=r},function(e,t,s){var r,a,i,o,n;n=s(2),a=s(11),r=s(12),o=s(4).Glyphicon,i=n.createClass({displayName:"DateTimePickerTime",propTypes:{setSelectedHour:n.PropTypes.func.isRequired,setSelectedMinute:n.PropTypes.func.isRequired,subtractHour:n.PropTypes.func.isRequired,addHour:n.PropTypes.func.isRequired,subtractMinute:n.PropTypes.func.isRequired,addMinute:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,togglePeriod:n.PropTypes.func.isRequired},getInitialState:function(){return{minutesDisplayed:!1,hoursDisplayed:!1}},showMinutes:function(){return this.setState({minutesDisplayed:!0})},showHours:function(){return this.setState({hoursDisplayed:!0})},renderMinutes:function(){return this.state.minutesDisplayed?n.createElement(a,{setSelectedMinute:this.props.setSelectedMinute}):null},renderHours:function(){return this.state.hoursDisplayed?n.createElement(r,{setSelectedHour:this.props.setSelectedHour}):null},renderPicker:function(){return this.state.minutesDisplayed||this.state.hoursDisplayed?"":n.createElement("div",{className:"timepicker-picker"},n.createElement("table",{className:"table-condensed"},n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.addHour},n.createElement(o,{glyph:"chevron-up"}))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.addMinute},n.createElement(o,{glyph:"chevron-up"}))),n.createElement("td",{className:"separator"})),n.createElement("tr",null,n.createElement("td",null,n.createElement("span",{className:"timepicker-hour",onClick:this.showHours},this.props.selectedDate.format("h"))),n.createElement("td",{className:"separator"},":"),n.createElement("td",null,n.createElement("span",{className:"timepicker-minute",onClick:this.showMinutes},this.props.selectedDate.format("mm"))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("button",{className:"btn btn-primary",onClick:this.props.togglePeriod,type:"button"},this.props.selectedDate.format("A")))),n.createElement("tr",null,n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.subtractHour},n.createElement(o,{glyph:"chevron-down"}))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.subtractMinute},n.createElement(o,{glyph:"chevron-down"}))),n.createElement("td",{className:"separator"})))))},render:function(){return n.createElement("div",{className:"timepicker"},this.renderPicker(),this.renderHours(),this.renderMinutes())}}),e.exports=i},function(e,t,s){var r,a,i;a=s(2),i=s(3),r=a.createClass({displayName:"DateTimePickerDays",propTypes:{subtractMonth:a.PropTypes.func.isRequired,addMonth:a.PropTypes.func.isRequired,viewDate:a.PropTypes.object.isRequired,selectedDate:a.PropTypes.object.isRequired,showToday:a.PropTypes.bool,daysOfWeekDisabled:a.PropTypes.array,setSelectedDate:a.PropTypes.func.isRequired,showMonths:a.PropTypes.func.isRequired},getDefaultProps:function(){return{showToday:!0}},renderDays:function(){var e,t,s,r,o,n,c,l,p,d,u,h,m;for(d=this.props.viewDate.year(),n=this.props.viewDate.month(),l=this.props.viewDate.clone().subtract(1,"months"),s=l.daysInMonth(),l.date(s).startOf("week"),c=i(l).clone().add(42,"d"),r=[],e=[];l.isBefore(c);){if(t={day:!0},l.year()<d||l.year()===d&&l.month()<n?t.old=!0:(l.year()>d||l.year()===d&&l.month()>n)&&(t["new"]=!0),l.isSame(i({y:this.props.selectedDate.year(),M:this.props.selectedDate.month(),d:this.props.selectedDate.date()}))&&(t.active=!0),this.props.showToday&&l.isSame(i(),"day")&&(t.today=!0),this.props.daysOfWeekDisabled)for(m=this.props.daysOfWeekDisabled,u=0,h=m.length;h>u;u++)if(o=m[u],l.day()===this.props.daysOfWeekDisabled[o]){t.disabled=!0;break}e.push(a.createElement("td",{key:l.month()+"-"+l.date(),className:a.addons.classSet(t),onClick:this.props.setSelectedDate},l.date())),l.weekday()===i().endOf("week").weekday()&&(p=a.createElement("tr",{key:l.month()+"-"+l.date()},e),r.push(p),e=[]),l.add(1,"d")}return r},render:function(){return a.createElement("div",{className:"datepicker-days",style:{display:"block"}},a.createElement("table",{className:"table-condensed"},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{className:"prev",onClick:this.props.subtractMonth},"‹"),a.createElement("th",{className:"switch",colSpan:"5",onClick:this.props.showMonths},i.months()[this.props.viewDate.month()]," ",this.props.viewDate.year()),a.createElement("th",{className:"next",onClick:this.props.addMonth},"›")),a.createElement("tr",null,a.createElement("th",{className:"dow"},"Su"),a.createElement("th",{className:"dow"},"Mo"),a.createElement("th",{className:"dow"},"Tu"),a.createElement("th",{className:"dow"},"We"),a.createElement("th",{className:"dow"},"Th"),a.createElement("th",{className:"dow"},"Fr"),a.createElement("th",{className:"dow"},"Sa"))),a.createElement("tbody",null,this.renderDays())))}}),e.exports=r},function(e,t,s){var r,a,i;a=s(2),i=s(3),r=a.createClass({displayName:"DateTimePickerMonths",propTypes:{subtractYear:a.PropTypes.func.isRequired,addYear:a.PropTypes.func.isRequired,viewDate:a.PropTypes.object.isRequired,selectedDate:a.PropTypes.object.isRequired,showYears:a.PropTypes.func.isRequired,setViewMonth:a.PropTypes.func.isRequired},renderMonths:function(){var e,t,s,r,o;for(s=this.props.selectedDate.month(),o=i.monthsShort(),t=0,r=[];12>t;)e={month:!0,active:t===s&&this.props.viewDate.year()===this.props.selectedDate.year()},r.push(a.createElement("span",{className:a.addons.classSet(e),onClick:this.props.setViewMonth},o[t])),t++;return r},render:function(){return a.createElement("div",{className:"datepicker-months",style:{display:"block"}},a.createElement("table",{className:"table-condensed"},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{className:"prev",onClick:this.props.subtractYear},"‹"),a.createElement("th",{className:"switch",colSpan:"5",onClick:this.props.showYears},this.props.viewDate.year()),a.createElement("th",{className:"next",onClick:this.props.addYear},"›"))),a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",{colSpan:"7"},this.renderMonths())))))}}),e.exports=r},function(e,t,s){var r,a;a=s(2),r=a.createClass({displayName:"DateTimePickerYears",propTypes:{subtractDecade:a.PropTypes.func.isRequired,addDecade:a.PropTypes.func.isRequired,viewDate:a.PropTypes.object.isRequired,selectedDate:a.PropTypes.object.isRequired,setViewYear:a.PropTypes.func.isRequired},renderYears:function(){var e,t,s,r;for(r=[],s=10*parseInt(this.props.viewDate.year()/10,10),s--,t=-1;11>t;)e={year:!0,old:-1===t|10===t,active:this.props.selectedDate.year()===s},r.push(a.createElement("span",{className:a.addons.classSet(e),onClick:this.props.setViewYear},s)),s++,t++;return r},render:function(){var e;return e=10*parseInt(this.props.viewDate.year()/10,10),a.createElement("div",{className:"datepicker-years",style:{display:"block"}},a.createElement("table",{className:"table-condensed"},a.createElement("thead",null,a.createElement("tr",null,a.createElement("th",{className:"prev",onClick:this.props.subtractDecade},"‹"),a.createElement("th",{className:"switch",colSpan:"5"},e," - ",e+9),a.createElement("th",{className:"next",onClick:this.props.addDecade},"›"))),a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",{colSpan:"7"},this.renderYears())))))}}),e.exports=r},function(e,t,s){var r,a;a=s(2),r=a.createClass({displayName:"DateTimePickerMinutes",propTypes:{setSelectedMinute:a.PropTypes.func.isRequired},render:function(){return a.createElement("div",{className:"timepicker-minutes","data-action":"selectMinute",style:{display:"block"}},a.createElement("table",{className:"table-condensed"},a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"00"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"05"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"10"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"15")),a.createElement("tr",null,a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"20"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"25"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"30"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"35")),a.createElement("tr",null,a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"40"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"45"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"50"),a.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"55")))))}}),e.exports=r},function(e,t,s){var r,a;a=s(2),r=a.createClass({displayName:"DateTimePickerHours",propTypes:{setSelectedHour:a.PropTypes.func.isRequired},render:function(){return a.createElement("div",{className:"timepicker-hours","data-action":"selectHour",style:{display:"block"}},a.createElement("table",{className:"table-condensed"},a.createElement("tbody",null,a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"01"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"02"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"03"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"04")),a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"05"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"06"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"07"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"08")),a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"09"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"10"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"11"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"12")),a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"13"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"14"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"15"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"16")),a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"17"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"18"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"19"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"20")),a.createElement("tr",null,a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"21"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"22"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"23"),a.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"24")))))}}),e.exports=r}])}); |
| | | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("React"),require("moment"),require("ReactBootstrap")):"function"==typeof define&&define.amd?define(["React","moment","ReactBootstrap"],t):"object"==typeof exports?exports.ReactBootstrapDatetimepicker=t(require("React"),require("moment"),require("ReactBootstrap")):e.ReactBootstrapDatetimepicker=t(e.React,e.moment,e.ReactBootstrap)}(this,function(e,t,s){return function(e){function t(a){if(s[a])return s[a].exports;var r=s[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){e.exports=s(1)},function(e,t,s){var a,r,i,o,n;o=s(2),r=s(5),n=s(3),i=s(4).Glyphicon,a=o.createClass({displayName:"DateTimeField",propTypes:{dateTime:o.PropTypes.string,onChange:o.PropTypes.func,format:o.PropTypes.string,inputFormat:o.PropTypes.string,inputProps:o.PropTypes.object,defaultText:o.PropTypes.string,minDate:o.PropTypes.object,maxDate:o.PropTypes.object},getDefaultProps:function(){return{dateTime:n().format("x"),format:"x",inputFormat:"MM/DD/YY h:mm A",showToday:!0,viewMode:"days",daysOfWeekDisabled:[],onChange:function(e){console.log(e)}}},getInitialState:function(){return{showDatePicker:!0,showTimePicker:!1,widgetStyle:{display:"block",position:"absolute",left:-9999,zIndex:"9999 !important"},viewDate:n(this.props.dateTime,this.props.format,!0).startOf("month"),selectedDate:n(this.props.dateTime,this.props.format,!0),inputValue:"undefined"!=typeof this.props.defaultText?this.props.defaultText:n(this.props.dateTime,this.props.format,!0).format(this.props.inputFormat)}},componentWillReceiveProps:function(e){return n(e.dateTime,e.format,!0).isValid()?this.setState({viewDate:n(e.dateTime,e.format,!0).startOf("month"),selectedDate:n(e.dateTime,e.format,!0),inputValue:n(e.dateTime,e.format,!0).format(e.inputFormat)}):void 0},onChange:function(e){var t=null==e.target?e:e.target.value;return n(t,this.props.inputFormat,!0).isValid()&&this.setState({selectedDate:n(t,this.props.inputFormat,!0),viewDate:n(t,this.props.inputFormat,!0).startOf("month")}),this.setState({inputValue:t},function(){return this.props.onChange(n(this.state.inputValue,this.props.inputFormat,!0).format(this.props.format))})},setSelectedDate:function(e){return e.target.className&&!e.target.className.match(/disabled/g)?this.setState({selectedDate:this.state.viewDate.clone().date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes())},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})}):void 0},setSelectedHour:function(e){return this.setState({selectedDate:this.state.selectedDate.clone().hour(parseInt(e.target.innerHTML)).minute(this.state.selectedDate.minutes())},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},setSelectedMinute:function(e){return this.setState({selectedDate:this.state.selectedDate.clone().hour(this.state.selectedDate.hours()).minute(parseInt(e.target.innerHTML))},function(){return this.closePicker(),this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},setViewMonth:function(e){return this.setState({viewDate:this.state.viewDate.clone().month(e)})},setViewYear:function(e){return this.setState({viewDate:this.state.viewDate.clone().year(e)})},addMinute:function(){return this.setState({selectedDate:this.state.selectedDate.clone().add(1,"minutes")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},addHour:function(){return this.setState({selectedDate:this.state.selectedDate.clone().add(1,"hours")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},addMonth:function(){return this.setState({viewDate:this.state.viewDate.add(1,"months")})},addYear:function(){return this.setState({viewDate:this.state.viewDate.add(1,"years")})},addDecade:function(){return this.setState({viewDate:this.state.viewDate.add(10,"years")})},subtractMinute:function(){return this.setState({selectedDate:this.state.selectedDate.clone().subtract(1,"minutes")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},subtractHour:function(){return this.setState({selectedDate:this.state.selectedDate.clone().subtract(1,"hours")},function(){return this.props.onChange(this.state.selectedDate.format(this.props.format)),this.setState({inputValue:this.state.selectedDate.format(this.props.inputFormat)})})},subtractMonth:function(){return this.setState({viewDate:this.state.viewDate.subtract(1,"months")})},subtractYear:function(){return this.setState({viewDate:this.state.viewDate.subtract(1,"years")})},subtractDecade:function(){return this.setState({viewDate:this.state.viewDate.subtract(10,"years")})},togglePeriod:function(){return this.onChange(this.state.selectedDate.hour()>12?this.state.selectedDate.clone().subtract(12,"hours").format(this.props.inputFormat):this.state.selectedDate.clone().add(12,"hours").format(this.props.inputFormat))},togglePicker:function(){return this.setState({showDatePicker:!this.state.showDatePicker,showTimePicker:!this.state.showTimePicker})},onClick:function(){var e,t,s,a,r,i;return this.state.showPicker?this.closePicker():(this.setState({showPicker:!0}),t=this.refs.dtpbutton.getDOMNode().getBoundingClientRect(),e={"bootstrap-datetimepicker-widget":!0,"dropdown-menu":!0},s={top:t.top+window.pageYOffset-document.documentElement.clientTop,left:t.left+window.pageXOffset-document.documentElement.clientLeft},s.top=s.top+this.refs.datetimepicker.getDOMNode().offsetHeight,r=void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop,a="up"===this.props.direction?"top":"bottom"===this.props.direction?"bottom":"auto"===this.props.direction?s.top+this.refs.widget.getDOMNode().offsetHeight>window.offsetHeight+r&&this.refs.widget.offsetHeight+this.refs.datetimepicker.getDOMNode().offsetHeight>s.top?"top":"bottom":void 0,"top"===a?(s.top=-this.refs.widget.getDOMNode().offsetHeight-this.getDOMNode().clientHeight-2,e.top=!0,e.bottom=!1,e["pull-right"]=!0):(s.top=40,e.top=!1,e.bottom=!0,e["pull-right"]=!0),i={display:"block",position:"absolute",top:s.top,left:"auto",right:40},this.setState({widgetStyle:i,widgetClasses:e}))},closePicker:function(e){var t;return t=this.state.widgetStyle,t.left=-9999,t.display="none",this.setState({showPicker:!1,widgetStyle:t})},renderOverlay:function(){var e;return e={position:"fixed",top:0,bottom:0,left:0,right:0,zIndex:"999"},this.state.showPicker?o.createElement("div",{style:e,onClick:this.closePicker}):o.createElement("span",null)},render:function(){return o.createElement("div",null,this.renderOverlay(),o.createElement(r,{ref:"widget",widgetClasses:this.state.widgetClasses,widgetStyle:this.state.widgetStyle,showDatePicker:this.state.showDatePicker,showTimePicker:this.state.showTimePicker,viewDate:this.state.viewDate,selectedDate:this.state.selectedDate,showToday:this.props.showToday,viewMode:this.props.viewMode,daysOfWeekDisabled:this.props.daysOfWeekDisabled,minDate:this.props.minDate,maxDate:this.props.maxDate,addDecade:this.addDecade,addYear:this.addYear,addMonth:this.addMonth,addHour:this.addHour,addMinute:this.addMinute,subtractDecade:this.subtractDecade,subtractYear:this.subtractYear,subtractMonth:this.subtractMonth,subtractHour:this.subtractHour,subtractMinute:this.subtractMinute,setViewYear:this.setViewYear,setViewMonth:this.setViewMonth,setSelectedDate:this.setSelectedDate,setSelectedHour:this.setSelectedHour,setSelectedMinute:this.setSelectedMinute,togglePicker:this.togglePicker,togglePeriod:this.togglePeriod}),o.createElement("div",{className:"input-group date",ref:"datetimepicker"},o.createElement("input",o.__spread({type:"text",className:"form-control",onChange:this.onChange,value:this.state.inputValue},this.props.inputProps)),o.createElement("span",{className:"input-group-addon",onClick:this.onClick,onBlur:this.onBlur,ref:"dtpbutton"},o.createElement(i,{glyph:"calendar"}))))}}),e.exports=a},function(t,s,a){t.exports=e},function(e,s,a){e.exports=t},function(e,t,a){e.exports=s},function(e,t,s){var a,r,i,o,n;n=s(2),r=s(6),i=s(7),o=s(4).Glyphicon,a=n.createClass({displayName:"DateTimePicker",propTypes:{showDatePicker:n.PropTypes.bool,showTimePicker:n.PropTypes.bool,subtractMonth:n.PropTypes.func.isRequired,addMonth:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,showToday:n.PropTypes.bool,viewMode:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number]),daysOfWeekDisabled:n.PropTypes.array,setSelectedDate:n.PropTypes.func.isRequired,subtractYear:n.PropTypes.func.isRequired,addYear:n.PropTypes.func.isRequired,setViewMonth:n.PropTypes.func.isRequired,setViewYear:n.PropTypes.func.isRequired,subtractHour:n.PropTypes.func.isRequired,addHour:n.PropTypes.func.isRequired,subtractMinute:n.PropTypes.func.isRequired,addMinute:n.PropTypes.func.isRequired,addDecade:n.PropTypes.func.isRequired,subtractDecade:n.PropTypes.func.isRequired,togglePeriod:n.PropTypes.func.isRequired,minDate:n.PropTypes.object,maxDate:n.PropTypes.object},renderDatePicker:function(){return this.props.showDatePicker?n.createElement("li",null,n.createElement(r,{addMonth:this.props.addMonth,subtractMonth:this.props.subtractMonth,setSelectedDate:this.props.setSelectedDate,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showToday:this.props.showToday,viewMode:this.props.viewMode,daysOfWeekDisabled:this.props.daysOfWeekDisabled,subtractYear:this.props.subtractYear,addYear:this.props.addYear,setViewMonth:this.props.setViewMonth,setViewYear:this.props.setViewYear,addDecade:this.props.addDecade,subtractDecade:this.props.subtractDecade,minDate:this.props.minDate,maxDate:this.props.maxDate})):void 0},renderTimePicker:function(){return this.props.showTimePicker?n.createElement("li",null,n.createElement(i,{viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,setSelectedHour:this.props.setSelectedHour,setSelectedMinute:this.props.setSelectedMinute,addHour:this.props.addHour,subtractHour:this.props.subtractHour,addMinute:this.props.addMinute,subtractMinute:this.props.subtractMinute,togglePeriod:this.props.togglePeriod})):void 0},render:function(){return n.createElement("div",{className:n.addons.classSet(this.props.widgetClasses),style:this.props.widgetStyle},n.createElement("ul",{className:"list-unstyled"},this.renderDatePicker(),n.createElement("li",null,n.createElement("span",{className:"btn picker-switch",style:{width:"100%"},onClick:this.props.togglePicker},n.createElement(o,{glyph:this.props.showTimePicker?"calendar":"time"}))),this.renderTimePicker()))}}),e.exports=a},function(e,t,s){var a,r,i,o,n;n=s(2),r=s(8),i=s(9),o=s(10),a=n.createClass({displayName:"DateTimePickerDate",propTypes:{subtractMonth:n.PropTypes.func.isRequired,addMonth:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,showToday:n.PropTypes.bool,viewMode:n.PropTypes.oneOfType([n.PropTypes.string,n.PropTypes.number]),daysOfWeekDisabled:n.PropTypes.array,setSelectedDate:n.PropTypes.func.isRequired,subtractYear:n.PropTypes.func.isRequired,addYear:n.PropTypes.func.isRequired,setViewMonth:n.PropTypes.func.isRequired,setViewYear:n.PropTypes.func.isRequired,addDecade:n.PropTypes.func.isRequired,subtractDecade:n.PropTypes.func.isRequired,minDate:n.PropTypes.object,maxDate:n.PropTypes.object},getInitialState:function(){var e={days:{daysDisplayed:!0,monthsDisplayed:!1,yearsDisplayed:!1},months:{daysDisplayed:!1,monthsDisplayed:!0,yearsDisplayed:!1},years:{daysDisplayed:!1,monthsDisplayed:!1,yearsDisplayed:!0}};return e[this.props.viewMode]||e[Object.keys(e)[this.props.viewMode]]||e.days},showMonths:function(){return this.setState({daysDisplayed:!1,monthsDisplayed:!0})},showYears:function(){return this.setState({monthsDisplayed:!1,yearsDisplayed:!0})},setViewYear:function(e){return this.props.setViewYear(e.target.innerHTML),this.setState({yearsDisplayed:!1,monthsDisplayed:!0})},setViewMonth:function(e){return this.props.setViewMonth(e.target.innerHTML),this.setState({monthsDisplayed:!1,daysDisplayed:!0})},renderDays:function(){return this.state.daysDisplayed?n.createElement(r,{addMonth:this.props.addMonth,subtractMonth:this.props.subtractMonth,setSelectedDate:this.props.setSelectedDate,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showToday:this.props.showToday,daysOfWeekDisabled:this.props.daysOfWeekDisabled,showMonths:this.showMonths,minDate:this.props.minDate,maxDate:this.props.maxDate}):null},renderMonths:function(){return this.state.monthsDisplayed?n.createElement(i,{subtractYear:this.props.subtractYear,addYear:this.props.addYear,viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,showYears:this.showYears,setViewMonth:this.setViewMonth}):null},renderYears:function(){return this.state.yearsDisplayed?n.createElement(o,{viewDate:this.props.viewDate,selectedDate:this.props.selectedDate,setViewYear:this.setViewYear,addDecade:this.props.addDecade,subtractDecade:this.props.subtractDecade}):null},render:function(){return n.createElement("div",{className:"datepicker"},this.renderDays(),this.renderMonths(),this.renderYears())}}),e.exports=a},function(e,t,s){var a,r,i,o,n;n=s(2),r=s(11),a=s(12),o=s(4).Glyphicon,i=n.createClass({displayName:"DateTimePickerTime",propTypes:{setSelectedHour:n.PropTypes.func.isRequired,setSelectedMinute:n.PropTypes.func.isRequired,subtractHour:n.PropTypes.func.isRequired,addHour:n.PropTypes.func.isRequired,subtractMinute:n.PropTypes.func.isRequired,addMinute:n.PropTypes.func.isRequired,viewDate:n.PropTypes.object.isRequired,selectedDate:n.PropTypes.object.isRequired,togglePeriod:n.PropTypes.func.isRequired},getInitialState:function(){return{minutesDisplayed:!1,hoursDisplayed:!1}},showMinutes:function(){return this.setState({minutesDisplayed:!0})},showHours:function(){return this.setState({hoursDisplayed:!0})},renderMinutes:function(){return this.state.minutesDisplayed?n.createElement(r,{setSelectedMinute:this.props.setSelectedMinute}):null},renderHours:function(){return this.state.hoursDisplayed?n.createElement(a,{setSelectedHour:this.props.setSelectedHour}):null},renderPicker:function(){return this.state.minutesDisplayed||this.state.hoursDisplayed?"":n.createElement("div",{className:"timepicker-picker"},n.createElement("table",{className:"table-condensed"},n.createElement("tbody",null,n.createElement("tr",null,n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.addHour},n.createElement(o,{glyph:"chevron-up"}))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.addMinute},n.createElement(o,{glyph:"chevron-up"}))),n.createElement("td",{className:"separator"})),n.createElement("tr",null,n.createElement("td",null,n.createElement("span",{className:"timepicker-hour",onClick:this.showHours},this.props.selectedDate.format("h"))),n.createElement("td",{className:"separator"},":"),n.createElement("td",null,n.createElement("span",{className:"timepicker-minute",onClick:this.showMinutes},this.props.selectedDate.format("mm"))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("button",{className:"btn btn-primary",onClick:this.props.togglePeriod,type:"button"},this.props.selectedDate.format("A")))),n.createElement("tr",null,n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.subtractHour},n.createElement(o,{glyph:"chevron-down"}))),n.createElement("td",{className:"separator"}),n.createElement("td",null,n.createElement("a",{className:"btn",onClick:this.props.subtractMinute},n.createElement(o,{glyph:"chevron-down"}))),n.createElement("td",{className:"separator"})))))},render:function(){return n.createElement("div",{className:"timepicker"},this.renderPicker(),this.renderHours(),this.renderMinutes())}}),e.exports=i},function(e,t,s){var a,r,i;r=s(2),i=s(3),a=r.createClass({displayName:"DateTimePickerDays",propTypes:{subtractMonth:r.PropTypes.func.isRequired,addMonth:r.PropTypes.func.isRequired,viewDate:r.PropTypes.object.isRequired,selectedDate:r.PropTypes.object.isRequired,showToday:r.PropTypes.bool,daysOfWeekDisabled:r.PropTypes.array,setSelectedDate:r.PropTypes.func.isRequired,showMonths:r.PropTypes.func.isRequired,minDate:r.PropTypes.object,maxDate:r.PropTypes.object},getDefaultProps:function(){return{showToday:!0}},renderDays:function(){var e,t,s,a,o,n,c,p,l,d,u,h,m,y,D;for(h=this.props.viewDate.year(),n=this.props.viewDate.month(),p=this.props.viewDate.clone().subtract(1,"months"),s=p.daysInMonth(),p.date(s).startOf("week"),c=i(p).clone().add(42,"d"),l=this.props.minDate?this.props.minDate.clone().subtract(1,"days"):this.props.minDate,d=this.props.maxDate?this.props.maxDate.clone():this.props.maxDate,a=[],e=[];p.isBefore(c);){if(t={day:!0},p.year()<h||p.year()===h&&p.month()<n?t.old=!0:(p.year()>h||p.year()===h&&p.month()>n)&&(t["new"]=!0),p.isSame(i({y:this.props.selectedDate.year(),M:this.props.selectedDate.month(),d:this.props.selectedDate.date()}))&&(t.active=!0),this.props.showToday&&p.isSame(i(),"day")&&(t.today=!0),(l&&p.isBefore(l)||d&&p.isAfter(d))&&(t.disabled=!0),this.props.daysOfWeekDisabled)for(D=this.props.daysOfWeekDisabled,m=0,y=D.length;y>m;m++)if(o=D[m],p.day()===this.props.daysOfWeekDisabled[o]){t.disabled=!0;break}e.push(r.createElement("td",{key:p.month()+"-"+p.date(),className:r.addons.classSet(t),onClick:this.props.setSelectedDate},p.date())),p.weekday()===i().endOf("week").weekday()&&(u=r.createElement("tr",{key:p.month()+"-"+p.date()},e),a.push(u),e=[]),p.add(1,"d")}return a},render:function(){return r.createElement("div",{className:"datepicker-days",style:{display:"block"}},r.createElement("table",{className:"table-condensed"},r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",{className:"prev",onClick:this.props.subtractMonth},"‹"),r.createElement("th",{className:"switch",colSpan:"5",onClick:this.props.showMonths},i.months()[this.props.viewDate.month()]," ",this.props.viewDate.year()),r.createElement("th",{className:"next",onClick:this.props.addMonth},"›")),r.createElement("tr",null,r.createElement("th",{className:"dow"},"Su"),r.createElement("th",{className:"dow"},"Mo"),r.createElement("th",{className:"dow"},"Tu"),r.createElement("th",{className:"dow"},"We"),r.createElement("th",{className:"dow"},"Th"),r.createElement("th",{className:"dow"},"Fr"),r.createElement("th",{className:"dow"},"Sa"))),r.createElement("tbody",null,this.renderDays())))}}),e.exports=a},function(e,t,s){var a,r,i;r=s(2),i=s(3),a=r.createClass({displayName:"DateTimePickerMonths",propTypes:{subtractYear:r.PropTypes.func.isRequired,addYear:r.PropTypes.func.isRequired,viewDate:r.PropTypes.object.isRequired,selectedDate:r.PropTypes.object.isRequired,showYears:r.PropTypes.func.isRequired,setViewMonth:r.PropTypes.func.isRequired},renderMonths:function(){var e,t,s,a,o;for(s=this.props.selectedDate.month(),o=i.monthsShort(),t=0,a=[];12>t;)e={month:!0,active:t===s&&this.props.viewDate.year()===this.props.selectedDate.year()},a.push(r.createElement("span",{className:r.addons.classSet(e),onClick:this.props.setViewMonth},o[t])),t++;return a},render:function(){return r.createElement("div",{className:"datepicker-months",style:{display:"block"}},r.createElement("table",{className:"table-condensed"},r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",{className:"prev",onClick:this.props.subtractYear},"‹"),r.createElement("th",{className:"switch",colSpan:"5",onClick:this.props.showYears},this.props.viewDate.year()),r.createElement("th",{className:"next",onClick:this.props.addYear},"›"))),r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",{colSpan:"7"},this.renderMonths())))))}}),e.exports=a},function(e,t,s){var a,r;r=s(2),a=r.createClass({displayName:"DateTimePickerYears",propTypes:{subtractDecade:r.PropTypes.func.isRequired,addDecade:r.PropTypes.func.isRequired,viewDate:r.PropTypes.object.isRequired,selectedDate:r.PropTypes.object.isRequired,setViewYear:r.PropTypes.func.isRequired},renderYears:function(){var e,t,s,a;for(a=[],s=10*parseInt(this.props.viewDate.year()/10,10),s--,t=-1;11>t;)e={year:!0,old:-1===t|10===t,active:this.props.selectedDate.year()===s},a.push(r.createElement("span",{className:r.addons.classSet(e),onClick:this.props.setViewYear},s)),s++,t++;return a},render:function(){var e;return e=10*parseInt(this.props.viewDate.year()/10,10),r.createElement("div",{className:"datepicker-years",style:{display:"block"}},r.createElement("table",{className:"table-condensed"},r.createElement("thead",null,r.createElement("tr",null,r.createElement("th",{className:"prev",onClick:this.props.subtractDecade},"‹"),r.createElement("th",{className:"switch",colSpan:"5"},e," - ",e+9),r.createElement("th",{className:"next",onClick:this.props.addDecade},"›"))),r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",{colSpan:"7"},this.renderYears())))))}}),e.exports=a},function(e,t,s){var a,r;r=s(2),a=r.createClass({displayName:"DateTimePickerMinutes",propTypes:{setSelectedMinute:r.PropTypes.func.isRequired},render:function(){return r.createElement("div",{className:"timepicker-minutes","data-action":"selectMinute",style:{display:"block"}},r.createElement("table",{className:"table-condensed"},r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"00"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"05"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"10"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"15")),r.createElement("tr",null,r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"20"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"25"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"30"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"35")),r.createElement("tr",null,r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"40"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"45"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"50"),r.createElement("td",{className:"minute",onClick:this.props.setSelectedMinute},"55")))))}}),e.exports=a},function(e,t,s){var a,r;r=s(2),a=r.createClass({displayName:"DateTimePickerHours",propTypes:{setSelectedHour:r.PropTypes.func.isRequired},render:function(){return r.createElement("div",{className:"timepicker-hours","data-action":"selectHour",style:{display:"block"}},r.createElement("table",{className:"table-condensed"},r.createElement("tbody",null,r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"01"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"02"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"03"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"04")),r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"05"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"06"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"07"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"08")),r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"09"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"10"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"11"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"12")),r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"13"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"14"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"15"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"16")),r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"17"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"18"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"19"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"20")),r.createElement("tr",null,r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"21"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"22"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"23"),r.createElement("td",{className:"hour",onClick:this.props.setSelectedHour},"24")))))}}),e.exports=a}])}); |
| | |
| | | var React = require('react/addons'); |
| | | var DateTimeField = require('react-bootstrap-datetimepicker'); |
| | | var moment = require('moment'); |
| | | |
| | | var Basic = React.createClass({ |
| | | |
| | | render: function() { |
| | | return ( |
| | | <div className="container"> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | <h1>React Bootstrap DateTimePicker</h1> |
| | | This project is a port of <a href="https://github.com/Eonasdan/bootstrap-datetimepicker">https://github.com/Eonasdan/bootstrap-datetimepicker</a> for React.js |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | Default Basic Example |
| | | <DateTimeField /> |
| | | <pre> {'<DateTimeField />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | Example with default Text |
| | | <DateTimeField |
| | | defaultText="Please select a date" |
| | | /> |
| | | <pre> {'<DateTimeField defaultText="Please select a date" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | ViewMode set to years view with custom inputFormat |
| | | <DateTimeField |
| | | inputFormat='DD-MM-YYYY' |
| | | viewMode='years' |
| | | /> |
| | | <pre> {'<DateTimeField viewMode="years" inputFormat="DD-MM-YYYY" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | daysOfWeekDisabled |
| | | <DateTimeField |
| | | daysOfWeekDisabled={[0,1,2]} |
| | | /> |
| | | <pre> {'<DateTimeField daysOfWeekDisabled={[0,1,2]} />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | just time picker |
| | | <DateTimeField |
| | | mode="time" |
| | | /> |
| | | <pre> {'<DateTimeField mode="time" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | just date picker |
| | | <DateTimeField |
| | | mode="date" |
| | | /> |
| | | <pre> {'<DateTimeField mode="date" />'} </pre> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | ); |
| | | } |
| | | return <div className="container"> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | <h1>React Bootstrap DateTimePicker</h1> |
| | | This project is a port of <a href="https://github.com/Eonasdan/bootstrap-datetimepicker">https://github.com/Eonasdan/bootstrap-datetimepicker</a> for React.js |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | Default Basic Example |
| | | <DateTimeField /> |
| | | <pre> {'<DateTimeField />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | Example with default Text |
| | | <DateTimeField |
| | | defaultText="Please select a date" |
| | | /> |
| | | <pre> {'<DateTimeField defaultText="Please select a date" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | ViewMode set to years view with custom inputFormat |
| | | <DateTimeField |
| | | inputFormat='DD-MM-YYYY' |
| | | viewMode='years' |
| | | /> |
| | | <pre> {'<DateTimeField viewMode="years" inputFormat="DD-MM-YYYY" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | daysOfWeekDisabled |
| | | <DateTimeField |
| | | daysOfWeekDisabled={[0,1,2]} |
| | | /> |
| | | <pre> {'<DateTimeField daysOfWeekDisabled={[0,1,2]} />'} </pre> |
| | | |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | minDate and maxDate |
| | | <DateTimeField |
| | | minDate={moment().subtract(1, 'days')} |
| | | maxDate={moment().add(1, 'days')} |
| | | /> |
| | | <pre> {'<DateTimeField daysOfWeekDisabled={[0,1,2]} />'} </pre> |
| | | |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | just time picker |
| | | <DateTimeField |
| | | mode="time" |
| | | /> |
| | | <pre> {'<DateTimeField mode="time" />'} </pre> |
| | | </div> |
| | | </div> |
| | | <div className="row"> |
| | | <div className="col-xs-12"> |
| | | just date picker |
| | | <DateTimeField |
| | | mode="date" |
| | | /> |
| | | <pre> {'<DateTimeField mode="date" />'} </pre> |
| | | </div> |
| | | </div> |
| | | </div>; |
| | | } |
| | | |
| | | }); |
| | | |
| | | |
| | |
| | | { |
| | | "name": "react-bootstrap-datetimepicker", |
| | | "version": "0.0.14", |
| | | "version": "0.0.15", |
| | | "description": "A bootstrap datetime picker component for React.js", |
| | | "homepage": "http://dev.quri.com/react-bootstrap-datetimepicker/", |
| | | "repository": { |
| | |
| | | inputProps: React.PropTypes.object, |
| | | inputFormat: React.PropTypes.string, |
| | | defaultText: React.PropTypes.string, |
| | | mode: React.PropTypes.oneOf([Constants.MODE_DATE, Constants.MODE_DATETIME, Constants.MODE_TIME]) |
| | | mode: React.PropTypes.oneOf([Constants.MODE_DATE, Constants.MODE_DATETIME, Constants.MODE_TIME]), |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getDefaultProps: function() { |
| | | return { |
| | |
| | | viewMode: 'days', |
| | | daysOfWeekDisabled: [], |
| | | mode: Constants.MODE_DATETIME, |
| | | onChange: function (x) {} |
| | | onChange: function (x) { |
| | | console.log(x); |
| | | } |
| | | }; |
| | | }, |
| | | resolvePropsInputFormat: function() { |
| | |
| | | }, |
| | | setSelectedDate: function(e) { |
| | | var target = e.target; |
| | | var month; |
| | | if(target.className.includes("new")) month = this.state.viewDate.month() + 1; |
| | | else if(target.className.includes("old")) month = this.state.viewDate.month() - 1; |
| | | else month = this.state.viewDate.month(); |
| | | return this.setState({ |
| | | selectedDate: this.state.viewDate.clone().month(month).date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes()) |
| | | }, function() { |
| | | this.closePicker(); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | if (target.className && !target.className.match(/disabled/g)) { |
| | | var month; |
| | | if(target.className.includes("new")) month = this.state.viewDate.month() + 1; |
| | | else if(target.className.includes("old")) month = this.state.viewDate.month() - 1; |
| | | else month = this.state.viewDate.month(); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.state.inputFormat) |
| | | selectedDate: this.state.viewDate.clone().month(month).date(parseInt(e.target.innerHTML)).hour(this.state.selectedDate.hours()).minute(this.state.selectedDate.minutes()) |
| | | }, function() { |
| | | this.closePicker(); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.state.inputFormat) |
| | | }); |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | setSelectedHour: function(e) { |
| | | return this.setState({ |
| | |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().add(1, "minutes") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.resolvePropsInputFormat()) |
| | | }); |
| | | }); |
| | | }, |
| | | addHour: function() { |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().add(1, "hours") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.resolvePropsInputFormat()) |
| | | }); |
| | | }); |
| | | }, |
| | | addMonth: function() { |
| | |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().subtract(1, "minutes") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.resolvePropsInputFormat()) |
| | | }); |
| | | }); |
| | | }, |
| | | subtractHour: function() { |
| | | return this.setState({ |
| | | selectedDate: this.state.selectedDate.clone().subtract(1, "hours") |
| | | }, function() { |
| | | return this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | this.props.onChange(this.state.selectedDate.format(this.props.format)); |
| | | return this.setState({ |
| | | inputValue: this.state.selectedDate.format(this.resolvePropsInputFormat()) |
| | | }); |
| | | }); |
| | | }, |
| | | subtractMonth: function() { |
| | |
| | | viewMode={this.props.viewMode} |
| | | daysOfWeekDisabled={this.props.daysOfWeekDisabled} |
| | | mode={this.props.mode} |
| | | minDate={this.props.minDate} |
| | | maxDate={this.props.maxDate} |
| | | addDecade={this.addDecade} |
| | | addYear={this.addYear} |
| | | addMonth={this.addMonth} |
| | |
| | | addMinute: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | togglePeriod: React.PropTypes.func.isRequired |
| | | togglePeriod: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | renderDatePicker: function() { |
| | | if (this.props.showDatePicker) { |
| | |
| | | setViewYear={this.props.setViewYear} |
| | | addDecade={this.props.addDecade} |
| | | subtractDecade={this.props.subtractDecade} |
| | | minDate={this.props.minDate} |
| | | maxDate={this.props.maxDate} |
| | | /> |
| | | </li> |
| | | ); |
| | |
| | | setViewMonth: React.PropTypes.func.isRequired, |
| | | setViewYear: React.PropTypes.func.isRequired, |
| | | addDecade: React.PropTypes.func.isRequired, |
| | | subtractDecade: React.PropTypes.func.isRequired |
| | | subtractDecade: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getInitialState: function() { |
| | | var viewModes = { |
| | |
| | | showToday={this.props.showToday} |
| | | daysOfWeekDisabled={this.props.daysOfWeekDisabled} |
| | | showMonths={this.showMonths} |
| | | minDate={this.props.minDate} |
| | | maxDate={this.props.maxDate} |
| | | /> |
| | | ); |
| | | } else { |
| | |
| | | showToday: React.PropTypes.bool, |
| | | daysOfWeekDisabled: React.PropTypes.array, |
| | | setSelectedDate: React.PropTypes.func.isRequired, |
| | | showMonths: React.PropTypes.func.isRequired |
| | | showMonths: React.PropTypes.func.isRequired, |
| | | minDate: React.PropTypes.object, |
| | | maxDate: React.PropTypes.object |
| | | }, |
| | | getDefaultProps: function() { |
| | | return { |
| | |
| | | }; |
| | | }, |
| | | renderDays: function() { |
| | | var cells, classes, days, html, i, month, nextMonth, prevMonth, row, year, _i, _len, _ref; |
| | | var cells, classes, days, html, i, month, nextMonth, prevMonth, minDate, maxDate, row, year, _i, _len, _ref; |
| | | year = this.props.viewDate.year(); |
| | | month = this.props.viewDate.month(); |
| | | prevMonth = this.props.viewDate.clone().subtract(1, "months"); |
| | | days = prevMonth.daysInMonth(); |
| | | prevMonth.date(days).startOf('week'); |
| | | nextMonth = moment(prevMonth).clone().add(42, "d"); |
| | | minDate = this.props.minDate ? this.props.minDate.clone().subtract(1, 'days') : this.props.minDate; |
| | | maxDate = this.props.maxDate ? this.props.maxDate.clone() : this.props.maxDate; |
| | | html = []; |
| | | cells = []; |
| | | while (prevMonth.isBefore(nextMonth)) { |
| | |
| | | classes['today'] = true; |
| | | } |
| | | } |
| | | if ((minDate && prevMonth.isBefore(minDate)) || (maxDate && prevMonth.isAfter(maxDate))) { |
| | | classes['disabled'] = true; |
| | | } |
| | | if (this.props.daysOfWeekDisabled) { |
| | | _ref = this.props.daysOfWeekDisabled; |
| | | for (_i = 0, _len = _ref.length; _i < _len; _i++) { |