meraproject/lib/js/bws/react/form/calendar.min.js
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

3 lines
3.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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