@@ -32,6 +32,10 @@ var _DayCellJs = require('./DayCell.js');
3232
3333var _DayCellJs2 = _interopRequireDefault ( _DayCellJs ) ;
3434
35+ var _LangDicJs = require ( './LangDic.js' ) ;
36+
37+ var _LangDicJs2 = _interopRequireDefault ( _LangDicJs ) ;
38+
3539var _stylesJs = require ( './styles.js' ) ;
3640
3741var _stylesJs2 = _interopRequireDefault ( _stylesJs ) ;
@@ -43,17 +47,17 @@ function checkRange(dayMoment, range) {
4347function checkStartEdge ( dayMoment , range ) {
4448 var startDate = range . startDate ;
4549
46- return dayMoment . isSame ( startDate ) ;
50+ return dayMoment . startOf ( 'day' ) . isSame ( startDate . startOf ( 'day' ) ) ;
4751}
4852
4953function checkEndEdge ( dayMoment , range ) {
5054 var endDate = range . endDate ;
5155
52- return dayMoment . isSame ( endDate ) ;
56+ return dayMoment . endOf ( 'day' ) . isSame ( endDate . endOf ( 'day' ) ) ;
5357}
5458
5559function isOusideMinMax ( dayMoment , minDate , maxDate , format ) {
56- return minDate && dayMoment . isBefore ( ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( minDate , format ) ) || maxDate && dayMoment . isAfter ( ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( maxDate , format ) ) ;
60+ return minDate && dayMoment . isBefore ( ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( minDate , format , 'startOf' ) ) || maxDate && dayMoment . isAfter ( ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( maxDate , format , 'endOf' ) ) ;
5761}
5862
5963var Calendar = ( function ( _Component ) {
@@ -70,15 +74,16 @@ var Calendar = (function (_Component) {
7074 var offset = props . offset ;
7175 var firstDayOfWeek = props . firstDayOfWeek ;
7276 var locale = props . locale ;
77+ var shownDate = props . shownDate ;
7378
7479 if ( locale ) {
7580 _moment2 [ 'default' ] . locale ( locale ) ;
7681 }
7782
78- var date = ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( props . date , format ) ;
83+ var date = ( 0 , _utilsParseInputJs2 [ 'default' ] ) ( props . date , format , 'startOf' ) ;
7984 var state = {
8085 date : date ,
81- shownDate : ( range && range [ 'endDate' ] || date ) . clone ( ) . add ( offset , 'months' ) ,
86+ shownDate : ( shownDate || range && range [ 'endDate' ] || date ) . clone ( ) . add ( offset , 'months' ) ,
8287 firstDayOfWeek : firstDayOfWeek || _moment2 [ 'default' ] . localeData ( ) . firstDayOfWeek ( )
8388 } ;
8489
@@ -154,19 +159,24 @@ var Calendar = (function (_Component) {
154159 var month = _moment2 [ 'default' ] . months ( shownDate . month ( ) ) ;
155160 var year = shownDate . year ( ) ;
156161 var styles = this . styles ;
157- var onlyClasses = this . props . onlyClasses ;
162+ var _props4 = this . props ;
163+ var onlyClasses = _props4 . onlyClasses ;
164+ var lang = _props4 . lang ;
165+ var showMonthArrow = _props4 . showMonthArrow ;
166+
167+ month = lang ? _LangDicJs2 [ 'default' ] [ lang ] [ month . toLowerCase ( ) ] : month ;
158168
159169 return _react2 [ 'default' ] . createElement (
160170 'div' ,
161171 { style : onlyClasses ? undefined : styles [ 'MonthAndYear' ] , className : classes . monthAndYearWrapper } ,
162- _react2 [ 'default' ] . createElement (
172+ showMonthArrow ? _react2 [ 'default' ] . createElement (
163173 'button' ,
164174 {
165175 style : onlyClasses ? undefined : _extends ( { } , styles [ 'MonthButton' ] , { float : 'left' } ) ,
166176 className : classes . prevButton ,
167177 onClick : this . changeMonth . bind ( this , - 1 ) } ,
168178 _react2 [ 'default' ] . createElement ( 'i' , { style : onlyClasses ? undefined : _extends ( { } , styles [ 'MonthArrow' ] , styles [ 'MonthArrowPrev' ] ) } )
169- ) ,
179+ ) : null ,
170180 _react2 [ 'default' ] . createElement (
171181 'span' ,
172182 null ,
@@ -186,14 +196,14 @@ var Calendar = (function (_Component) {
186196 year
187197 )
188198 ) ,
189- _react2 [ 'default' ] . createElement (
199+ showMonthArrow ? _react2 [ 'default' ] . createElement (
190200 'button' ,
191201 {
192202 style : onlyClasses ? undefined : _extends ( { } , styles [ 'MonthButton' ] , { float : 'right' } ) ,
193203 className : classes . nextButton ,
194204 onClick : this . changeMonth . bind ( this , + 1 ) } ,
195205 _react2 [ 'default' ] . createElement ( 'i' , { style : onlyClasses ? undefined : _extends ( { } , styles [ 'MonthArrow' ] , styles [ 'MonthArrowNext' ] ) } )
196- )
206+ ) : null
197207 ) ;
198208 }
199209 } , {
@@ -202,11 +212,13 @@ var Calendar = (function (_Component) {
202212 var dow = this . state . firstDayOfWeek ;
203213 var weekdays = [ ] ;
204214 var styles = this . styles ;
205- var onlyClasses = this . props . onlyClasses ;
215+ var _props5 = this . props ;
216+ var onlyClasses = _props5 . onlyClasses ;
217+ var lang = _props5 . lang ;
206218
207219 for ( var i = dow ; i < 7 + dow ; i ++ ) {
208220 var day = _moment2 [ 'default' ] . weekdaysMin ( i ) ;
209-
221+ day = lang ? _LangDicJs2 [ 'default' ] [ lang ] [ day . toLowerCase ( ) ] : day ;
210222 weekdays . push ( _react2 [ 'default' ] . createElement (
211223 'span' ,
212224 { style : onlyClasses ? undefined : styles [ 'Weekday' ] , className : classes . weekDay , key : day } ,
@@ -223,12 +235,13 @@ var Calendar = (function (_Component) {
223235
224236 // TODO: Split this logic into smaller chunks
225237 var styles = this . styles ;
226- var _props4 = this . props ;
227- var range = _props4 . range ;
228- var minDate = _props4 . minDate ;
229- var maxDate = _props4 . maxDate ;
230- var format = _props4 . format ;
231- var onlyClasses = _props4 . onlyClasses ;
238+ var _props6 = this . props ;
239+ var range = _props6 . range ;
240+ var minDate = _props6 . minDate ;
241+ var maxDate = _props6 . maxDate ;
242+ var format = _props6 . format ;
243+ var onlyClasses = _props6 . onlyClasses ;
244+ var disableDaysBeforeToday = _props6 . disableDaysBeforeToday ;
232245
233246 var shownDate = this . getShownDate ( ) ;
234247 var _state = this . state ;
@@ -260,7 +273,13 @@ var Calendar = (function (_Component) {
260273 // Current month's days
261274 for ( var i = 1 ; i <= dayCount ; i ++ ) {
262275 var dayMoment = shownDate . clone ( ) . date ( i ) ;
263- days . push ( { dayMoment : dayMoment } ) ;
276+ // set days before today to isPassive
277+ var _today = ( 0 , _moment2 [ 'default' ] ) ( ) ;
278+ if ( disableDaysBeforeToday && Number ( dayMoment . diff ( _today , "days" ) ) <= - 1 ) {
279+ days . push ( { dayMoment : dayMoment , isPassive : true } ) ;
280+ } else {
281+ days . push ( { dayMoment : dayMoment } ) ;
282+ }
264283 }
265284
266285 // Next month's days
@@ -270,7 +289,7 @@ var Calendar = (function (_Component) {
270289 days . push ( { dayMoment : dayMoment , isPassive : true } ) ;
271290 }
272291
273- var today = ( 0 , _moment2 [ 'default' ] ) ( ) . startOf ( 'day' ) ;
292+ var today = ( 0 , _moment2 [ 'default' ] ) ( ) . endOf ( 'day' ) ;
274293 return days . map ( function ( data , index ) {
275294 var dayMoment = data . dayMoment ;
276295 var isPassive = data . isPassive ;
@@ -281,6 +300,7 @@ var Calendar = (function (_Component) {
281300 var isEndEdge = range && checkEndEdge ( dayMoment , range ) ;
282301 var isEdge = isStartEdge || isEndEdge ;
283302 var isToday = today . isSame ( dayMoment ) ;
303+ var isSunday = dayMoment . day ( ) === 0 ;
284304 var isOutsideMinMax = isOusideMinMax ( dayMoment , minDate , maxDate , format ) ;
285305
286306 return _react2 [ 'default' ] . createElement ( _DayCellJs2 [ 'default' ] , _extends ( {
@@ -291,6 +311,7 @@ var Calendar = (function (_Component) {
291311 isEndEdge : isEndEdge ,
292312 isSelected : isSelected || isEdge ,
293313 isInRange : isInRange ,
314+ isSunday : isSunday ,
294315 isToday : isToday ,
295316 key : index ,
296317 isPassive : isPassive || isOutsideMinMax ,
@@ -303,9 +324,9 @@ var Calendar = (function (_Component) {
303324 key : 'render' ,
304325 value : function render ( ) {
305326 var styles = this . styles ;
306- var _props5 = this . props ;
307- var onlyClasses = _props5 . onlyClasses ;
308- var classNames = _props5 . classNames ;
327+ var _props7 = this . props ;
328+ var onlyClasses = _props7 . onlyClasses ;
329+ var classNames = _props7 . classNames ;
309330
310331 var classes = _extends ( { } , _stylesJs . defaultClasses , classNames ) ;
311332
@@ -337,11 +358,16 @@ var Calendar = (function (_Component) {
337358Calendar . defaultProps = {
338359 format : 'DD/MM/YYYY' ,
339360 theme : { } ,
361+ showMonthArrow : true ,
362+ disableDaysBeforeToday : false ,
340363 onlyClasses : false ,
341364 classNames : { }
342365} ;
343366
344367Calendar . propTypes = {
368+ showMonthArrow : _react . PropTypes . bool ,
369+ disableDaysBeforeToday : _react . PropTypes . bool ,
370+ lang : _react . PropTypes . string ,
345371 sets : _react . PropTypes . string ,
346372 range : _react . PropTypes . shape ( {
347373 startDate : _react . PropTypes . object ,
0 commit comments