New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@rehookify/datepicker

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rehookify/datepicker - npm Package Compare versions

Comparing version 1.1.0 to 1.1.1

2

dist/index.cjs.js

@@ -1,2 +0,2 @@

"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e);const n=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=e=>new Date(e.getFullYear(),e.getMonth(),1),l=(e,t,a)=>new Date(e.getFullYear()+("year"===a?t:0),e.getMonth()+("month"===a?t:0),e.getDate()+("date"===a?t:0)),o=(e,t,a)=>l(e,0-t,a),s=(e,t)=>e.getTime()-t.getTime(),i=(e,{locale:t,monthName:a})=>e.toLocaleDateString(t,{month:a}),c=(e,{locale:t,options:a})=>e.toLocaleDateString(t,a),u=n(new Date),d={mode:"static",offsets:[0]},g={numberOfYearsDisplayed:12},D={mode:"single",toggle:!1},m={locale:"en-GB",day:"2-digit",year:"numeric",weekday:"short",monthName:"long"},h=(...e)=>(...t)=>e.forEach((e=>null==e?void 0:e(...t))),f=e=>(t,a)=>e(a),y=e=>(...t)=>{e()},b=(e,t)=>e.toString()===t.toString(),k=(e,t)=>e<t,C=(e,t)=>e>t,p=(e,t,a)=>C(t,e)&&k(t,a)||k(t,e)&&C(t,a),w=(e,t)=>!!e&&C(t,e),x=(e,t)=>!!e&&k(t,e),S=(e,t)=>!!e&&k(t,r(e)),v=(e,t,a)=>!!b(e,t)||(k(t,a)?p(t,e,a):!!C(t,a)&&p(a,e,t)),Y=(e,t,a,n,r)=>{if("static"===n)return 42;const l=(o=a,new Date(o.getFullYear(),o.getMonth()+1,0).getDate());var o;return r+l+7-new Date(t,e,l).getUTCDay()-1},M=(e,t,a,n,r,{mode:l},o)=>{const{locale:s,day:u,year:d}=r,g=e.getFullYear(),D=e.getMonth(),{firstDayOffset:m,numberOfDaysToDisplay:h}=((e,t,a)=>{const n=new Date(t,e,1),r=n.getUTCDay();return{firstDayOffset:r,numberOfDaysToDisplay:Y(e,t,n,a,r)}})(D,g,o),f="range"===l,y=[];for(let e=1;e<=h;e++){const l=new Date(g,D,e-m);y.push({$date:l,date:c(l,r),day:l.toLocaleDateString(s,{day:u}),currentDisplayedMonth:l.getMonth()===D,isToday:b(n,l),isSelected:t.some((e=>b(e,l))),inRange:!(!f||2!==t.length)&&p(t[0],l,t[1]),isRangeStart:!(!f||!t[0])&&b(l,t[0]),isRangeEnd:!(!f||!t[1])&&b(l,t[1]),willBeInRange:!(!f||!a)&&v(l,a,t[0])})}return{year:e.toLocaleDateString(s,{year:d}),month:i(e,r),days:y}},$=({calendar:e,years:t,dates:a,locale:r}={})=>{const{minDate:l,maxDate:o,selectedDates:s,...i}=a||{},{offsets:c=[],...u}=e||{},h={calendar:{...d,...u,offsets:d.offsets.concat(c)},years:{...g,...t},dates:{...D,...i,minDate:l?n(l):null,maxDate:o?n(o):null,selectedDates:(f=s,f?Array.isArray(f)?f:[f]:[]).map((e=>n(e)))},locale:{...m,...r}};var f;return(({dates:e})=>{const{selectedDates:t,minDate:a,maxDate:n}=e||{};if(t&&t.length>0){if(a&&t.every((e=>k(e,a))))throw new Error(`All selectedDates must be after minDate: ${a.toLocaleDateString()}`);if(n&&t.every((e=>C(e,n))))throw new Error(`All selectedDates must be before maxDate: ${n.toLocaleDateString()}`)}if(a&&n&&k(n,a))throw new Error(`maxDate ${n.toLocaleDateString()} is before minDate ${a.toLocaleDateString()}`)})(h),h},P=(e,t,a={})=>({role:"button",tabIndex:0,...e&&{disabled:!0,"aria-disabled":!0},...!e&&{onClick(e){t(e)}},...a}),F=e=>e-e%10-1,B=t=>{const{dates:a,calendar:n,locale:d,years:g}=$(t),{minDate:D,maxDate:m,toggle:k,mode:C}=a,[p,v]=e.useState(null),[Y,B]=e.useState(a.selectedDates),[E,L]=e.useState(Y.length>0?Y[Y.length-1]:(({maxDate:e,minDate:t},a)=>w(e,a)?e:x(t,a)?t:a)(a,u)),[O,T]=e.useState(F(E.getFullYear())),A=((e,t,a,n,r,o,{mode:s,offsets:i})=>i.map((i=>M(l(e,i,"month"),t,a,n,r,o,s))))(E,Y,p,u,d,a,n),R=(({days:e},{locale:t,weekday:a})=>{const n=[];for(let r=0;r<7;r++)n.push(e[r].$date.toLocaleDateString(t,{weekday:a}));return n})(A[0],d),N=((e,t,a,{numberOfYearsDisplayed:n})=>{const r=t.getFullYear(),l=[];for(let o=0;o<n;o++){const n=e+o;l.push({$date:new Date(n,t.getMonth(),t.getDate()),value:n,isActive:r===n,isSelected:a.some((e=>e.getFullYear()===n))})}return l})(O,E,Y,g),j=((e,t,a)=>{const n=[];for(let r=0;r<12;r++){const l=new Date(e.getFullYear(),r,1),o=i(l,a);n.push({$date:l,name:o,isSelected:t.some((e=>i(e,a)===o)),isActive:i(e,a)===o})}return n})(E,Y,d),G=e.useCallback((e=>{L(e),T(F(e.getFullYear()))}),[]),I=e.useCallback((e=>{B(((e,t,{mode:a,toggle:n,limit:r})=>{if("single"===a)return n&&e[0]&&b(t,e[0])?[]:[t];if("multiple"===a){if(n){const a=e.filter((e=>!b(e,t)));if(a.length<e.length)return a}return!r||e.length<r?e.concat(t).sort(s):e}if("range"===a&&n){const a=e.filter((e=>!b(e,t)));return a.length<e.length?a:2===e.length?[t]:e.concat(t).sort(s)}return[]})(Y,e,a)),G(e)}),[a,Y,G]),U=e.useCallback((()=>G(l(E,1,"month"))),[E,G]),_=e.useCallback((()=>G(o(E,1,"month"))),[E,G]),q=e.useCallback((()=>T((e=>e+10))),[]),z=e.useCallback((()=>T((e=>e-10))),[]),H=e.useCallback((e=>L(e)),[]),J=e.useCallback((({$date:e,isSelected:t},{onClick:a,disabled:n,...r}={})=>{const l=!!n||x(D,e)||w(m,e);return P(l,(n=>{t&&!k||("range"===C&&1===Y.length&&v(null),h(a,f(I))(n,e))}),{...r,..."range"===C&&1===Y.length&&{onMouseEnter(){v(e)}}})}),[C,k,m,D,I,Y.length]),K=e.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const l=!!a||S(D,e)||w(m,r(e));return P(l,(a=>h(t,f(H))(a,e)),n)}),[m,D,H]),Q=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=l(E,1,"month"),o=!!t||w(m,r(n));return P(o,(t=>h(e,f(G))(t,n)),a)}),[E,m,G]),V=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=o(E,1,"month"),r=!!t||S(D,n);return P(r,(t=>h(e,f(G))(t,n)),a)}),[E,D,G]),W=e.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const l=!!a||S(D,e)||w(m,r(e));return P(l,(a=>h(t,f(G))(a,e)),n)}),[m,D,G]),X=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||w(m,N[N.length-1].$date);return P(n,(t=>h(e,y(q))(t)),a)}),[N,m,q]),Z=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||x(D,N[0].$date);return P(n,(t=>h(e,y(z))(t)),a)}),[N,D,z]);return{data:{calendars:A,weekDays:R,months:j,years:N,selectedDates:Y.map((e=>c(e,d)))},propGetters:{nextMonthButton:Q,previousMonthButton:V,dayButton:J,monthButton:K,yearButton:W,nextYearsButton:X,previousYearsButton:Z},actions:{setDay:I,setMonth:L,setNextMonth:U,setPreviousMonth:_,setYear:G,setNextYears:q,setPreviousYears:z,setRangeEnd:v}}},E=e.createContext({});exports.DatePickerProvider=({children:e,config:t={}})=>{const n=B(t);return a.default.createElement(E.Provider,{value:n},e)},exports.useDatePicker=B,exports.useDatePickerContext=()=>{const t=e.useContext(E);if(!t)throw new Error('Please use "useDatePickerContext" inside "DatePickerProvider"');return t};
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=t(e);const n=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=e=>new Date(e.getFullYear(),e.getMonth(),1),l=(e,t,a)=>new Date(e.getFullYear()+("year"===a?t:0),e.getMonth()+("month"===a?t:0),e.getDate()+("date"===a?t:0)),o=(e,t,a)=>l(e,0-t,a),s=(e,t)=>e.getTime()-t.getTime(),c=(e,{locale:t,monthName:a})=>e.toLocaleDateString(t,{month:a}),i=(e,{locale:t,options:a})=>e.toLocaleDateString(t,a),u=n(new Date),d={mode:"static",offsets:[0]},g={numberOfYearsDisplayed:12},D={mode:"single",toggle:!1},m={locale:"en-GB",day:"2-digit",year:"numeric",weekday:"short",monthName:"long"},h=(...e)=>(...t)=>e.forEach((e=>null==e?void 0:e(...t))),f=e=>(t,a)=>e(a),y=e=>(...t)=>{e()},b=(e,t)=>e.toString()===t.toString(),k=(e,t)=>e<t,C=(e,t)=>e>t,p=(e,t,a)=>C(t,e)&&k(t,a)||k(t,e)&&C(t,a),w=(e,t)=>!!e&&C(t,e),x=(e,t)=>!!e&&k(t,e),S=(e,t)=>!!e&&k(t,r(e)),v=(e,t,a)=>!!b(e,t)||(k(t,a)?p(t,e,a):!!C(t,a)&&p(a,e,t)),Y=(e,t,a,n,r)=>{if("static"===n)return 42;const l=(o=a,new Date(o.getFullYear(),o.getMonth()+1,0).getDate());var o;return r+l+7-new Date(t,e,l).getUTCDay()-1},M=(e,t,a,n,r,{mode:l},o)=>{const{locale:s,day:u,year:d}=r,g=e.getFullYear(),D=e.getMonth(),{firstDayOffset:m,numberOfDaysToDisplay:h}=((e,t,a)=>{const n=new Date(t,e,1),r=n.getUTCDay();return{firstDayOffset:r,numberOfDaysToDisplay:Y(e,t,n,a,r)}})(D,g,o),f="range"===l,y=[];for(let e=1;e<=h;e++){const l=new Date(g,D,e-m);y.push({$date:l,date:i(l,r),day:l.toLocaleDateString(s,{day:u}),currentDisplayedMonth:l.getMonth()===D,isToday:b(n,l),isSelected:t.some((e=>b(e,l))),inRange:!(!f||2!==t.length)&&p(t[0],l,t[1]),isRangeStart:!(!f||!t[0])&&b(l,t[0]),isRangeEnd:!(!f||!t[1])&&b(l,t[1]),willBeInRange:!(!f||!a)&&v(l,a,t[0])})}return{year:e.toLocaleDateString(s,{year:d}),month:c(e,r),days:y}},$=({calendar:e,years:t,dates:a,locale:r}={})=>{const{minDate:l,maxDate:o,selectedDates:s,...c}=a||{},{offsets:i=[],...u}=e||{},h={calendar:{...d,...u,offsets:d.offsets.concat(i)},years:{...g,...t},dates:{...D,...c,minDate:l?n(l):null,maxDate:o?n(o):null,selectedDates:(f=s,f?Array.isArray(f)?f:[f]:[]).map((e=>n(e)))},locale:{...m,...r}};var f;return(({dates:e})=>{const{selectedDates:t,minDate:a,maxDate:n}=e||{};if(t&&t.length>0){if(a&&t.every((e=>k(e,a))))throw new Error(`All selectedDates must be after minDate: ${a.toLocaleDateString()}`);if(n&&t.every((e=>C(e,n))))throw new Error(`All selectedDates must be before maxDate: ${n.toLocaleDateString()}`)}if(a&&n&&k(n,a))throw new Error(`maxDate ${n.toLocaleDateString()} is before minDate ${a.toLocaleDateString()}`)})(h),h},P=(e,t,a={})=>({role:"button",tabIndex:0,...e&&{disabled:!0,"aria-disabled":!0},...!e&&{onClick(e){t(e)}},...a}),F=e=>e-e%10-1,B=t=>{const{dates:a,calendar:n,locale:d,years:g}=$(t),{minDate:D,maxDate:m,toggle:k,mode:C}=a,[p,v]=e.useState(null),[Y,B]=e.useState(a.selectedDates),[E,L]=e.useState(Y.length>0?Y[Y.length-1]:(({maxDate:e,minDate:t},a)=>w(e,a)?e:x(t,a)?t:a)(a,u)),[O,T]=e.useState(F(E.getFullYear())),A=((e,t,a,n,r,o,{mode:s,offsets:c})=>c.map((c=>M(l(e,c,"month"),t,a,n,r,o,s))))(E,Y,p,u,d,a,n),R=(({days:e},{locale:t,weekday:a})=>{const n=[];for(let r=0;r<7;r++)n.push(e[r].$date.toLocaleDateString(t,{weekday:a}));return n})(A[0],d),N=((e,t,a,{numberOfYearsDisplayed:n})=>{const r=t.getFullYear(),l=[];for(let o=0;o<n;o++){const n=e+o;l.push({$date:new Date(n,t.getMonth(),t.getDate()),value:n,isActive:r===n,isSelected:a.some((e=>e.getFullYear()===n))})}return l})(O,E,Y,g),j=((e,t,a)=>{const n=[];for(let r=0;r<12;r++){const l=new Date(e.getFullYear(),r,1),o=c(l,a);n.push({$date:l,name:o,isSelected:t.some((e=>c(e,a)===o)),isActive:c(e,a)===o})}return n})(E,Y,d),G=e.useCallback((e=>{L(e),T(F(e.getFullYear()))}),[]),I=e.useCallback((e=>{B(((e,t,{mode:a,toggle:n,limit:r})=>{if("single"===a)return n&&e[0]&&b(t,e[0])?[]:[t];if("multiple"===a){if(n){const a=e.filter((e=>!b(e,t)));if(a.length<e.length)return a}return!r||e.length<r?e.concat(t).sort(s):e}if("range"===a&&n){const a=e.filter((e=>!b(e,t)));return a.length<e.length?a:2===e.length?[t]:e.concat(t).sort(s)}return 2===e.length?[t]:e.concat(t).sort(s)})(Y,e,a)),G(e)}),[a,Y,G]),U=e.useCallback((()=>G(l(E,1,"month"))),[E,G]),_=e.useCallback((()=>G(o(E,1,"month"))),[E,G]),q=e.useCallback((()=>T((e=>e+10))),[]),z=e.useCallback((()=>T((e=>e-10))),[]),H=e.useCallback((e=>L(e)),[]),J=e.useCallback((({$date:e,isSelected:t},{onClick:a,disabled:n,...r}={})=>{const l=!!n||x(D,e)||w(m,e);return P(l,(n=>{t&&!k||("range"===C&&1===Y.length&&v(null),h(a,f(I))(n,e))}),{...r,..."range"===C&&1===Y.length&&{onMouseEnter(){v(e)}}})}),[C,k,m,D,I,Y.length]),K=e.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const l=!!a||S(D,e)||w(m,r(e));return P(l,(a=>h(t,f(H))(a,e)),n)}),[m,D,H]),Q=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=l(E,1,"month"),o=!!t||w(m,r(n));return P(o,(t=>h(e,f(G))(t,n)),a)}),[E,m,G]),V=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=o(E,1,"month"),r=!!t||S(D,n);return P(r,(t=>h(e,f(G))(t,n)),a)}),[E,D,G]),W=e.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const l=!!a||S(D,e)||w(m,r(e));return P(l,(a=>h(t,f(G))(a,e)),n)}),[m,D,G]),X=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||w(m,N[N.length-1].$date);return P(n,(t=>h(e,y(q))(t)),a)}),[N,m,q]),Z=e.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||x(D,N[0].$date);return P(n,(t=>h(e,y(z))(t)),a)}),[N,D,z]);return{data:{calendars:A,weekDays:R,months:j,years:N,selectedDates:Y.map((e=>i(e,d)))},propGetters:{nextMonthButton:Q,previousMonthButton:V,dayButton:J,monthButton:K,yearButton:W,nextYearsButton:X,previousYearsButton:Z},actions:{setDay:I,setMonth:L,setNextMonth:U,setPreviousMonth:_,setYear:G,setNextYears:q,setPreviousYears:z,setRangeEnd:v}}},E=e.createContext({});exports.DatePickerProvider=({children:e,config:t={}})=>{const n=B(t);return a.default.createElement(E.Provider,{value:n},e)},exports.useDatePicker=B,exports.useDatePickerContext=()=>{const t=e.useContext(E);if(!t)throw new Error('Please use "useDatePickerContext" inside "DatePickerProvider"');return t};
//# sourceMappingURL=index.cjs.js.map

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RehookifyDatepicker={},e.React)}(this,(function(e,t){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(t);const o=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=e=>new Date(e.getFullYear(),e.getMonth(),1),l=(e,t,a)=>new Date(e.getFullYear()+("year"===a?t:0),e.getMonth()+("month"===a?t:0),e.getDate()+("date"===a?t:0)),s=(e,t,a)=>l(e,0-t,a),i=(e,t)=>e.getTime()-t.getTime(),c=(e,{locale:t,monthName:a})=>e.toLocaleDateString(t,{month:a}),u=(e,{locale:t,options:a})=>e.toLocaleDateString(t,a),d=o(new Date),g={mode:"static",offsets:[0]},D={numberOfYearsDisplayed:12},f={mode:"single",toggle:!1},m={locale:"en-GB",day:"2-digit",year:"numeric",weekday:"short",monthName:"long"},h=(...e)=>(...t)=>e.forEach((e=>null==e?void 0:e(...t))),y=e=>(t,a)=>e(a),b=e=>(...t)=>{e()},k=(e,t)=>e.toString()===t.toString(),p=(e,t)=>e<t,C=(e,t)=>e>t,w=(e,t,a)=>C(t,e)&&p(t,a)||p(t,e)&&C(t,a),S=(e,t)=>!!e&&C(t,e),x=(e,t)=>!!e&&p(t,e),v=(e,t)=>!!e&&p(t,r(e)),Y=(e,t,a)=>!!k(e,t)||(p(t,a)?w(t,e,a):!!C(t,a)&&w(a,e,t)),M=(e,t,a,n,o)=>{if("static"===n)return 42;const r=(l=a,new Date(l.getFullYear(),l.getMonth()+1,0).getDate());var l;return o+r+7-new Date(t,e,r).getUTCDay()-1},$=(e,t,a,n,o,{mode:r},l)=>{const{locale:s,day:i,year:d}=o,g=e.getFullYear(),D=e.getMonth(),{firstDayOffset:f,numberOfDaysToDisplay:m}=((e,t,a)=>{const n=new Date(t,e,1),o=n.getUTCDay();return{firstDayOffset:o,numberOfDaysToDisplay:M(e,t,n,a,o)}})(D,g,l),h="range"===r,y=[];for(let e=1;e<=m;e++){const r=new Date(g,D,e-f);y.push({$date:r,date:u(r,o),day:r.toLocaleDateString(s,{day:i}),currentDisplayedMonth:r.getMonth()===D,isToday:k(n,r),isSelected:t.some((e=>k(e,r))),inRange:!(!h||2!==t.length)&&w(t[0],r,t[1]),isRangeStart:!(!h||!t[0])&&k(r,t[0]),isRangeEnd:!(!h||!t[1])&&k(r,t[1]),willBeInRange:!(!h||!a)&&Y(r,a,t[0])})}return{year:e.toLocaleDateString(s,{year:d}),month:c(e,o),days:y}},P=({calendar:e,years:t,dates:a,locale:n}={})=>{const{minDate:r,maxDate:l,selectedDates:s,...i}=a||{},{offsets:c=[],...u}=e||{},d={calendar:{...g,...u,offsets:g.offsets.concat(c)},years:{...D,...t},dates:{...f,...i,minDate:r?o(r):null,maxDate:l?o(l):null,selectedDates:(h=s,h?Array.isArray(h)?h:[h]:[]).map((e=>o(e)))},locale:{...m,...n}};var h;return(({dates:e})=>{const{selectedDates:t,minDate:a,maxDate:n}=e||{};if(t&&t.length>0){if(a&&t.every((e=>p(e,a))))throw new Error(`All selectedDates must be after minDate: ${a.toLocaleDateString()}`);if(n&&t.every((e=>C(e,n))))throw new Error(`All selectedDates must be before maxDate: ${n.toLocaleDateString()}`)}if(a&&n&&p(n,a))throw new Error(`maxDate ${n.toLocaleDateString()} is before minDate ${a.toLocaleDateString()}`)})(d),d},F=(e,t,a={})=>({role:"button",tabIndex:0,...e&&{disabled:!0,"aria-disabled":!0},...!e&&{onClick(e){t(e)}},...a}),B=e=>e-e%10-1,E=e=>{const{dates:a,calendar:n,locale:o,years:g}=P(e),{minDate:D,maxDate:f,toggle:m,mode:p}=a,[C,w]=t.useState(null),[Y,M]=t.useState(a.selectedDates),[E,L]=t.useState(Y.length>0?Y[Y.length-1]:(({maxDate:e,minDate:t},a)=>S(e,a)?e:x(t,a)?t:a)(a,d)),[T,O]=t.useState(B(E.getFullYear())),R=((e,t,a,n,o,r,{mode:s,offsets:i})=>i.map((i=>$(l(e,i,"month"),t,a,n,o,r,s))))(E,Y,C,d,o,a,n),A=(({days:e},{locale:t,weekday:a})=>{const n=[];for(let o=0;o<7;o++)n.push(e[o].$date.toLocaleDateString(t,{weekday:a}));return n})(R[0],o),N=((e,t,a,{numberOfYearsDisplayed:n})=>{const o=t.getFullYear(),r=[];for(let l=0;l<n;l++){const n=e+l;r.push({$date:new Date(n,t.getMonth(),t.getDate()),value:n,isActive:o===n,isSelected:a.some((e=>e.getFullYear()===n))})}return r})(T,E,Y,g),j=((e,t,a)=>{const n=[];for(let o=0;o<12;o++){const r=new Date(e.getFullYear(),o,1),l=c(r,a);n.push({$date:r,name:l,isSelected:t.some((e=>c(e,a)===l)),isActive:c(e,a)===l})}return n})(E,Y,o),G=t.useCallback((e=>{L(e),O(B(e.getFullYear()))}),[]),I=t.useCallback((e=>{M(((e,t,{mode:a,toggle:n,limit:o})=>{if("single"===a)return n&&e[0]&&k(t,e[0])?[]:[t];if("multiple"===a){if(n){const a=e.filter((e=>!k(e,t)));if(a.length<e.length)return a}return!o||e.length<o?e.concat(t).sort(i):e}if("range"===a&&n){const a=e.filter((e=>!k(e,t)));return a.length<e.length?a:2===e.length?[t]:e.concat(t).sort(i)}return[]})(Y,e,a)),G(e)}),[a,Y,G]),U=t.useCallback((()=>G(l(E,1,"month"))),[E,G]),_=t.useCallback((()=>G(s(E,1,"month"))),[E,G]),q=t.useCallback((()=>O((e=>e+10))),[]),z=t.useCallback((()=>O((e=>e-10))),[]),H=t.useCallback((e=>L(e)),[]),J=t.useCallback((({$date:e,isSelected:t},{onClick:a,disabled:n,...o}={})=>{const r=!!n||x(D,e)||S(f,e);return F(r,(n=>{t&&!m||("range"===p&&1===Y.length&&w(null),h(a,y(I))(n,e))}),{...o,..."range"===p&&1===Y.length&&{onMouseEnter(){w(e)}}})}),[p,m,f,D,I,Y.length]),K=t.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const o=!!a||v(D,e)||S(f,r(e));return F(o,(a=>h(t,y(H))(a,e)),n)}),[f,D,H]),Q=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=l(E,1,"month"),o=!!t||S(f,r(n));return F(o,(t=>h(e,y(G))(t,n)),a)}),[E,f,G]),V=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=s(E,1,"month"),o=!!t||v(D,n);return F(o,(t=>h(e,y(G))(t,n)),a)}),[E,D,G]),W=t.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const o=!!a||v(D,e)||S(f,r(e));return F(o,(a=>h(t,y(G))(a,e)),n)}),[f,D,G]),X=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||S(f,N[N.length-1].$date);return F(n,(t=>h(e,b(q))(t)),a)}),[N,f,q]),Z=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||x(D,N[0].$date);return F(n,(t=>h(e,b(z))(t)),a)}),[N,D,z]);return{data:{calendars:R,weekDays:A,months:j,years:N,selectedDates:Y.map((e=>u(e,o)))},propGetters:{nextMonthButton:Q,previousMonthButton:V,dayButton:J,monthButton:K,yearButton:W,nextYearsButton:X,previousYearsButton:Z},actions:{setDay:I,setMonth:L,setNextMonth:U,setPreviousMonth:_,setYear:G,setNextYears:q,setPreviousYears:z,setRangeEnd:w}}},L=t.createContext({});e.DatePickerProvider=({children:e,config:t={}})=>{const a=E(t);return n.default.createElement(L.Provider,{value:a},e)},e.useDatePicker=E,e.useDatePickerContext=()=>{const e=t.useContext(L);if(!e)throw new Error('Please use "useDatePickerContext" inside "DatePickerProvider"');return e},Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).RehookifyDatepicker={},e.React)}(this,(function(e,t){"use strict";function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(t);const o=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()),r=e=>new Date(e.getFullYear(),e.getMonth(),1),l=(e,t,a)=>new Date(e.getFullYear()+("year"===a?t:0),e.getMonth()+("month"===a?t:0),e.getDate()+("date"===a?t:0)),s=(e,t,a)=>l(e,0-t,a),i=(e,t)=>e.getTime()-t.getTime(),c=(e,{locale:t,monthName:a})=>e.toLocaleDateString(t,{month:a}),u=(e,{locale:t,options:a})=>e.toLocaleDateString(t,a),d=o(new Date),g={mode:"static",offsets:[0]},D={numberOfYearsDisplayed:12},f={mode:"single",toggle:!1},h={locale:"en-GB",day:"2-digit",year:"numeric",weekday:"short",monthName:"long"},m=(...e)=>(...t)=>e.forEach((e=>null==e?void 0:e(...t))),y=e=>(t,a)=>e(a),b=e=>(...t)=>{e()},k=(e,t)=>e.toString()===t.toString(),p=(e,t)=>e<t,C=(e,t)=>e>t,w=(e,t,a)=>C(t,e)&&p(t,a)||p(t,e)&&C(t,a),S=(e,t)=>!!e&&C(t,e),x=(e,t)=>!!e&&p(t,e),v=(e,t)=>!!e&&p(t,r(e)),Y=(e,t,a)=>!!k(e,t)||(p(t,a)?w(t,e,a):!!C(t,a)&&w(a,e,t)),M=(e,t,a,n,o)=>{if("static"===n)return 42;const r=(l=a,new Date(l.getFullYear(),l.getMonth()+1,0).getDate());var l;return o+r+7-new Date(t,e,r).getUTCDay()-1},$=(e,t,a,n,o,{mode:r},l)=>{const{locale:s,day:i,year:d}=o,g=e.getFullYear(),D=e.getMonth(),{firstDayOffset:f,numberOfDaysToDisplay:h}=((e,t,a)=>{const n=new Date(t,e,1),o=n.getUTCDay();return{firstDayOffset:o,numberOfDaysToDisplay:M(e,t,n,a,o)}})(D,g,l),m="range"===r,y=[];for(let e=1;e<=h;e++){const r=new Date(g,D,e-f);y.push({$date:r,date:u(r,o),day:r.toLocaleDateString(s,{day:i}),currentDisplayedMonth:r.getMonth()===D,isToday:k(n,r),isSelected:t.some((e=>k(e,r))),inRange:!(!m||2!==t.length)&&w(t[0],r,t[1]),isRangeStart:!(!m||!t[0])&&k(r,t[0]),isRangeEnd:!(!m||!t[1])&&k(r,t[1]),willBeInRange:!(!m||!a)&&Y(r,a,t[0])})}return{year:e.toLocaleDateString(s,{year:d}),month:c(e,o),days:y}},P=({calendar:e,years:t,dates:a,locale:n}={})=>{const{minDate:r,maxDate:l,selectedDates:s,...i}=a||{},{offsets:c=[],...u}=e||{},d={calendar:{...g,...u,offsets:g.offsets.concat(c)},years:{...D,...t},dates:{...f,...i,minDate:r?o(r):null,maxDate:l?o(l):null,selectedDates:(m=s,m?Array.isArray(m)?m:[m]:[]).map((e=>o(e)))},locale:{...h,...n}};var m;return(({dates:e})=>{const{selectedDates:t,minDate:a,maxDate:n}=e||{};if(t&&t.length>0){if(a&&t.every((e=>p(e,a))))throw new Error(`All selectedDates must be after minDate: ${a.toLocaleDateString()}`);if(n&&t.every((e=>C(e,n))))throw new Error(`All selectedDates must be before maxDate: ${n.toLocaleDateString()}`)}if(a&&n&&p(n,a))throw new Error(`maxDate ${n.toLocaleDateString()} is before minDate ${a.toLocaleDateString()}`)})(d),d},F=(e,t,a={})=>({role:"button",tabIndex:0,...e&&{disabled:!0,"aria-disabled":!0},...!e&&{onClick(e){t(e)}},...a}),B=e=>e-e%10-1,E=e=>{const{dates:a,calendar:n,locale:o,years:g}=P(e),{minDate:D,maxDate:f,toggle:h,mode:p}=a,[C,w]=t.useState(null),[Y,M]=t.useState(a.selectedDates),[E,L]=t.useState(Y.length>0?Y[Y.length-1]:(({maxDate:e,minDate:t},a)=>S(e,a)?e:x(t,a)?t:a)(a,d)),[T,O]=t.useState(B(E.getFullYear())),R=((e,t,a,n,o,r,{mode:s,offsets:i})=>i.map((i=>$(l(e,i,"month"),t,a,n,o,r,s))))(E,Y,C,d,o,a,n),A=(({days:e},{locale:t,weekday:a})=>{const n=[];for(let o=0;o<7;o++)n.push(e[o].$date.toLocaleDateString(t,{weekday:a}));return n})(R[0],o),N=((e,t,a,{numberOfYearsDisplayed:n})=>{const o=t.getFullYear(),r=[];for(let l=0;l<n;l++){const n=e+l;r.push({$date:new Date(n,t.getMonth(),t.getDate()),value:n,isActive:o===n,isSelected:a.some((e=>e.getFullYear()===n))})}return r})(T,E,Y,g),j=((e,t,a)=>{const n=[];for(let o=0;o<12;o++){const r=new Date(e.getFullYear(),o,1),l=c(r,a);n.push({$date:r,name:l,isSelected:t.some((e=>c(e,a)===l)),isActive:c(e,a)===l})}return n})(E,Y,o),G=t.useCallback((e=>{L(e),O(B(e.getFullYear()))}),[]),I=t.useCallback((e=>{M(((e,t,{mode:a,toggle:n,limit:o})=>{if("single"===a)return n&&e[0]&&k(t,e[0])?[]:[t];if("multiple"===a){if(n){const a=e.filter((e=>!k(e,t)));if(a.length<e.length)return a}return!o||e.length<o?e.concat(t).sort(i):e}if("range"===a&&n){const a=e.filter((e=>!k(e,t)));return a.length<e.length?a:2===e.length?[t]:e.concat(t).sort(i)}return 2===e.length?[t]:e.concat(t).sort(i)})(Y,e,a)),G(e)}),[a,Y,G]),U=t.useCallback((()=>G(l(E,1,"month"))),[E,G]),_=t.useCallback((()=>G(s(E,1,"month"))),[E,G]),q=t.useCallback((()=>O((e=>e+10))),[]),z=t.useCallback((()=>O((e=>e-10))),[]),H=t.useCallback((e=>L(e)),[]),J=t.useCallback((({$date:e,isSelected:t},{onClick:a,disabled:n,...o}={})=>{const r=!!n||x(D,e)||S(f,e);return F(r,(n=>{t&&!h||("range"===p&&1===Y.length&&w(null),m(a,y(I))(n,e))}),{...o,..."range"===p&&1===Y.length&&{onMouseEnter(){w(e)}}})}),[p,h,f,D,I,Y.length]),K=t.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const o=!!a||v(D,e)||S(f,r(e));return F(o,(a=>m(t,y(H))(a,e)),n)}),[f,D,H]),Q=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=l(E,1,"month"),o=!!t||S(f,r(n));return F(o,(t=>m(e,y(G))(t,n)),a)}),[E,f,G]),V=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=s(E,1,"month"),o=!!t||v(D,n);return F(o,(t=>m(e,y(G))(t,n)),a)}),[E,D,G]),W=t.useCallback((({$date:e},{onClick:t,disabled:a,...n}={})=>{const o=!!a||v(D,e)||S(f,r(e));return F(o,(a=>m(t,y(G))(a,e)),n)}),[f,D,G]),X=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||S(f,N[N.length-1].$date);return F(n,(t=>m(e,b(q))(t)),a)}),[N,f,q]),Z=t.useCallback((({onClick:e,disabled:t,...a}={})=>{const n=!!t||x(D,N[0].$date);return F(n,(t=>m(e,b(z))(t)),a)}),[N,D,z]);return{data:{calendars:R,weekDays:A,months:j,years:N,selectedDates:Y.map((e=>u(e,o)))},propGetters:{nextMonthButton:Q,previousMonthButton:V,dayButton:J,monthButton:K,yearButton:W,nextYearsButton:X,previousYearsButton:Z},actions:{setDay:I,setMonth:L,setNextMonth:U,setPreviousMonth:_,setYear:G,setNextYears:q,setPreviousYears:z,setRangeEnd:w}}},L=t.createContext({});e.DatePickerProvider=({children:e,config:t={}})=>{const a=E(t);return n.default.createElement(L.Provider,{value:a},e)},e.useDatePicker=E,e.useDatePickerContext=()=>{const e=t.useContext(L);if(!e)throw new Error('Please use "useDatePickerContext" inside "DatePickerProvider"');return e},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=index.umd.js.map
{
"name": "@rehookify/datepicker",
"version": "1.1.0",
"version": "1.1.1",
"description": "The tiny tool to create a date and range picker in your React applications.",

@@ -32,3 +32,3 @@ "main": "dist/index.cjs.js",

"prepare": "husky install",
"prepublishOnly": "npm run clean && npm run build",
"prepublishOnly": "npm run test && npm run clean && npm run build",
"test": "jest",

@@ -35,0 +35,0 @@ "test:watch": "jest --watch"

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc