forked from arqex/react-datetime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreact-datetime.umd.js
2 lines (2 loc) · 27.1 KB
/
react-datetime.umd.js
1
2
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("moment"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","moment","react-dom"],t):"object"==typeof exports?exports.Datetime=t(require("react"),require("moment"),require("react-dom")):e.Datetime=t(e.react,e.moment,e["react-dom"])}(window,(function(e,t,n){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=4)}([function(t,n){t.exports=e},function(e,n){e.exports=t},function(e,t){e.exports=n},function(e,t,n){e.exports=n(5)()},function(e,t,n){e.exports=n(7)},function(e,t,n){"use strict";var r=n(6);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,s){if(s!==r){var o=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw o.name="Invariant Violation",o}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:i};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";n.r(t);var r=n(3),i=n.n(r),a=n(1),s=n.n(a),o=n(0),l=n.n(o);function c(){return(c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(null,arguments)}function u(e){let{onClickPrev:t,onClickSwitch:n,onClickNext:r,switchContent:i,switchColSpan:a,switchProps:s}=e;return l.a.createElement("tr",null,l.a.createElement("th",{className:"rdtPrev",onClick:t},l.a.createElement("span",null,"‹")),l.a.createElement("th",c({className:"rdtSwitch",colSpan:a,onClick:n},s),i),l.a.createElement("th",{className:"rdtNext",onClick:r},l.a.createElement("span",null,"›")))}function p(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class d extends l.a.Component{constructor(){super(...arguments),p(this,"_setDate",e=>{this.props.updateDate(e)})}render(){return l.a.createElement("div",{className:"rdtDays"},l.a.createElement("table",null,l.a.createElement("thead",null,this.renderNavigation(),this.renderDayHeaders()),l.a.createElement("tbody",null,this.renderDays()),this.renderFooter()))}renderNavigation(){const e=this.props.viewDate,t=e.localeData();return l.a.createElement(u,{onClickPrev:()=>this.props.navigate(-1,"months"),onClickSwitch:()=>this.props.showView("months"),onClickNext:()=>this.props.navigate(1,"months"),switchContent:t.months(e)+" "+e.year(),switchColSpan:5,switchProps:{"data-value":this.props.viewDate.month()}})}renderDayHeaders(){const e=this.props.startDay;let t=function(e,t){const n=void 0!==t?t:e.firstDayOfWeek();let r=[],i=0;return e._weekdaysMin.forEach((function(e){r[(7+i++-n)%7]=e})),r}(this.props.viewDate.localeData(),e).map((e,t)=>l.a.createElement("th",{key:e+t,className:"dow"},e));return l.a.createElement("tr",null,t)}renderDays(){const e=this.props.viewDate,t=this.props.startDay,n=e.clone().startOf("month"),r=e.clone().endOf("month");let i=[[],[],[],[],[],[]],a=e.clone().subtract(1,"months");a.date(a.daysInMonth()).startOf("week"),void 0!==t&&t!==a.day()&&a.add(t-a.day(),"d");let s=a.clone().add(42,"d"),o=0;for(;a.isBefore(s);){h(i,o++).push(this.renderDay(a,n,r)),a.add(1,"d")}return i.map((e,t)=>l.a.createElement("tr",{key:"".concat(s.month(),"_").concat(t)},e))}renderDay(e,t,n){let r=this.props.selectedDate,i={key:e.format("M_D"),"data-value":e.date(),"data-month":e.month(),"data-year":e.year()},a="rdtDay";return e.isBefore(t)?a+=" rdtOld":e.isAfter(n)&&(a+=" rdtNew"),r&&e.isSame(r,"day")&&(a+=" rdtActive"),e.isSame(this.props.moment(),"day")&&(a+=" rdtToday"),this.props.isValidDate(e)?i.onClick=this._setDate:a+=" rdtDisabled",i.className=a,this.props.renderDay(i,e.clone(),r&&r.clone())}renderFooter(){if(!this.props.timeFormat)return;const e=this.props.viewDate;return l.a.createElement("tfoot",null,l.a.createElement("tr",null,l.a.createElement("td",{onClick:()=>this.props.showView("time"),colSpan:7,className:"rdtTimeToggle"},e.format(this.props.timeFormat))))}}function h(e,t){return e[Math.floor(t/7)]}function m(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}p(d,"defaultProps",{isValidDate:()=>!0,renderDay:(e,t)=>l.a.createElement("td",e,t.date())});class f extends l.a.Component{constructor(){super(...arguments),m(this,"_updateSelectedMonth",e=>{this.props.updateDate(e)})}render(){return l.a.createElement("div",{className:"rdtMonths"},l.a.createElement("table",null,l.a.createElement("thead",null,this.renderNavigation())),l.a.createElement("table",null,l.a.createElement("tbody",null,this.renderMonths())))}renderNavigation(){let e=this.props.viewDate.year();return l.a.createElement(u,{onClickPrev:()=>this.props.navigate(-1,"years"),onClickSwitch:()=>this.props.showView("years"),onClickNext:()=>this.props.navigate(1,"years"),switchContent:e,switchColSpan:"2"})}renderMonths(){let e=[[],[],[]];for(let t=0;t<12;t++){v(e,t).push(this.renderMonth(t))}return e.map((e,t)=>l.a.createElement("tr",{key:t},e))}renderMonth(e){const t=this.props.selectedDate;let n,r="rdtMonth";this.isDisabledMonth(e)?r+=" rdtDisabled":n=this._updateSelectedMonth,t&&t.year()===this.props.viewDate.year()&&t.month()===e&&(r+=" rdtActive");let i={key:e,className:r,"data-value":e,onClick:n};return this.props.renderMonth?this.props.renderMonth(i,e,this.props.viewDate.year(),this.props.selectedDate&&this.props.selectedDate.clone()):l.a.createElement("td",i,this.getMonthText(e))}isDisabledMonth(e){let t=this.props.isValidDate;if(!t)return!1;let n=this.props.viewDate.clone().set({month:e}),r=n.endOf("month").date()+1;for(;r-- >1;)if(t(n.date(r)))return!1;return!0}getMonthText(e){const t=this.props.viewDate,n=t.localeData().monthsShort(t.month(e));return(r=n.substring(0,3)).charAt(0).toUpperCase()+r.slice(1);var r}}function v(e,t){return t<4?e[0]:t<8?e[1]:e[2]}function g(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class y extends l.a.Component{constructor(){super(...arguments),g(this,"disabledYearsCache",{}),g(this,"_updateSelectedYear",e=>{this.props.updateDate(e)})}render(){return l.a.createElement("div",{className:"rdtYears"},l.a.createElement("table",null,l.a.createElement("thead",null,this.renderNavigation())),l.a.createElement("table",null,l.a.createElement("tbody",null,this.renderYears())))}renderNavigation(){const e=this.getViewYear();return l.a.createElement(u,{onClickPrev:()=>this.props.navigate(-10,"years"),onClickSwitch:()=>this.props.showView("years"),onClickNext:()=>this.props.navigate(10,"years"),switchContent:"".concat(e,"-").concat(e+9)})}renderYears(){const e=this.getViewYear();let t=[[],[],[]];for(let n=e-1;n<e+11;n++){w(t,n-e).push(this.renderYear(n))}return t.map((e,t)=>l.a.createElement("tr",{key:t},e))}renderYear(e){const t=this.getSelectedYear();let n,r="rdtYear";this.isDisabledYear(e)?r+=" rdtDisabled":n=this._updateSelectedYear,t===e&&(r+=" rdtActive");let i={key:e,className:r,"data-value":e,onClick:n};return this.props.renderYear(i,e,this.props.selectedDate&&this.props.selectedDate.clone())}getViewYear(){return 10*parseInt(this.props.viewDate.year()/10,10)}getSelectedYear(){return this.props.selectedDate&&this.props.selectedDate.year()}isDisabledYear(e){let t=this.disabledYearsCache;if(void 0!==t[e])return t[e];let n=this.props.isValidDate;if(!n)return!1;let r=this.props.viewDate.clone().set({year:e}),i=r.endOf("year").dayOfYear()+1;for(;i-- >1;)if(n(r.dayOfYear(i)))return t[e]=!1,!1;return t[e]=!0,!0}}function w(e,t){return t<3?e[0]:t<7?e[1]:e[2]}g(y,"defaultProps",{renderYear:(e,t)=>l.a.createElement("td",e,t)});const D={hours:{min:0,max:23,step:1},minutes:{min:0,max:59,step:1},seconds:{min:0,max:59,step:1},milliseconds:{min:0,max:999,step:1}};class C extends l.a.Component{constructor(e){super(e),this.constraints=function(e){let t={};return Object.keys(D).forEach(n=>{t[n]={...D[n],...e[n]||{}}}),t}(e.timeConstraints),this.state=this.getTimeParts(e.selectedDate||e.viewDate)}render(){let e=[];const t=this.state;return this.getCounters().forEach((n,r)=>{r&&"ampm"!==n&&e.push(l.a.createElement("div",{key:"sep".concat(r),className:"rdtCounterSeparator"},":")),e.push(this.renderCounter(n,t[n]))}),l.a.createElement("div",{className:"rdtTime"},l.a.createElement("table",null,this.renderHeader(),l.a.createElement("tbody",null,l.a.createElement("tr",null,l.a.createElement("td",null,l.a.createElement("div",{className:"rdtCounters"},e))))))}renderCounter(e,t){return"hours"===e&&this.isAMPM()&&0===(t=(t-1)%12+1)&&(t=12),"ampm"===e&&(t=-1!==this.props.timeFormat.indexOf(" A")?this.props.viewDate.format("A"):this.props.viewDate.format("a")),l.a.createElement("div",{key:e,className:"rdtCounter"},l.a.createElement("span",{className:"rdtBtn",onMouseDown:t=>this.onStartClicking(t,"increase",e)},"▲"),l.a.createElement("div",{className:"rdtCount"},t),l.a.createElement("span",{className:"rdtBtn",onMouseDown:t=>this.onStartClicking(t,"decrease",e)},"▼"))}renderHeader(){if(!this.props.dateFormat)return;const e=this.props.selectedDate||this.props.viewDate;return l.a.createElement("thead",null,l.a.createElement("tr",null,l.a.createElement("td",{className:"rdtSwitch",colSpan:"4",onClick:()=>this.props.showView("days")},e.format(this.props.dateFormat))))}onStartClicking(e,t,n){if(e&&e.button&&0!==e.button)return;if("ampm"===n)return this.toggleDayPart();let r={},i=document.body;r[n]=this[t](n),this.setState(r),this.timer=setTimeout(()=>{this.increaseTimer=setInterval(()=>{r[n]=this[t](n),this.setState(r)},70)},500),this.mouseUpListener=()=>{clearTimeout(this.timer),clearInterval(this.increaseTimer),this.props.setTime(n,parseInt(this.state[n],10)),i.removeEventListener("mouseup",this.mouseUpListener),i.removeEventListener("touchend",this.mouseUpListener)},i.addEventListener("mouseup",this.mouseUpListener),i.addEventListener("touchend",this.mouseUpListener)}toggleDayPart(){let e=parseInt(this.state.hours,10);e>=12?e-=12:e+=12,this.props.setTime("hours",e)}increase(e){const t=this.constraints[e];let n=parseInt(this.state[e],10)+t.step;return n>t.max&&(n=t.min+(n-(t.max+1))),b(e,n)}decrease(e){const t=this.constraints[e];let n=parseInt(this.state[e],10)-t.step;return n<t.min&&(n=t.max+1-(t.min-n)),b(e,n)}getCounters(){let e=[],t=this.props.timeFormat;return-1!==t.toLowerCase().indexOf("h")&&(e.push("hours"),-1!==t.indexOf("m")&&(e.push("minutes"),-1!==t.indexOf("s")&&(e.push("seconds"),-1!==t.indexOf("S")&&e.push("milliseconds")))),this.isAMPM()&&e.push("ampm"),e}isAMPM(){return-1!==this.props.timeFormat.toLowerCase().indexOf(" a")}getTimeParts(e){const t=e.hours();return{hours:b("hours",t),minutes:b("minutes",e.minutes()),seconds:b("seconds",e.seconds()),milliseconds:b("milliseconds",e.milliseconds()),ampm:t<12?"am":"pm"}}componentDidUpdate(e){this.props.selectedDate?this.props.selectedDate!==e.selectedDate&&this.setState(this.getTimeParts(this.props.selectedDate)):e.viewDate!==this.props.viewDate&&this.setState(this.getTimeParts(this.props.viewDate))}}function b(e,t){const n={hours:1,minutes:2,seconds:2,milliseconds:3};let r=t+"";for(;r.length<n[e];)r="0"+r;return r}var O=n(2);function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t,n){return e===t||(e.correspondingElement?e.correspondingElement.classList.contains(n):e.classList.contains(n))}var V,S,N=(void 0===V&&(V=0),function(){return++V}),P={},T={},x=["touchstart","touchmove"];function F(e,t){var n={};return-1!==x.indexOf(t)&&S&&(n.passive=!e.props.preventDefault),n}var I=function(e,t){var n,r,i=e.displayName||e.name||"Component";return r=n=function(n){var r,a;function s(e){var r;return(r=n.call(this,e)||this).__outsideClickHandler=function(e){if("function"!=typeof r.__clickOutsideHandlerProp){var t=r.getInstance();if("function"!=typeof t.props.handleClickOutside){if("function"!=typeof t.handleClickOutside)throw new Error("WrappedComponent: "+i+" lacks a handleClickOutside(event) function for processing outside click events.");t.handleClickOutside(e)}else t.props.handleClickOutside(e)}else r.__clickOutsideHandlerProp(e)},r.__getComponentNode=function(){var e=r.getInstance();return t&&"function"==typeof t.setClickOutsideRef?t.setClickOutsideRef()(e):"function"==typeof e.setClickOutsideRef?e.setClickOutsideRef():Object(O.findDOMNode)(e)},r.enableOnClickOutside=function(){if("undefined"!=typeof document&&!T[r._uid]){void 0===S&&(S=function(){if("undefined"!=typeof window&&"function"==typeof window.addEventListener){var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}}),n=function(){};return window.addEventListener("testPassiveEventSupport",n,t),window.removeEventListener("testPassiveEventSupport",n,t),e}}()),T[r._uid]=!0;var e=r.props.eventTypes;e.forEach||(e=[e]),P[r._uid]=function(e){var t;null!==r.componentNode&&(r.initTimeStamp>e.timeStamp||(r.props.preventDefault&&e.preventDefault(),r.props.stopPropagation&&e.stopPropagation(),r.props.excludeScrollbar&&(t=e,document.documentElement.clientWidth<=t.clientX||document.documentElement.clientHeight<=t.clientY)||function(e,t,n){if(e===t)return!0;for(;e.parentNode||e.host;){if(e.parentNode&&_(e,t,n))return!0;e=e.parentNode||e.host}return e}(e.composed&&e.composedPath&&e.composedPath().shift()||e.target,r.componentNode,r.props.outsideClickIgnoreClass)===document&&r.__outsideClickHandler(e)))},e.forEach((function(e){document.addEventListener(e,P[r._uid],F(E(r),e))}))}},r.disableOnClickOutside=function(){delete T[r._uid];var e=P[r._uid];if(e&&"undefined"!=typeof document){var t=r.props.eventTypes;t.forEach||(t=[t]),t.forEach((function(t){return document.removeEventListener(t,e,F(E(r),t))})),delete P[r._uid]}},r.getRef=function(e){return r.instanceRef=e},r._uid=N(),r.initTimeStamp=performance.now(),r}a=n,(r=s).prototype=Object.create(a.prototype),r.prototype.constructor=r,k(r,a);var l=s.prototype;return l.getInstance=function(){if(e.prototype&&!e.prototype.isReactComponent)return this;var t=this.instanceRef;return t.getInstance?t.getInstance():t},l.componentDidMount=function(){if("undefined"!=typeof document&&document.createElement){var e=this.getInstance();if(t&&"function"==typeof t.handleClickOutside&&(this.__clickOutsideHandlerProp=t.handleClickOutside(e),"function"!=typeof this.__clickOutsideHandlerProp))throw new Error("WrappedComponent: "+i+" lacks a function for processing outside click events specified by the handleClickOutside config option.");this.componentNode=this.__getComponentNode(),this.props.disableOnClickOutside||this.enableOnClickOutside()}},l.componentDidUpdate=function(){this.componentNode=this.__getComponentNode()},l.componentWillUnmount=function(){this.disableOnClickOutside()},l.render=function(){var t=this.props;t.excludeScrollbar;var n=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(t,["excludeScrollbar"]);return e.prototype&&e.prototype.isReactComponent?n.ref=this.getRef:n.wrappedRef=this.getRef,n.disableOnClickOutside=this.disableOnClickOutside,n.enableOnClickOutside=this.enableOnClickOutside,Object(o.createElement)(e,n)},s}(o.Component),n.displayName="OnClickOutside("+i+")",n.defaultProps={eventTypes:["mousedown","touchstart"],excludeScrollbar:t&&t.excludeScrollbar||!1,outsideClickIgnoreClass:"ignore-react-onclickoutside",preventDefault:!1,stopPropagation:!1},n.getClass=function(){return e.getClass?e.getClass():e},r};function M(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"default",(function(){return Z}));const j="years",Y="months",L="days",R="time",H=i.a,A=function(){},U=H.oneOfType([H.instanceOf(s.a),H.instanceOf(Date),H.string]);class Z extends l.a.Component{constructor(e){super(e),M(this,"_renderCalendar",()=>{const e=this.props,t=this.state;let n={viewDate:t.viewDate.clone(),selectedDate:this.getSelectedDate(),isValidDate:e.isValidDate,updateDate:this._updateDate,navigate:this._viewNavigate,moment:s.a,showView:this._showView};switch(t.currentView){case j:return n.renderYear=e.renderYear,l.a.createElement(y,n);case Y:return n.renderMonth=e.renderMonth,l.a.createElement(f,n);case L:return n.renderDay=e.renderDay,n.timeFormat=this.getFormat("time"),n.startDay=e.startDay,l.a.createElement(d,n);default:return n.dateFormat=this.getFormat("date"),n.timeFormat=this.getFormat("time"),n.timeConstraints=e.timeConstraints,n.setTime=this._setTime,l.a.createElement(C,n)}}),M(this,"_showView",(e,t)=>{const n=(t||this.state.viewDate).clone(),r=this.props.onBeforeNavigate(e,this.state.currentView,n);r&&this.state.currentView!==r&&(this.props.onNavigate(r),this.setState({currentView:r}))}),M(this,"viewToMethod",{days:"date",months:"month",years:"year"}),M(this,"nextView",{days:"time",months:"days",years:"months"}),M(this,"_updateDate",e=>{let t=this.state.currentView,n=this.getUpdateOn(this.getFormat("date")),r=this.state.viewDate.clone();"days"===t&&(r.month(parseInt(e.target.getAttribute("data-month"),10)),r.year(parseInt(e.target.getAttribute("data-year"),10))),r[this.viewToMethod[t]](parseInt(e.target.getAttribute("data-value"),10));let i={viewDate:r};t===n?(i.selectedDate=r.clone(),i.inputValue=r.format(this.getFormat("datetime")),void 0===this.props.open&&this.props.input&&this.props.closeOnSelect&&this._closeCalendar(),this.props.onChange(r.clone())):this._showView(this.nextView[t],r),this.setState(i)}),M(this,"_viewNavigate",(e,t)=>{let n=this.state.viewDate.clone();n.add(e,t),e>0?this.props.onNavigateForward(e,t):this.props.onNavigateBack(-e,t),this.setState({viewDate:n})}),M(this,"_setTime",(e,t)=>{let n=(this.getSelectedDate()||this.state.viewDate).clone();n[e](t),this.props.value||this.setState({selectedDate:n,viewDate:n.clone(),inputValue:n.format(this.getFormat("datetime"))}),this.props.onChange(n)}),M(this,"_openCalendar",()=>{this.isOpen()||this.setState({open:!0},this.props.onOpen)}),M(this,"_closeCalendar",()=>{this.isOpen()&&this.setState({open:!1},()=>{this.props.onClose(this.state.selectedDate||this.state.inputValue)})}),M(this,"_handleClickOutside",()=>{let e=this.props;e.input&&this.state.open&&void 0===e.open&&e.closeOnClickOutside&&this._closeCalendar()}),M(this,"_onInputFocus",e=>{this.callHandler(this.props.inputProps.onFocus,e)&&this._openCalendar()}),M(this,"_onInputChange",e=>{if(!this.callHandler(this.props.inputProps.onChange,e))return;const t=e.target?e.target.value:e,n=this.localMoment(t,this.getFormat("datetime"));let r={inputValue:t};n.isValid()?(r.selectedDate=n,r.viewDate=n.clone().startOf("month")):r.selectedDate=null,this.setState(r,()=>{this.props.onChange(n.isValid()?n:this.state.inputValue)})}),M(this,"_onInputKeyDown",e=>{this.callHandler(this.props.inputProps.onKeyDown,e)&&9===e.which&&this.props.closeOnTab&&this._closeCalendar()}),M(this,"_onInputClick",e=>{this.callHandler(this.props.inputProps.onClick,e)&&this._openCalendar()}),this.state=this.getInitialState()}render(){return l.a.createElement(q,{className:this.getClassName(),onClickOut:this._handleClickOutside},this.renderInput(),l.a.createElement("div",{className:"rdtPicker"},this.renderView()))}renderInput(){if(!this.props.input)return;const e={type:"text",className:"form-control",value:this.getInputValue(),...this.props.inputProps,onFocus:this._onInputFocus,onChange:this._onInputChange,onKeyDown:this._onInputKeyDown,onClick:this._onInputClick};return this.props.renderInput?l.a.createElement("div",null,this.props.renderInput(e,this._openCalendar,this._closeCalendar)):l.a.createElement("input",e)}renderView(){return this.props.renderView(this.state.currentView,this._renderCalendar)}getInitialState(){let e=this.props,t=this.getFormat("datetime"),n=this.parseDate(e.value||e.initialValue,t);return this.checkTZ(),{open:!e.input,currentView:e.initialViewMode||this.getInitialView(),viewDate:this.getInitialViewDate(n),selectedDate:n&&n.isValid()?n:void 0,inputValue:this.getInitialInputValue(n)}}getInitialViewDate(e){const t=this.props.initialViewDate;let n;if(t){if(n=this.parseDate(t,this.getFormat("datetime")),n&&n.isValid())return n;B('The initialViewDated given "'+t+'" is not valid. Using current date instead.')}else if(e&&e.isValid())return e.clone();return this.getInitialDate()}getInitialDate(){let e=this.localMoment();return e.hour(0).minute(0).second(0).millisecond(0),e}getInitialView(){const e=this.getFormat("date");return e?this.getUpdateOn(e):R}parseDate(e,t){let n;return e&&"string"==typeof e?n=this.localMoment(e,t):e&&(n=this.localMoment(e)),n&&!n.isValid()&&(n=null),n}getClassName(){let e="rdt",t=this.props,n=t.className;return Array.isArray(n)?e+=" "+n.join(" "):n&&(e+=" "+n),t.input||(e+=" rdtStatic"),this.isOpen()&&(e+=" rdtOpen"),e}isOpen(){return!this.props.input||(void 0===this.props.open?this.state.open:this.props.open)}getUpdateOn(e){return this.props.updateOnView?this.props.updateOnView:e.match(/[lLD]/)?L:-1!==e.indexOf("M")?Y:-1!==e.indexOf("Y")?j:L}getLocaleData(){let e=this.props;return this.localMoment(e.value||e.defaultValue||new Date).localeData()}getDateFormat(){const e=this.getLocaleData();let t=this.props.dateFormat;return!0===t?e.longDateFormat("L"):t||""}getTimeFormat(){const e=this.getLocaleData();let t=this.props.timeFormat;return!0===t?e.longDateFormat("LT"):t||""}getFormat(e){if("date"===e)return this.getDateFormat();if("time"===e)return this.getTimeFormat();let t=this.getDateFormat(),n=this.getTimeFormat();return t&&n?t+" "+n:t||n}updateTime(e,t,n,r){let i={};const a=r?"selectedDate":"viewDate";i[a]=this.state[a].clone()[e](t,n),this.setState(i)}localMoment(e,t,n){let r=null;return r=(n=n||this.props).utc?s.a.utc(e,t,n.strictParsing):n.displayTimeZone?s.a.tz(e,t,n.displayTimeZone):s()(e,t,n.strictParsing),n.locale&&r.locale(n.locale),r}checkTZ(){const{displayTimeZone:e}=this.props;!e||this.tzWarning||s.a.tz||(this.tzWarning=!0,B('displayTimeZone prop with value "'+e+'" is used but moment.js timezone is not loaded.',"error"))}componentDidUpdate(e){if(e===this.props)return;let t=!1,n=this.props;["locale","utc","displayZone","dateFormat","timeFormat"].forEach((function(r){e[r]!==n[r]&&(t=!0)})),t&&this.regenerateDates(),n.value&&n.value!==e.value&&this.setViewDate(n.value),this.checkTZ()}regenerateDates(){const e=this.props;let t=this.state.viewDate.clone(),n=this.state.selectedDate&&this.state.selectedDate.clone();e.locale&&(t.locale(e.locale),n&&n.locale(e.locale)),e.utc?(t.utc(),n&&n.utc()):e.displayTimeZone?(t.tz(e.displayTimeZone),n&&n.tz(e.displayTimeZone)):(t.locale(),n&&n.locale());let r={viewDate:t,selectedDate:n};n&&n.isValid()&&(r.inputValue=n.format(this.getFormat("datetime"))),this.setState(r)}getSelectedDate(){if(void 0===this.props.value)return this.state.selectedDate;let e=this.parseDate(this.props.value,this.getFormat("datetime"));return!(!e||!e.isValid())&&e}getInitialInputValue(e){const t=this.props;return t.inputProps.value?t.inputProps.value:e&&e.isValid()?e.format(this.getFormat("datetime")):t.value&&"string"==typeof t.value?t.value:t.initialValue&&"string"==typeof t.initialValue?t.initialValue:""}getInputValue(){let e=this.getSelectedDate();return e?e.format(this.getFormat("datetime")):this.state.inputValue}setViewDate(e){let t,n=function(){return B("Invalid date passed to the `setViewDate` method: "+e)};return e?(t="string"==typeof e?this.localMoment(e,this.getFormat("datetime")):this.localMoment(e),t&&t.isValid()?void this.setState({viewDate:t}):n()):n()}navigate(e){this._showView(e)}callHandler(e,t){return!e||!1!==e(t)}}function B(e,t){let n="undefined"!=typeof window&&window.console;n&&(t||(t="warn"),n[t]("***react-datetime:"+e))}M(Z,"propTypes",{value:U,initialValue:U,initialViewDate:U,initialViewMode:H.oneOf([j,Y,L,R]),onOpen:H.func,onClose:H.func,onChange:H.func,onNavigate:H.func,onBeforeNavigate:H.func,onNavigateBack:H.func,onNavigateForward:H.func,updateOnView:H.string,locale:H.string,utc:H.bool,displayTimeZone:H.string,input:H.bool,dateFormat:H.oneOfType([H.string,H.bool]),timeFormat:H.oneOfType([H.string,H.bool]),inputProps:H.object,timeConstraints:H.object,isValidDate:H.func,open:H.bool,startDay:7,strictParsing:H.bool,closeOnSelect:H.bool,closeOnTab:H.bool,renderView:H.func,renderInput:H.func,renderDay:H.func,renderMonth:H.func,renderYear:H.func}),M(Z,"defaultProps",{onOpen:A,onClose:A,onCalendarOpen:A,onCalendarClose:A,onChange:A,onNavigate:A,onBeforeNavigate:function(e){return e},onNavigateBack:A,onNavigateForward:A,dateFormat:!0,timeFormat:!0,utc:!1,className:"",input:!0,inputProps:{},timeConstraints:{},isValidDate:function(){return!0},strictParsing:!0,closeOnSelect:!1,closeOnTab:!0,closeOnClickOutside:!0,renderView:(e,t)=>t()}),M(Z,"moment",s.a);class W extends l.a.Component{constructor(){super(...arguments),M(this,"container",l.a.createRef())}render(){return l.a.createElement("div",{className:this.props.className,ref:this.container},this.props.children)}handleClickOutside(e){this.props.onClickOut(e)}setClickOutsideRef(){return this.container.current}}const q=I(W)}]).default}));
//# sourceMappingURL=react-datetime.umd.js.map