react-modular-datepicker 0.0.2-canary.20 → 0.0.2-canary.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +113 -23
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/useDates.d.ts +1 -0
- package/dist/cjs/utils.d.ts +1 -0
- package/dist/cjs/utils.js +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/es/index.d.mts +113 -23
- package/dist/es/index.mjs +1 -1
- package/dist/es/useDates.d.mts +1 -0
- package/dist/es/utils.d.mts +1 -0
- package/dist/es/utils.mjs +1 -1
- package/dist/es/utils.mjs.map +1 -1
- package/dist/index.css +710 -31
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -4,6 +4,64 @@ export * from './utils.js';
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { Dayjs } from 'dayjs';
|
|
6
6
|
|
|
7
|
+
interface DayClassNames {
|
|
8
|
+
day?: string;
|
|
9
|
+
today?: string;
|
|
10
|
+
selected?: string;
|
|
11
|
+
unselected?: string;
|
|
12
|
+
disabled?: string;
|
|
13
|
+
outside?: string;
|
|
14
|
+
rangeStart?: string;
|
|
15
|
+
rangeEnd?: string;
|
|
16
|
+
rangeBetween?: string;
|
|
17
|
+
rangeHovering?: string;
|
|
18
|
+
[key: string]: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
declare const defaultClassNames: {
|
|
21
|
+
root: string;
|
|
22
|
+
header: string;
|
|
23
|
+
calendarsContainer: string;
|
|
24
|
+
calendarContainer: string;
|
|
25
|
+
weekdayGrid: string;
|
|
26
|
+
weekday: string;
|
|
27
|
+
daysGrid: string;
|
|
28
|
+
footer: string;
|
|
29
|
+
navButton: string;
|
|
30
|
+
monthYearContainer: string;
|
|
31
|
+
monthYearLabel: string;
|
|
32
|
+
monthYearButton: string;
|
|
33
|
+
day: {
|
|
34
|
+
day: string;
|
|
35
|
+
today: string;
|
|
36
|
+
selected: string;
|
|
37
|
+
unselected: string;
|
|
38
|
+
disabled: string;
|
|
39
|
+
outside: string;
|
|
40
|
+
rangeStart: string;
|
|
41
|
+
rangeEnd: string;
|
|
42
|
+
rangeBetween: string;
|
|
43
|
+
rangeHovering: string;
|
|
44
|
+
};
|
|
45
|
+
monthsRoot: string;
|
|
46
|
+
monthsHeader: string;
|
|
47
|
+
monthsBackButton: string;
|
|
48
|
+
monthsYearLabel: string;
|
|
49
|
+
monthsGrid: string;
|
|
50
|
+
monthButton: string;
|
|
51
|
+
monthButtonSelected: string;
|
|
52
|
+
monthButtonUnselected: string;
|
|
53
|
+
yearsRoot: string;
|
|
54
|
+
yearsHeader: string;
|
|
55
|
+
yearsBackButton: string;
|
|
56
|
+
yearsTitle: string;
|
|
57
|
+
yearsGrid: string;
|
|
58
|
+
yearButton: string;
|
|
59
|
+
yearButtonSelected: string;
|
|
60
|
+
yearButtonUnselected: string;
|
|
61
|
+
};
|
|
62
|
+
type CalendarClassNames = typeof defaultClassNames;
|
|
63
|
+
declare const mergeClassNames: (custom?: CalendarClassNames) => Required<CalendarClassNames>;
|
|
64
|
+
|
|
7
65
|
interface DateAdapter<T = any> {
|
|
8
66
|
date(value?: any): T;
|
|
9
67
|
add(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
|
|
@@ -34,8 +92,16 @@ interface DateObj {
|
|
|
34
92
|
isRangeEnd?: boolean;
|
|
35
93
|
isRangeBetween?: boolean;
|
|
36
94
|
isRangeHovering?: boolean;
|
|
95
|
+
isRangeActive?: boolean;
|
|
37
96
|
modifiers?: string[];
|
|
38
97
|
}
|
|
98
|
+
interface Calendar$1 {
|
|
99
|
+
firstDayOfMonth: Date;
|
|
100
|
+
lastDayOfMonth: Date;
|
|
101
|
+
month: number;
|
|
102
|
+
year: number;
|
|
103
|
+
weeks: (DateObj | null)[][];
|
|
104
|
+
}
|
|
39
105
|
|
|
40
106
|
interface Translations {
|
|
41
107
|
months: string[];
|
|
@@ -47,18 +113,12 @@ declare function getDefaults(adapter?: DateAdapter, locale?: string): Translatio
|
|
|
47
113
|
declare function getTranslations(adapter?: DateAdapter, locale?: string, custom?: Partial<Translations>): Translations;
|
|
48
114
|
|
|
49
115
|
interface CalendarProps extends UseDatesProps {
|
|
50
|
-
classNames?:
|
|
51
|
-
root?: string;
|
|
52
|
-
header?: string;
|
|
53
|
-
monthName?: string;
|
|
54
|
-
weekday?: string;
|
|
55
|
-
grid?: string;
|
|
56
|
-
day?: any;
|
|
57
|
-
navButton?: string;
|
|
58
|
-
monthYearSelectors?: string;
|
|
59
|
-
};
|
|
116
|
+
classNames?: CalendarClassNames;
|
|
60
117
|
locale?: string;
|
|
61
118
|
translations?: Partial<Translations>;
|
|
119
|
+
header?: React.ReactNode | ((props: any) => React.ReactNode);
|
|
120
|
+
footer?: React.ReactNode;
|
|
121
|
+
renderDayTooltip?: (dateObj: DateObj) => React.ReactNode;
|
|
62
122
|
}
|
|
63
123
|
declare const Calendar: React.FC<CalendarProps>;
|
|
64
124
|
|
|
@@ -68,20 +128,32 @@ interface DayProps {
|
|
|
68
128
|
dateObj: DateObj;
|
|
69
129
|
[key: string]: any;
|
|
70
130
|
}) => any;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
today?: string;
|
|
74
|
-
selected?: string;
|
|
75
|
-
disabled?: string;
|
|
76
|
-
outside?: string;
|
|
77
|
-
rangeStart?: string;
|
|
78
|
-
rangeEnd?: string;
|
|
79
|
-
rangeBetween?: string;
|
|
80
|
-
rangeHovering?: string;
|
|
81
|
-
};
|
|
131
|
+
tooltip?: React.ReactNode;
|
|
132
|
+
classNames: Required<CalendarClassNames>;
|
|
82
133
|
}
|
|
83
134
|
declare const Day: React.FC<DayProps>;
|
|
84
135
|
|
|
136
|
+
interface MonthSelectionProps {
|
|
137
|
+
year: number;
|
|
138
|
+
month: number;
|
|
139
|
+
monthNames: string[];
|
|
140
|
+
minDate?: Date | null;
|
|
141
|
+
maxDate?: Date | null;
|
|
142
|
+
onMonthSelect: (month: number) => void;
|
|
143
|
+
classNames: Required<CalendarClassNames>;
|
|
144
|
+
}
|
|
145
|
+
declare const MonthSelection: React.FC<MonthSelectionProps>;
|
|
146
|
+
|
|
147
|
+
interface YearSelectionProps {
|
|
148
|
+
year: number;
|
|
149
|
+
minDate?: Date | null;
|
|
150
|
+
maxDate?: Date | null;
|
|
151
|
+
adapter: DateAdapter;
|
|
152
|
+
onYearSelect: (year: number) => void;
|
|
153
|
+
classNames: Required<CalendarClassNames>;
|
|
154
|
+
}
|
|
155
|
+
declare const YearSelection: React.FC<YearSelectionProps>;
|
|
156
|
+
|
|
85
157
|
declare class DayjsAdapter implements DateAdapter<Dayjs> {
|
|
86
158
|
date(value?: any): Dayjs;
|
|
87
159
|
add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
|
|
@@ -102,5 +174,23 @@ declare class DayjsAdapter implements DateAdapter<Dayjs> {
|
|
|
102
174
|
}
|
|
103
175
|
declare const defaultAdapter: DayjsAdapter;
|
|
104
176
|
|
|
105
|
-
|
|
106
|
-
|
|
177
|
+
interface HeaderProps {
|
|
178
|
+
calendars: Calendar$1[];
|
|
179
|
+
getBackProps: (args: any) => any;
|
|
180
|
+
getForwardProps: (args: any) => any;
|
|
181
|
+
setView: (view: 'days' | 'months' | 'years') => void;
|
|
182
|
+
monthNames: string[];
|
|
183
|
+
t: {
|
|
184
|
+
back: string;
|
|
185
|
+
forward: string;
|
|
186
|
+
};
|
|
187
|
+
classNames: Required<CalendarClassNames>;
|
|
188
|
+
slideDirection?: 'left' | 'right' | null;
|
|
189
|
+
currentView?: 'days' | 'months' | 'years';
|
|
190
|
+
}
|
|
191
|
+
declare const ChevronLeftIcon: () => React.JSX.Element;
|
|
192
|
+
declare const ChevronRightIcon: () => React.JSX.Element;
|
|
193
|
+
declare const CalendarHeader: React.FC<HeaderProps>;
|
|
194
|
+
|
|
195
|
+
export { Calendar, CalendarHeader, ChevronLeftIcon, ChevronRightIcon, Day, DayjsAdapter, MonthSelection, YearSelection, defaultAdapter, defaultClassNames, getDefaults, getTranslations, mergeClassNames };
|
|
196
|
+
export type { CalendarClassNames, DateAdapter, DateObj, DayClassNames, SelectionMode, Translations };
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./useDates.js"),t=require("./utils.js"),a=require("react"),r=require("dayjs"),l=require("dayjs/plugin/isBetween"),n=require("dayjs/plugin/customParseFormat"),o=require("dayjs/plugin/localeData");function d(e){return e&&e.__esModule?e:{default:e}}var s=d(a),u=d(r),i=d(l),c=d(n),f=d(o);let m=({dateObj:e,getDateProps:t,classNames:a})=>{if(!e)return s.default.createElement("div",{className:"aspect-square"});let{date:r,selected:l,selectable:n,today:o,prevMonth:d,nextMonth:u,isRangeStart:i,isRangeEnd:c,isRangeBetween:f,isRangeHovering:m}=e,g=d||u,p=["aspect-square flex items-center justify-center text-sm font-medium transition-all relative cursor-pointer",i&&c?"bg-brand-gold text-white rounded-full":i?"bg-brand-gold text-white rounded-l-full rounded-r-none":c?"bg-brand-gold text-white rounded-r-full rounded-l-none":f||m?"bg-brand-gray-light text-brand-text rounded-none":l?"bg-brand-gold text-white rounded-full":o?"text-brand-gold border border-brand-gold rounded-full":n?g?"text-gray-400 rounded-full":"hover:bg-brand-gray-light text-brand-text rounded-full":"text-gray-300 cursor-not-allowed",null==a?void 0:a.day,o&&(null==a?void 0:a.today),l&&(null==a?void 0:a.selected),!n&&(null==a?void 0:a.disabled),g&&(null==a?void 0:a.outside),i&&(null==a?void 0:a.rangeStart),c&&(null==a?void 0:a.rangeEnd),f&&(null==a?void 0:a.rangeBetween),m&&(null==a?void 0:a.rangeHovering),...(e.modifiers||[]).map(e=>(null==a?void 0:a[e])||e)].filter(Boolean).join(" ");return s.default.createElement("button",{...t({dateObj:e}),className:p},r.getDate())};u.default.extend(i.default),u.default.extend(c.default),u.default.extend(f.default);class g{date(e){return u.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?u.default().locale(e).localeData().months():u.default.localeData().months()}getWeekdays(e){return e?u.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):u.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}}let p=new g;function y(e=p,t){return{months:e.getMonths(t),weekdays:e.getWeekdays(t),back:"Previous month",forward:"Next month"}}function b(e=p,t,a){return{...y(e,t),...a}}let h=()=>s.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},s.default.createElement("polyline",{points:"15 18 9 12 15 6"})),v=()=>s.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},s.default.createElement("polyline",{points:"9 18 15 12 9 6"}));!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}("@theme{--color-brand-gold:#c5a059;--color-brand-gray-light:#f1f3f5;--color-brand-gray-dark:#6c757d;--color-brand-text:#343a40}@layer base{button{@apply cursor-pointer;}}"),Object.defineProperty(exports,"Dates",{enumerable:!0,get:function(){return e.Dates}}),Object.defineProperty(exports,"useDates",{enumerable:!0,get:function(){return e.useDates}}),exports.Calendar=t=>{let{classNames:r,locale:l,translations:n,adapter:o=p,firstDayOfWeek:d=0,...u}=t,[i,c]=a.useState("days"),f=a.useRef(null),g=b(o,l,n),y=g.weekdays,x=g.months,{calendars:w,getBackProps:D,getForwardProps:E,getDateProps:N,setOffset:k}=e.useDates({...u,adapter:o,firstDayOfWeek:d}),j=[...y.slice(d),...y.slice(0,d)],{month:M,year:O}=w[0];switch(a.useEffect(()=>{if("years"===i&&f.current){let e=f.current.querySelector('[data-selected="true"]');e&&e.scrollIntoView({block:"center"})}},[i]),i){case"months":return s.default.createElement("div",{className:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]"},s.default.createElement("div",{className:"flex items-center justify-between mb-4"},s.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>c("days"),className:"p-2 hover:bg-gray-100 rounded-full"},s.default.createElement(h,null)),s.default.createElement("div",{className:"font-semibold"},O),s.default.createElement("div",{className:"w-9"})),s.default.createElement("div",{className:"grid grid-cols-3 gap-2"},x.map((e,a)=>s.default.createElement("button",{key:e,onMouseDown:e=>e.preventDefault(),onClick:()=>{let e,r,l;return e=o.set(o.set(o.date(t.date||new Date),"year",O),"month",M),r=o.set(e,"month",a),l=o.startOf(o.date(t.date||new Date),"month"),void(k(o.diff(r,l,"month")),c("days"))},className:`py-4 rounded-lg hover:bg-brand-gray-light transition-colors ${a===M?"bg-brand-gold text-white":"text-brand-text"}`},e))));case"years":let C=t.minDate?o.get(o.date(t.minDate),"year"):O-50,$=t.maxDate?o.get(o.date(t.maxDate),"year"):O+50,q=[];for(let e=C;e<=$;e++)q.push(e);return s.default.createElement("div",{className:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]"},s.default.createElement("div",{className:"flex items-center justify-between mb-4"},s.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>c("days"),className:"p-2 hover:bg-gray-100 rounded-full"},s.default.createElement(h,null)),s.default.createElement("div",{className:"font-semibold"},"Select Year"),s.default.createElement("div",{className:"w-9"})),s.default.createElement("div",{ref:f,className:"grid grid-cols-3 gap-2 max-h-[300px] overflow-y-auto pr-2"},q.map(e=>s.default.createElement("button",{key:e,"data-selected":e===O,onMouseDown:e=>e.preventDefault(),onClick:()=>{let a,r,l;return a=o.set(o.set(o.date(t.date||new Date),"year",O),"month",M),r=o.set(a,"year",e),l=o.startOf(o.date(t.date||new Date),"month"),void(k(o.diff(r,l,"month")),c("days"))},className:`py-3 rounded-lg hover:bg-brand-gray-light transition-colors ${e===O?"bg-brand-gold text-white":"text-brand-text"}`},e))));default:return s.default.createElement("div",{className:`w-fit flex flex-col md:flex-row gap-4 p-4 bg-white rounded-lg shadow-lg ${(null==r?void 0:r.root)||""}`},w.map((e,t)=>s.default.createElement("div",{key:`${e.month}-${e.year}`,className:"flex-1 min-w-[280px]"},s.default.createElement("div",{className:"flex items-center justify-between mb-6"},0===t?s.default.createElement("button",{...D({calendars:w}),onMouseDown:e=>e.preventDefault(),className:`p-2 hover:bg-gray-100 rounded-full transition-colors ${(null==r?void 0:r.navButton)||""}`,"aria-label":g.back},s.default.createElement(h,null)):s.default.createElement("div",{className:"w-9"}),s.default.createElement("div",{className:`flex gap-1 items-center font-semibold text-brand-text ${(null==r?void 0:r.monthName)||""}`},s.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>c("months"),className:"hover:bg-gray-100 px-2 py-1 rounded"},x[e.month]),s.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>c("years"),className:"hover:bg-gray-100 px-2 py-1 rounded"},e.year)),t===w.length-1?s.default.createElement("button",{...E({calendars:w}),onMouseDown:e=>e.preventDefault(),className:`p-2 hover:bg-gray-100 rounded-full transition-colors ${(null==r?void 0:r.navButton)||""}`,"aria-label":g.forward},s.default.createElement(v,null)):s.default.createElement("div",{className:"w-9"})),s.default.createElement("div",{className:"grid grid-cols-7 gap-1 mb-2"},j.map(e=>s.default.createElement("div",{key:e,className:`text-center text-xs font-bold text-gray-400 py-2 ${(null==r?void 0:r.weekday)||""}`},e))),s.default.createElement("div",{className:`grid grid-cols-7 gap-1 ${(null==r?void 0:r.grid)||""}`},e.weeks.map((e,t)=>e.map((e,a)=>s.default.createElement(m,{key:`${t}-${a}`,dateObj:e,getDateProps:N,classNames:null==r?void 0:r.day})))))))}},exports.Day=m,exports.DayjsAdapter=g,exports.defaultAdapter=p,exports.getDefaults=y,exports.getTranslations=b,Object.keys(t).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./useDates.js"),t=require("./utils.js"),a=require("react"),r=require("dayjs"),n=require("dayjs/plugin/isBetween"),l=require("dayjs/plugin/customParseFormat"),o=require("dayjs/plugin/localeData");function s(e){return e&&e.__esModule?e:{default:e}}var d=s(a),i=s(r),u=s(n),m=s(l),c=s(o);let f=({dateObj:e,getDateProps:t,classNames:a,tooltip:r})=>{if(!e)return d.default.createElement("div",{className:"aspect-square bg-white"});let{date:n,selected:l,selectable:o,today:s,prevMonth:i,nextMonth:u,isRangeStart:m,isRangeEnd:c,isRangeBetween:f,isRangeHovering:y,isRangeActive:g}=e,p=a.day,h="rounded-full";h=m&&c?`${p.selected} rounded-full`:m?`${p.rangeStart} ${g?"rounded-l-full rounded-r-none":"rounded-full"}`:c?`${p.rangeEnd} ${g?"rounded-r-full rounded-l-none":"rounded-full"}`:f?p.rangeBetween||"":y?p.rangeHovering||"":l?p.selected||"":s?p.today||"":o?i||u?p.outside||"":p.unselected||"":p.disabled||"";let b=[p.day,h,...(e.modifiers||[]).map(e=>p[e]||e)].filter(Boolean).join(" ");return d.default.createElement("button",{...t({dateObj:e}),className:b},n.getDate(),r&&d.default.createElement("div",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 hidden group-hover:block z-10"},d.default.createElement("div",{className:"bg-gray-800 text-white text-xs py-1 px-2 rounded whitespace-nowrap shadow-lg"},r,d.default.createElement("div",{className:"absolute top-full left-1/2 -translate-x-1/2 border-8 border-transparent border-t-gray-800"}))))};i.default.extend(u.default),i.default.extend(m.default),i.default.extend(c.default);class y{date(e){return i.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?i.default().locale(e).localeData().months():i.default.localeData().months()}getWeekdays(e){return e?i.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):i.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}}let g=new y;function p(e=g,t){return{months:e.getMonths(t),weekdays:e.getWeekdays(t),back:"Previous month",forward:"Next month"}}function h(e=g,t,a){return{...p(e,t),...a}}let b=()=>d.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},d.default.createElement("polyline",{points:"15 18 9 12 15 6"})),x=()=>d.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},d.default.createElement("polyline",{points:"9 18 15 12 9 6"})),w=({calendars:e,getBackProps:t,getForwardProps:a,setView:r,monthNames:n,t:l,classNames:o,slideDirection:s,currentView:i})=>{let u,m;return d.default.createElement("div",{className:o.header},d.default.createElement("button",{...t({calendars:e}),onMouseDown:e=>e.preventDefault(),className:`${o.navButton} ${i&&"days"!==i?"invisible pointer-events-none":""}`,"aria-label":l.back},d.default.createElement(b,null)),d.default.createElement("div",{className:o.monthYearContainer},1===e.length?d.default.createElement("div",{key:`${e[0].month}-${e[0].year}`,className:`${o.monthYearLabel} ${"left"===s?"animate-slide-in-left":"right"===s?"animate-slide-in-right":""}`},d.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>r("months"===i?"days":"months"),className:o.monthYearButton},n[e[0].month]),d.default.createElement("button",{onMouseDown:e=>e.preventDefault(),onClick:()=>r("years"===i?"days":"years"),className:o.monthYearButton},e[0].year)):d.default.createElement("div",{className:`${o.monthYearLabel} ${"left"===s?"animate-slide-in-left":"right"===s?"animate-slide-in-right":""}`},(u=e[0],m=e[e.length-1],12===e.length&&0===u.month&&11===m.month&&u.year===m.year?d.default.createElement("span",null,u.year):u.year===m.year?d.default.createElement("span",null,n[u.month]," - ",n[m.month]," ",u.year):d.default.createElement("span",null,n[u.month]," ",u.year," - ",n[m.month]," ",m.year)))),d.default.createElement("button",{...a({calendars:e}),onMouseDown:e=>e.preventDefault(),className:`${o.navButton} ${i&&"days"!==i?"invisible pointer-events-none":""}`,"aria-label":l.forward},d.default.createElement(x,null)))},v={root:"w-fit flex flex-col p-4 bg-white rounded-lg shadow-lg",header:"flex items-center justify-between border-b-2 border-brand-gray-light/40",calendarsContainer:"flex flex-col md:flex-row gap-4",calendarContainer:"flex-1 min-w-[280px] min-h-[260px]",weekdayGrid:"grid grid-cols-7 gap-1 mb-1 border-b border-brand-gray-light/40",weekday:"text-center text-xs text-gray-400 py-2",daysGrid:"grid grid-cols-7 gap-px bg-brand-gray-light/20",footer:"mt-4",navButton:"p-2 hover:bg-gray-100 rounded-full transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",monthYearContainer:"flex gap-8",monthYearLabel:"flex gap-1 items-center font-semibold text-brand-text",monthYearButton:"hover:bg-gray-100 px-2 py-1 rounded cursor-pointer",day:{day:"aspect-square flex items-center justify-center text-sm font-medium transition-all relative group cursor-pointer bg-white p-px",today:"text-brand-gold border border-brand-gold",selected:"bg-brand-gold text-white rounded-full",unselected:"hover:bg-brand-gray-light text-brand-text",disabled:"text-gray-300 cursor-not-allowed",outside:"text-gray-400",rangeStart:"bg-brand-gold text-white",rangeEnd:"bg-brand-gold text-white",rangeBetween:"bg-brand-gray-light text-brand-text",rangeHovering:"bg-brand-gray-light text-brand-text"},monthsRoot:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]",monthsHeader:"flex items-center justify-between mb-4",monthsBackButton:"p-2 hover:bg-gray-100 rounded-full cursor-pointer",monthsYearLabel:"font-semibold",monthsGrid:"grid grid-cols-3 gap-2 animate-slide-in-top",monthButton:"py-4 rounded-lg hover:bg-brand-gray-light transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",monthButtonSelected:"bg-brand-gold text-white",monthButtonUnselected:"text-brand-text",yearsRoot:"w-fit p-4 bg-white rounded-lg shadow-lg min-w-[280px]",yearsHeader:"flex items-center justify-between mb-4",yearsBackButton:"p-2 hover:bg-gray-100 rounded-full cursor-pointer",yearsTitle:"font-semibold",yearsGrid:"grid grid-cols-3 gap-2 max-h-[300px] overflow-y-auto pr-2 animate-slide-in-top",yearButton:"py-3 rounded-lg hover:bg-brand-gray-light transition-colors cursor-pointer disabled:opacity-30 disabled:pointer-events-none",yearButtonSelected:"bg-brand-gold text-white",yearButtonUnselected:"text-brand-text"},k=e=>{let t={...v};if(!e)return t;for(let a in e)"day"===a&&e.day?t.day={...v.day,...e.day}:e[a]&&(t[a]=e[a]);return t},E=({year:e,month:t,monthNames:a,minDate:r,maxDate:n,onMonthSelect:l,classNames:o})=>d.default.createElement("div",{className:o.monthsGrid},a.map((a,s)=>{let i=!!(r&&e===r.getFullYear()&&s<r.getMonth()||n&&e===n.getFullYear()&&s>n.getMonth());return d.default.createElement("button",{key:a,onMouseDown:e=>e.preventDefault(),onClick:()=>!i&&l(s),className:`${o.monthButton} ${s===t?o.monthButtonSelected:o.monthButtonUnselected}`,disabled:i},a)})),D=({year:e,minDate:t,maxDate:r,adapter:n,onYearSelect:l,classNames:o})=>{let s=a.useRef(null);a.useEffect(()=>{if(s.current){let e=s.current.querySelector('[data-selected="true"]');e&&e.scrollIntoView({block:"center"})}},[]);let i=t?n.get(n.date(t),"year"):e-50,u=r?n.get(n.date(r),"year"):e+50,m=[];for(let e=i;e<=u;e++)m.push(e);return d.default.createElement("div",{ref:s,className:o.yearsGrid},m.map(t=>d.default.createElement("button",{key:t,"data-selected":t===e,onMouseDown:e=>e.preventDefault(),onClick:()=>l(t),className:`${o.yearButton} ${t===e?o.yearButtonSelected:o.yearButtonUnselected}`},t)))};!function(e){if(!e||"u"<typeof document)return;let t=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}("@theme{--color-brand-gold:#c5a059;--color-brand-gray-light:#b5bec6;--color-brand-gray-dark:#4a5660;--color-brand-text:#343a40}@keyframes slideInFromTop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in-top{animation:slideInFromTop .2s ease-out forwards}@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-right{animation:slideInRight .2s ease-out forwards}.animate-slide-in-left{animation:slideInLeft .2s ease-out forwards}"),Object.defineProperty(exports,"Dates",{enumerable:!0,get:function(){return e.Dates}}),Object.defineProperty(exports,"useDates",{enumerable:!0,get:function(){return e.useDates}}),exports.Calendar=t=>{let{classNames:r,locale:n,translations:l,adapter:o=g,firstDayOfWeek:s=0,header:i,footer:u,renderDayTooltip:m,...c}=t,y=k(r),[p,b]=a.useState("days"),[x,v]=a.useState(null),N=h(o,n,l),B=N.weekdays,C=N.months,{calendars:$,getBackProps:j,getForwardProps:S,getDateProps:M,setOffset:Y}=e.useDates({...c,adapter:o,firstDayOfWeek:s}),O=[...B.slice(s),...B.slice(0,s)],{month:P,year:I}=$[0],L=e=>{let a=o.set(o.set(o.date(t.date||new Date),"year",I),"month",P),r=o.set(a,"month",e),n=o.startOf(o.date(t.date||new Date),"month"),l=o.diff(r,n,"month");v(null),Y(l),b("days")},q=e=>{let a=o.set(o.set(o.date(t.date||new Date),"year",I),"month",P),r=o.set(a,"year",e),n=o.startOf(o.date(t.date||new Date),"month"),l=o.diff(r,n,"month");v(null),Y(l),b("days")},G=e=>{let t=j(e);return{...t,onClick:e=>{v("left"),null==t.onClick||t.onClick.call(t,e)}}},F=e=>{let t=S(e);return{...t,onClick:e=>{v("right"),null==t.onClick||t.onClick.call(t,e)}}};return d.default.createElement("div",{className:y.root},"function"==typeof i?i({calendars:$,getBackProps:G,getForwardProps:F,setView:b,monthNames:C,t:N,slideDirection:x,currentView:p}):i||d.default.createElement(w,{calendars:$,getBackProps:G,getForwardProps:F,setView:b,monthNames:C,t:N,classNames:y,slideDirection:x,currentView:p}),d.default.createElement("div",{className:y.calendarsContainer},"months"===p&&$.map(e=>d.default.createElement("div",{key:`months-${e.year}`,className:y.calendarContainer},d.default.createElement(E,{year:e.year,month:e.month,monthNames:C,minDate:t.minDate,maxDate:t.maxDate,onMonthSelect:L,classNames:y}))),"years"===p&&$.map(e=>d.default.createElement("div",{key:`years-${e.year}`,className:y.calendarContainer},d.default.createElement(D,{year:e.year,minDate:t.minDate,maxDate:t.maxDate,adapter:o,onYearSelect:q,classNames:y}))),"days"===p&&$.map(e=>d.default.createElement("div",{key:`${e.month}-${e.year}`,className:y.calendarContainer},$.length>1&&d.default.createElement("div",{className:"text-center font-semibold mb-2 text-brand-text"},C[e.month]," ",$[0].year!==$[$.length-1].year?e.year:""),d.default.createElement("div",{className:y.weekdayGrid},O.map(e=>d.default.createElement("div",{key:e,className:y.weekday},e))),d.default.createElement("div",{className:`${y.daysGrid} ${"left"===x?"animate-slide-in-left":"right"===x?"animate-slide-in-right":""}`},e.weeks.map((e,t)=>e.map((e,a)=>d.default.createElement(f,{key:`${t}-${a}`,dateObj:e,getDateProps:M,classNames:y,tooltip:e&&(null==m?void 0:m(e))}))))))),u&&d.default.createElement("div",{className:y.footer},u))},exports.CalendarHeader=w,exports.ChevronLeftIcon=b,exports.ChevronRightIcon=x,exports.Day=f,exports.DayjsAdapter=y,exports.MonthSelection=E,exports.YearSelection=D,exports.defaultAdapter=g,exports.defaultClassNames=v,exports.getDefaults=p,exports.getTranslations=h,exports.mergeClassNames=k,Object.keys(t).forEach(function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/useDates.d.ts
CHANGED
package/dist/cjs/utils.d.ts
CHANGED
package/dist/cjs/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("dayjs"),t=require("dayjs/plugin/isBetween"),a=require("dayjs/plugin/customParseFormat"),r=require("dayjs/plugin/localeData");function d(e){return e&&e.__esModule?e:{default:e}}var n=d(e),s=d(t),o=d(a),i=d(r);n.default.extend(s.default),n.default.extend(o.default),n.default.extend(i.default);let u=new class{date(e){return n.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?n.default().locale(e).localeData().months():n.default.localeData().months()}getWeekdays(e){return e?n.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):n.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}};function f(){}function l(e,t,a,r,d,n,s,o,i=!1,u){var f,y,c,h,m;let p,g,D,S,{selected:A,isRangeStart:B,isRangeEnd:
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var e=require("dayjs"),t=require("dayjs/plugin/isBetween"),a=require("dayjs/plugin/customParseFormat"),r=require("dayjs/plugin/localeData");function d(e){return e&&e.__esModule?e:{default:e}}var n=d(e),s=d(t),o=d(a),i=d(r);n.default.extend(s.default),n.default.extend(o.default),n.default.extend(i.default);let u=new class{date(e){return n.default(e)}add(e,t,a){return e.add(t,a)}subtract(e,t,a){return e.subtract(t,a)}startOf(e,t){return e.startOf(t)}endOf(e,t){return e.endOf(t)}isBefore(e,t,a){return e.isBefore(t,a)}isAfter(e,t,a){return e.isAfter(t,a)}isSame(e,t,a){return e.isSame(t,a)}set(e,t,a){return"day"===t?e.date(a):e.set(t,a)}get(e,t){return"day"===t?e.date():e.get(t)}format(e,t,a){return a?e.locale(a).format(t):e.format(t)}getDaysInMonth(e){return e.daysInMonth()}toDate(e){return e.toDate()}diff(e,t,a){return e.diff(t,a)}getMonths(e){return e?n.default().locale(e).localeData().months():n.default.localeData().months()}getWeekdays(e){return e?n.default().locale(e).localeData().weekdaysShort().map(e=>e.toUpperCase()):n.default.localeData().weekdaysShort().map(e=>e.toUpperCase())}};function f(){}function l(e,t,a,r,d,n,s,o,i=!1,u){var f,y,c,h,m;let p,g,D,S,{selected:A,isRangeStart:B,isRangeEnd:v,isRangeBetween:x,isRangeHovering:M,isRangeActive:O}=function(e,t,a,r,d){if(!e&&!d)return{selected:!1};let n=a.date(t);if("single"===r&&e instanceof Date)return{selected:a.isSame(n,a.date(e),"day")};if("multiple"===r&&Array.isArray(e))return{selected:e.some(e=>a.isSame(n,a.date(e),"day"))};if("range"===r){let{start:t,end:r}=e&&"object"==typeof e&&!Array.isArray(e)?e:{start:void 0,end:void 0},s=!!t&&a.isSame(n,a.date(t),"day"),o=!!r&&a.isSame(n,a.date(r),"day"),i=!!t&&!!r&&a.isAfter(n,a.date(t),"day")&&a.isBefore(n,a.date(r),"day"),u=!1;if(t&&!r&&d){let e=a.date(d),r=a.date(t);a.isAfter(e,r,"day")?(u=a.isAfter(n,r,"day")&&a.isBefore(n,e,"day")||a.isSame(n,e,"day"),a.isSame(n,e,"day")&&(o=!0)):a.isBefore(e,r,"day")&&(u=a.isAfter(n,e,"day")&&a.isBefore(n,r,"day")||a.isSame(n,e,"day"),a.isSame(n,e,"day")&&(s=!0),a.isSame(n,r,"day")&&(s=!1,o=!0))}return{selected:s||o||i,isRangeStart:s,isRangeEnd:o,isRangeBetween:i,isRangeHovering:u,isRangeActive:!!(t&&r&&!a.isSame(a.date(t),a.date(r),"day")||t&&!r&&d&&!a.isSame(a.date(t),a.date(d),"day"))}}return Array.isArray(e)&&1===e.length&&"single"===r?{selected:a.isSame(n,a.date(e[0]),"day")}:{selected:!1}}(t,e,s,o,u),b=s.isSame(s.date(e),s.date(),"day"),w=i&&s.isBefore(s.date(e),s.startOf(s.date(e),"month")),j=i&&s.isAfter(s.date(e),s.endOf(s.date(e),"month")),k=r?Object.keys(r).filter(t=>r[t](e)):[];return b&&k.push("today"),i&&k.push("outside"),w&&k.push("prev-month"),j&&k.push("next-month"),{date:e,selected:A,modifiers:k,selectable:(f=d,y=n,c=a,h=e,p=(m=s).date(h),g=f&&m.isBefore(p,m.date(f),"day"),D=y&&m.isAfter(p,m.date(y),"day"),S=null==c?void 0:c.some(e=>m.isSame(p,m.date(e),"day")),!g&&!D&&!S),today:b,prevMonth:w,nextMonth:j,isRangeStart:B,isRangeEnd:v,isRangeBetween:x,isRangeHovering:M,isRangeActive:O}}exports.addMonth=function({calendars:e,offset:t,maxDate:a,adapter:r=u}){if(t>1&&a){let{lastDayOfMonth:d}=e[e.length-1],n=r.diff(r.date(a),r.date(d),"month");n<t&&(t=n)}return t},exports.composeEventHandlers=function(...e){return(t,...a)=>e.some(e=>(e&&e(t,...a),t.defaultPrevented))},exports.getCalendars=function({date:e,selected:t,disabledDates:a,monthsToDisplay:r,offset:d,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:f=u,selectionMode:y="single",modifiers:c,hoveredDate:h}){let m=[],p=function(e,t,a,r=u){let d=r.startOf(r.date(e),"day");if(t){let e=r.startOf(r.date(t),"day");r.isBefore(d,e)&&(d=e)}if(a){let e=r.startOf(r.date(a),"day");r.isBefore(e,d)&&(d=e)}return d}(e,n,s,f);for(let e=0;e<r;e++){let r=function({month:e,year:t,selectedDates:a,disabledDates:r,modifiers:d,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y}){let c=u.set(u.set(u.date(),"year",t),"month",e);e=u.get(c,"month"),t=u.get(c,"year");let h=u.getDaysInMonth(c),m=[];for(let e=1;e<=h;e++){let t=l(u.toDate(u.set(c,"day",e)),a,r,d,n,s,u,f,!1,y);m.push(t)}let p=u.toDate(u.startOf(c,"month")),g=u.toDate(u.endOf(c,"month")),D=function({firstDayOfMonth:e,minDate:t,maxDate:a,selectedDates:r,disabledDates:d,modifiers:n,firstDayOfWeek:s,showOutsideDays:o,adapter:i,selectionMode:u,hoveredDate:f}){let y=[],c=(i.toDate(i.date(e)).getDay()+7-s)%7;if(o){let s=i.subtract(i.date(e),1,"day");for(let e=0;e<c;e++){let e=l(i.toDate(s),r,d,n,t,a,i,u,!0,f);e.prevMonth=!0,y.unshift(e),s=i.subtract(s,1,"day")}}else for(;c>0;)y.unshift(null),c--;return y}({firstDayOfMonth:p,minDate:n,maxDate:s,selectedDates:a,disabledDates:r,modifiers:d,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y}),S=function({lastDayOfMonth:e,minDate:t,maxDate:a,selectedDates:r,disabledDates:d,modifiers:n,firstDayOfWeek:s,showOutsideDays:o,adapter:i,selectionMode:u,hoveredDate:f}){let y=[],c=(i.toDate(i.date(e)).getDay()+7-s)%7;if(o){let s=i.add(i.date(e),1,"day");for(let e=0;e<6-c;e++){let e=l(i.toDate(s),r,d,n,t,a,i,u,!0,f);e.nextMonth=!0,y.push(e),s=i.add(s,1,"day")}}else for(;c<6;)y.push(null),c++;return y}({lastDayOfMonth:g,minDate:n,maxDate:s,selectedDates:a,disabledDates:r,modifiers:d,firstDayOfWeek:o,showOutsideDays:i,adapter:u,selectionMode:f,hoveredDate:y});return m.unshift(...D),m.push(...S),{firstDayOfMonth:p,lastDayOfMonth:g,month:e,year:t,weeks:function(e){let t=Math.ceil(e.length/7),a=[];for(let r=0;r<t;r++){a[r]=[];for(let t=0;t<7;t++)a[r].push(e[7*r+t])}return a}(m)}}({month:f.get(p,"month")+e+d,year:f.get(p,"year"),selectedDates:t,disabledDates:a,modifiers:c,minDate:n,maxDate:s,firstDayOfWeek:o,showOutsideDays:i,adapter:f,selectionMode:y,hoveredDate:h});m.push(r)}return m},exports.isBackDisabled=function({calendars:e,minDate:t,adapter:a=u}){if(!t)return!1;let{firstDayOfMonth:r}=e[0],d=a.subtract(a.date(r),1,"day");return a.isBefore(d,a.date(t))},exports.isForwardDisabled=function({calendars:e,maxDate:t,adapter:a=u}){if(!t)return!1;let{lastDayOfMonth:r}=e[e.length-1],d=a.add(a.date(r),1,"day");return a.isBefore(a.date(t),d)},exports.subtractMonth=function({calendars:e,offset:t,minDate:a,adapter:r=u}){if(t>1&&a){let{firstDayOfMonth:d}=e[0],n=r.diff(r.date(d),r.date(a),"month");n<t&&(t=n)}return t},exports.unwrapChildrenForPreact=function(e){return(e=Array.isArray(e)?e[0]:e)||f};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../src/adapters/dayjs.ts","../../src/utils.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localeData from 'dayjs/plugin/localeData';\nimport type { DateAdapter } from '../types';\n\ndayjs.extend(isBetween);\ndayjs.extend(customParseFormat);\ndayjs.extend(localeData);\n\nexport class DayjsAdapter implements DateAdapter<Dayjs> {\n date(value?: any): Dayjs {\n return dayjs(value);\n }\n\n add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.add(amount, unit);\n }\n\n subtract(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.subtract(amount, unit);\n }\n\n startOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.startOf(unit);\n }\n\n endOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.endOf(unit);\n }\n\n isBefore(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isBefore(comparison, unit);\n }\n\n isAfter(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isAfter(comparison, unit);\n }\n\n isSame(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isSame(comparison, unit);\n }\n\n set(date: Dayjs, unit: 'day' | 'month' | 'year', value: number): Dayjs {\n if (unit === 'day') return date.date(value);\n return date.set(unit, value);\n }\n\n get(date: Dayjs, unit: 'day' | 'month' | 'year'): number {\n if (unit === 'day') return date.date();\n return date.get(unit);\n }\n\n format(date: Dayjs, formatStr: string, locale?: string): string {\n if (locale) {\n return date.locale(locale).format(formatStr);\n }\n return date.format(formatStr);\n }\n\n getDaysInMonth(date: Dayjs): number {\n return date.daysInMonth();\n }\n\n toDate(date: Dayjs): Date {\n return date.toDate();\n }\n\n diff(date: Dayjs, comparison: Dayjs, unit: 'month' | 'year'): number {\n return date.diff(comparison, unit);\n }\n\n getMonths(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().months() : dayjs.localeData().months();\n }\n\n getWeekdays(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().weekdaysShort().map(d => d.toUpperCase()) : dayjs.localeData().weekdaysShort().map(d => d.toUpperCase());\n }\n}\n\nexport const defaultAdapter = new DayjsAdapter();\n","import { defaultAdapter } from \"./adapters/dayjs\";\nimport type { DateAdapter, DateObj, Calendar } from \"./types\";\n\nexport function composeEventHandlers(...fns: Array<((event: any, ...args: unknown[]) => void) | undefined>): (event: any, ...args: unknown[]) => boolean {\n return (event, ...args) =>\n fns.some(fn => {\n fn && fn(event, ...args);\n return event.defaultPrevented;\n });\n}\n\nexport function unwrapChildrenForPreact<T>(arg: T | T[]): T | typeof noop {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */ arg[0] : arg;\n return arg || noop;\n}\nfunction noop() { }\n\nexport function subtractMonth({ calendars, offset, minDate, adapter = defaultAdapter }: { calendars: Calendar[], offset: number, minDate?: Date, adapter?: DateAdapter }): number {\n if (offset > 1 && minDate) {\n const { firstDayOfMonth } = calendars[0];\n const diffInMonths = adapter.diff(adapter.date(firstDayOfMonth), adapter.date(minDate), \"month\");\n if (diffInMonths < offset) {\n offset = diffInMonths;\n }\n }\n return offset;\n}\n\nexport function addMonth({ calendars, offset, maxDate, adapter = defaultAdapter }: { calendars: Calendar[], offset: number, maxDate?: Date, adapter?: DateAdapter }): number {\n if (offset > 1 && maxDate) {\n const { lastDayOfMonth } = calendars[calendars.length - 1];\n const diffInMonths = adapter.diff(adapter.date(maxDate), adapter.date(lastDayOfMonth), \"month\");\n if (diffInMonths < offset) {\n offset = diffInMonths;\n }\n }\n return offset;\n}\n\nexport function isBackDisabled({ calendars, minDate, adapter = defaultAdapter }: { calendars: Calendar[], minDate?: Date, adapter?: DateAdapter }): boolean {\n if (!minDate) {\n return false;\n }\n const { firstDayOfMonth } = calendars[0];\n const firstDayOfMonthMinusOne = adapter.subtract(adapter.date(firstDayOfMonth), 1, \"day\");\n return adapter.isBefore(firstDayOfMonthMinusOne, adapter.date(minDate));\n}\n\nexport function isForwardDisabled({ calendars, maxDate, adapter = defaultAdapter }: { calendars: Calendar[], maxDate?: Date, adapter?: DateAdapter }): boolean {\n if (!maxDate) {\n return false;\n }\n const { lastDayOfMonth } = calendars[calendars.length - 1];\n const lastDayOfMonthPlusOne = adapter.add(adapter.date(lastDayOfMonth), 1, \"day\");\n return adapter.isBefore(adapter.date(maxDate), lastDayOfMonthPlusOne);\n}\n\nexport function getCalendars({\n date,\n selected,\n disabledDates,\n monthsToDisplay,\n offset,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter = defaultAdapter,\n selectionMode = 'single',\n modifiers,\n hoveredDate\n}: {\n date: Date,\n selected?: Date | Date[] | { start?: Date, end?: Date },\n disabledDates?: Date[],\n modifiers?: Record<string, (date: Date) => boolean>,\n monthsToDisplay: number,\n offset: number,\n minDate?: Date,\n maxDate?: Date,\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter?: DateAdapter,\n selectionMode?: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n}): Calendar[] {\n const months: Calendar[] = [];\n const startDate = getStartDate(date, minDate, maxDate, adapter);\n for (let i = 0; i < monthsToDisplay; i++) {\n const calendarDates = getMonthData({\n month: adapter.get(startDate, 'month') + i + offset,\n year: adapter.get(startDate, 'year'),\n selectedDates: selected,\n disabledDates,\n modifiers,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n months.push(calendarDates);\n }\n return months;\n}\n\nfunction getStartDate(date: Date, minDate?: Date, maxDate?: Date, adapter: DateAdapter = defaultAdapter): any {\n let startDate = adapter.startOf(adapter.date(date), \"day\");\n if (minDate) {\n const minDateNormalized = adapter.startOf(adapter.date(minDate), \"day\");\n if (adapter.isBefore(startDate, minDateNormalized)) {\n startDate = minDateNormalized;\n }\n }\n if (maxDate) {\n const maxDateNormalized = adapter.startOf(adapter.date(maxDate), \"day\");\n if (adapter.isBefore(maxDateNormalized, startDate)) {\n startDate = maxDateNormalized;\n }\n }\n return startDate;\n}\n\nfunction getMonthData({\n month,\n year,\n selectedDates,\n disabledDates,\n modifiers,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n month: number,\n year: number,\n selectedDates?: Date | Date[] | { start?: Date, end?: Date },\n disabledDates?: Date[],\n minDate?: Date,\n maxDate?: Date,\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n}): Calendar {\n let currentMonth = adapter.set(adapter.set(adapter.date(), 'year', year), 'month', month);\n month = adapter.get(currentMonth, 'month');\n year = adapter.get(currentMonth, 'year');\n\n const daysInMonth = adapter.getDaysInMonth(currentMonth);\n const dates: (DateObj | null)[] = [];\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = adapter.toDate(adapter.set(currentMonth, 'day', day));\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, false, hoveredDate);\n dates.push(dateObj);\n }\n\n const firstDayOfMonth = adapter.toDate(adapter.startOf(currentMonth, 'month'));\n const lastDayOfMonth = adapter.toDate(adapter.endOf(currentMonth, 'month'));\n\n const frontWeekBuffer = fillFrontWeek({\n firstDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n\n const backWeekBuffer = fillBackWeek({\n lastDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n\n dates.unshift(...frontWeekBuffer);\n dates.push(...backWeekBuffer);\n\n const weeks = getWeeks(dates);\n\n return {\n firstDayOfMonth,\n lastDayOfMonth,\n month,\n year,\n weeks\n };\n}\n\nfunction createDateObj(\n date: Date,\n selectedDates: Date | Date[] | { start?: Date, end?: Date } | undefined,\n disabledDates: Date[] | undefined,\n modifiers: Record<string, (date: Date) => boolean> | undefined,\n minDate: Date | undefined,\n maxDate: Date | undefined,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n isOutside = false,\n hoveredDate?: Date\n): DateObj {\n const { selected, isRangeStart, isRangeEnd, isRangeBetween, isRangeHovering } = isSelected(selectedDates, date, adapter, selectionMode, hoveredDate);\n const isToday = adapter.isSame(adapter.date(date), adapter.date(), \"day\");\n const isPrevMonth = isOutside && adapter.isBefore(adapter.date(date), adapter.startOf(adapter.date(date), 'month'));\n const isNextMonth = isOutside && adapter.isAfter(adapter.date(date), adapter.endOf(adapter.date(date), 'month'));\n\n const activeModifiers = modifiers\n ? Object.keys(modifiers).filter(key => modifiers[key](date))\n : [];\n\n if (isToday) activeModifiers.push('today');\n if (isOutside) activeModifiers.push('outside');\n if (isPrevMonth) activeModifiers.push('prev-month');\n if (isNextMonth) activeModifiers.push('next-month');\n\n return {\n date,\n selected,\n modifiers: activeModifiers,\n selectable: isSelectable(minDate, maxDate, disabledDates, date, adapter),\n today: isToday,\n prevMonth: isPrevMonth,\n nextMonth: isNextMonth,\n isRangeStart,\n isRangeEnd,\n isRangeBetween,\n isRangeHovering\n };\n}\n\nfunction fillFrontWeek({\n firstDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n firstDayOfMonth: Date,\n minDate?: Date,\n maxDate?: Date,\n selectedDates?: any,\n disabledDates?: Date[],\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: any,\n hoveredDate?: Date\n}): (DateObj | null)[] {\n const dates: (DateObj | null)[] = [];\n let firstDay = (adapter.toDate(adapter.date(firstDayOfMonth)).getDay() + 7 - firstDayOfWeek) % 7;\n\n if (showOutsideDays) {\n let current = adapter.subtract(adapter.date(firstDayOfMonth), 1, \"day\");\n for (let i = 0; i < firstDay; i++) {\n const date = adapter.toDate(current);\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, true, hoveredDate);\n dateObj.prevMonth = true;\n dates.unshift(dateObj);\n current = adapter.subtract(current, 1, \"day\");\n }\n } else {\n while (firstDay > 0) {\n dates.unshift(null);\n firstDay--;\n }\n }\n\n return dates;\n}\n\nfunction fillBackWeek({\n lastDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n lastDayOfMonth: Date,\n minDate?: Date,\n maxDate?: Date,\n selectedDates?: any,\n disabledDates?: Date[],\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: any,\n hoveredDate?: Date\n}): (DateObj | null)[] {\n const dates: (DateObj | null)[] = [];\n let lastDay = (adapter.toDate(adapter.date(lastDayOfMonth)).getDay() + 7 - firstDayOfWeek) % 7;\n\n if (showOutsideDays) {\n let current = adapter.add(adapter.date(lastDayOfMonth), 1, \"day\");\n for (let i = 0; i < 6 - lastDay; i++) {\n const date = adapter.toDate(current);\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, true, hoveredDate);\n dateObj.nextMonth = true;\n dates.push(dateObj);\n current = adapter.add(current, 1, \"day\");\n }\n } else {\n while (lastDay < 6) {\n dates.push(null);\n lastDay++;\n }\n }\n\n return dates;\n}\n\nfunction getWeeks(dates: (DateObj | null)[]): (DateObj | null)[][] {\n const weeksLength = Math.ceil(dates.length / 7);\n const weeks: (DateObj | null)[][] = [];\n for (let i = 0; i < weeksLength; i++) {\n weeks[i] = [];\n for (let x = 0; x < 7; x++) {\n weeks[i].push(dates[i * 7 + x]);\n }\n }\n return weeks;\n}\n\nfunction isSelected(\n selectedDates: Date | Date[] | { start?: Date, end?: Date } | undefined,\n date: Date,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n): { selected: boolean, isRangeStart?: boolean, isRangeEnd?: boolean, isRangeBetween?: boolean, isRangeHovering?: boolean } {\n if (!selectedDates && !hoveredDate) return { selected: false };\n\n const d = adapter.date(date);\n\n if (selectionMode === 'single' && selectedDates instanceof Date) {\n return { selected: adapter.isSame(d, adapter.date(selectedDates), 'day') };\n }\n\n if (selectionMode === 'multiple' && Array.isArray(selectedDates)) {\n return { selected: selectedDates.some(sd => adapter.isSame(d, adapter.date(sd), 'day')) };\n }\n\n if (selectionMode === 'range') {\n const range = (selectedDates && typeof selectedDates === 'object' && !Array.isArray(selectedDates)) ? selectedDates : { start: undefined, end: undefined };\n const { start, end } = range;\n\n let isStart = start ? adapter.isSame(d, adapter.date(start), 'day') : false;\n let isEnd = end ? adapter.isSame(d, adapter.date(end), 'day') : false;\n const isBetween = (start && end) ? (adapter.isAfter(d, adapter.date(start), 'day') && adapter.isBefore(d, adapter.date(end), 'day')) : false;\n\n let isHovering = false;\n if (start && !end && hoveredDate) {\n const h = adapter.date(hoveredDate);\n const s = adapter.date(start);\n if (adapter.isAfter(h, s, 'day')) {\n isHovering = (adapter.isAfter(d, s, 'day') && adapter.isBefore(d, h, 'day')) || adapter.isSame(d, h, 'day');\n if (adapter.isSame(d, h, 'day')) isEnd = true;\n } else if (adapter.isBefore(h, s, 'day')) {\n isHovering = (adapter.isAfter(d, h, 'day') && adapter.isBefore(d, s, 'day')) || adapter.isSame(d, h, 'day');\n if (adapter.isSame(d, h, 'day')) {\n isStart = true;\n }\n if (adapter.isSame(d, s, 'day')) {\n isStart = false;\n isEnd = true;\n }\n }\n }\n\n return {\n selected: isStart || isEnd || isBetween,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeBetween: isBetween,\n isRangeHovering: isHovering\n };\n }\n\n if (Array.isArray(selectedDates) && selectedDates.length === 1 && selectionMode === 'single') {\n return { selected: adapter.isSame(d, adapter.date(selectedDates[0]), 'day') };\n }\n\n return { selected: false };\n}\n\nfunction isSelectable(minDate: Date | undefined, maxDate: Date | undefined, disabledDates: Date[] | undefined, date: Date, adapter: DateAdapter): boolean {\n const d = adapter.date(date);\n const isMinDateInvalid = minDate && adapter.isBefore(d, adapter.date(minDate), 'day');\n const isMaxDateInvalid = maxDate && adapter.isAfter(d, adapter.date(maxDate), 'day');\n const isDisabled = disabledDates?.some(disabledDate => adapter.isSame(d, adapter.date(disabledDate), 'day'));\n return !isMinDateInvalid && !isMaxDateInvalid && !isDisabled;\n}\n"],"names":["dayjs","extend","isBetween","customParseFormat","localeData","defaultAdapter","date","value","add","amount","unit","subtract","startOf","endOf","isBefore","comparison","isAfter","isSame","set","get","format","formatStr","locale","getDaysInMonth","daysInMonth","toDate","diff","getMonths","months","getWeekdays","weekdaysShort","map","d","toUpperCase","noop","createDateObj","selectedDates","disabledDates","modifiers","minDate","maxDate","adapter","selectionMode","isOutside","hoveredDate","isMinDateInvalid","isMaxDateInvalid","isDisabled","selected","isRangeStart","isRangeEnd","isRangeBetween","isRangeHovering","isSelected","Date","Array","isArray","some","sd","start","end","undefined","isStart","isEnd","isHovering","h","s","length","isToday","isPrevMonth","isNextMonth","activeModifiers","Object","keys","filter","key","push","selectable","disabledDate","today","prevMonth","nextMonth","calendars","offset","lastDayOfMonth","diffInMonths","fns","event","args","fn","defaultPrevented","monthsToDisplay","firstDayOfWeek","showOutsideDays","startDate","getStartDate","minDateNormalized","maxDateNormalized","i","calendarDates","getMonthData","month","year","currentMonth","dates","day","dateObj","firstDayOfMonth","frontWeekBuffer","fillFrontWeek","firstDay","getDay","current","unshift","backWeekBuffer","fillBackWeek","lastDay","weeks","getWeeks","weeksLength","Math","ceil","x","firstDayOfMonthMinusOne","lastDayOfMonthPlusOne","arg"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../src/adapters/dayjs.ts","../../src/utils.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport type { Dayjs } from 'dayjs';\nimport isBetween from 'dayjs/plugin/isBetween';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport localeData from 'dayjs/plugin/localeData';\nimport type { DateAdapter } from '../types';\n\ndayjs.extend(isBetween);\ndayjs.extend(customParseFormat);\ndayjs.extend(localeData);\n\nexport class DayjsAdapter implements DateAdapter<Dayjs> {\n date(value?: any): Dayjs {\n return dayjs(value);\n }\n\n add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.add(amount, unit);\n }\n\n subtract(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.subtract(amount, unit);\n }\n\n startOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.startOf(unit);\n }\n\n endOf(date: Dayjs, unit: 'day' | 'month' | 'year'): Dayjs {\n return date.endOf(unit);\n }\n\n isBefore(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isBefore(comparison, unit);\n }\n\n isAfter(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isAfter(comparison, unit);\n }\n\n isSame(date: Dayjs, comparison: Dayjs, unit?: 'day' | 'month' | 'year'): boolean {\n return date.isSame(comparison, unit);\n }\n\n set(date: Dayjs, unit: 'day' | 'month' | 'year', value: number): Dayjs {\n if (unit === 'day') return date.date(value);\n return date.set(unit, value);\n }\n\n get(date: Dayjs, unit: 'day' | 'month' | 'year'): number {\n if (unit === 'day') return date.date();\n return date.get(unit);\n }\n\n format(date: Dayjs, formatStr: string, locale?: string): string {\n if (locale) {\n return date.locale(locale).format(formatStr);\n }\n return date.format(formatStr);\n }\n\n getDaysInMonth(date: Dayjs): number {\n return date.daysInMonth();\n }\n\n toDate(date: Dayjs): Date {\n return date.toDate();\n }\n\n diff(date: Dayjs, comparison: Dayjs, unit: 'month' | 'year'): number {\n return date.diff(comparison, unit);\n }\n\n getMonths(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().months() : dayjs.localeData().months();\n }\n\n getWeekdays(locale?: string): string[] {\n return locale ? dayjs().locale(locale).localeData().weekdaysShort().map(d => d.toUpperCase()) : dayjs.localeData().weekdaysShort().map(d => d.toUpperCase());\n }\n}\n\nexport const defaultAdapter = new DayjsAdapter();\n","import { defaultAdapter } from \"./adapters/dayjs\";\nimport type { DateAdapter, DateObj, Calendar } from \"./types\";\n\nexport function composeEventHandlers(...fns: Array<((event: any, ...args: unknown[]) => void) | undefined>): (event: any, ...args: unknown[]) => boolean {\n return (event, ...args) =>\n fns.some(fn => {\n fn && fn(event, ...args);\n return event.defaultPrevented;\n });\n}\n\nexport function unwrapChildrenForPreact<T>(arg: T | T[]): T | typeof noop {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */ arg[0] : arg;\n return arg || noop;\n}\nfunction noop() { }\n\nexport function subtractMonth({ calendars, offset, minDate, adapter = defaultAdapter }: { calendars: Calendar[], offset: number, minDate?: Date, adapter?: DateAdapter }): number {\n if (offset > 1 && minDate) {\n const { firstDayOfMonth } = calendars[0];\n const diffInMonths = adapter.diff(adapter.date(firstDayOfMonth), adapter.date(minDate), \"month\");\n if (diffInMonths < offset) {\n offset = diffInMonths;\n }\n }\n return offset;\n}\n\nexport function addMonth({ calendars, offset, maxDate, adapter = defaultAdapter }: { calendars: Calendar[], offset: number, maxDate?: Date, adapter?: DateAdapter }): number {\n if (offset > 1 && maxDate) {\n const { lastDayOfMonth } = calendars[calendars.length - 1];\n const diffInMonths = adapter.diff(adapter.date(maxDate), adapter.date(lastDayOfMonth), \"month\");\n if (diffInMonths < offset) {\n offset = diffInMonths;\n }\n }\n return offset;\n}\n\nexport function isBackDisabled({ calendars, minDate, adapter = defaultAdapter }: { calendars: Calendar[], minDate?: Date, adapter?: DateAdapter }): boolean {\n if (!minDate) {\n return false;\n }\n const { firstDayOfMonth } = calendars[0];\n const firstDayOfMonthMinusOne = adapter.subtract(adapter.date(firstDayOfMonth), 1, \"day\");\n return adapter.isBefore(firstDayOfMonthMinusOne, adapter.date(minDate));\n}\n\nexport function isForwardDisabled({ calendars, maxDate, adapter = defaultAdapter }: { calendars: Calendar[], maxDate?: Date, adapter?: DateAdapter }): boolean {\n if (!maxDate) {\n return false;\n }\n const { lastDayOfMonth } = calendars[calendars.length - 1];\n const lastDayOfMonthPlusOne = adapter.add(adapter.date(lastDayOfMonth), 1, \"day\");\n return adapter.isBefore(adapter.date(maxDate), lastDayOfMonthPlusOne);\n}\n\nexport function getCalendars({\n date,\n selected,\n disabledDates,\n monthsToDisplay,\n offset,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter = defaultAdapter,\n selectionMode = 'single',\n modifiers,\n hoveredDate\n}: {\n date: Date,\n selected?: Date | Date[] | { start?: Date, end?: Date },\n disabledDates?: Date[],\n modifiers?: Record<string, (date: Date) => boolean>,\n monthsToDisplay: number,\n offset: number,\n minDate?: Date,\n maxDate?: Date,\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter?: DateAdapter,\n selectionMode?: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n}): Calendar[] {\n const months: Calendar[] = [];\n const startDate = getStartDate(date, minDate, maxDate, adapter);\n for (let i = 0; i < monthsToDisplay; i++) {\n const calendarDates = getMonthData({\n month: adapter.get(startDate, 'month') + i + offset,\n year: adapter.get(startDate, 'year'),\n selectedDates: selected,\n disabledDates,\n modifiers,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n months.push(calendarDates);\n }\n return months;\n}\n\nfunction getStartDate(date: Date, minDate?: Date, maxDate?: Date, adapter: DateAdapter = defaultAdapter): any {\n let startDate = adapter.startOf(adapter.date(date), \"day\");\n if (minDate) {\n const minDateNormalized = adapter.startOf(adapter.date(minDate), \"day\");\n if (adapter.isBefore(startDate, minDateNormalized)) {\n startDate = minDateNormalized;\n }\n }\n if (maxDate) {\n const maxDateNormalized = adapter.startOf(adapter.date(maxDate), \"day\");\n if (adapter.isBefore(maxDateNormalized, startDate)) {\n startDate = maxDateNormalized;\n }\n }\n return startDate;\n}\n\nfunction getMonthData({\n month,\n year,\n selectedDates,\n disabledDates,\n modifiers,\n minDate,\n maxDate,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n month: number,\n year: number,\n selectedDates?: Date | Date[] | { start?: Date, end?: Date },\n disabledDates?: Date[],\n minDate?: Date,\n maxDate?: Date,\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n}): Calendar {\n let currentMonth = adapter.set(adapter.set(adapter.date(), 'year', year), 'month', month);\n month = adapter.get(currentMonth, 'month');\n year = adapter.get(currentMonth, 'year');\n\n const daysInMonth = adapter.getDaysInMonth(currentMonth);\n const dates: (DateObj | null)[] = [];\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = adapter.toDate(adapter.set(currentMonth, 'day', day));\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, false, hoveredDate);\n dates.push(dateObj);\n }\n\n const firstDayOfMonth = adapter.toDate(adapter.startOf(currentMonth, 'month'));\n const lastDayOfMonth = adapter.toDate(adapter.endOf(currentMonth, 'month'));\n\n const frontWeekBuffer = fillFrontWeek({\n firstDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n\n const backWeekBuffer = fillBackWeek({\n lastDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n });\n\n dates.unshift(...frontWeekBuffer);\n dates.push(...backWeekBuffer);\n\n const weeks = getWeeks(dates);\n\n return {\n firstDayOfMonth,\n lastDayOfMonth,\n month,\n year,\n weeks\n };\n}\n\nfunction createDateObj(\n date: Date,\n selectedDates: Date | Date[] | { start?: Date, end?: Date } | undefined,\n disabledDates: Date[] | undefined,\n modifiers: Record<string, (date: Date) => boolean> | undefined,\n minDate: Date | undefined,\n maxDate: Date | undefined,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n isOutside = false,\n hoveredDate?: Date\n): DateObj {\n const { selected, isRangeStart, isRangeEnd, isRangeBetween, isRangeHovering, isRangeActive } = isSelected(selectedDates, date, adapter, selectionMode, hoveredDate);\n const isToday = adapter.isSame(adapter.date(date), adapter.date(), \"day\");\n const isPrevMonth = isOutside && adapter.isBefore(adapter.date(date), adapter.startOf(adapter.date(date), 'month'));\n const isNextMonth = isOutside && adapter.isAfter(adapter.date(date), adapter.endOf(adapter.date(date), 'month'));\n\n const activeModifiers = modifiers\n ? Object.keys(modifiers).filter(key => modifiers[key](date))\n : [];\n\n if (isToday) activeModifiers.push('today');\n if (isOutside) activeModifiers.push('outside');\n if (isPrevMonth) activeModifiers.push('prev-month');\n if (isNextMonth) activeModifiers.push('next-month');\n\n return {\n date,\n selected,\n modifiers: activeModifiers,\n selectable: isSelectable(minDate, maxDate, disabledDates, date, adapter),\n today: isToday,\n prevMonth: isPrevMonth,\n nextMonth: isNextMonth,\n isRangeStart,\n isRangeEnd,\n isRangeBetween,\n isRangeHovering,\n isRangeActive\n };\n}\n\nfunction fillFrontWeek({\n firstDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n firstDayOfMonth: Date,\n minDate?: Date,\n maxDate?: Date,\n selectedDates?: any,\n disabledDates?: Date[],\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: any,\n hoveredDate?: Date\n}): (DateObj | null)[] {\n const dates: (DateObj | null)[] = [];\n let firstDay = (adapter.toDate(adapter.date(firstDayOfMonth)).getDay() + 7 - firstDayOfWeek) % 7;\n\n if (showOutsideDays) {\n let current = adapter.subtract(adapter.date(firstDayOfMonth), 1, \"day\");\n for (let i = 0; i < firstDay; i++) {\n const date = adapter.toDate(current);\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, true, hoveredDate);\n dateObj.prevMonth = true;\n dates.unshift(dateObj);\n current = adapter.subtract(current, 1, \"day\");\n }\n } else {\n while (firstDay > 0) {\n dates.unshift(null);\n firstDay--;\n }\n }\n\n return dates;\n}\n\nfunction fillBackWeek({\n lastDayOfMonth,\n minDate,\n maxDate,\n selectedDates,\n disabledDates,\n modifiers,\n firstDayOfWeek,\n showOutsideDays,\n adapter,\n selectionMode,\n hoveredDate\n}: {\n lastDayOfMonth: Date,\n minDate?: Date,\n maxDate?: Date,\n selectedDates?: any,\n disabledDates?: Date[],\n firstDayOfWeek: number,\n showOutsideDays: boolean,\n adapter: DateAdapter,\n selectionMode: any,\n hoveredDate?: Date\n}): (DateObj | null)[] {\n const dates: (DateObj | null)[] = [];\n let lastDay = (adapter.toDate(adapter.date(lastDayOfMonth)).getDay() + 7 - firstDayOfWeek) % 7;\n\n if (showOutsideDays) {\n let current = adapter.add(adapter.date(lastDayOfMonth), 1, \"day\");\n for (let i = 0; i < 6 - lastDay; i++) {\n const date = adapter.toDate(current);\n const dateObj = createDateObj(date, selectedDates, disabledDates, modifiers, minDate, maxDate, adapter, selectionMode, true, hoveredDate);\n dateObj.nextMonth = true;\n dates.push(dateObj);\n current = adapter.add(current, 1, \"day\");\n }\n } else {\n while (lastDay < 6) {\n dates.push(null);\n lastDay++;\n }\n }\n\n return dates;\n}\n\nfunction getWeeks(dates: (DateObj | null)[]): (DateObj | null)[][] {\n const weeksLength = Math.ceil(dates.length / 7);\n const weeks: (DateObj | null)[][] = [];\n for (let i = 0; i < weeksLength; i++) {\n weeks[i] = [];\n for (let x = 0; x < 7; x++) {\n weeks[i].push(dates[i * 7 + x]);\n }\n }\n return weeks;\n}\n\nfunction isSelected(\n selectedDates: Date | Date[] | { start?: Date, end?: Date } | undefined,\n date: Date,\n adapter: DateAdapter,\n selectionMode: 'single' | 'range' | 'multiple',\n hoveredDate?: Date\n): { selected: boolean, isRangeStart?: boolean, isRangeEnd?: boolean, isRangeBetween?: boolean, isRangeHovering?: boolean, isRangeActive?: boolean } {\n if (!selectedDates && !hoveredDate) return { selected: false };\n\n const d = adapter.date(date);\n\n if (selectionMode === 'single' && selectedDates instanceof Date) {\n return { selected: adapter.isSame(d, adapter.date(selectedDates), 'day') };\n }\n\n if (selectionMode === 'multiple' && Array.isArray(selectedDates)) {\n return { selected: selectedDates.some(sd => adapter.isSame(d, adapter.date(sd), 'day')) };\n }\n\n if (selectionMode === 'range') {\n const range = (selectedDates && typeof selectedDates === 'object' && !Array.isArray(selectedDates)) ? selectedDates : { start: undefined, end: undefined };\n const { start, end } = range;\n\n let isStart = start ? adapter.isSame(d, adapter.date(start), 'day') : false;\n let isEnd = end ? adapter.isSame(d, adapter.date(end), 'day') : false;\n const isBetween = (start && end) ? (adapter.isAfter(d, adapter.date(start), 'day') && adapter.isBefore(d, adapter.date(end), 'day')) : false;\n\n let isHovering = false;\n if (start && !end && hoveredDate) {\n const h = adapter.date(hoveredDate);\n const s = adapter.date(start);\n if (adapter.isAfter(h, s, 'day')) {\n isHovering = (adapter.isAfter(d, s, 'day') && adapter.isBefore(d, h, 'day')) || adapter.isSame(d, h, 'day');\n if (adapter.isSame(d, h, 'day')) isEnd = true;\n } else if (adapter.isBefore(h, s, 'day')) {\n isHovering = (adapter.isAfter(d, h, 'day') && adapter.isBefore(d, s, 'day')) || adapter.isSame(d, h, 'day');\n if (adapter.isSame(d, h, 'day')) {\n isStart = true;\n }\n if (adapter.isSame(d, s, 'day')) {\n isStart = false;\n isEnd = true;\n }\n }\n }\n\n const isRangeActive = !!(\n (start && end && !adapter.isSame(adapter.date(start), adapter.date(end), 'day')) ||\n (start && !end && hoveredDate && !adapter.isSame(adapter.date(start), adapter.date(hoveredDate), 'day'))\n );\n\n return {\n selected: isStart || isEnd || isBetween,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeBetween: isBetween,\n isRangeHovering: isHovering,\n isRangeActive\n };\n }\n\n if (Array.isArray(selectedDates) && selectedDates.length === 1 && selectionMode === 'single') {\n return { selected: adapter.isSame(d, adapter.date(selectedDates[0]), 'day') };\n }\n\n return { selected: false };\n}\n\nfunction isSelectable(minDate: Date | undefined, maxDate: Date | undefined, disabledDates: Date[] | undefined, date: Date, adapter: DateAdapter): boolean {\n const d = adapter.date(date);\n const isMinDateInvalid = minDate && adapter.isBefore(d, adapter.date(minDate), 'day');\n const isMaxDateInvalid = maxDate && adapter.isAfter(d, adapter.date(maxDate), 'day');\n const isDisabled = disabledDates?.some(disabledDate => adapter.isSame(d, adapter.date(disabledDate), 'day'));\n return !isMinDateInvalid && !isMaxDateInvalid && !isDisabled;\n}\n"],"names":["dayjs","extend","isBetween","customParseFormat","localeData","defaultAdapter","date","value","add","amount","unit","subtract","startOf","endOf","isBefore","comparison","isAfter","isSame","set","get","format","formatStr","locale","getDaysInMonth","daysInMonth","toDate","diff","getMonths","months","getWeekdays","weekdaysShort","map","d","toUpperCase","noop","createDateObj","selectedDates","disabledDates","modifiers","minDate","maxDate","adapter","selectionMode","isOutside","hoveredDate","isMinDateInvalid","isMaxDateInvalid","isDisabled","selected","isRangeStart","isRangeEnd","isRangeBetween","isRangeHovering","isRangeActive","isSelected","Date","Array","isArray","some","sd","start","end","undefined","isStart","isEnd","isHovering","h","s","length","isToday","isPrevMonth","isNextMonth","activeModifiers","Object","keys","filter","key","push","selectable","disabledDate","today","prevMonth","nextMonth","calendars","offset","lastDayOfMonth","diffInMonths","fns","event","args","fn","defaultPrevented","monthsToDisplay","firstDayOfWeek","showOutsideDays","startDate","getStartDate","minDateNormalized","maxDateNormalized","i","calendarDates","getMonthData","month","year","currentMonth","dates","day","dateObj","firstDayOfMonth","frontWeekBuffer","fillFrontWeek","firstDay","getDay","current","unshift","backWeekBuffer","fillBackWeek","lastDay","weeks","getWeeks","weeksLength","Math","ceil","x","firstDayOfMonthMinusOne","lastDayOfMonthPlusOne","arg"],"mappings":"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"}
|
package/dist/es/index.d.mts
CHANGED
|
@@ -4,6 +4,64 @@ export * from './utils.mjs';
|
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { Dayjs } from 'dayjs';
|
|
6
6
|
|
|
7
|
+
interface DayClassNames {
|
|
8
|
+
day?: string;
|
|
9
|
+
today?: string;
|
|
10
|
+
selected?: string;
|
|
11
|
+
unselected?: string;
|
|
12
|
+
disabled?: string;
|
|
13
|
+
outside?: string;
|
|
14
|
+
rangeStart?: string;
|
|
15
|
+
rangeEnd?: string;
|
|
16
|
+
rangeBetween?: string;
|
|
17
|
+
rangeHovering?: string;
|
|
18
|
+
[key: string]: string | undefined;
|
|
19
|
+
}
|
|
20
|
+
declare const defaultClassNames: {
|
|
21
|
+
root: string;
|
|
22
|
+
header: string;
|
|
23
|
+
calendarsContainer: string;
|
|
24
|
+
calendarContainer: string;
|
|
25
|
+
weekdayGrid: string;
|
|
26
|
+
weekday: string;
|
|
27
|
+
daysGrid: string;
|
|
28
|
+
footer: string;
|
|
29
|
+
navButton: string;
|
|
30
|
+
monthYearContainer: string;
|
|
31
|
+
monthYearLabel: string;
|
|
32
|
+
monthYearButton: string;
|
|
33
|
+
day: {
|
|
34
|
+
day: string;
|
|
35
|
+
today: string;
|
|
36
|
+
selected: string;
|
|
37
|
+
unselected: string;
|
|
38
|
+
disabled: string;
|
|
39
|
+
outside: string;
|
|
40
|
+
rangeStart: string;
|
|
41
|
+
rangeEnd: string;
|
|
42
|
+
rangeBetween: string;
|
|
43
|
+
rangeHovering: string;
|
|
44
|
+
};
|
|
45
|
+
monthsRoot: string;
|
|
46
|
+
monthsHeader: string;
|
|
47
|
+
monthsBackButton: string;
|
|
48
|
+
monthsYearLabel: string;
|
|
49
|
+
monthsGrid: string;
|
|
50
|
+
monthButton: string;
|
|
51
|
+
monthButtonSelected: string;
|
|
52
|
+
monthButtonUnselected: string;
|
|
53
|
+
yearsRoot: string;
|
|
54
|
+
yearsHeader: string;
|
|
55
|
+
yearsBackButton: string;
|
|
56
|
+
yearsTitle: string;
|
|
57
|
+
yearsGrid: string;
|
|
58
|
+
yearButton: string;
|
|
59
|
+
yearButtonSelected: string;
|
|
60
|
+
yearButtonUnselected: string;
|
|
61
|
+
};
|
|
62
|
+
type CalendarClassNames = typeof defaultClassNames;
|
|
63
|
+
declare const mergeClassNames: (custom?: CalendarClassNames) => Required<CalendarClassNames>;
|
|
64
|
+
|
|
7
65
|
interface DateAdapter<T = any> {
|
|
8
66
|
date(value?: any): T;
|
|
9
67
|
add(date: T, amount: number, unit: 'day' | 'month' | 'year'): T;
|
|
@@ -34,8 +92,16 @@ interface DateObj {
|
|
|
34
92
|
isRangeEnd?: boolean;
|
|
35
93
|
isRangeBetween?: boolean;
|
|
36
94
|
isRangeHovering?: boolean;
|
|
95
|
+
isRangeActive?: boolean;
|
|
37
96
|
modifiers?: string[];
|
|
38
97
|
}
|
|
98
|
+
interface Calendar$1 {
|
|
99
|
+
firstDayOfMonth: Date;
|
|
100
|
+
lastDayOfMonth: Date;
|
|
101
|
+
month: number;
|
|
102
|
+
year: number;
|
|
103
|
+
weeks: (DateObj | null)[][];
|
|
104
|
+
}
|
|
39
105
|
|
|
40
106
|
interface Translations {
|
|
41
107
|
months: string[];
|
|
@@ -47,18 +113,12 @@ declare function getDefaults(adapter?: DateAdapter, locale?: string): Translatio
|
|
|
47
113
|
declare function getTranslations(adapter?: DateAdapter, locale?: string, custom?: Partial<Translations>): Translations;
|
|
48
114
|
|
|
49
115
|
interface CalendarProps extends UseDatesProps {
|
|
50
|
-
classNames?:
|
|
51
|
-
root?: string;
|
|
52
|
-
header?: string;
|
|
53
|
-
monthName?: string;
|
|
54
|
-
weekday?: string;
|
|
55
|
-
grid?: string;
|
|
56
|
-
day?: any;
|
|
57
|
-
navButton?: string;
|
|
58
|
-
monthYearSelectors?: string;
|
|
59
|
-
};
|
|
116
|
+
classNames?: CalendarClassNames;
|
|
60
117
|
locale?: string;
|
|
61
118
|
translations?: Partial<Translations>;
|
|
119
|
+
header?: React.ReactNode | ((props: any) => React.ReactNode);
|
|
120
|
+
footer?: React.ReactNode;
|
|
121
|
+
renderDayTooltip?: (dateObj: DateObj) => React.ReactNode;
|
|
62
122
|
}
|
|
63
123
|
declare const Calendar: React.FC<CalendarProps>;
|
|
64
124
|
|
|
@@ -68,20 +128,32 @@ interface DayProps {
|
|
|
68
128
|
dateObj: DateObj;
|
|
69
129
|
[key: string]: any;
|
|
70
130
|
}) => any;
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
today?: string;
|
|
74
|
-
selected?: string;
|
|
75
|
-
disabled?: string;
|
|
76
|
-
outside?: string;
|
|
77
|
-
rangeStart?: string;
|
|
78
|
-
rangeEnd?: string;
|
|
79
|
-
rangeBetween?: string;
|
|
80
|
-
rangeHovering?: string;
|
|
81
|
-
};
|
|
131
|
+
tooltip?: React.ReactNode;
|
|
132
|
+
classNames: Required<CalendarClassNames>;
|
|
82
133
|
}
|
|
83
134
|
declare const Day: React.FC<DayProps>;
|
|
84
135
|
|
|
136
|
+
interface MonthSelectionProps {
|
|
137
|
+
year: number;
|
|
138
|
+
month: number;
|
|
139
|
+
monthNames: string[];
|
|
140
|
+
minDate?: Date | null;
|
|
141
|
+
maxDate?: Date | null;
|
|
142
|
+
onMonthSelect: (month: number) => void;
|
|
143
|
+
classNames: Required<CalendarClassNames>;
|
|
144
|
+
}
|
|
145
|
+
declare const MonthSelection: React.FC<MonthSelectionProps>;
|
|
146
|
+
|
|
147
|
+
interface YearSelectionProps {
|
|
148
|
+
year: number;
|
|
149
|
+
minDate?: Date | null;
|
|
150
|
+
maxDate?: Date | null;
|
|
151
|
+
adapter: DateAdapter;
|
|
152
|
+
onYearSelect: (year: number) => void;
|
|
153
|
+
classNames: Required<CalendarClassNames>;
|
|
154
|
+
}
|
|
155
|
+
declare const YearSelection: React.FC<YearSelectionProps>;
|
|
156
|
+
|
|
85
157
|
declare class DayjsAdapter implements DateAdapter<Dayjs> {
|
|
86
158
|
date(value?: any): Dayjs;
|
|
87
159
|
add(date: Dayjs, amount: number, unit: 'day' | 'month' | 'year'): Dayjs;
|
|
@@ -102,5 +174,23 @@ declare class DayjsAdapter implements DateAdapter<Dayjs> {
|
|
|
102
174
|
}
|
|
103
175
|
declare const defaultAdapter: DayjsAdapter;
|
|
104
176
|
|
|
105
|
-
|
|
106
|
-
|
|
177
|
+
interface HeaderProps {
|
|
178
|
+
calendars: Calendar$1[];
|
|
179
|
+
getBackProps: (args: any) => any;
|
|
180
|
+
getForwardProps: (args: any) => any;
|
|
181
|
+
setView: (view: 'days' | 'months' | 'years') => void;
|
|
182
|
+
monthNames: string[];
|
|
183
|
+
t: {
|
|
184
|
+
back: string;
|
|
185
|
+
forward: string;
|
|
186
|
+
};
|
|
187
|
+
classNames: Required<CalendarClassNames>;
|
|
188
|
+
slideDirection?: 'left' | 'right' | null;
|
|
189
|
+
currentView?: 'days' | 'months' | 'years';
|
|
190
|
+
}
|
|
191
|
+
declare const ChevronLeftIcon: () => React.JSX.Element;
|
|
192
|
+
declare const ChevronRightIcon: () => React.JSX.Element;
|
|
193
|
+
declare const CalendarHeader: React.FC<HeaderProps>;
|
|
194
|
+
|
|
195
|
+
export { Calendar, CalendarHeader, ChevronLeftIcon, ChevronRightIcon, Day, DayjsAdapter, MonthSelection, YearSelection, defaultAdapter, defaultClassNames, getDefaults, getTranslations, mergeClassNames };
|
|
196
|
+
export type { CalendarClassNames, DateAdapter, DateObj, DayClassNames, SelectionMode, Translations };
|