3 lines
3.8 KiB
JavaScript
3 lines
3.8 KiB
JavaScript
var Calendar,month_short,months;months=["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],month_short=["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"];export default window.Calendar=Calendar=class extends React.Component{constructor(e){var t,a,n,s,r;if(super(e),t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=null,null!=this.props.value)switch(typeof(s=e.value)){case"string":a=s.split("-"),r=new Date(a[0],a[1]-1,a[2]);break;case"number":r=new Date(1e3*parseInt(s))}this.state={year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),today:n,value:r,opened:!1},this.days=0,this.onCancel=this.onCancel.bind(this),this.onSubmit=this.onSubmit.bind(this),this.open=this.open.bind(this),this.close=this.close.bind(this)}onCancel(){var e;return this.close(),"function"==typeof(e=this.props).onCancel?e.onCancel():void 0}onSubmit(){var e;return this.close(),"function"==typeof(e=this.props).onSubmit?e.onSubmit(this.state.value):void 0}open(){return this.setState({opened:!0})}close(){return this.setState({opened:!1})}prevMonth(){var e,t;return({month:e,year:t}=this.state),--e<0&&(e=11,t--),this.setState({month:e,year:t})}nextMonth(){var e,t;return({month:e,year:t}=this.state),++e>11&&(e=0,t++),this.setState({month:e,year:t})}getNextMonth(e){return++e>11&&(e=0),e}getPrevMonth(e){return++e<0&&(e=11),e}daysInMonth(e,t){return 33-new Date(e,t,33).getDate()}renderPrevNext(e){return React.createElement("div",{class:"td na"},e)}selectDay(e,t,a){return this.setState({value:new Date(e,t,a)},this.onSubmit)}renderDate(e){var t,a,n,s,r,i,c,h;return({year:h,month:s,date:t,value:i}=this.state),r=new Date(h,s,e).getTime(),c=null,null!=i&&(c=new Date(i.getFullYear(),i.getMonth(),i.getDate())),n=r===this.state.today.getTime(),a=r===(null!=c?c.getTime():void 0),React.createElement("div",{onClick:this.selectDay.bind(this,h,s,e),class:["td",n?"cal-today":"",a?"selected round":""].join(" ")},e)}renderWeek(e){var t,a,n,s,r;for(a=[],t=n=s=e,r=e+6;s<=r?n<=r:n>=r;t=s<=r?++n:--n)t>this.days?(t-=this.days,a.push(this.renderPrevNext(t))):a.push(this.renderDate(t));return React.createElement("div",{class:"tr"},a)}render(){var e,t,a,n,s,r,i,c,h,l,o,d;for(l=this,({month:s,year:d,opened:r}=this.state),this.getNextMonth(s),this.getNextMonth(s),i=this.daysInMonth(d,s-1),t=this.daysInMonth(d,s),e=new Date(d,s,1).getDay()-1,this.days=t,e<0&&(e=6),o=[],a=n=7-e+1,c=t;n<=c;a=n+=7)o.push(a);return React.createElement("div",{className:"f fcenter datepicker_wrap "+(r?"open":"")},React.createElement("div",{className:"datepicker_bg",onClick:this.onCancel}),React.createElement("div",{className:"datepicker_content"},React.createElement("div",{className:"datepicker_title"},React.createElement("div",{className:"icon prev pointer",onClick:this.prevMonth.bind(this)}),React.createElement("div",{class:"ch-blue"},month_short[s]+" "+this.state.year),React.createElement("div",{className:"icon next pointer",onClick:this.nextMonth.bind(this)})),React.createElement("div",{class:"datepicker"},React.createElement("div",{class:"tr"},React.createElement("div",{class:"th"},"пн"),React.createElement("div",{class:"th"},"вт"),React.createElement("div",{class:"th"},"ср"),React.createElement("div",{class:"th"},"чт"),React.createElement("div",{class:"th"},"пт"),React.createElement("div",{class:"th"},"сб"),React.createElement("div",{class:"th"},"вс")),React.createElement("div",{class:"tr"},e>0?function(){for(var t=[],a=h=i-(e-1);h<=i?a<=i:a>=i;h<=i?a++:a--)t.push(a);return t}.apply(this).map(l.renderPrevNext.bind(l)):null,function(){for(var t=[],a=1,n=7-e;1<=n?a<=n:a>=n;1<=n?a++:a--)t.push(a);return t}.apply(this).map(l.renderDate.bind(l))),o.map(l.renderWeek.bind(l)))))}};
|
||
//# sourceMappingURL=calendar.min.js.map
|