@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.
- package/.angular/cache/18.2.21/demo/angular-compiler.db +0 -0
- package/.angular/cache/18.2.21/demo/angular-compiler.db-lock +0 -0
- package/.nojekyll +0 -0
- package/GITHUB_PAGES.md +82 -0
- package/README.md +223 -7
- package/angular.json +75 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +925 -0
- package/{dual-datepicker.component.d.ts → dist/dual-datepicker.component.d.ts} +20 -2
- package/dist/esm2022/dual-datepicker.component.mjs +466 -0
- package/dist/esm2022/preset-utils.mjs +276 -0
- package/dist/esm2022/public-api.mjs +10 -0
- package/dist/fesm2022/oneluiz-dual-datepicker.mjs +871 -0
- package/dist/fesm2022/oneluiz-dual-datepicker.mjs.map +1 -0
- package/dist/preset-utils.d.ts +91 -0
- package/{public-api.d.ts → dist/public-api.d.ts} +2 -1
- package/ng-package.json +7 -0
- package/package.json +24 -20
- package/esm2022/dual-datepicker.component.mjs +0 -345
- package/esm2022/public-api.mjs +0 -8
- package/fesm2022/oneluiz-dual-datepicker.mjs +0 -474
- package/fesm2022/oneluiz-dual-datepicker.mjs.map +0 -1
- /package/{date-adapter.d.ts → dist/date-adapter.d.ts} +0 -0
- /package/{esm2022 → dist/esm2022}/date-adapter.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/native-date-adapter.mjs +0 -0
- /package/{esm2022 → dist/esm2022}/oneluiz-dual-datepicker.mjs +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{native-date-adapter.d.ts → dist/native-date-adapter.d.ts} +0 -0
|
@@ -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==
|