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.2.3 to 1.2.4

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

@@ -7,3 +7,3 @@ import { DatePart, LocaleConfig } from '../types';

};
export declare const getUTCDay: (d: Date) => number;
export declare const getDay: (d: Date) => number;
export declare const getCleanDate: (d: Date) => Date;

@@ -10,0 +10,0 @@ export declare const daysInMonth: (d: Date) => number;

{
"name": "@rehookify/datepicker",
"version": "1.2.3",
"version": "1.2.4",
"description": "The tiny tool to create a date and range picker in your React applications.",

@@ -5,0 +5,0 @@ "main": "dist/index.cjs.js",

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

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