@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.
Files changed (65) hide show
  1. package/README.md +26 -2
  2. package/fesm2022/oneluiz-dual-datepicker.mjs +696 -1040
  3. package/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -1
  4. package/package.json +16 -8
  5. package/core/built-in-presets.d.ts +0 -98
  6. package/core/calendar-grid/cache.config.d.ts +0 -34
  7. package/core/calendar-grid/calendar-grid.cache.d.ts +0 -39
  8. package/core/calendar-grid/calendar-grid.factory.d.ts +0 -26
  9. package/core/calendar-grid/calendar-grid.types.d.ts +0 -57
  10. package/core/calendar-grid/index.d.ts +0 -56
  11. package/core/calendar-grid/range-highlighter.cache.d.ts +0 -106
  12. package/core/calendar-grid/range-highlighter.d.ts +0 -85
  13. package/core/calendar-grid/range-highlighter.types.d.ts +0 -182
  14. package/core/calendar-grid/virtual-weeks.logic.d.ts +0 -116
  15. package/core/calendar-grid/virtual-weeks.types.d.ts +0 -71
  16. package/core/date-adapter.d.ts +0 -298
  17. package/core/date-clock.d.ts +0 -82
  18. package/core/dual-date-range.store.d.ts +0 -113
  19. package/core/index.d.ts +0 -33
  20. package/core/native-date-adapter.d.ts +0 -152
  21. package/core/preset-providers.d.ts +0 -176
  22. package/core/preset-registry.d.ts +0 -181
  23. package/core/preset.engine.d.ts +0 -124
  24. package/core/range-preset.plugin.d.ts +0 -188
  25. package/core/range.validator.d.ts +0 -37
  26. package/core/system-clock.d.ts +0 -13
  27. package/date-adapter.d.ts +0 -116
  28. package/dual-datepicker.component.d.ts +0 -243
  29. package/esm2022/core/built-in-presets.mjs +0 -289
  30. package/esm2022/core/calendar-grid/cache.config.mjs +0 -35
  31. package/esm2022/core/calendar-grid/calendar-grid.cache.mjs +0 -98
  32. package/esm2022/core/calendar-grid/calendar-grid.factory.mjs +0 -97
  33. package/esm2022/core/calendar-grid/calendar-grid.types.mjs +0 -8
  34. package/esm2022/core/calendar-grid/index.mjs +0 -57
  35. package/esm2022/core/calendar-grid/range-highlighter.cache.mjs +0 -200
  36. package/esm2022/core/calendar-grid/range-highlighter.mjs +0 -185
  37. package/esm2022/core/calendar-grid/range-highlighter.types.mjs +0 -11
  38. package/esm2022/core/calendar-grid/virtual-weeks.logic.mjs +0 -149
  39. package/esm2022/core/calendar-grid/virtual-weeks.types.mjs +0 -11
  40. package/esm2022/core/date-adapter.mjs +0 -77
  41. package/esm2022/core/date-clock.mjs +0 -65
  42. package/esm2022/core/dual-date-range.store.mjs +0 -329
  43. package/esm2022/core/index.mjs +0 -37
  44. package/esm2022/core/native-date-adapter.mjs +0 -286
  45. package/esm2022/core/preset-providers.mjs +0 -243
  46. package/esm2022/core/preset-registry.mjs +0 -277
  47. package/esm2022/core/preset.engine.mjs +0 -179
  48. package/esm2022/core/range-preset.plugin.mjs +0 -70
  49. package/esm2022/core/range.validator.mjs +0 -105
  50. package/esm2022/core/system-clock.mjs +0 -34
  51. package/esm2022/date-adapter.mjs +0 -12
  52. package/esm2022/dual-datepicker.component.mjs +0 -1312
  53. package/esm2022/native-date-adapter.mjs +0 -117
  54. package/esm2022/oneluiz-dual-datepicker.mjs +0 -5
  55. package/esm2022/preset-utils.mjs +0 -276
  56. package/esm2022/public-api.mjs +0 -13
  57. package/index.d.ts +0 -5
  58. package/native-date-adapter.d.ts +0 -26
  59. package/preset-utils.d.ts +0 -91
  60. package/public-api.d.ts +0 -9
  61. package/src/themes/bootstrap.scss +0 -202
  62. package/src/themes/bulma.scss +0 -209
  63. package/src/themes/custom.scss +0 -236
  64. package/src/themes/foundation.scss +0 -201
  65. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFPSDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFrQixFQUFFLEdBQWdCO0lBQ3JFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsNkJBQTZCO0lBQ3ZELENBQUM7SUFFRCxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNoQixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsc0NBQXNDO1NBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQWlCLEVBQ2pCLE9BQWMsRUFDZCxPQUFjO0lBRWQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLElBQUksSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSx5QkFBeUIsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxJQUFJLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUM5QixPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsd0JBQXdCLE9B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LEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVwRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQdXJlIHZhbGlkYXRpb24gZnVuY3Rpb25zIGZvciBkYXRlIHJhbmdlc1xuICogTm8gZGVwZW5kZW5jaWVzLCBubyBzaWRlIGVmZmVjdHMgLSBqdXN0IGxvZ2ljXG4gKiBQZXJmZWN0IGZvciBTU1IsIHRlc3RpbmcsIGFuZCByZXVzYWJpbGl0eVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSB0aGF0IGVuZCBkYXRlIGlzIG5vdCBiZWZvcmUgc3RhcnQgZGF0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZU9yZGVyKHN0YXJ0OiBEYXRlIHwgbnVsbCwgZW5kOiBEYXRlIHwgbnVsbCk6IFZhbGlkYXRpb25SZXN1bHQge1xuICBpZiAoIXN0YXJ0IHx8ICFlbmQpIHtcbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9OyAvLyBBbGxvdyBpbmNvbXBsZXRlIHNlbGVjdGlvblxuICB9XG5cbiAgaWYgKGVuZCA8IHN0YXJ0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiAnRW5kIGRhdGUgY2Fubm90IGJlIGJlZm9yZSBzdGFydCBkYXRlJ1xuICAgIH07XG4gIH1cblxuICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHRoYXQgZGF0ZSBpcyB3aXRoaW4gbWluL21heCBib3VuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRGF0ZUJvdW5kcyhcbiAgZGF0ZTogRGF0ZSB8IG51bGwsXG4gIG1pbkRhdGU/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
@@ -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