@oneluiz/dual-datepicker 3.9.3 → 4.0.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/README.md +26 -2
- package/fesm2022/oneluiz-dual-datepicker.mjs +696 -1040
- package/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -1
- package/package.json +16 -8
- package/core/built-in-presets.d.ts +0 -98
- package/core/calendar-grid/cache.config.d.ts +0 -34
- package/core/calendar-grid/calendar-grid.cache.d.ts +0 -39
- package/core/calendar-grid/calendar-grid.factory.d.ts +0 -26
- package/core/calendar-grid/calendar-grid.types.d.ts +0 -57
- package/core/calendar-grid/index.d.ts +0 -56
- package/core/calendar-grid/range-highlighter.cache.d.ts +0 -106
- package/core/calendar-grid/range-highlighter.d.ts +0 -85
- package/core/calendar-grid/range-highlighter.types.d.ts +0 -182
- package/core/calendar-grid/virtual-weeks.logic.d.ts +0 -116
- package/core/calendar-grid/virtual-weeks.types.d.ts +0 -71
- package/core/date-adapter.d.ts +0 -298
- package/core/date-clock.d.ts +0 -82
- package/core/dual-date-range.store.d.ts +0 -113
- package/core/index.d.ts +0 -33
- package/core/native-date-adapter.d.ts +0 -152
- package/core/preset-providers.d.ts +0 -176
- package/core/preset-registry.d.ts +0 -181
- package/core/preset.engine.d.ts +0 -124
- package/core/range-preset.plugin.d.ts +0 -188
- package/core/range.validator.d.ts +0 -37
- package/core/system-clock.d.ts +0 -13
- package/date-adapter.d.ts +0 -116
- package/dual-datepicker.component.d.ts +0 -243
- package/esm2022/core/built-in-presets.mjs +0 -289
- package/esm2022/core/calendar-grid/cache.config.mjs +0 -35
- package/esm2022/core/calendar-grid/calendar-grid.cache.mjs +0 -98
- package/esm2022/core/calendar-grid/calendar-grid.factory.mjs +0 -97
- package/esm2022/core/calendar-grid/calendar-grid.types.mjs +0 -8
- package/esm2022/core/calendar-grid/index.mjs +0 -57
- package/esm2022/core/calendar-grid/range-highlighter.cache.mjs +0 -200
- package/esm2022/core/calendar-grid/range-highlighter.mjs +0 -185
- package/esm2022/core/calendar-grid/range-highlighter.types.mjs +0 -11
- package/esm2022/core/calendar-grid/virtual-weeks.logic.mjs +0 -149
- package/esm2022/core/calendar-grid/virtual-weeks.types.mjs +0 -11
- package/esm2022/core/date-adapter.mjs +0 -77
- package/esm2022/core/date-clock.mjs +0 -65
- package/esm2022/core/dual-date-range.store.mjs +0 -329
- package/esm2022/core/index.mjs +0 -37
- package/esm2022/core/native-date-adapter.mjs +0 -286
- package/esm2022/core/preset-providers.mjs +0 -243
- package/esm2022/core/preset-registry.mjs +0 -277
- package/esm2022/core/preset.engine.mjs +0 -179
- package/esm2022/core/range-preset.plugin.mjs +0 -70
- package/esm2022/core/range.validator.mjs +0 -105
- package/esm2022/core/system-clock.mjs +0 -34
- package/esm2022/date-adapter.mjs +0 -12
- package/esm2022/dual-datepicker.component.mjs +0 -1312
- package/esm2022/native-date-adapter.mjs +0 -117
- package/esm2022/oneluiz-dual-datepicker.mjs +0 -5
- package/esm2022/preset-utils.mjs +0 -276
- package/esm2022/public-api.mjs +0 -13
- package/index.d.ts +0 -5
- package/native-date-adapter.d.ts +0 -26
- package/preset-utils.d.ts +0 -91
- package/public-api.d.ts +0 -9
- package/src/themes/bootstrap.scss +0 -202
- package/src/themes/bulma.scss +0 -209
- package/src/themes/custom.scss +0 -236
- package/src/themes/foundation.scss +0 -201
- package/src/themes/tailwind.scss +0 -109
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure validation functions for date ranges
|
|
3
|
-
* No dependencies, no side effects - just logic
|
|
4
|
-
* Perfect for SSR, testing, and reusability
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Validate that end date is not before start date
|
|
8
|
-
*/
|
|
9
|
-
export function validateRangeOrder(start, end) {
|
|
10
|
-
if (!start || !end) {
|
|
11
|
-
return { valid: true }; // Allow incomplete selection
|
|
12
|
-
}
|
|
13
|
-
if (end < start) {
|
|
14
|
-
return {
|
|
15
|
-
valid: false,
|
|
16
|
-
error: 'End date cannot be before start date'
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
return { valid: true };
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Validate that date is within min/max bounds
|
|
23
|
-
*/
|
|
24
|
-
export function validateDateBounds(date, minDate, maxDate) {
|
|
25
|
-
if (!date) {
|
|
26
|
-
return { valid: true };
|
|
27
|
-
}
|
|
28
|
-
if (minDate && date < minDate) {
|
|
29
|
-
return {
|
|
30
|
-
valid: false,
|
|
31
|
-
error: `Date cannot be before ${minDate.toISOString().split('T')[0]}`
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
if (maxDate && date > maxDate) {
|
|
35
|
-
return {
|
|
36
|
-
valid: false,
|
|
37
|
-
error: `Date cannot be after ${maxDate.toISOString().split('T')[0]}`
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return { valid: true };
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Validate that a range is within bounds
|
|
44
|
-
*/
|
|
45
|
-
export function validateRangeBounds(start, end, minDate, maxDate) {
|
|
46
|
-
const startValidation = validateDateBounds(start, minDate, maxDate);
|
|
47
|
-
if (!startValidation.valid) {
|
|
48
|
-
return startValidation;
|
|
49
|
-
}
|
|
50
|
-
const endValidation = validateDateBounds(end, minDate, maxDate);
|
|
51
|
-
if (!endValidation.valid) {
|
|
52
|
-
return endValidation;
|
|
53
|
-
}
|
|
54
|
-
return { valid: true };
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if a date is disabled
|
|
58
|
-
*/
|
|
59
|
-
export function isDateDisabled(date, disabledDates) {
|
|
60
|
-
if (!disabledDates) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
if (typeof disabledDates === 'function') {
|
|
64
|
-
return disabledDates(date);
|
|
65
|
-
}
|
|
66
|
-
// Array of disabled dates - compare by date string
|
|
67
|
-
const dateStr = date.toISOString().split('T')[0];
|
|
68
|
-
return disabledDates.some(d => d.toISOString().split('T')[0] === dateStr);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Apply bounds to a date (clamp it)
|
|
72
|
-
*/
|
|
73
|
-
export function applyBounds(date, minDate, maxDate) {
|
|
74
|
-
let result = date;
|
|
75
|
-
if (minDate && result < minDate) {
|
|
76
|
-
result = minDate;
|
|
77
|
-
}
|
|
78
|
-
if (maxDate && result > maxDate) {
|
|
79
|
-
result = maxDate;
|
|
80
|
-
}
|
|
81
|
-
return result;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Parse ISO date string to Date object (deterministic)
|
|
85
|
-
*/
|
|
86
|
-
export function parseISODate(dateStr) {
|
|
87
|
-
if (!dateStr)
|
|
88
|
-
return null;
|
|
89
|
-
const [year, month, day] = dateStr.split('-').map(Number);
|
|
90
|
-
if (!year || !month || !day)
|
|
91
|
-
return null;
|
|
92
|
-
return new Date(year, month - 1, day);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Format Date to ISO string (YYYY-MM-DD)
|
|
96
|
-
*/
|
|
97
|
-
export function formatISODate(date) {
|
|
98
|
-
if (!date)
|
|
99
|
-
return '';
|
|
100
|
-
const year = date.getFullYear();
|
|
101
|
-
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
102
|
-
const day = String(date.getDate()).padStart(2, '0');
|
|
103
|
-
return `${year}-${month}-${day}`;
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFPSDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFrQixFQUFFLEdBQWdCO0lBQ3JFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsNkJBQTZCO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsc0NBQXNDO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQWlCLEVBQ2pCLE9BQWMsRUFDZCxPQUFjO0lBRWQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSx5QkFBeUIsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsd0JBQXdCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDckUsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3pCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsS0FBa0IsRUFDbEIsR0FBZ0IsRUFDaEIsT0FBYyxFQUNkLE9BQWM7SUFFZCxNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFVLEVBQ1YsYUFBa0Q7SUFFbEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDeEMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FDL0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBVSxFQUFFLE9BQWMsRUFBRSxPQUFjO0lBQ3BFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztJQUVsQixJQUFJLE9BQU8sSUFBSSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDaEMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxPQUFPLElBQUksTUFBTSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZTtJQUMxQyxJQUFJLENBQUMsT0FBTztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRTFCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFekMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQWlCO0lBQzdDLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFFckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVwRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdXJlIHZhbGlkYXRpb24gZnVuY3Rpb25zIGZvciBkYXRlIHJhbmdlc1xuICogTm8gZGVwZW5kZW5jaWVzLCBubyBzaWRlIGVmZmVjdHMgLSBqdXN0IGxvZ2ljXG4gKiBQZXJmZWN0IGZvciBTU1IsIHRlc3RpbmcsIGFuZCByZXVzYWJpbGl0eVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGVuZCBkYXRlIGlzIG5vdCBiZWZvcmUgc3RhcnQgZGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZU9yZGVyKHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIXN0YXJ0IHx8ICFlbmQpIHtcbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9OyAvLyBBbGxvdyBpbmNvbXBsZXRlIHNlbGVjdGlvblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiAnRW5kIGRhdGUgY2Fubm90IGJlIGJlZm9yZSBzdGFydCBkYXRlJ1xuICAgIH07XG4gIH1cblxuICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgZGF0ZSBpcyB3aXRoaW4gbWluL21heCBib3VuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZUJvdW5kcyhcbiAgZGF0ZTogRGF0ZSB8IG51bGwsXG4gIG1pbkRhdGU/OiBEYXRlLFxuICBtYXhEYXRlPzogRGF0ZVxuKTogVmFsaWRhdGlvblJlc3VsdCB7XG4gIGlmICghZGF0ZSkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBpZiAobWluRGF0ZSAmJiBkYXRlIDwgbWluRGF0ZSkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZDogZmFsc2UsXG4gICAgICBlcnJvcjogYERhdGUgY2Fubm90IGJlIGJlZm9yZSAke21pbkRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdfWBcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1heERhdGUgJiYgZGF0ZSA+IG1heERhdGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IGBEYXRlIGNhbm5vdCBiZSBhZnRlciAke21heERhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdfWBcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGEgcmFuZ2UgaXMgd2l0aGluIGJvdW5kc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZUJvdW5kcyhcbiAgc3RhcnQ6IERhdGUgfCBudWxsLFxuICBlbmQ6IERhdGUgfCBudWxsLFxuICBtaW5EYXRlPzogRGF0ZSxcbiAgbWF4RGF0ZT86IERhdGVcbik6IFZhbGlkYXRpb25SZXN1bHQge1xuICBjb25zdCBzdGFydFZhbGlkYXRpb24gPSB2YWxpZGF0ZURhdGVCb3VuZHMoc3RhcnQsIG1pbkRhdGUsIG1heERhdGUpO1xuICBpZiAoIXN0YXJ0VmFsaWRhdGlvbi52YWxpZCkge1xuICAgIHJldHVybiBzdGFydFZhbGlkYXRpb247XG4gIH1cblxuICBjb25zdCBlbmRWYWxpZGF0aW9uID0gdmFsaWRhdGVEYXRlQm91bmRzKGVuZCwgbWluRGF0ZSwgbWF4RGF0ZSk7XG4gIGlmICghZW5kVmFsaWRhdGlvbi52YWxpZCkge1xuICAgIHJldHVybiBlbmRWYWxpZGF0aW9uO1xuICB9XG5cbiAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGRhdGUgaXMgZGlzYWJsZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRGF0ZURpc2FibGVkKFxuICBkYXRlOiBEYXRlLFxuICBkaXNhYmxlZERhdGVzPzogRGF0ZVtdIHwgKChkYXRlOiBEYXRlKSA9PiBib29sZWFuKVxuKTogYm9vbGVhbiB7XG4gIGlmICghZGlzYWJsZWREYXRlcykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGlzYWJsZWREYXRlcyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBkaXNhYmxlZERhdGVzKGRhdGUpO1xuICB9XG5cbiAgLy8gQXJyYXkgb2YgZGlzYWJsZWQgZGF0ZXMgLSBjb21wYXJlIGJ5IGRhdGUgc3RyaW5nXG4gIGNvbnN0IGRhdGVTdHIgPSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTtcbiAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZShcbiAgICBkID0+IGQudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdID09PSBkYXRlU3RyXG4gICk7XG59XG5cbi8qKlxuICogQXBwbHkgYm91bmRzIHRvIGEgZGF0ZSAoY2xhbXAgaXQpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUJvdW5kcyhkYXRlOiBEYXRlLCBtaW5EYXRlPzogRGF0ZSwgbWF4RGF0ZT86IERhdGUpOiBEYXRlIHtcbiAgbGV0IHJlc3VsdCA9IGRhdGU7XG5cbiAgaWYgKG1pbkRhdGUgJiYgcmVzdWx0IDwgbWluRGF0ZSkge1xuICAgIHJlc3VsdCA9IG1pbkRhdGU7XG4gIH1cblxuICBpZiAobWF4RGF0ZSAmJiByZXN1bHQgPiBtYXhEYXRlKSB7XG4gICAgcmVzdWx0ID0gbWF4RGF0ZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogUGFyc2UgSVNPIGRhdGUgc3RyaW5nIHRvIERhdGUgb2JqZWN0IChkZXRlcm1pbmlzdGljKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VJU09EYXRlKGRhdGVTdHI6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgaWYgKCFkYXRlU3RyKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBkYXRlU3RyLnNwbGl0KCctJykubWFwKE51bWJlcik7XG4gIGlmICgheWVhciB8fCAhbW9udGggfHwgIWRheSkgcmV0dXJuIG51bGw7XG5cbiAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgRGF0ZSB0byBJU08gc3RyaW5nIChZWVlZLU1NLUREKVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0SVNPRGF0ZShkYXRlOiBEYXRlIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmICghZGF0ZSkgcmV0dXJuICcnO1xuXG4gIGNvbnN0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIGNvbnN0IG1vbnRoID0gU3RyaW5nKGRhdGUuZ2V0TW9udGgoKSArIDEpLnBhZFN0YXJ0KDIsICcwJyk7XG4gIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKTtcblxuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcbn1cbiJdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* System Clock Implementation
|
|
3
|
-
*
|
|
4
|
-
* Default DateClock implementation that uses system time (new Date())
|
|
5
|
-
*
|
|
6
|
-
* This is the default behavior users expect:
|
|
7
|
-
* - "Today" → actual today
|
|
8
|
-
* - "Last 7 Days" → actual last 7 days
|
|
9
|
-
*
|
|
10
|
-
* In SSR scenarios, this should be overridden to ensure
|
|
11
|
-
* server and client generate identical date ranges.
|
|
12
|
-
*/
|
|
13
|
-
import { Injectable } from '@angular/core';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
export class SystemClock {
|
|
16
|
-
/**
|
|
17
|
-
* Returns current system time
|
|
18
|
-
*
|
|
19
|
-
* This is the standard behavior for client-side applications.
|
|
20
|
-
* For SSR, override DATE_CLOCK token with a fixed Date.
|
|
21
|
-
*/
|
|
22
|
-
now() {
|
|
23
|
-
return new Date();
|
|
24
|
-
}
|
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SystemClock, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SystemClock, providedIn: 'root' });
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SystemClock, decorators: [{
|
|
29
|
-
type: Injectable,
|
|
30
|
-
args: [{
|
|
31
|
-
providedIn: 'root'
|
|
32
|
-
}]
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLWNsb2NrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvc3lzdGVtLWNsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLFdBQVc7SUFDdEI7Ozs7O09BS0c7SUFDSCxHQUFHO1FBQ0QsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7d0dBVFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTs7NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN5c3RlbSBDbG9jayBJbXBsZW1lbnRhdGlvblxuICogXG4gKiBEZWZhdWx0IERhdGVDbG9jayBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgc3lzdGVtIHRpbWUgKG5ldyBEYXRlKCkpXG4gKiBcbiAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdXNlcnMgZXhwZWN0OlxuICogLSBcIlRvZGF5XCIg4oaSIGFjdHVhbCB0b2RheVxuICogLSBcIkxhc3QgNyBEYXlzXCIg4oaSIGFjdHVhbCBsYXN0IDcgZGF5c1xuICogXG4gKiBJbiBTU1Igc2NlbmFyaW9zLCB0aGlzIHNob3VsZCBiZSBvdmVycmlkZGVuIHRvIGVuc3VyZVxuICogc2VydmVyIGFuZCBjbGllbnQgZ2VuZXJhdGUgaWRlbnRpY2FsIGRhdGUgcmFuZ2VzLlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVDbG9jayB9IGZyb20gJy4vZGF0ZS1jbG9jayc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN5c3RlbUNsb2NrIGltcGxlbWVudHMgRGF0ZUNsb2NrIHtcbiAgLyoqXG4gICAqIFJldHVybnMgY3VycmVudCBzeXN0ZW0gdGltZVxuICAgKiBcbiAgICogVGhpcyBpcyB0aGUgc3RhbmRhcmQgYmVoYXZpb3IgZm9yIGNsaWVudC1zaWRlIGFwcGxpY2F0aW9ucy5cbiAgICogRm9yIFNTUiwgb3ZlcnJpZGUgREFURV9DTE9DSyB0b2tlbiB3aXRoIGEgZml4ZWQgRGF0ZS5cbiAgICovXG4gIG5vdygpOiBEYXRlIHtcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgfVxufVxuIl19
|
package/esm2022/date-adapter.mjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Abstract class for date adapters.
|
|
4
|
-
* Allows the component to work with different date libraries (Date, DayJS, date-fns, Luxon, etc.)
|
|
5
|
-
*/
|
|
6
|
-
export class DateAdapter {
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Injection token for DateAdapter
|
|
10
|
-
*/
|
|
11
|
-
export const DATE_ADAPTER = new InjectionToken('DATE_ADAPTER');
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsV0FBVztDQXlIaEM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYyxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQWJzdHJhY3QgY2xhc3MgZm9yIGRhdGUgYWRhcHRlcnMuXG4gKiBBbGxvd3MgdGhlIGNvbXBvbmVudCB0byB3b3JrIHdpdGggZGlmZmVyZW50IGRhdGUgbGlicmFyaWVzIChEYXRlLCBEYXlKUywgZGF0ZS1mbnMsIEx1eG9uLCBldGMuKVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUFkYXB0ZXI8VCA9IGFueT4ge1xuICAvKipcbiAgICogUGFyc2VzIGEgdmFsdWUgaW50byBhIGRhdGUgb2JqZWN0XG4gICAqIEBwYXJhbSB2YWx1ZSAtIFZhbHVlIHRvIHBhcnNlIChzdHJpbmcsIG51bWJlciwgb3IgZGF0ZSBvYmplY3QpXG4gICAqIEByZXR1cm5zIFBhcnNlZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgcGFyc2UodmFsdWU6IGFueSk6IFQgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGb3JtYXRzIGEgZGF0ZSBvYmplY3QgaW50byBhIHN0cmluZ1xuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0IHRvIGZvcm1hdFxuICAgKiBAcGFyYW0gZm9ybWF0IC0gT3B0aW9uYWwgZm9ybWF0IHN0cmluZ1xuICAgKiBAcmV0dXJucyBGb3JtYXR0ZWQgZGF0ZSBzdHJpbmdcbiAgICovXG4gIGFic3RyYWN0IGZvcm1hdChkYXRlOiBULCBmb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFkZHMgZGF5cyB0byBhIGRhdGVcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIG9iamVjdFxuICAgKiBAcGFyYW0gZGF5cyAtIE51bWJlciBvZiBkYXlzIHRvIGFkZCAoY2FuIGJlIG5lZ2F0aXZlKVxuICAgKiBAcmV0dXJucyBOZXcgZGF0ZSBvYmplY3RcbiAgICovXG4gIGFic3RyYWN0IGFkZERheXMoZGF0ZTogVCwgZGF5czogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogQWRkcyBtb250aHMgdG8gYSBkYXRlXG4gICAqIEBwYXJhbSBkYXRlIC0gRGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIG1vbnRocyAtIE51bWJlciBvZiBtb250aHMgdG8gYWRkIChjYW4gYmUgbmVnYXRpdmUpXG4gICAqIEByZXR1cm5zIE5ldyBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgYWRkTW9udGhzKGRhdGU6IFQsIG1vbnRoczogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0cyB0aGUgeWVhciBmcm9tIGEgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIFllYXIgbnVtYmVyXG4gICAqL1xuICBhYnN0cmFjdCBnZXRZZWFyKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIG1vbnRoIGZyb20gYSBkYXRlICgwLTExKVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIE1vbnRoIG51bWJlciAoMC0xMSlcbiAgICovXG4gIGFic3RyYWN0IGdldE1vbnRoKGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRheSBvZiBtb250aCBmcm9tIGEgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIERhdGUgb2JqZWN0XG4gICAqIEByZXR1cm5zIERheSBvZiBtb250aCAoMS0zMSlcbiAgICovXG4gIGFic3RyYWN0IGdldERhdGUoZGF0ZTogVCk6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgZGF5IG9mIHdlZWsgZnJvbSBhIGRhdGUgKDAtNiwgU3VuZGF5ID0gMClcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIG9iamVjdFxuICAgKiBAcmV0dXJucyBEYXkgb2Ygd2VlayAoMC02KVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0RGF5KGRhdGU6IFQpOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIHllYXIgLSBZZWFyXG4gICAqIEBwYXJhbSBtb250aCAtIE1vbnRoICgwLTExKVxuICAgKiBAcGFyYW0gZGF0ZSAtIERheSBvZiBtb250aCAoMS0zMSlcbiAgICogQHJldHVybnMgTmV3IGRhdGUgb2JqZWN0XG4gICAqL1xuICBhYnN0cmFjdCBjcmVhdGVEYXRlKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciwgZGF0ZTogbnVtYmVyKTogVDtcblxuICAvKipcbiAgICogR2V0cyB0b2RheSdzIGRhdGVcbiAgICogQHJldHVybnMgVG9kYXkncyBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgdG9kYXkoKTogVDtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHR3byBkYXRlcyBhcmUgdGhlIHNhbWUgZGF5XG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgc2FtZSBkYXlcbiAgICovXG4gIGFic3RyYWN0IGlzU2FtZURheShhOiBUIHwgbnVsbCwgYjogVCB8IG51bGwpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBkYXRlIGlzIGJlZm9yZSBhbm90aGVyXG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgYSBpcyBiZWZvcmUgYlxuICAgKi9cbiAgYWJzdHJhY3QgaXNCZWZvcmUoYTogVCB8IG51bGwsIGI6IFQgfCBudWxsKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgZGF0ZSBpcyBhZnRlciBhbm90aGVyXG4gICAqIEBwYXJhbSBhIC0gRmlyc3QgZGF0ZVxuICAgKiBAcGFyYW0gYiAtIFNlY29uZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgYSBpcyBhZnRlciBiXG4gICAqL1xuICBhYnN0cmFjdCBpc0FmdGVyKGE6IFQgfCBudWxsLCBiOiBUIHwgbnVsbCk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGRhdGUgaXMgYmV0d2VlbiB0d28gb3RoZXIgZGF0ZXNcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBzdGFydCAtIFN0YXJ0IGRhdGVcbiAgICogQHBhcmFtIGVuZCAtIEVuZCBkYXRlXG4gICAqIEByZXR1cm5zIFRydWUgaWYgZGF0ZSBpcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmRcbiAgICovXG4gIGFic3RyYWN0IGlzQmV0d2VlbihkYXRlOiBUIHwgbnVsbCwgc3RhcnQ6IFQgfCBudWxsLCBlbmQ6IFQgfCBudWxsKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ2xvbmVzIGEgZGF0ZSBvYmplY3RcbiAgICogQHBhcmFtIGRhdGUgLSBEYXRlIHRvIGNsb25lXG4gICAqIEByZXR1cm5zIENsb25lZCBkYXRlIG9iamVjdFxuICAgKi9cbiAgYWJzdHJhY3QgY2xvbmUoZGF0ZTogVCk6IFQ7XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIHZhbHVlIGlzIGEgdmFsaWQgZGF0ZVxuICAgKiBAcGFyYW0gZGF0ZSAtIFZhbHVlIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdmFsaWQgZGF0ZVxuICAgKi9cbiAgYWJzdHJhY3QgaXNWYWxpZChkYXRlOiBhbnkpOiBib29sZWFuO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgRGF0ZUFkYXB0ZXJcbiAqL1xuZXhwb3J0IGNvbnN0IERBVEVfQURBUFRFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxEYXRlQWRhcHRlcj4oJ0RBVEVfQURBUFRFUicpO1xuIl19
|