@keenthemes/ktui 1.0.29 → 1.1.1
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/ktui.js +3942 -8634
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +0 -196
- package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js +596 -0
- package/lib/cjs/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
- package/lib/cjs/components/datatable/__tests__/race-conditions.test.js +548 -0
- package/lib/cjs/components/datatable/__tests__/race-conditions.test.js.map +1 -0
- package/lib/cjs/components/datatable/__tests__/setup.js +63 -0
- package/lib/cjs/components/datatable/__tests__/setup.js.map +1 -0
- package/lib/cjs/components/datatable/datatable.js +92 -30
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/index.js +1 -5
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/datatable/__tests__/pagination-reset.test.js +594 -0
- package/lib/esm/components/datatable/__tests__/pagination-reset.test.js.map +1 -0
- package/lib/esm/components/datatable/__tests__/race-conditions.test.js +546 -0
- package/lib/esm/components/datatable/__tests__/race-conditions.test.js.map +1 -0
- package/lib/esm/components/datatable/__tests__/setup.js +58 -0
- package/lib/esm/components/datatable/__tests__/setup.js.map +1 -0
- package/lib/esm/components/datatable/datatable.js +92 -30
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/index.js +0 -3
- package/lib/esm/index.js.map +1 -1
- package/package.json +9 -2
- package/src/components/datatable/__tests__/pagination-reset.test.ts +657 -0
- package/src/components/datatable/__tests__/race-conditions.test.ts +455 -0
- package/src/components/datatable/__tests__/setup.ts +67 -0
- package/src/components/datatable/datatable.ts +66 -11
- package/src/components/input/input.css +0 -1
- package/src/components/select/select.css +0 -1
- package/src/components/textarea/textarea.css +0 -1
- package/src/index.ts +0 -4
- package/styles.css +0 -1
- package/lib/cjs/components/datepicker/calendar.js +0 -1061
- package/lib/cjs/components/datepicker/calendar.js.map +0 -1
- package/lib/cjs/components/datepicker/config.js +0 -332
- package/lib/cjs/components/datepicker/config.js.map +0 -1
- package/lib/cjs/components/datepicker/datepicker.js +0 -949
- package/lib/cjs/components/datepicker/datepicker.js.map +0 -1
- package/lib/cjs/components/datepicker/dropdown.js +0 -635
- package/lib/cjs/components/datepicker/dropdown.js.map +0 -1
- package/lib/cjs/components/datepicker/events.js +0 -129
- package/lib/cjs/components/datepicker/events.js.map +0 -1
- package/lib/cjs/components/datepicker/index.js +0 -13
- package/lib/cjs/components/datepicker/index.js.map +0 -1
- package/lib/cjs/components/datepicker/keyboard.js +0 -536
- package/lib/cjs/components/datepicker/keyboard.js.map +0 -1
- package/lib/cjs/components/datepicker/locales.js +0 -78
- package/lib/cjs/components/datepicker/locales.js.map +0 -1
- package/lib/cjs/components/datepicker/templates.js +0 -403
- package/lib/cjs/components/datepicker/templates.js.map +0 -1
- package/lib/cjs/components/datepicker/types.js +0 -23
- package/lib/cjs/components/datepicker/types.js.map +0 -1
- package/lib/cjs/components/datepicker/utils.js +0 -524
- package/lib/cjs/components/datepicker/utils.js.map +0 -1
- package/lib/esm/components/datepicker/calendar.js +0 -1058
- package/lib/esm/components/datepicker/calendar.js.map +0 -1
- package/lib/esm/components/datepicker/config.js +0 -329
- package/lib/esm/components/datepicker/config.js.map +0 -1
- package/lib/esm/components/datepicker/datepicker.js +0 -946
- package/lib/esm/components/datepicker/datepicker.js.map +0 -1
- package/lib/esm/components/datepicker/dropdown.js +0 -632
- package/lib/esm/components/datepicker/dropdown.js.map +0 -1
- package/lib/esm/components/datepicker/events.js +0 -126
- package/lib/esm/components/datepicker/events.js.map +0 -1
- package/lib/esm/components/datepicker/index.js +0 -9
- package/lib/esm/components/datepicker/index.js.map +0 -1
- package/lib/esm/components/datepicker/keyboard.js +0 -533
- package/lib/esm/components/datepicker/keyboard.js.map +0 -1
- package/lib/esm/components/datepicker/locales.js +0 -74
- package/lib/esm/components/datepicker/locales.js.map +0 -1
- package/lib/esm/components/datepicker/templates.js +0 -390
- package/lib/esm/components/datepicker/templates.js.map +0 -1
- package/lib/esm/components/datepicker/types.js +0 -20
- package/lib/esm/components/datepicker/types.js.map +0 -1
- package/lib/esm/components/datepicker/utils.js +0 -508
- package/lib/esm/components/datepicker/utils.js.map +0 -1
- package/src/components/datepicker/calendar.ts +0 -1397
- package/src/components/datepicker/config.ts +0 -368
- package/src/components/datepicker/datepicker.css +0 -7
- package/src/components/datepicker/datepicker.ts +0 -1287
- package/src/components/datepicker/dropdown.ts +0 -757
- package/src/components/datepicker/events.ts +0 -149
- package/src/components/datepicker/index.ts +0 -10
- package/src/components/datepicker/keyboard.ts +0 -646
- package/src/components/datepicker/locales.ts +0 -80
- package/src/components/datepicker/templates.ts +0 -792
- package/src/components/datepicker/types.ts +0 -154
- package/src/components/datepicker/utils.ts +0 -631
|
@@ -1,508 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
-
* Copyright 2025 by Keenthemes Inc
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Format a date according to the provided format string
|
|
7
|
-
*
|
|
8
|
-
* @param date - Date to format
|
|
9
|
-
* @param format - Format string
|
|
10
|
-
* @param config - Datepicker configuration
|
|
11
|
-
* @returns Formatted date string
|
|
12
|
-
*/
|
|
13
|
-
export function formatDate(date, format, config) {
|
|
14
|
-
if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
|
|
15
|
-
return '';
|
|
16
|
-
}
|
|
17
|
-
var locale = getLocaleConfig(config);
|
|
18
|
-
var isLeadingZero = config.forceLeadingZero;
|
|
19
|
-
// Replace year tokens
|
|
20
|
-
var year = date.getFullYear();
|
|
21
|
-
format = format.replace(/yyyy/g, year.toString());
|
|
22
|
-
format = format.replace(/yy/g, year.toString().slice(-2));
|
|
23
|
-
// Replace month tokens
|
|
24
|
-
var month = date.getMonth();
|
|
25
|
-
var monthNum = month + 1;
|
|
26
|
-
format = format.replace(/MMMM/g, locale.monthNames[month]);
|
|
27
|
-
format = format.replace(/MMM/g, locale.monthNamesShort[month]);
|
|
28
|
-
format = format.replace(/MM/g, isLeadingZero ? padZero(monthNum) : monthNum.toString());
|
|
29
|
-
format = format.replace(/M/g, monthNum.toString());
|
|
30
|
-
// Replace day tokens
|
|
31
|
-
var day = date.getDate();
|
|
32
|
-
format = format.replace(/dd/g, isLeadingZero ? padZero(day) : day.toString());
|
|
33
|
-
format = format.replace(/d/g, day.toString());
|
|
34
|
-
// Replace day of week tokens
|
|
35
|
-
var dayOfWeek = date.getDay();
|
|
36
|
-
format = format.replace(/EEEE/g, locale.dayNames[dayOfWeek]);
|
|
37
|
-
format = format.replace(/EEE/g, locale.dayNamesShort[dayOfWeek]);
|
|
38
|
-
format = format.replace(/E/g, locale.dayNamesMin[dayOfWeek]);
|
|
39
|
-
// Replace time tokens if time is enabled
|
|
40
|
-
if (config.enableTime) {
|
|
41
|
-
var hours = date.getHours();
|
|
42
|
-
var minutes = date.getMinutes();
|
|
43
|
-
var seconds = date.getSeconds();
|
|
44
|
-
// 24-hour format
|
|
45
|
-
format = format.replace(/HH/g, isLeadingZero ? padZero(hours) : hours.toString());
|
|
46
|
-
format = format.replace(/H/g, hours.toString());
|
|
47
|
-
// 12-hour format
|
|
48
|
-
var hours12 = hours % 12 || 12;
|
|
49
|
-
format = format.replace(/hh/g, isLeadingZero ? padZero(hours12) : hours12.toString());
|
|
50
|
-
format = format.replace(/h/g, hours12.toString());
|
|
51
|
-
// Minutes and seconds
|
|
52
|
-
format = format.replace(/mm/g, isLeadingZero ? padZero(minutes) : minutes.toString());
|
|
53
|
-
format = format.replace(/m/g, minutes.toString());
|
|
54
|
-
format = format.replace(/ss/g, isLeadingZero ? padZero(seconds) : seconds.toString());
|
|
55
|
-
format = format.replace(/s/g, seconds.toString());
|
|
56
|
-
// AM/PM
|
|
57
|
-
var ampm = hours >= 12 ? config.pm : config.am;
|
|
58
|
-
format = format.replace(/A/g, ampm);
|
|
59
|
-
format = format.replace(/a/g, ampm.toLowerCase());
|
|
60
|
-
// Timezone (simplified implementation)
|
|
61
|
-
var timezoneOffset = date.getTimezoneOffset();
|
|
62
|
-
var timezoneOffsetHours = Math.abs(Math.floor(timezoneOffset / 60));
|
|
63
|
-
var timezoneOffsetMinutes = Math.abs(timezoneOffset % 60);
|
|
64
|
-
var timezoneSign = timezoneOffset > 0 ? '-' : '+';
|
|
65
|
-
var formattedTimezone = "".concat(timezoneSign).concat(padZero(timezoneOffsetHours), ":").concat(padZero(timezoneOffsetMinutes));
|
|
66
|
-
format = format.replace(/ZZZ/g, formattedTimezone);
|
|
67
|
-
}
|
|
68
|
-
return format;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Parse a date string according to the provided format
|
|
72
|
-
*
|
|
73
|
-
* @param dateStr - Date string to parse
|
|
74
|
-
* @param format - Format string
|
|
75
|
-
* @param config - Datepicker configuration
|
|
76
|
-
* @returns Parsed date or null if invalid
|
|
77
|
-
*/
|
|
78
|
-
export function parseDate(dateStr, format, config) {
|
|
79
|
-
if (!dateStr)
|
|
80
|
-
return null;
|
|
81
|
-
// Handle natural language dates if enabled
|
|
82
|
-
if (config.enableNaturalLanguage) {
|
|
83
|
-
var naturalDate = parseNaturalLanguageDate(dateStr);
|
|
84
|
-
if (naturalDate)
|
|
85
|
-
return naturalDate;
|
|
86
|
-
}
|
|
87
|
-
// Create a new date object to populate
|
|
88
|
-
var date = new Date();
|
|
89
|
-
date.setHours(0, 0, 0, 0);
|
|
90
|
-
// Extract parts from the format
|
|
91
|
-
var formatParts = {};
|
|
92
|
-
var formatRegex = format
|
|
93
|
-
.replace(/(\w)(\1*)/g, function (_, p1, p2) {
|
|
94
|
-
var length = p1.length + p2.length;
|
|
95
|
-
var token = '';
|
|
96
|
-
switch (p1) {
|
|
97
|
-
case 'y':
|
|
98
|
-
token = length > 2 ? 'yyyy' : 'yy';
|
|
99
|
-
break;
|
|
100
|
-
case 'M':
|
|
101
|
-
token = ['M', 'MM', 'MMM', 'MMMM'][Math.min(length - 1, 3)];
|
|
102
|
-
break;
|
|
103
|
-
case 'd':
|
|
104
|
-
token = length > 1 ? 'dd' : 'd';
|
|
105
|
-
break;
|
|
106
|
-
case 'E':
|
|
107
|
-
token = length > 3 ? 'EEEE' : length > 1 ? 'EEE' : 'E';
|
|
108
|
-
break;
|
|
109
|
-
case 'h':
|
|
110
|
-
case 'H':
|
|
111
|
-
token = length > 1 ? p1 + p1 : p1;
|
|
112
|
-
break;
|
|
113
|
-
case 'm':
|
|
114
|
-
token = length > 1 ? 'mm' : 'm';
|
|
115
|
-
break;
|
|
116
|
-
case 's':
|
|
117
|
-
token = length > 1 ? 'ss' : 's';
|
|
118
|
-
break;
|
|
119
|
-
case 'a':
|
|
120
|
-
case 'A':
|
|
121
|
-
token = p1;
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
token = p1.repeat(length);
|
|
125
|
-
}
|
|
126
|
-
formatParts[token] = '';
|
|
127
|
-
return "(\\d+|[a-zA-Z]+)";
|
|
128
|
-
})
|
|
129
|
-
.replace(/[^\w\s]/g, '\\$&');
|
|
130
|
-
var match = new RegExp(formatRegex).exec(dateStr);
|
|
131
|
-
if (!match)
|
|
132
|
-
return null;
|
|
133
|
-
// Map format tokens to their extracted values
|
|
134
|
-
var i = 1;
|
|
135
|
-
for (var token in formatParts) {
|
|
136
|
-
formatParts[token] = match[i++];
|
|
137
|
-
}
|
|
138
|
-
// Extract year
|
|
139
|
-
if (formatParts.yyyy) {
|
|
140
|
-
date.setFullYear(parseInt(formatParts.yyyy));
|
|
141
|
-
}
|
|
142
|
-
else if (formatParts.yy) {
|
|
143
|
-
var year = parseInt(formatParts.yy);
|
|
144
|
-
var century = Math.floor(new Date().getFullYear() / 100) * 100;
|
|
145
|
-
date.setFullYear(century + year);
|
|
146
|
-
}
|
|
147
|
-
// Extract month
|
|
148
|
-
if (formatParts.MM || formatParts.M) {
|
|
149
|
-
var month = parseInt(formatParts.MM || formatParts.M) - 1;
|
|
150
|
-
if (month >= 0 && month <= 11) {
|
|
151
|
-
date.setMonth(month);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else if (formatParts.MMM || formatParts.MMMM) {
|
|
155
|
-
var monthName_1 = formatParts.MMMM || formatParts.MMM;
|
|
156
|
-
var locale = getLocaleConfig(config);
|
|
157
|
-
var monthIndex = locale.monthNames.findIndex(function (m) { return m.toLowerCase() === monthName_1.toLowerCase(); });
|
|
158
|
-
if (monthIndex === -1) {
|
|
159
|
-
var shortMonthIndex = locale.monthNamesShort.findIndex(function (m) { return m.toLowerCase() === monthName_1.toLowerCase(); });
|
|
160
|
-
if (shortMonthIndex !== -1) {
|
|
161
|
-
date.setMonth(shortMonthIndex);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
date.setMonth(monthIndex);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Extract day
|
|
169
|
-
if (formatParts.dd || formatParts.d) {
|
|
170
|
-
var day = parseInt(formatParts.dd || formatParts.d);
|
|
171
|
-
if (day >= 1 && day <= 31) {
|
|
172
|
-
date.setDate(day);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
// Extract time if needed
|
|
176
|
-
if (config.enableTime) {
|
|
177
|
-
// Hours (24-hour format)
|
|
178
|
-
if (formatParts.HH || formatParts.H) {
|
|
179
|
-
var hours = parseInt(formatParts.HH || formatParts.H);
|
|
180
|
-
if (hours >= 0 && hours <= 23) {
|
|
181
|
-
date.setHours(hours);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
// Hours (12-hour format)
|
|
185
|
-
else if (formatParts.hh || formatParts.h) {
|
|
186
|
-
var hours = parseInt(formatParts.hh || formatParts.h);
|
|
187
|
-
// Adjust for AM/PM
|
|
188
|
-
if (formatParts.A) {
|
|
189
|
-
var isPM = formatParts.A.toUpperCase() === config.pm;
|
|
190
|
-
if (isPM && hours < 12) {
|
|
191
|
-
hours += 12;
|
|
192
|
-
}
|
|
193
|
-
else if (!isPM && hours === 12) {
|
|
194
|
-
hours = 0;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (hours >= 0 && hours <= 23) {
|
|
198
|
-
date.setHours(hours);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
// Minutes
|
|
202
|
-
if (formatParts.mm || formatParts.m) {
|
|
203
|
-
var minutes = parseInt(formatParts.mm || formatParts.m);
|
|
204
|
-
if (minutes >= 0 && minutes <= 59) {
|
|
205
|
-
date.setMinutes(minutes);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// Seconds
|
|
209
|
-
if (formatParts.ss || formatParts.s) {
|
|
210
|
-
var seconds = parseInt(formatParts.ss || formatParts.s);
|
|
211
|
-
if (seconds >= 0 && seconds <= 59) {
|
|
212
|
-
date.setSeconds(seconds);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
// Validate the final date
|
|
217
|
-
return isValidDate(date) ? date : null;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Parse natural language date strings
|
|
221
|
-
*
|
|
222
|
-
* @param input - Natural language date string
|
|
223
|
-
* @returns Parsed date or null if not recognized
|
|
224
|
-
*/
|
|
225
|
-
function parseNaturalLanguageDate(input) {
|
|
226
|
-
var normalized = input.trim().toLowerCase();
|
|
227
|
-
var now = new Date();
|
|
228
|
-
// Handle common natural language inputs
|
|
229
|
-
switch (normalized) {
|
|
230
|
-
case 'today':
|
|
231
|
-
return new Date(now.setHours(0, 0, 0, 0));
|
|
232
|
-
case 'yesterday': {
|
|
233
|
-
var yesterday = new Date(now);
|
|
234
|
-
yesterday.setDate(yesterday.getDate() - 1);
|
|
235
|
-
yesterday.setHours(0, 0, 0, 0);
|
|
236
|
-
return yesterday;
|
|
237
|
-
}
|
|
238
|
-
case 'tomorrow': {
|
|
239
|
-
var tomorrow = new Date(now);
|
|
240
|
-
tomorrow.setDate(tomorrow.getDate() + 1);
|
|
241
|
-
tomorrow.setHours(0, 0, 0, 0);
|
|
242
|
-
return tomorrow;
|
|
243
|
-
}
|
|
244
|
-
default: {
|
|
245
|
-
// Handle relative dates like "next week", "last month", etc.
|
|
246
|
-
var relativeMatch = normalized.match(/^(next|last|this)\s+(day|week|month|year)$/);
|
|
247
|
-
if (relativeMatch) {
|
|
248
|
-
var _ = relativeMatch[0], direction = relativeMatch[1], unit = relativeMatch[2];
|
|
249
|
-
var result = new Date(now);
|
|
250
|
-
result.setHours(0, 0, 0, 0);
|
|
251
|
-
switch (unit) {
|
|
252
|
-
case 'day':
|
|
253
|
-
result.setDate(result.getDate() +
|
|
254
|
-
(direction === 'next' ? 1 : direction === 'last' ? -1 : 0));
|
|
255
|
-
break;
|
|
256
|
-
case 'week':
|
|
257
|
-
result.setDate(result.getDate() +
|
|
258
|
-
(direction === 'next' ? 7 : direction === 'last' ? -7 : 0));
|
|
259
|
-
break;
|
|
260
|
-
case 'month':
|
|
261
|
-
result.setMonth(result.getMonth() +
|
|
262
|
-
(direction === 'next' ? 1 : direction === 'last' ? -1 : 0));
|
|
263
|
-
break;
|
|
264
|
-
case 'year':
|
|
265
|
-
result.setFullYear(result.getFullYear() +
|
|
266
|
-
(direction === 'next' ? 1 : direction === 'last' ? -1 : 0));
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
return result;
|
|
270
|
-
}
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Check if a date is valid
|
|
277
|
-
*
|
|
278
|
-
* @param date - Date to check
|
|
279
|
-
* @returns Whether the date is valid
|
|
280
|
-
*/
|
|
281
|
-
export function isValidDate(date) {
|
|
282
|
-
return date instanceof Date && !isNaN(date.getTime());
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Get the number of days in a month
|
|
286
|
-
*
|
|
287
|
-
* @param year - Year
|
|
288
|
-
* @param month - Month (0-indexed)
|
|
289
|
-
* @returns Number of days in the month
|
|
290
|
-
*/
|
|
291
|
-
export function getDaysInMonth(year, month) {
|
|
292
|
-
return new Date(year, month + 1, 0).getDate();
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Get the first day of the month
|
|
296
|
-
*
|
|
297
|
-
* @param year - Year
|
|
298
|
-
* @param month - Month (0-indexed)
|
|
299
|
-
* @returns Day of week for the first day (0 = Sunday, 6 = Saturday)
|
|
300
|
-
*/
|
|
301
|
-
export function getFirstDayOfMonth(year, month) {
|
|
302
|
-
return new Date(year, month, 1).getDay();
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Pad a number with a leading zero if needed
|
|
306
|
-
*
|
|
307
|
-
* @param num - Number to pad
|
|
308
|
-
* @returns Padded number string
|
|
309
|
-
*/
|
|
310
|
-
export function padZero(num) {
|
|
311
|
-
return num < 10 ? "0".concat(num) : num.toString();
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Get locale configuration for the datepicker
|
|
315
|
-
*
|
|
316
|
-
* @param config - Datepicker configuration
|
|
317
|
-
* @returns Locale configuration
|
|
318
|
-
*/
|
|
319
|
-
export function getLocaleConfig(config) {
|
|
320
|
-
return config.locales[config.locale] || config.locales['en-US'];
|
|
321
|
-
}
|
|
322
|
-
/**
|
|
323
|
-
* Check if a date is between two other dates (inclusive)
|
|
324
|
-
*
|
|
325
|
-
* @param date - Date to check
|
|
326
|
-
* @param start - Start date
|
|
327
|
-
* @param end - End date
|
|
328
|
-
* @returns Whether the date is between start and end
|
|
329
|
-
*/
|
|
330
|
-
export function isDateBetween(date, start, end) {
|
|
331
|
-
var dateTime = date.getTime();
|
|
332
|
-
return dateTime >= start.getTime() && dateTime <= end.getTime();
|
|
333
|
-
}
|
|
334
|
-
/**
|
|
335
|
-
* Compare two dates for equality (ignoring time)
|
|
336
|
-
*
|
|
337
|
-
* @param date1 - First date
|
|
338
|
-
* @param date2 - Second date
|
|
339
|
-
* @returns Whether the dates are equal
|
|
340
|
-
*/
|
|
341
|
-
export function isSameDay(date1, date2) {
|
|
342
|
-
return (date1.getFullYear() === date2.getFullYear() &&
|
|
343
|
-
date1.getMonth() === date2.getMonth() &&
|
|
344
|
-
date1.getDate() === date2.getDate());
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Check if a date is a weekend (Saturday or Sunday)
|
|
348
|
-
*
|
|
349
|
-
* @param date - Date to check
|
|
350
|
-
* @returns Whether the date is a weekend
|
|
351
|
-
*/
|
|
352
|
-
export function isWeekend(date) {
|
|
353
|
-
var day = date.getDay();
|
|
354
|
-
return day === 0 || day === 6;
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Check if a date is disabled (outside min/max range or explicitly disabled)
|
|
358
|
-
*
|
|
359
|
-
* @param date - Date to check
|
|
360
|
-
* @param config - Datepicker configuration
|
|
361
|
-
* @returns Whether the date is disabled
|
|
362
|
-
*/
|
|
363
|
-
export function isDateDisabled(date, config) {
|
|
364
|
-
if (!date || !(date instanceof Date) || isNaN(date.getTime())) {
|
|
365
|
-
return true;
|
|
366
|
-
}
|
|
367
|
-
// Set the time to noon for consistent comparison
|
|
368
|
-
var normalizedDate = new Date(date);
|
|
369
|
-
normalizedDate.setHours(12, 0, 0, 0);
|
|
370
|
-
// Check min date
|
|
371
|
-
if (config.minDate) {
|
|
372
|
-
var minDate = null;
|
|
373
|
-
if (config.minDate instanceof Date) {
|
|
374
|
-
minDate = new Date(config.minDate);
|
|
375
|
-
minDate.setHours(0, 0, 0, 0);
|
|
376
|
-
}
|
|
377
|
-
else {
|
|
378
|
-
// Try parsing with the configured format
|
|
379
|
-
minDate = parseDate(config.minDate.toString(), config.format, config);
|
|
380
|
-
// If that fails, try parsing with other common formats
|
|
381
|
-
if (!minDate) {
|
|
382
|
-
// Try DD/MM/YYYY format
|
|
383
|
-
var parts = config.minDate.toString().split('/');
|
|
384
|
-
if (parts.length === 3) {
|
|
385
|
-
var day = parseInt(parts[0], 10);
|
|
386
|
-
var month = parseInt(parts[1], 10) - 1;
|
|
387
|
-
var year = parseInt(parts[2], 10);
|
|
388
|
-
if (!isNaN(day) && !isNaN(month) && !isNaN(year)) {
|
|
389
|
-
minDate = new Date(year, month, day);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
if (minDate) {
|
|
395
|
-
// Ensure minDate has time set to beginning of day for accurate comparison
|
|
396
|
-
minDate.setHours(0, 0, 0, 0);
|
|
397
|
-
if (normalizedDate < minDate) {
|
|
398
|
-
return true;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
// Check max date
|
|
403
|
-
if (config.maxDate) {
|
|
404
|
-
var maxDate = null;
|
|
405
|
-
if (config.maxDate instanceof Date) {
|
|
406
|
-
maxDate = new Date(config.maxDate);
|
|
407
|
-
maxDate.setHours(23, 59, 59, 999);
|
|
408
|
-
}
|
|
409
|
-
else {
|
|
410
|
-
// Try parsing with the configured format
|
|
411
|
-
maxDate = parseDate(config.maxDate.toString(), config.format, config);
|
|
412
|
-
// If that fails, try parsing with other common formats
|
|
413
|
-
if (!maxDate) {
|
|
414
|
-
// Try DD/MM/YYYY format
|
|
415
|
-
var parts = config.maxDate.toString().split('/');
|
|
416
|
-
if (parts.length === 3) {
|
|
417
|
-
var day = parseInt(parts[0], 10);
|
|
418
|
-
var month = parseInt(parts[1], 10) - 1;
|
|
419
|
-
var year = parseInt(parts[2], 10);
|
|
420
|
-
if (!isNaN(day) && !isNaN(month) && !isNaN(year)) {
|
|
421
|
-
maxDate = new Date(year, month, day);
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
if (maxDate) {
|
|
427
|
-
// Ensure maxDate has time set to end of day for accurate comparison
|
|
428
|
-
maxDate.setHours(23, 59, 59, 999);
|
|
429
|
-
if (normalizedDate > maxDate) {
|
|
430
|
-
return true;
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
// Check explicitly disabled dates
|
|
435
|
-
if (config.disabledDates && config.disabledDates.length > 0) {
|
|
436
|
-
for (var _i = 0, _a = config.disabledDates; _i < _a.length; _i++) {
|
|
437
|
-
var disabledDate = _a[_i];
|
|
438
|
-
var disabled = disabledDate instanceof Date
|
|
439
|
-
? disabledDate
|
|
440
|
-
: parseDate(disabledDate.toString(), config.format, config);
|
|
441
|
-
if (disabled && isSameDay(normalizedDate, disabled)) {
|
|
442
|
-
return true;
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
return false;
|
|
447
|
-
}
|
|
448
|
-
/**
|
|
449
|
-
* Generate a calender for the specified month
|
|
450
|
-
*
|
|
451
|
-
* @param year - Year
|
|
452
|
-
* @param month - Month (0-indexed)
|
|
453
|
-
* @param config - Datepicker configuration
|
|
454
|
-
* @returns Calendar days matrix
|
|
455
|
-
*/
|
|
456
|
-
export function generateCalendarMonth(year, month, config) {
|
|
457
|
-
var daysInMonth = getDaysInMonth(year, month);
|
|
458
|
-
var firstDayOfMonth = getFirstDayOfMonth(year, month);
|
|
459
|
-
var locale = getLocaleConfig(config);
|
|
460
|
-
var firstDayOfWeek = locale.firstDayOfWeek;
|
|
461
|
-
// Calculate the offset from the first day of the month to the first day of the calendar
|
|
462
|
-
var startOffset = (firstDayOfMonth - firstDayOfWeek + 7) % 7;
|
|
463
|
-
// Create a 6x7 matrix for the calendar
|
|
464
|
-
var calendar = [];
|
|
465
|
-
var day = 1 - startOffset;
|
|
466
|
-
for (var week = 0; week < 6; week++) {
|
|
467
|
-
var weekDays = [];
|
|
468
|
-
for (var i = 0; i < 7; i++) {
|
|
469
|
-
var date = new Date(year, month, day);
|
|
470
|
-
weekDays.push(date);
|
|
471
|
-
day++;
|
|
472
|
-
}
|
|
473
|
-
calendar.push(weekDays);
|
|
474
|
-
// If we've gone past the end of the month and it's a complete week, we can stop
|
|
475
|
-
if (day > daysInMonth && week >= 4) {
|
|
476
|
-
break;
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
return calendar;
|
|
480
|
-
}
|
|
481
|
-
/**
|
|
482
|
-
* Check if two dates are the same day
|
|
483
|
-
* (ignoring time part)
|
|
484
|
-
*
|
|
485
|
-
* @param date1 - First date to compare
|
|
486
|
-
* @param date2 - Second date to compare
|
|
487
|
-
* @returns True if dates are the same day
|
|
488
|
-
*/
|
|
489
|
-
export function isDateEqual(date1, date2) {
|
|
490
|
-
return (date1.getDate() === date2.getDate() &&
|
|
491
|
-
date1.getMonth() === date2.getMonth() &&
|
|
492
|
-
date1.getFullYear() === date2.getFullYear());
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Check if a date is within a range (inclusive)
|
|
496
|
-
*
|
|
497
|
-
* @param date - Date to check
|
|
498
|
-
* @param startDate - Start date of the range
|
|
499
|
-
* @param endDate - End date of the range
|
|
500
|
-
* @returns True if date is within the range
|
|
501
|
-
*/
|
|
502
|
-
export function isDateInRange(date, startDate, endDate) {
|
|
503
|
-
var time = date.getTime();
|
|
504
|
-
var startTime = startDate.getTime();
|
|
505
|
-
var endTime = endDate.getTime();
|
|
506
|
-
return time >= startTime && time <= endTime;
|
|
507
|
-
}
|
|
508
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/components/datepicker/utils.ts"],"names":[],"mappings":"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"}
|