@oneluiz/dual-datepicker 2.5.0 → 2.7.0

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.
@@ -0,0 +1,276 @@
1
+ /**
2
+ * Utility functions for creating common date range presets
3
+ * Perfect for dashboards, reporting, POS, BI apps, and ERP systems
4
+ */
5
+ /**
6
+ * Format a date as YYYY-MM-DD string
7
+ */
8
+ function formatDate(date) {
9
+ const year = date.getFullYear();
10
+ const month = String(date.getMonth() + 1).padStart(2, '0');
11
+ const day = String(date.getDate()).padStart(2, '0');
12
+ return `${year}-${month}-${day}`;
13
+ }
14
+ /**
15
+ * Get the start of today
16
+ */
17
+ export function getToday() {
18
+ const today = new Date();
19
+ return {
20
+ start: formatDate(today),
21
+ end: formatDate(today)
22
+ };
23
+ }
24
+ /**
25
+ * Get yesterday's date range
26
+ */
27
+ export function getYesterday() {
28
+ const yesterday = new Date();
29
+ yesterday.setDate(yesterday.getDate() - 1);
30
+ return {
31
+ start: formatDate(yesterday),
32
+ end: formatDate(yesterday)
33
+ };
34
+ }
35
+ /**
36
+ * Get last N days (including today)
37
+ */
38
+ export function getLastNDays(days) {
39
+ const end = new Date();
40
+ const start = new Date();
41
+ start.setDate(start.getDate() - days + 1);
42
+ return {
43
+ start: formatDate(start),
44
+ end: formatDate(end)
45
+ };
46
+ }
47
+ /**
48
+ * Get this week (Monday to Sunday)
49
+ */
50
+ export function getThisWeek() {
51
+ const today = new Date();
52
+ const dayOfWeek = today.getDay();
53
+ const start = new Date(today);
54
+ // Adjust to Monday (1) as first day of week
55
+ const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
56
+ start.setDate(start.getDate() - daysToMonday);
57
+ const end = new Date(start);
58
+ end.setDate(end.getDate() + 6);
59
+ return {
60
+ start: formatDate(start),
61
+ end: formatDate(end)
62
+ };
63
+ }
64
+ /**
65
+ * Get last week (Monday to Sunday)
66
+ */
67
+ export function getLastWeek() {
68
+ const today = new Date();
69
+ const dayOfWeek = today.getDay();
70
+ const daysToMonday = dayOfWeek === 0 ? 6 : dayOfWeek - 1;
71
+ const lastMonday = new Date(today);
72
+ lastMonday.setDate(lastMonday.getDate() - daysToMonday - 7);
73
+ const lastSunday = new Date(lastMonday);
74
+ lastSunday.setDate(lastSunday.getDate() + 6);
75
+ return {
76
+ start: formatDate(lastMonday),
77
+ end: formatDate(lastSunday)
78
+ };
79
+ }
80
+ /**
81
+ * Get this month (1st to last day)
82
+ */
83
+ export function getThisMonth() {
84
+ const today = new Date();
85
+ const start = new Date(today.getFullYear(), today.getMonth(), 1);
86
+ const end = new Date(today.getFullYear(), today.getMonth() + 1, 0);
87
+ return {
88
+ start: formatDate(start),
89
+ end: formatDate(end)
90
+ };
91
+ }
92
+ /**
93
+ * Get last month (1st to last day)
94
+ */
95
+ export function getLastMonth() {
96
+ const today = new Date();
97
+ const start = new Date(today.getFullYear(), today.getMonth() - 1, 1);
98
+ const end = new Date(today.getFullYear(), today.getMonth(), 0);
99
+ return {
100
+ start: formatDate(start),
101
+ end: formatDate(end)
102
+ };
103
+ }
104
+ /**
105
+ * Get month to date (1st of current month to today)
106
+ */
107
+ export function getMonthToDate() {
108
+ const today = new Date();
109
+ const start = new Date(today.getFullYear(), today.getMonth(), 1);
110
+ return {
111
+ start: formatDate(start),
112
+ end: formatDate(today)
113
+ };
114
+ }
115
+ /**
116
+ * Get this quarter (Q1, Q2, Q3, or Q4)
117
+ */
118
+ export function getThisQuarter() {
119
+ const today = new Date();
120
+ const currentMonth = today.getMonth();
121
+ const quarterStartMonth = Math.floor(currentMonth / 3) * 3;
122
+ const start = new Date(today.getFullYear(), quarterStartMonth, 1);
123
+ const end = new Date(today.getFullYear(), quarterStartMonth + 3, 0);
124
+ return {
125
+ start: formatDate(start),
126
+ end: formatDate(end)
127
+ };
128
+ }
129
+ /**
130
+ * Get last quarter
131
+ */
132
+ export function getLastQuarter() {
133
+ const today = new Date();
134
+ const currentMonth = today.getMonth();
135
+ const lastQuarterStartMonth = Math.floor(currentMonth / 3) * 3 - 3;
136
+ const start = new Date(today.getFullYear(), lastQuarterStartMonth, 1);
137
+ const end = new Date(today.getFullYear(), lastQuarterStartMonth + 3, 0);
138
+ return {
139
+ start: formatDate(start),
140
+ end: formatDate(end)
141
+ };
142
+ }
143
+ /**
144
+ * Get quarter to date (start of current quarter to today)
145
+ */
146
+ export function getQuarterToDate() {
147
+ const today = new Date();
148
+ const currentMonth = today.getMonth();
149
+ const quarterStartMonth = Math.floor(currentMonth / 3) * 3;
150
+ const start = new Date(today.getFullYear(), quarterStartMonth, 1);
151
+ return {
152
+ start: formatDate(start),
153
+ end: formatDate(today)
154
+ };
155
+ }
156
+ /**
157
+ * Get this year (January 1 to December 31)
158
+ */
159
+ export function getThisYear() {
160
+ const today = new Date();
161
+ const start = new Date(today.getFullYear(), 0, 1);
162
+ const end = new Date(today.getFullYear(), 11, 31);
163
+ return {
164
+ start: formatDate(start),
165
+ end: formatDate(end)
166
+ };
167
+ }
168
+ /**
169
+ * Get last year
170
+ */
171
+ export function getLastYear() {
172
+ const today = new Date();
173
+ const start = new Date(today.getFullYear() - 1, 0, 1);
174
+ const end = new Date(today.getFullYear() - 1, 11, 31);
175
+ return {
176
+ start: formatDate(start),
177
+ end: formatDate(end)
178
+ };
179
+ }
180
+ /**
181
+ * Get year to date (January 1 to today)
182
+ */
183
+ export function getYearToDate() {
184
+ const today = new Date();
185
+ const start = new Date(today.getFullYear(), 0, 1);
186
+ return {
187
+ start: formatDate(start),
188
+ end: formatDate(today)
189
+ };
190
+ }
191
+ /**
192
+ * Get last N months (including current partial month)
193
+ */
194
+ export function getLastNMonths(months) {
195
+ const today = new Date();
196
+ const start = new Date(today);
197
+ start.setMonth(start.getMonth() - months);
198
+ return {
199
+ start: formatDate(start),
200
+ end: formatDate(today)
201
+ };
202
+ }
203
+ /**
204
+ * Get last N years
205
+ */
206
+ export function getLastNYears(years) {
207
+ const today = new Date();
208
+ const start = new Date(today);
209
+ start.setFullYear(start.getFullYear() - years);
210
+ return {
211
+ start: formatDate(start),
212
+ end: formatDate(today)
213
+ };
214
+ }
215
+ /**
216
+ * Pre-built preset configurations for common use cases
217
+ * Import and use these directly in your component
218
+ */
219
+ export const CommonPresets = {
220
+ /**
221
+ * Dashboard presets - Perfect for analytics dashboards
222
+ */
223
+ dashboard: [
224
+ { label: 'Today', getValue: getToday },
225
+ { label: 'Yesterday', getValue: getYesterday },
226
+ { label: 'Last 7 days', getValue: () => getLastNDays(7) },
227
+ { label: 'Last 30 days', getValue: () => getLastNDays(30) },
228
+ { label: 'This month', getValue: getThisMonth },
229
+ { label: 'Last month', getValue: getLastMonth }
230
+ ],
231
+ /**
232
+ * Reporting presets - Perfect for business reporting
233
+ */
234
+ reporting: [
235
+ { label: 'Today', getValue: getToday },
236
+ { label: 'This week', getValue: getThisWeek },
237
+ { label: 'Last week', getValue: getLastWeek },
238
+ { label: 'This month', getValue: getThisMonth },
239
+ { label: 'Last month', getValue: getLastMonth },
240
+ { label: 'This quarter', getValue: getThisQuarter },
241
+ { label: 'Last quarter', getValue: getLastQuarter }
242
+ ],
243
+ /**
244
+ * Financial presets - Perfect for ERP and accounting systems
245
+ */
246
+ financial: [
247
+ { label: 'Month to date', getValue: getMonthToDate },
248
+ { label: 'Quarter to date', getValue: getQuarterToDate },
249
+ { label: 'Year to date', getValue: getYearToDate },
250
+ { label: 'Last month', getValue: getLastMonth },
251
+ { label: 'Last quarter', getValue: getLastQuarter },
252
+ { label: 'Last year', getValue: getLastYear }
253
+ ],
254
+ /**
255
+ * Analytics presets - Perfect for BI and data analysis
256
+ */
257
+ analytics: [
258
+ { label: 'Last 7 days', getValue: () => getLastNDays(7) },
259
+ { label: 'Last 14 days', getValue: () => getLastNDays(14) },
260
+ { label: 'Last 30 days', getValue: () => getLastNDays(30) },
261
+ { label: 'Last 60 days', getValue: () => getLastNDays(60) },
262
+ { label: 'Last 90 days', getValue: () => getLastNDays(90) },
263
+ { label: 'Last 180 days', getValue: () => getLastNDays(180) },
264
+ { label: 'Last 365 days', getValue: () => getLastNDays(365) }
265
+ ],
266
+ /**
267
+ * Simple presets - Basic common ranges
268
+ */
269
+ simple: [
270
+ { label: 'Today', getValue: getToday },
271
+ { label: 'Last 7 days', getValue: () => getLastNDays(7) },
272
+ { label: 'Last 30 days', getValue: () => getLastNDays(30) },
273
+ { label: 'This year', getValue: getThisYear }
274
+ ]
275
+ };
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZXNldC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7O0dBR0c7QUFFSDs7R0FFRztBQUNILFNBQVMsVUFBVSxDQUFDLElBQVU7SUFDNUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUTtJQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE9BQU87UUFDTCxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN4QixHQUFHLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztLQUN2QixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPO1FBQ0wsS0FBSyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUM7UUFDNUIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUM7S0FDM0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FF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O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0QsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFakUsT0FBTztRQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEdBQUcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMs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QUU7UUFDTixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtRQUN0QyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUN6RCxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUMzRCxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRTtLQUM1QjtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlc2V0Q29uZmlnLCBQcmVzZXRSYW5nZSB9IGZyb20gJy4vZHVhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbnMgZm9yIGNyZWF0aW5nIGNvbW1vbiBkYXRlIHJhbmdlIHByZXNldHNcbiAqIFBlcmZlY3QgZm9yIGRhc2hib2FyZHMsIHJlcG9ydGluZywgUE9TLCBCSSBhcHBzLCBhbmQgRVJQIHN5c3RlbXNcbiAqL1xuXG4vKipcbiAqIEZvcm1hdCBhIGRhdGUgYXMgWVlZWS1NTS1ERCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcbiAgY29uc3QgZGF5ID0gU3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpO1xuICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHN0YXJ0IG9mIHRvZGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2RheSgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZSh0b2RheSksXG4gICAgZW5kOiBmb3JtYXREYXRlKHRvZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCB5ZXN0ZXJkYXkncyBkYXRlIHJhbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRZZXN0ZXJkYXkoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB5ZXN0ZXJkYXkgPSBuZXcgRGF0ZSgpO1xuICB5ZXN0ZXJkYXkuc2V0RGF0ZSh5ZXN0ZXJkYXkuZ2V0RGF0ZSgpIC0gMSk7XG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoeWVzdGVyZGF5KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoeWVzdGVyZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBsYXN0IE4gZGF5cyAoaW5jbHVkaW5nIHRvZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdE5EYXlzKGRheXM6IG51bWJlcik6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpO1xuICBzdGFydC5zZXREYXRlKHN0YXJ0LmdldERhdGUoKSAtIGRheXMgKyAxKTtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhpcyB3ZWVrIChNb25kYXkgdG8gU3VuZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhpc1dlZWsoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHRvZGF5LmdldERheSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5KTtcbiAgLy8gQWRqdXN0IHRvIE1vbmRheSAoMSkgYXMgZmlyc3QgZGF5IG9mIHdlZWtcbiAgY29uc3QgZGF5c1RvTW9uZGF5ID0gZGF5T2ZXZWVrID09PSAwID8gNiA6IGRheU9mV2VlayAtIDE7XG4gIHN0YXJ0LnNldERhdGUoc3RhcnQuZ2V0RGF0ZSgpIC0gZGF5c1RvTW9uZGF5KTtcbiAgXG4gIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHN0YXJ0KTtcbiAgZW5kLnNldERhdGUoZW5kLmdldERhdGUoKSArIDYpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCB3ZWVrIChNb25kYXkgdG8gU3VuZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFdlZWsoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGRheU9mV2VlayA9IHRvZGF5LmdldERheSgpO1xuICBjb25zdCBkYXlzVG9Nb25kYXkgPSBkYXlPZldlZWsgPT09IDAgPyA2IDogZGF5T2ZXZWVrIC0gMTtcbiAgXG4gIGNvbnN0IGxhc3RNb25kYXkgPSBuZXcgRGF0ZSh0b2RheSk7XG4gIGxhc3RNb25kYXkuc2V0RGF0ZShsYXN0TW9uZGF5LmdldERhdGUoKSAtIGRheXNUb01vbmRheSAtIDcpO1xuICBcbiAgY29uc3QgbGFzdFN1bmRheSA9IG5ldyBEYXRlKGxhc3RNb25kYXkpO1xuICBsYXN0U3VuZGF5LnNldERhdGUobGFzdFN1bmRheS5nZXREYXRlKCkgKyA2KTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUobGFzdE1vbmRheSksXG4gICAgZW5kOiBmb3JtYXREYXRlKGxhc3RTdW5kYXkpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHRoaXMgbW9udGggKDFzdCB0byBsYXN0IGRheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRoaXNNb250aCgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSArIDEsIDApO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKGVuZClcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBtb250aCAoMXN0IHRvIGxhc3QgZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdE1vbnRoKCk6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCkgLSAxLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgMCk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoZW5kKVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBtb250aCB0byBkYXRlICgxc3Qgb2YgY3VycmVudCBtb250aCB0byB0b2RheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbnRoVG9EYXRlKCk6IFByZXNldFJhbmdlIHtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIDEpO1xuICBcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogZm9ybWF0RGF0ZShzdGFydCksXG4gICAgZW5kOiBmb3JtYXREYXRlKHRvZGF5KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCB0aGlzIHF1YXJ0ZXIgKFExLCBRMiwgUTMsIG9yIFE0KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGhpc1F1YXJ0ZXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IHF1YXJ0ZXJTdGFydE1vbnRoID0gTWF0aC5mbG9vcihjdXJyZW50TW9udGggLyAzKSAqIDM7XG4gIFxuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgcXVhcnRlclN0YXJ0TW9udGggKyAzLCAwKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IGxhc3QgcXVhcnRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFF1YXJ0ZXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IGxhc3RRdWFydGVyU3RhcnRNb250aCA9IE1hdGguZmxvb3IoY3VycmVudE1vbnRoIC8gMykgKiAzIC0gMztcbiAgXG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgbGFzdFF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgbGFzdFF1YXJ0ZXJTdGFydE1vbnRoICsgMywgMCk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUoZW5kKVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBxdWFydGVyIHRvIGRhdGUgKHN0YXJ0IG9mIGN1cnJlbnQgcXVhcnRlciB0byB0b2RheSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFF1YXJ0ZXJUb0RhdGUoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IGN1cnJlbnRNb250aCA9IHRvZGF5LmdldE1vbnRoKCk7XG4gIGNvbnN0IHF1YXJ0ZXJTdGFydE1vbnRoID0gTWF0aC5mbG9vcihjdXJyZW50TW9udGggLyAzKSAqIDM7XG4gIFxuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHF1YXJ0ZXJTdGFydE1vbnRoLCAxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgdGhpcyB5ZWFyIChKYW51YXJ5IDEgdG8gRGVjZW1iZXIgMzEpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaGlzWWVhcigpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgMTEsIDMxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IGxhc3QgeWVhclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGFzdFllYXIoKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSAtIDEsIDAsIDEpO1xuICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpIC0gMSwgMTEsIDMxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZShlbmQpXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHllYXIgdG8gZGF0ZSAoSmFudWFyeSAxIHRvIHRvZGF5KVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0WWVhclRvRGF0ZSgpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBOIG1vbnRocyAoaW5jbHVkaW5nIGN1cnJlbnQgcGFydGlhbCBtb250aClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhc3ROTW9udGhzKG1vbnRoczogbnVtYmVyKTogUHJlc2V0UmFuZ2Uge1xuICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkpO1xuICBzdGFydC5zZXRNb250aChzdGFydC5nZXRNb250aCgpIC0gbW9udGhzKTtcbiAgXG4gIHJldHVybiB7XG4gICAgc3RhcnQ6IGZvcm1hdERhdGUoc3RhcnQpLFxuICAgIGVuZDogZm9ybWF0RGF0ZSh0b2RheSlcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgbGFzdCBOIHllYXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXN0TlllYXJzKHllYXJzOiBudW1iZXIpOiBQcmVzZXRSYW5nZSB7XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheSk7XG4gIHN0YXJ0LnNldEZ1bGxZZWFyKHN0YXJ0LmdldEZ1bGxZZWFyKCkgLSB5ZWFycyk7XG4gIFxuICByZXR1cm4ge1xuICAgIHN0YXJ0OiBmb3JtYXREYXRlKHN0YXJ0KSxcbiAgICBlbmQ6IGZvcm1hdERhdGUodG9kYXkpXG4gIH07XG59XG5cbi8qKlxuICogUHJlLWJ1aWx0IHByZXNldCBjb25maWd1cmF0aW9ucyBmb3IgY29tbW9uIHVzZSBjYXNlc1xuICogSW1wb3J0IGFuZCB1c2UgdGhlc2UgZGlyZWN0bHkgaW4geW91ciBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IENvbW1vblByZXNldHMgPSB7XG4gIC8qKlxuICAgKiBEYXNoYm9hcmQgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIGFuYWx5dGljcyBkYXNoYm9hcmRzXG4gICAqL1xuICBkYXNoYm9hcmQ6IFtcbiAgICB7IGxhYmVsOiAnVG9kYXknLCBnZXRWYWx1ZTogZ2V0VG9kYXkgfSxcbiAgICB7IGxhYmVsOiAnWWVzdGVyZGF5JywgZ2V0VmFsdWU6IGdldFllc3RlcmRheSB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IDcgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoNykgfSxcbiAgICB7IGxhYmVsOiAnTGFzdCAzMCBkYXlzJywgZ2V0VmFsdWU6ICgpID0+IGdldExhc3RORGF5cygzMCkgfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBtb250aCcsIGdldFZhbHVlOiBnZXRUaGlzTW9udGggfSxcbiAgICB7IGxhYmVsOiAnTGFzdCBtb250aCcsIGdldFZhbHVlOiBnZXRMYXN0TW9udGggfVxuICBdIGFzIFByZXNldENvbmZpZ1tdLFxuXG4gIC8qKlxuICAgKiBSZXBvcnRpbmcgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIGJ1c2luZXNzIHJlcG9ydGluZ1xuICAgKi9cbiAgcmVwb3J0aW5nOiBbXG4gICAgeyBsYWJlbDogJ1RvZGF5JywgZ2V0VmFsdWU6IGdldFRvZGF5IH0sXG4gICAgeyBsYWJlbDogJ1RoaXMgd2VlaycsIGdldFZhbHVlOiBnZXRUaGlzV2VlayB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IHdlZWsnLCBnZXRWYWx1ZTogZ2V0TGFzdFdlZWsgfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBtb250aCcsIGdldFZhbHVlOiBnZXRUaGlzTW9udGggfSxcbiAgICB7IGxhYmVsOiAnTGFzdCBtb250aCcsIGdldFZhbHVlOiBnZXRMYXN0TW9udGggfSxcbiAgICB7IGxhYmVsOiAnVGhpcyBxdWFydGVyJywgZ2V0VmFsdWU6IGdldFRoaXNRdWFydGVyIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgcXVhcnRlcicsIGdldFZhbHVlOiBnZXRMYXN0UXVhcnRlciB9XG4gIF0gYXMgUHJlc2V0Q29uZmlnW10sXG5cbiAgLyoqXG4gICAqIEZpbmFuY2lhbCBwcmVzZXRzIC0gUGVyZmVjdCBmb3IgRVJQIGFuZCBhY2NvdW50aW5nIHN5c3RlbXNcbiAgICovXG4gIGZpbmFuY2lhbDogW1xuICAgIHsgbGFiZWw6ICdNb250aCB0byBkYXRlJywgZ2V0VmFsdWU6IGdldE1vbnRoVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ1F1YXJ0ZXIgdG8gZGF0ZScsIGdldFZhbHVlOiBnZXRRdWFydGVyVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ1llYXIgdG8gZGF0ZScsIGdldFZhbHVlOiBnZXRZZWFyVG9EYXRlIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgbW9udGgnLCBnZXRWYWx1ZTogZ2V0TGFzdE1vbnRoIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgcXVhcnRlcicsIGdldFZhbHVlOiBnZXRMYXN0UXVhcnRlciB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IHllYXInLCBnZXRWYWx1ZTogZ2V0TGFzdFllYXIgfVxuICBdIGFzIFByZXNldENvbmZpZ1tdLFxuXG4gIC8qKlxuICAgKiBBbmFseXRpY3MgcHJlc2V0cyAtIFBlcmZlY3QgZm9yIEJJIGFuZCBkYXRhIGFuYWx5c2lzXG4gICAqL1xuICBhbmFseXRpY3M6IFtcbiAgICB7IGxhYmVsOiAnTGFzdCA3IGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDcpIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMTQgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMTQpIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMzAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMzApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgNjAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoNjApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgOTAgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoOTApIH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgMTgwIGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDE4MCkgfSxcbiAgICB7IGxhYmVsOiAnTGFzdCAzNjUgZGF5cycsIGdldFZhbHVlOiAoKSA9PiBnZXRMYXN0TkRheXMoMzY1KSB9XG4gIF0gYXMgUHJlc2V0Q29uZmlnW10sXG5cbiAgLyoqXG4gICAqIFNpbXBsZSBwcmVzZXRzIC0gQmFzaWMgY29tbW9uIHJhbmdlc1xuICAgKi9cbiAgc2ltcGxlOiBbXG4gICAgeyBsYWJlbDogJ1RvZGF5JywgZ2V0VmFsdWU6IGdldFRvZGF5IH0sXG4gICAgeyBsYWJlbDogJ0xhc3QgNyBkYXlzJywgZ2V0VmFsdWU6ICgpID0+IGdldExhc3RORGF5cyg3KSB9LFxuICAgIHsgbGFiZWw6ICdMYXN0IDMwIGRheXMnLCBnZXRWYWx1ZTogKCkgPT4gZ2V0TGFzdE5EYXlzKDMwKSB9LFxuICAgIHsgbGFiZWw6ICdUaGlzIHllYXInLCBnZXRWYWx1ZTogZ2V0VGhpc1llYXIgfVxuICBdIGFzIFByZXNldENvbmZpZ1tdXG59O1xuIl19
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Public API Surface of @oneluiz/dual-datepicker
3
+ */
4
+ export { DualDatepickerComponent } from './dual-datepicker.component';
5
+ // Date Adapter System
6
+ export { DateAdapter, DATE_ADAPTER } from './date-adapter';
7
+ export { NativeDateAdapter } from './native-date-adapter';
8
+ // Preset Utilities
9
+ export * from './preset-utils';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsc0JBQXNCO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsbUJBQW1CO0FBQ25CLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAb25lbHVpei9kdWFsLWRhdGVwaWNrZXJcbiAqL1xuXG5leHBvcnQgeyBEdWFsRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZHVhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgdHlwZSB7IERhdGVSYW5nZSwgTXVsdGlEYXRlUmFuZ2UsIFByZXNldENvbmZpZywgUHJlc2V0UmFuZ2UsIExvY2FsZUNvbmZpZyB9IGZyb20gJy4vZHVhbC1kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8vIERhdGUgQWRhcHRlciBTeXN0ZW1cbmV4cG9ydCB7IERhdGVBZGFwdGVyLCBEQVRFX0FEQVBURVIgfSBmcm9tICcuL2RhdGUtYWRhcHRlcic7XG5leHBvcnQgeyBOYXRpdmVEYXRlQWRhcHRlciB9IGZyb20gJy4vbmF0aXZlLWRhdGUtYWRhcHRlcic7XG5cbi8vIFByZXNldCBVdGlsaXRpZXNcbmV4cG9ydCAqIGZyb20gJy4vcHJlc2V0LXV0aWxzJztcbiJdfQ==