UNPKG

react-next-dates

Version:

Simple and Customizable DatePicker, DateRangePicker and TimePicker for React.

3 lines (2 loc) 25.2 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("date-fns"),n=require("classnames"),a=require("react-popper"),r=require("react-dom");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=o(e),u=o(n);function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i.apply(this,arguments)}var c={disabled:"-disabled",selected:"-selected",today:"-today",selectedStart:"-selected-start",selectedMiddle:"-selected-middle",selectedEnd:"-selected-end"};function s(e,t){void 0===e&&(e={}),void 0===t&&(t={});var n=Object.keys(t).reduce((function(n,a){var r;return i({},n,((r={})[a]=e[a]?function(n){return e[a](n)||t[a](n)}:t[a],r))}),{});return i({},e,n)}function d(e,t){void 0===e&&(e={}),void 0===t&&(t={});var n=Object.keys(t).reduce((function(n,a){var r;return i({},n,((r={})[a]=s(e[a],t[a]),r))}),{});return i({},e,n)}function f(e,t){void 0===e&&(e={}),void 0===t&&(t={});var n=i({},c,t);return function(t){return Object.keys(e).reduce((function(a,r){var o,l=n[r],u=e[r];return l&&u?i({},a,((o={})[l]=u(t),o)):a}),{})}}var m=function(n){var a=n.locale,r=n.day,o=n.modifiers,i=n.modifiersClassNames,c=n.onClick,d=n.onHover,m=t.getDate(r),h=f(s({today:function(e){return t.isToday(e)}},o),i)(r),v=e.useMemo((function(){if(1===t.getDate(r))return t.differenceInDays(r,t.startOfWeek(r,{locale:a}))+1}),[r,a]);return l.default.createElement("span",{className:u.default("day",h),onClick:function(){return c(r)},onMouseEnter:function(){return d(r)},onMouseLeave:function(){return d(null)},style:{gridColumnStart:v}},l.default.createElement("span",{className:"day-number"},m))};function h(e,n,a){var r=t.parse(e,n,new Date,{locale:a});return t.isValid(r)?r:null}function v(e,n,a){return t.format(e,n,{locale:a})}function p(e,n){return t.set(e,{hours:n.getHours(),minutes:n.getMinutes(),seconds:n.getSeconds(),milliseconds:n.getMilliseconds()})}function D(e,n){return n?p(e,n):t.startOfDay(e)}function g(e,n,a,r){var o=t.startOfDay(e),l=t.startOfDay(n);return t.differenceInDays(l,o)>=a&&(!r||t.differenceInDays(l,o)<=r)}var y=function(n){var a=n.locale,r=e.useMemo((function(){var e=new Date;return t.eachDayOfInterval({start:t.startOfWeek(e,{locale:a}),end:t.endOfWeek(e,{locale:a})}).map((function(e){return v(e,"eeeee",a)}))}),[a]);return l.default.createElement("div",{className:"day-header"},r.map((function(e,t){return l.default.createElement("span",{key:t},e)})))},C=function(n){var a=n.locale,r=n.month,o=n.modifiers,u=n.modifiersClassNames,i=n.onSelect,c=n.onHover,s=e.useMemo((function(){return t.eachDayOfInterval({start:t.startOfMonth(r),end:t.endOfMonth(r)})}),[r]);return l.default.createElement("div",{className:"day-grid"},l.default.createElement(y,{locale:a}),l.default.createElement("div",{className:"day-grid-content"},s.map((function(e){return l.default.createElement(m,{key:e.toISOString(),locale:a,day:e,modifiers:o,modifiersClassNames:u,onClick:i,onHover:c})}))))},E=function(n){var a=n.locale,r=n.month,o=n.mode,u=n.onChangeMonth,i=n.onChangeMode,c=e.useMemo((function(){switch(o){case"day":return v(r,"LLLL yyyy",a);case"month":return v(r,"yyyy",a);default:return null}}),[r,o,a]);return l.default.createElement("div",{className:"navigation"},l.default.createElement("div",null,c&&l.default.createElement("p",{onClick:function(){switch(o){case"day":i("month");break;case"month":i("year")}}},c)),l.default.createElement("button",{type:"button",className:"prev",onClick:function(){switch(o){case"day":u(t.startOfMonth(t.subMonths(r,1)));break;case"month":u(t.startOfMonth(t.subYears(r,1)));break;case"year":u(t.startOfMonth(t.subYears(r,24)))}}}),l.default.createElement("button",{type:"button",className:"next",onClick:function(){switch(o){case"day":u(t.startOfMonth(t.addMonths(r,1)));break;case"month":u(t.startOfMonth(t.addYears(r,1)));break;case"year":u(t.startOfMonth(t.addYears(r,24)))}}}))},N=function(e){var n=e.year,a=e.modifiersClassNames,r=e.onSelect,o=f(s({today:function(e){return t.isThisYear(e)}},e.modifiers),a)(n);return l.default.createElement("span",{className:u.default("year",o),onClick:function(){return r(n)}},n.getFullYear())},O=function(n){var a=n.month,r=n.modifiers,o=n.modifiersClassNames,u=n.onYearChange,i=e.useMemo((function(){var e=24*Math.floor(t.getYear(a)/24);return t.eachYearOfInterval({start:t.setYear(a,e),end:t.setYear(a,e+23)})}),[a]);return l.default.createElement("div",{className:"year-grid"},i.map((function(e){return l.default.createElement(N,{key:e.getFullYear(),year:e,modifiers:r,modifiersClassNames:o,onSelect:u})})))},M=function(e){var n=e.locale,a=e.month,r=e.modifiersClassNames,o=e.onSelect,i=f(s({today:function(e){return t.isThisMonth(e)}},e.modifiers),r)(a);return l.default.createElement("span",{className:u.default("month",i),onClick:function(){return o(a)}},v(a,"LLLL",n))},S=function(n){var a=n.locale,r=n.month,o=n.modifiers,u=n.modifiersClassNames,i=n.onMonthChange,c=e.useMemo((function(){return Array(12).fill("").map((function(e,n){return t.setMonth(r,n)}),a)}),[a,r]);return l.default.createElement("div",{className:"month-grid"},c.map((function(e){return l.default.createElement(M,{key:e.toISOString(),locale:a,month:e,modifiers:o,modifiersClassNames:u,onSelect:i})})))};function T(t,n,a){var r=e.useState(t);return a&&n?[n,a]:[r[0],r[1]]}function b(t){var n=e.useRef(null),a=e.useRef(null),r=e.useRef(null),o=e.useRef(null),l=e.useRef(null);return e.useEffect((function(){var e=function(e){var u,i,c,s,d;!(e.target instanceof Element)||null!=(u=n.current)&&u.contains(e.target)||null!=(i=a.current)&&i.contains(e.target)||null!=(c=r.current)&&c.contains(e.target)||null!=(s=o.current)&&s.contains(e.target)||null!=(d=l.current)&&d.contains(e.target)||t()};return document.addEventListener("mousedown",e,{passive:!0}),function(){document.removeEventListener("mousedown",e)}}),[t]),[n,a,r,o,l]}function k(){var t=e.useState(!1),n=t[0],a=t[1];return e.useEffect((function(){var e=function(){a(!0),t()},t=function(){document.removeEventListener("touchstart",e)};return document.addEventListener("touchstart",e),t}),[]),n}function P(){}var x=function(n){var a,r,o,i,c,s=n.locale,f=n.type,m=void 0===f?"day":f,h=n.month,v=n.minDate,p=n.maxDate,D=n.modifiers,g=n.modifiersClassNames,y=n.className,N=n.onMonthChange,M=n.onSelect,b=void 0===M?P:M,k=n.onHover,x=void 0===k?P:k,w=(r=[m],o=e.useState((a=function(){return m})()),i=o[0],c=o[1],e.useMemo((function(){var e=a();e!==i&&c(e)}),r),[i,c]),F=w[0],L=w[1],Y=T((function(){return t.startOfMonth(new Date)}),null!=h?h:void 0,N),H=Y[0],R=Y[1],I=d({day:{disabled:function(e){return!function(e,n,a){return!(n&&t.isBefore(e,t.startOfDay(n))||a&&t.isAfter(e,a))}(e,v,p)}},month:{disabled:function(e){return!!v&&t.isBefore(t.startOfMonth(e),t.startOfMonth(v))||!!p&&t.isAfter(t.startOfMonth(e),t.startOfMonth(p))}},year:{disabled:function(e){return!!v&&t.isBefore(t.startOfYear(e),t.startOfYear(v))||!!p&&t.isAfter(t.startOfYear(e),t.startOfYear(p))}}},D);return l.default.createElement("div",{className:u.default("react-next-dates","calendar",y)},l.default.createElement(E,{locale:s,month:H,mode:F,onChangeMonth:R,onChangeMode:L}),"day"===F?l.default.createElement(C,{locale:s,month:H,modifiers:I.day,modifiersClassNames:null==g?void 0:g.day,onSelect:b,onHover:x}):"year"===F?l.default.createElement(O,{month:H,modifiers:I.year,modifiersClassNames:null==g?void 0:g.year,onYearChange:function(e){R(e),"year"!==m?L("month"):b(t.set(e,{date:1,month:0}))}}):l.default.createElement(S,{locale:s,month:H,modifiers:I.month,modifiersClassNames:null==g?void 0:g.month,onMonthChange:function(e){R(e),"month"!==m?L("day"):b(t.setDate(e,1))}}))};function w(e,t,n){return{top:n*Math.sin(30*(e-2)*(Math.PI/180))+t-12,left:n*Math.cos(30*(e-2)*(Math.PI/180))+t-12}}var F=function(e){var n=e.date,a=e.index,r=e.containerRadius,o=a+1;return l.default.createElement("span",{className:u.default({selected:n&&t.getHours(n)===o}),style:w(a,r,r-20)},o)},L=function(e){var n=e.date,a=e.index,r=e.containerRadius,o=a+13,i=24===o?"00":""+o;return l.default.createElement("span",{className:u.default({selected:n&&t.format(n,"HH")===i}),style:w(a,r,r/2)},i)},Y=function(t){var n=t.date,a=t.containerRadius;return l.default.createElement(l.default.Fragment,null,Array(12).fill("").map((function(t,r){return l.default.createElement(e.Fragment,{key:r},l.default.createElement(F,{date:n,index:r,containerRadius:a}),l.default.createElement(L,{date:n,index:r,containerRadius:a}))})))},H=function(e){var n,a=e.date,r=e.index,o=e.containerRadius,i=11===r?0:5*(r+1),c=((n=i)<10?"0":"")+n;return i%e.precision==0?l.default.createElement("span",{className:u.default({selected:a&&t.format(a,"mm")===c}),style:w(r,o,o-20)},c):null},R=function(e){var t=e.date,n=e.containerRadius,a=e.precision;return l.default.createElement(l.default.Fragment,null,Array(12).fill("").map((function(e,r){return l.default.createElement(H,{key:r,date:t,precision:a,index:r,containerRadius:n})})))},I=function(e){var t=e.locale,n=e.date,a=e.showNav,r=e.selection,o=e.onSelectionChange;return l.default.createElement("div",{className:"navigation"},a&&"minutes"===r&&l.default.createElement("button",{type:"button",className:"prev",onClick:function(){return o("hours")}}),l.default.createElement("p",null,n?v(n,"HH:mm",t):"--:--"),a&&"hours"===r&&l.default.createElement("button",{type:"button",className:"next",onClick:function(){return o("minutes")}}))};function A(e,n){return"hours"===n?30*(t.getHours(e)-3):6*(t.getMinutes(e)-15)}var B=function(n){var a=n.locale,r=n.date,o=n.selection,i=n.precision,c=void 0===i?1:i,s=n.vibrate,d=void 0===s||s,f=n.className,m=n.onChange,h=void 0===m?P:m,v=n.onSelectionChange,p=n.onSelectionEnd,D=void 0===p?P:p,g=e.useRef(null),y=e.useRef(!1),C=e.useState((function(){return null!=r?r:null})),E=C[0],N=C[1],O=e.useState((function(){var e,t;return null!=(e=null==(t=g.current)?void 0:t.clientWidth)?e:null})),M=O[0],S=O[1],b=T((function(){return"hours"}),o,v),x=b[0],w=b[1],F=k();e.useEffect((function(){var e=function(){g.current&&S(g.current.clientWidth)};return window.addEventListener("resize",e,{passive:!0}),e(),function(){window.removeEventListener("resize",e)}}),[]),e.useEffect((function(){N(null!=r?r:null)}),[r]);var L=function(e,n){N((function(n){return null!==n&&t.isEqual(n,e)?n:(d&&"vibrate"in navigator&&navigator.vibrate(10),e)})),!n||null!=r&&t.isEqual(r,e)||h(e)},H=function(e,n,a,r){void 0===r&&(r=!1);var o=e.getBoundingClientRect(),l=o.width/2,u=n-o.left-l,i=a-o.top-l,s=180*Math.atan2(i,u)/Math.PI,d=s<0?360+s:s;if("hours"===x){var f=Math.round(d/30+3),m=l/2+12,h=f>12?f-12:f;Math.abs(u)<m&&Math.abs(i)<m?L(t.setHours(null!=E?E:t.startOfDay(new Date),12===h?0:h+12),r):L(t.setHours(null!=E?E:t.startOfDay(new Date),h),r)}else{var v=Math.round(d/6+15),p=Math.round((v>=60?v-60:v)/c)*c%60;L(t.setMinutes(null!=E?E:t.startOfDay(new Date),p),r)}},B=function(e,t,n){H(e,t,n),y.current=!0},j=function(e,t,n){y.current&&H(e,t,n)},q=function(e,t,n){y.current=!1,H(e,t,n,!0);var a="hours"===x&&60!==c?"minutes":"hours";w(a),"hours"===a&&D()};return l.default.createElement("div",{className:u.default("react-next-dates","clock",f)},l.default.createElement(I,{locale:a,date:E,selection:x,showNav:60!==c,onSelectionChange:w}),l.default.createElement("div",{className:"clock-wrapper"},l.default.createElement("div",{ref:g,className:"clock-content",onMouseDown:F?void 0:function(e){return B(e.currentTarget,e.clientX,e.clientY)},onMouseMove:F?void 0:function(e){return j(e.currentTarget,e.clientX,e.clientY)},onMouseUp:F?void 0:function(e){return q(e.currentTarget,e.clientX,e.clientY)},onTouchStart:F?function(e){e.changedTouches[0]&&B(e.currentTarget,e.changedTouches[0].clientX,e.changedTouches[0].clientY)}:void 0,onTouchMove:F?function(e){e.changedTouches[0]&&(y.current=!0,j(e.currentTarget,e.changedTouches[0].clientX,e.changedTouches[0].clientY))}:void 0,onTouchEnd:F?function(e){e.changedTouches[0]&&q(e.currentTarget,e.changedTouches[0].clientX,e.changedTouches[0].clientY)}:void 0},null!==M?l.default.createElement(l.default.Fragment,null,"hours"===x?l.default.createElement(Y,{date:E,containerRadius:M/2}):l.default.createElement(R,{date:E,containerRadius:M/2,precision:c}),null!=E?l.default.createElement("div",{className:u.default("clock-selection",{pm:"hours"===x&&(0===E.getHours()||E.getHours()>12)}),style:{transform:"rotate("+A(E,x)+"deg)"}}):null):null)))};function j(e){return null!=e&&t.isValid(e)}function q(t){var n=t.locale,a=t.date,r=t.format,o=t.placeholder,l=t.onChange,u=void 0===l?P:l,i=e.useMemo((function(){return function(e,t){var n,a;return null!=(n=null!=t?t:null==(a=e.formatLong)?void 0:a.date({width:"short"}))?n:"MM/dd/yyyy"}(n,r)}),[n,r]),c=e.useState((function(){return null!=a&&j(a)?v(a,i,n):""})),s=c[0],d=c[1],f=e.useState(!1),m=f[0],p=f[1];return e.useEffect((function(){m||d(j(a)?v(a,i,n):"")}),[m,a,i,n]),{type:"text",value:s,placeholder:null!=o?o:i,onChange:function(e){var t=e.target.value;d(t);var a=h(t,i,n);j(a)&&u(a)},onBlur:function(){if(s){var e=h(s,i,n);j(e)?d(v(e,i,n)):j(a)?d(v(a,i,n)):d("")}else u(null);p(!1)},onFocus:function(){return p(!0)}}}var X=function(e){var n=e.locale,a=e.type,r=void 0===a?"day":a,o=e.date,u=void 0===o?null:o,i=e.month,c=e.minDate,s=e.maxDate,f=e.modifiers,m=e.modifiersClassNames,h=e.className,v=e.onDateChange,p=void 0===v?P:v,g=T((function(){return t.startOfMonth(null!=u?u:new Date)}),null!=i?i:void 0,e.onMonthChange),y=g[0],C=g[1],E={selected:function(e){if(null===u)return!1;switch(r){case"month":return t.isSameMonth(e,u);case"year":return t.isSameYear(e,u);default:return t.isSameDay(e,u)}}},N=d({day:E,month:E,year:E},f);return l.default.createElement(x,{locale:n,type:r,month:y,minDate:c,maxDate:s,modifiers:N,modifiersClassNames:m,className:h,onMonthChange:C,onSelect:function(e){return p(D(e,u))}})},W=e.forwardRef((function(t,n){var o=t.isOpen,c=t.portalContainer,s=t.offset,d=t.className,f=t.children,m=a.usePopper(t.referenceElement,t.popperElement,{placement:"bottom-start",strategy:c?"fixed":"absolute",modifiers:[{name:"offset",options:{offset:void 0===s?[0,5]:s}},{name:"flip"},{name:"preventOverflow"}]}),h=m.styles,v=m.attributes,p=m.forceUpdate;e.useLayoutEffect((function(){o&&p&&p()}),[o,p]);var D=o?h.popper:{display:"none"},g=l.default.createElement("div",i({ref:n,className:u.default("react-next-dates","popper",d),style:D},v.popper),o?f:null);return c?r.createPortal(g,c):g})),z=function(n){var a=n.locale,r=n.focus,o=n.startDate,u=void 0===o?null:o,i=n.endDate,c=void 0===i?null:i,d=n.month,f=n.minDate,m=n.maxDate,h=n.minLength,v=void 0===h?0:h,p=n.maxLength,y=n.modifiers,C=n.modifiersClassNames,E=n.className,N=n.onStartDateChange,O=void 0===N?P:N,M=n.onEndDateChange,S=void 0===M?P:M,b=n.onFocusChange,k=T((function(){var e;return t.startOfMonth(null!=(e=null!=u?u:c)?e:new Date)}),null!=d?d:void 0,n.onMonthChange),w=k[0],F=k[1],L=e.useState(null),Y=L[0],H=L[1],R=u?t.startOfDay(u):null,I=c?t.startOfDay(c):null,A=s({selectedStart:function(e){return null!==R&&t.isSameDay(e,R)},selectedMiddle:function(e){return function(e){return null!==R&&null!==I&&t.isAfter(e,R)&&t.isBefore(e,I)}(e)||function(e){return null!==Y&&null!==R&&null===I&&t.isAfter(e,R)&&(t.isBefore(e,Y)||t.isSameDay(e,Y))}(e)},selectedEnd:function(e){return null!==I&&t.isSameDay(e,I)},disabled:function(e){return"endDate"===r&&null!==u?t.isAfter(e,t.startOfDay(u))&&!g(u,e,v,p):"startDate"===r&&null!==c&&t.isBefore(e,t.startOfDay(c))&&!g(e,c,v,p)}},y);return l.default.createElement(x,{type:"day",locale:a,month:w,minDate:f,maxDate:m,modifiers:{day:A},modifiersClassNames:{day:C},className:E,onMonthChange:F,onSelect:function(e){if("startDate"===r){var n=D(e,u);null!==c&&t.isAfter(n,c)&&S(null),O(n),b("endDate")}else if("endDate"===r){var a=D(e,null!=c?c:u);null!==u&&t.isBefore(a,u)?(O(D(e,u)),S(null),b("endDate")):(S(a),b(null))}},onHover:H})};exports.Calendar=x,exports.Clock=B,exports.DatePicker=function(t){var n=t.locale,a=t.type,r=void 0===a?"day":a,o=t.date,u=t.format,c=t.minDate,s=t.maxDate,d=t.placeholder,f=t.className,m=t.modifiers,h=t.modifiersClassNames,v=t.portalContainer,p=t.readonlyOnTouch,D=void 0===p||p,g=t.autoOpen,y=void 0===g||g,C=t.onChange,E=void 0===C?P:C,N=t.children,O=e.useState((function(){return null!=o?o:new Date})),M=O[0],S=O[1],T=e.useState(!1),x=T[0],w=T[1],F=b((function(){return w(!1)})),L=F[0],Y=F[1],H=k(),R=q({locale:n,date:o,format:u,placeholder:d,onChange:function(e){E(e),e&&S(e)}}),I=D&&H;return l.default.createElement(l.default.Fragment,null,N({inputProps:i({},R,{onFocus:function(e){var t;R.onFocus(e),y&&w(!0),I&&(null==(t=L.current)||t.blur())},ref:L,readOnly:I}),openDatePicker:function(){var e;w(!0),null==(e=L.current)||e.focus()}}),l.default.createElement(W,{ref:Y,isOpen:x,referenceElement:L.current,popperElement:Y.current,portalContainer:v,className:"date"},l.default.createElement(X,{locale:n,type:r,date:o,month:M,minDate:c,maxDate:s,modifiers:m,modifiersClassNames:h,className:f,onDateChange:function(e){E(e),w(!1)},onMonthChange:S})))},exports.DatePickerCalendar=X,exports.DateRangePicker=function(t){var n,a,r=t.locale,o=t.format,u=t.startDate,c=t.endDate,s=t.minDate,d=t.maxDate,f=t.minLength,m=void 0===f?0:f,h=t.maxLength,v=t.modifiers,p=t.modifiersClassNames,D=t.startDatePlaceholder,g=t.endDatePlaceholder,y=t.className,C=t.portalContainer,E=t.readonlyOnTouch,N=void 0===E||E,O=t.autoOpen,M=void 0===O||O,S=t.onStartDateChange,T=void 0===S?P:S,x=t.onEndDateChange,w=void 0===x?P:x,F=t.children,L=e.useState((function(){var e;return null!=(e=null!=u?u:c)?e:new Date})),Y=L[0],H=L[1],R=e.useState(null),I=R[0],A=R[1],B=e.useState(null),j=B[0],X=B[1],U=b((function(){return A(null)})),V=U[0],_=U[1],G=U[2],J=k(),K=(a=e.useRef(n=I),e.useEffect((function(){a.current=n})),a.current);e.useEffect((function(){var e;null===K&&X(I),"startDate"===K&&"endDate"===I&&(null==(e=_.current)||e.focus())}),[I,K,_]);var Q=q({date:u,locale:r,format:o,placeholder:D,onChange:function(e){T(e),e&&H(e)}}),Z=q({date:c,locale:r,format:o,placeholder:g,onChange:function(e){w(e),e&&H(e)}}),$=N&&J,ee=function(e){return"endDate"===e?_.current:V.current},te=function(e,t){return function(n){var a;e.onFocus(n),"startDate"===t&&u?H(u):"endDate"===t&&c&&H(c),M&&A(t),$&&(null==(a=ee(t))||a.blur())}};return l.default.createElement(l.default.Fragment,null,F({startDateInputProps:i({},Q,{onFocus:te(Q,"startDate"),ref:V,readOnly:$}),endDateInputProps:i({},Z,{onFocus:te(Z,"endDate"),ref:_,readOnly:$}),openStartDatePicker:function(){var e;A("startDate"),null==(e=V.current)||e.focus()},openEndDatePicker:function(){var e;A("endDate"),null==(e=_.current)||e.focus()}}),l.default.createElement(W,{ref:G,isOpen:null!==I,referenceElement:ee(j),popperElement:G.current,portalContainer:C,className:"date"},l.default.createElement(z,{locale:r,focus:null!=I?I:"startDate",startDate:u,endDate:c,month:Y,minDate:s,maxDate:d,minLength:m,maxLength:h,modifiers:v,modifiersClassNames:p,className:y,onStartDateChange:T,onEndDateChange:w,onFocusChange:A,onMonthChange:H})))},exports.DateRangePickerCalendar=z,exports.DateTimePicker=function(n){var a=n.locale,r=n.date,o=n.dateFormat,u=n.timeFormat,c=void 0===u?"HH:mm":u,s=n.minDate,d=n.maxDate,f=n.datePlaceholder,m=n.timePlaceholder,h=n.timePrecision,v=void 0===h?1:h,D=n.vibrate,g=void 0===D||D,y=n.className,C=n.modifiers,E=n.modifiersClassNames,N=n.portalContainer,O=n.readonlyOnTouch,M=void 0===O||O,S=n.autoOpen,T=void 0===S||S,x=n.onChange,w=void 0===x?P:x,F=n.children,L=e.useState((function(){return null!=r?r:new Date})),Y=L[0],H=L[1],R=e.useState(null),I=R[0],A=R[1],j=e.useState("hours"),z=j[0],U=j[1],V=b((function(){A(null),U("hours")})),_=V[0],G=V[1],J=V[2],K=k(),Q=q({date:r,locale:a,format:o,placeholder:f,onChange:function(e){w(e),e&&H(e)}}),Z=q({date:r,locale:a,format:c,placeholder:m,onChange:function(e){w(e?p(null!=r?r:new Date,e):r?t.startOfDay(r):e)}}),$=M&&K,ee=function(e){return"time"===e?G.current:_.current},te=function(e,t){return function(n){var a;e.onFocus(n),T&&A(t),$&&(null==(a=ee(t))||a.blur())}};return l.default.createElement(l.default.Fragment,null,F({dateInputProps:i({},Q,{onFocus:te(Q,"date"),ref:_,readOnly:$}),timeInputProps:i({},Z,{onFocus:te(Z,"time"),ref:G,readOnly:$}),openDatePicker:function(){var e;A("date"),null==(e=_.current)||e.focus()},openTimePicker:function(){var e;A("time"),null==(e=G.current)||e.focus()}}),l.default.createElement(W,{ref:J,isOpen:null!==I,referenceElement:ee(I),popperElement:J.current,portalContainer:N,className:"time"===I?"time":"date"},"time"===I?l.default.createElement(B,{locale:a,date:r,selection:z,precision:v,vibrate:g,className:y,onChange:w,onSelectionChange:U,onSelectionEnd:function(){return A(null)}}):l.default.createElement(X,{locale:a,date:r,month:Y,minDate:s,maxDate:d,modifiers:C,modifiersClassNames:E,className:y,onDateChange:function(e){var t;w(e),A("time"),null==(t=G.current)||t.focus()},onMonthChange:H})))},exports.DateTimeRangePicker=function(n){var a=n.locale,r=n.dateFormat,o=n.timeFormat,u=void 0===o?"HH:mm":o,c=n.startDate,s=n.endDate,d=n.minDate,f=n.maxDate,m=n.minLength,h=void 0===m?0:m,v=n.maxLength,D=n.modifiers,g=n.modifiersClassNames,y=n.startDatePlaceholder,C=n.startTimePlaceholder,E=n.endDatePlaceholder,N=n.endTimePlaceholder,O=n.timePrecision,M=void 0===O?1:O,S=n.vibrate,T=void 0===S||S,x=n.className,w=n.portalContainer,F=n.readonlyOnTouch,L=void 0===F||F,Y=n.autoOpen,H=void 0===Y||Y,R=n.onStartDateChange,I=void 0===R?P:R,A=n.onEndDateChange,j=void 0===A?P:A,X=n.children,U=e.useState((function(){var e;return null!=(e=null!=c?c:s)?e:new Date})),V=U[0],_=U[1],G=e.useState(null),J=G[0],K=G[1],Q=e.useState("hours"),Z=Q[0],$=Q[1],ee=b((function(){K(null),$("hours")})),te=ee[0],ne=ee[1],ae=ee[2],re=ee[3],oe=ee[4],le=k(),ue=q({date:c,locale:a,format:r,placeholder:y,onChange:function(e){I(e),e&&_(e)}}),ie=q({date:c,locale:a,format:u,placeholder:C,onChange:function(e){I(e?p(null!=c?c:new Date,e):c?t.startOfDay(c):e)}}),ce=q({date:s,locale:a,format:r,placeholder:E,onChange:function(e){j(e),e&&_(e)}}),se=q({date:s,locale:a,format:u,placeholder:N,onChange:function(e){j(e?p(null!=s?s:new Date,e):s?t.startOfDay(s):e)}}),de=L&&le,fe=function(e){switch(e){case"startTime":return ne.current;case"endDate":return ae.current;case"endTime":return re.current;default:return te.current}},me=function(e,t){return function(n){var a;e.onFocus(n),"startDate"===t&&c?_(c):"endDate"===t&&s&&_(s),H&&K(t),de&&(null==(a=fe(t))||a.blur())}};return l.default.createElement(l.default.Fragment,null,X({startDateInputProps:i({},ue,{onFocus:me(ue,"startDate"),ref:te,readOnly:de}),startTimeInputProps:i({},ie,{onFocus:me(ie,"startTime"),ref:ne,readOnly:de}),endDateInputProps:i({},ce,{onFocus:me(ce,"endDate"),ref:ae,readOnly:de}),endTimeInputProps:i({},se,{onFocus:me(se,"endTime"),ref:re,readOnly:de}),openStartDatePicker:function(){var e;K("startDate"),null==(e=te.current)||e.focus()},openStartTimePicker:function(){var e;K("startTime"),null==(e=ne.current)||e.focus()},openEndDatePicker:function(){var e;K("endDate"),null==(e=ae.current)||e.focus()},openEndTimePicker:function(){var e;K("endTime"),null==(e=re.current)||e.focus()}}),l.default.createElement(W,{ref:oe,isOpen:null!==J,referenceElement:fe(J),popperElement:oe.current,portalContainer:w,className:"startTime"===J||"endTime"===J?"time":"date"},"startTime"===J||"endTime"===J?l.default.createElement(B,{locale:a,date:"startTime"===J?c:s,selection:Z,precision:M,vibrate:T,className:x,onChange:"startTime"===J?I:j,onSelectionChange:$,onSelectionEnd:function(){return K((function(e){return"startTime"===e?"endDate":null}))}}):l.default.createElement(z,{locale:a,focus:null!=J?J:"startDate",startDate:c,endDate:s,month:V,minDate:d,maxDate:f,minLength:h,maxLength:v,modifiers:D,modifiersClassNames:g,className:x,onStartDateChange:I,onEndDateChange:j,onFocusChange:function(e){return K((function(t){return"endDate"===t&&"endDate"===e?"endDate":"startDate"===t?"startTime":"endTime"}))},onMonthChange:_})))},exports.Popper=W,exports.TimePicker=function(t){var n=t.locale,a=t.format,r=void 0===a?"HH:mm":a,o=t.date,u=t.precision,c=void 0===u?1:u,s=t.vibrate,d=void 0===s||s,f=t.placeholder,m=t.className,h=t.portalContainer,v=t.readonlyOnTouch,p=void 0===v||v,D=t.autoOpen,g=void 0===D||D,y=t.onChange,C=void 0===y?P:y,E=t.children,N=e.useState(!1),O=N[0],M=N[1],S=e.useState("hours"),T=S[0],x=S[1],w=b((function(){M(!1),x("hours")})),F=w[0],L=w[1],Y=k(),H=q({locale:n,date:o,format:r,placeholder:f,onChange:C}),R=p&&Y;return l.default.createElement(l.default.Fragment,null,E({inputProps:i({},H,{onFocus:function(e){var t;H.onFocus(e),g&&M(!0),R&&(null==(t=F.current)||t.blur())},ref:F,readOnly:R}),openTimePicker:function(){var e;M(!0),null==(e=F.current)||e.focus()}}),l.default.createElement(W,{ref:L,isOpen:O,referenceElement:F.current,popperElement:L.current,portalContainer:h,className:"time"},l.default.createElement(B,{locale:n,date:o,selection:T,precision:c,vibrate:d,className:m,onChange:C,onSelectionChange:x,onSelectionEnd:function(){return M(!1)}})))},exports.useDateInput=q; //# sourceMappingURL=react-next-dates.cjs.production.min.js.map