@elite.framework/ng.ui.core 1.0.85 → 1.0.87
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/fesm2022/elite.framework-ng.ui.core-datepicker.mjs +148 -33
- package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-assets.mjs +22 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-assets.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs +15 -7
- package/fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +2 -2
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -1
- package/generic-assets/README.md +3 -0
- package/generic-assets/index.d.ts +10 -0
- package/generic-search-advanced/index.d.ts +1 -1
- package/package.json +17 -13
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, ViewChild, Component } from '@angular/core';
|
|
2
|
+
import { NgModule, inject, ChangeDetectorRef, ViewChild, Component } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i1$1 from '@ngx-formly/core';
|
|
@@ -37,6 +37,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
37
37
|
class FormlyFieldDatepicker extends FieldType {
|
|
38
38
|
datepickerComp;
|
|
39
39
|
dialogVisible = false;
|
|
40
|
+
cdr = inject(ChangeDetectorRef);
|
|
40
41
|
get mode() {
|
|
41
42
|
return this.props['mode'] || 'date';
|
|
42
43
|
}
|
|
@@ -66,11 +67,32 @@ class FormlyFieldDatepicker extends FieldType {
|
|
|
66
67
|
if (!value)
|
|
67
68
|
return;
|
|
68
69
|
if (this.mode !== 'time') {
|
|
69
|
-
// parse date part
|
|
70
|
+
// parse date part - handle both dd-MM-yyyy and yyyy-MM-dd formats
|
|
70
71
|
const dateStr = value.split('T')[0];
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
let dt;
|
|
73
|
+
// Check the format of the date string
|
|
74
|
+
if (dateStr.includes('-')) {
|
|
75
|
+
const parts = dateStr.split('-');
|
|
76
|
+
if (parts[0].length === 4) {
|
|
77
|
+
// Format is yyyy-MM-dd (ISO format)
|
|
78
|
+
dt = new Date(dateStr);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Format is dd-MM-yyyy
|
|
82
|
+
const [day, month, year] = parts;
|
|
83
|
+
// Convert to ISO format (yyyy-MM-dd) for Date constructor
|
|
84
|
+
dt = new Date(`${year}-${month}-${day}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
dt = new Date(dateStr);
|
|
89
|
+
}
|
|
90
|
+
if (!isNaN(dt.getTime())) {
|
|
73
91
|
this.dateControl.setValue(dt, { emitEvent: false });
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
console.warn('Invalid date format:', dateStr);
|
|
95
|
+
}
|
|
74
96
|
}
|
|
75
97
|
if (this.mode !== 'date') {
|
|
76
98
|
// parse time part
|
|
@@ -98,11 +120,21 @@ class FormlyFieldDatepicker extends FieldType {
|
|
|
98
120
|
this.dialogVisible = true;
|
|
99
121
|
}
|
|
100
122
|
saveDialog() {
|
|
101
|
-
this.updateModel();
|
|
123
|
+
this.updateModel(false);
|
|
102
124
|
this.dialogVisible = false;
|
|
103
125
|
}
|
|
104
|
-
|
|
105
|
-
|
|
126
|
+
autoFixDate(e) {
|
|
127
|
+
let v = e.target.value.replace(/\D/g, '');
|
|
128
|
+
if (v.length === 8) {
|
|
129
|
+
const dd = v.substring(0, 2);
|
|
130
|
+
const mm = v.substring(2, 4);
|
|
131
|
+
const yyyy = v.substring(4, 8);
|
|
132
|
+
const formatted = `${dd}-${mm}-${yyyy}`;
|
|
133
|
+
this.dateControl.setValue(formatted, { emitEvent: true });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
onDateChange(UIInput) {
|
|
137
|
+
this.updateModel(UIInput);
|
|
106
138
|
}
|
|
107
139
|
onTimeInput(event) {
|
|
108
140
|
if (this.mode === 'date')
|
|
@@ -132,39 +164,114 @@ class FormlyFieldDatepicker extends FieldType {
|
|
|
132
164
|
if (minutes > 59)
|
|
133
165
|
minutes = 59;
|
|
134
166
|
this.timeControl.setValue(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`);
|
|
135
|
-
this.updateModel();
|
|
167
|
+
this.updateModel(false);
|
|
136
168
|
}
|
|
137
169
|
toggleAmPm() {
|
|
138
170
|
this.ampmControl.setValue(this.ampmControl.value === 'AM' ? 'PM' : 'AM');
|
|
139
|
-
this.updateModel();
|
|
171
|
+
this.updateModel(false);
|
|
140
172
|
}
|
|
141
|
-
updateModel() {
|
|
173
|
+
updateModel(UIInput) {
|
|
142
174
|
const dateVal = this.dateControl.value;
|
|
143
175
|
const timeVal = this.timeControl.value;
|
|
144
176
|
const ampm = this.ampmControl.value ?? 'AM';
|
|
145
177
|
if (this.mode === 'date') {
|
|
146
178
|
if (dateVal) {
|
|
147
|
-
|
|
148
|
-
|
|
179
|
+
// Parse the date considering it might be in dd-mm-yy format
|
|
180
|
+
let dt;
|
|
181
|
+
if (typeof dateVal === 'string' && dateVal.includes('-')) {
|
|
182
|
+
const [day, month, year] = dateVal.split('-');
|
|
183
|
+
// Convert 2-digit year to 4-digit year
|
|
184
|
+
const fullYear = year.length === 2 ? `20${year}` : year;
|
|
185
|
+
dt = new Date(`${fullYear}-${month}-${day}`);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
dt = new Date(dateVal);
|
|
189
|
+
}
|
|
190
|
+
// Double-check the final date is valid
|
|
191
|
+
if (isNaN(dt.getTime())) {
|
|
192
|
+
console.error('Invalid date created, using current date');
|
|
193
|
+
dt = new Date(); // Fallback to current date
|
|
194
|
+
}
|
|
195
|
+
const val = `${dt.getDate().toString().padStart(2, '0')}-` +
|
|
196
|
+
`${(dt.getMonth() + 1).toString().padStart(2, '0')}-` +
|
|
197
|
+
`${dt.getFullYear()}`;
|
|
198
|
+
this.formControl.setValue(val, { emitEvent: true });
|
|
199
|
+
if (this.props.change) {
|
|
200
|
+
this.props.change(this.field, { item: this.model });
|
|
201
|
+
this.cdr.detectChanges();
|
|
202
|
+
}
|
|
149
203
|
}
|
|
150
204
|
}
|
|
151
205
|
else if (this.mode === 'time') {
|
|
152
206
|
if (timeVal)
|
|
153
|
-
this.formControl.setValue(`${timeVal} ${ampm}
|
|
207
|
+
this.formControl.setValue(`${timeVal} ${ampm}`, { emitEvent: true });
|
|
208
|
+
if (this.props.change) {
|
|
209
|
+
this.props.change(this.field, { item: this.model });
|
|
210
|
+
this.cdr.detectChanges();
|
|
211
|
+
}
|
|
154
212
|
}
|
|
155
213
|
else if (this.mode === 'datetime') {
|
|
156
|
-
if (dateVal
|
|
157
|
-
let
|
|
158
|
-
let
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
hours
|
|
164
|
-
|
|
214
|
+
if (dateVal) {
|
|
215
|
+
let hours = 0;
|
|
216
|
+
let minutes = 0;
|
|
217
|
+
if (timeVal && timeVal.trim() !== '') {
|
|
218
|
+
const [h, m] = (timeVal ?? '').split(':');
|
|
219
|
+
// Validate hours
|
|
220
|
+
hours = parseInt(h, 10);
|
|
221
|
+
if (isNaN(hours) || hours < 0 || hours > 12)
|
|
222
|
+
hours = 0;
|
|
223
|
+
// Validate minutes
|
|
224
|
+
minutes = parseInt(m, 10);
|
|
225
|
+
if (isNaN(minutes) || minutes < 0 || minutes > 59)
|
|
226
|
+
minutes = 0;
|
|
227
|
+
// Convert 12-hour format to 24-hour format
|
|
228
|
+
if (ampm === 'PM' && hours < 12)
|
|
229
|
+
hours += 12;
|
|
230
|
+
if (ampm === 'AM' && hours === 12)
|
|
231
|
+
hours = 0;
|
|
232
|
+
}
|
|
233
|
+
// Final safety check
|
|
234
|
+
hours = isNaN(hours) ? 0 : Math.max(0, Math.min(23, hours));
|
|
235
|
+
minutes = isNaN(minutes) ? 0 : Math.max(0, Math.min(59, minutes));
|
|
236
|
+
// Parse the date considering it might be in dd-mm-yy format
|
|
237
|
+
let dt;
|
|
238
|
+
if (dateVal.includes('-')) {
|
|
239
|
+
const [day, month, year] = dateVal.split('-');
|
|
240
|
+
// Convert 2-digit year to 4-digit year
|
|
241
|
+
const fullYear = year.length === 2 ? `20${year}` : year;
|
|
242
|
+
dt = new Date(`${fullYear}-${month}-${day}`);
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
dt = new Date(dateVal);
|
|
246
|
+
}
|
|
165
247
|
dt.setHours(hours, minutes, 0, 0);
|
|
166
|
-
|
|
167
|
-
|
|
248
|
+
// Double-check the final date is valid - if invalid, set to first hour of day
|
|
249
|
+
if (isNaN(dt.getTime())) {
|
|
250
|
+
console.error('Invalid date created, setting to first hour of day');
|
|
251
|
+
// Create a new valid date with first hour of day
|
|
252
|
+
const now = new Date();
|
|
253
|
+
now.setHours(0, 0, 0, 0);
|
|
254
|
+
const val = `${now.getDate().toString().padStart(2, '0')}-` +
|
|
255
|
+
`${(now.getMonth() + 1).toString().padStart(2, '0')}-` +
|
|
256
|
+
`${now.getFullYear()}T` +
|
|
257
|
+
`00:00:00`;
|
|
258
|
+
this.formControl.setValue(val, { emitEvent: true });
|
|
259
|
+
if (this.props.change) {
|
|
260
|
+
this.props.change(this.field, { item: this.model });
|
|
261
|
+
this.cdr.detectChanges();
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const val = `${dt.getDate().toString().padStart(2, '0')}-` +
|
|
266
|
+
`${(dt.getMonth() + 1).toString().padStart(2, '0')}-` +
|
|
267
|
+
`${dt.getFullYear()}T` +
|
|
268
|
+
`${dt.getHours().toString().padStart(2, '0')}:` +
|
|
269
|
+
`${dt.getMinutes().toString().padStart(2, '0')}:00`;
|
|
270
|
+
this.formControl.setValue(val, { emitEvent: true });
|
|
271
|
+
if (this.props.change) {
|
|
272
|
+
this.props.change(this.field, { item: this.model });
|
|
273
|
+
this.cdr.detectChanges();
|
|
274
|
+
}
|
|
168
275
|
}
|
|
169
276
|
}
|
|
170
277
|
}
|
|
@@ -174,12 +281,13 @@ class FormlyFieldDatepicker extends FieldType {
|
|
|
174
281
|
<p-inputGroup class="w-full">
|
|
175
282
|
<!-- [inputStyle]="{'border-left':'0'}" -->
|
|
176
283
|
@if (mode !== 'time') {
|
|
284
|
+
<!-- [(ngModel)]="dateControl.value" -->
|
|
177
285
|
<p-datepicker
|
|
178
286
|
#datepickerComp
|
|
179
|
-
[(ngModel)]="dateControl.value"
|
|
180
287
|
[formControl]="dateControl"
|
|
181
|
-
|
|
182
|
-
|
|
288
|
+
dateFormat="dd-mm-yy"
|
|
289
|
+
dataType="string"
|
|
290
|
+
placeholder="DD-MM-YYYY"
|
|
183
291
|
[showIcon]="false"
|
|
184
292
|
inputId="buttondisplay"
|
|
185
293
|
[showOnFocus]="true"
|
|
@@ -189,8 +297,11 @@ class FormlyFieldDatepicker extends FieldType {
|
|
|
189
297
|
dropdownMode="current"
|
|
190
298
|
[formlyAttributes]="field"
|
|
191
299
|
[disabled]="!!props.disabled"
|
|
192
|
-
(onSelect)="onDateChange()"
|
|
300
|
+
(onSelect)="onDateChange(true)"
|
|
301
|
+
(onInput)="onDateChange(true)"
|
|
193
302
|
></p-datepicker>
|
|
303
|
+
<!-- (onInput)="autoFixDate($event)" -->
|
|
304
|
+
|
|
194
305
|
}
|
|
195
306
|
|
|
196
307
|
@if (mode !== 'date') {
|
|
@@ -272,19 +383,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
272
383
|
InputGroupModule,
|
|
273
384
|
InputGroupAddonModule,
|
|
274
385
|
FormlyAttributes,
|
|
275
|
-
SelectModule
|
|
386
|
+
SelectModule,
|
|
276
387
|
],
|
|
277
388
|
template: `
|
|
278
389
|
|
|
279
390
|
<p-inputGroup class="w-full">
|
|
280
391
|
<!-- [inputStyle]="{'border-left':'0'}" -->
|
|
281
392
|
@if (mode !== 'time') {
|
|
393
|
+
<!-- [(ngModel)]="dateControl.value" -->
|
|
282
394
|
<p-datepicker
|
|
283
395
|
#datepickerComp
|
|
284
|
-
[(ngModel)]="dateControl.value"
|
|
285
396
|
[formControl]="dateControl"
|
|
286
|
-
|
|
287
|
-
|
|
397
|
+
dateFormat="dd-mm-yy"
|
|
398
|
+
dataType="string"
|
|
399
|
+
placeholder="DD-MM-YYYY"
|
|
288
400
|
[showIcon]="false"
|
|
289
401
|
inputId="buttondisplay"
|
|
290
402
|
[showOnFocus]="true"
|
|
@@ -294,8 +406,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
294
406
|
dropdownMode="current"
|
|
295
407
|
[formlyAttributes]="field"
|
|
296
408
|
[disabled]="!!props.disabled"
|
|
297
|
-
(onSelect)="onDateChange()"
|
|
409
|
+
(onSelect)="onDateChange(true)"
|
|
410
|
+
(onInput)="onDateChange(true)"
|
|
298
411
|
></p-datepicker>
|
|
412
|
+
<!-- (onInput)="autoFixDate($event)" -->
|
|
413
|
+
|
|
299
414
|
}
|
|
300
415
|
|
|
301
416
|
@if (mode !== 'date') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-datepicker.mjs","sources":["../tmp-esm2022/datepicker/lib/datepicker-module.js","../tmp-esm2022/datepicker/lib/datepicker.type.js","../tmp-esm2022/datepicker/lib/datepicker.config.js","../tmp-esm2022/datepicker/lib/datepicker.module.js","../tmp-esm2022/datepicker/elite.framework-ng.ui.core-datepicker.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DatepickerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixZQUZqQixZQUFZO3dHQUVYLGdCQUFnQixZQUZqQixZQUFZOzsyRkFFWCxnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlck1vZHVsZSB7fVxuIl19","import { Component, ViewChild } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DatePicker, DatePickerModule } from 'primeng/datepicker';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputGroupModule } from 'primeng/inputgroup';\nimport { InputGroupAddonModule } from 'primeng/inputgroupaddon';\nimport { SelectModule } from 'primeng/select';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"primeng/datepicker\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/inputtext\";\nimport * as i6 from \"primeng/inputgroup\";\nimport * as i7 from \"primeng/inputgroupaddon\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class FormlyFieldDatepicker extends FieldType {\n datepickerComp;\n dialogVisible = false;\n get mode() {\n return this.props['mode'] || 'date';\n }\n dateControl = new FormControl(null);\n timeControl = new FormControl(null);\n ampmControl = new FormControl('AM');\n get displayValue() {\n const datePart = this.dateControl.value ? this.dateControl.value.toLocaleDateString() : '';\n const timePart = this.timeControl.value && this.mode !== 'date'\n ? `${this.timeControl.value} ${this.ampmControl.value}`\n : '';\n if (this.mode === 'date')\n return datePart;\n if (this.mode === 'time')\n return timePart;\n if (this.mode === 'datetime')\n return datePart && timePart ? `${datePart} ${timePart}` : datePart || timePart || '';\n return '';\n }\n ngOnInit() {\n this.setInitialValue(this.formControl.value);\n this.formControl.valueChanges.subscribe((value) => {\n this.setInitialValue(value);\n });\n }\n setInitialValue(value) {\n if (!value)\n return;\n if (this.mode !== 'time') {\n // parse date part\n const dateStr = value.split('T')[0];\n const dt = new Date(dateStr);\n if (!isNaN(dt.getTime()))\n this.dateControl.setValue(dt, { emitEvent: false });\n }\n if (this.mode !== 'date') {\n // parse time part\n let timeStr = '';\n if (this.mode === 'time') {\n timeStr = value;\n }\n else {\n const tPart = value.split('T')[1];\n if (tPart)\n timeStr = tPart.substring(0, 5); // hh:mm\n }\n if (timeStr) {\n const [hourStr, minuteStr] = timeStr.split(':');\n let hours = parseInt(hourStr ?? '12', 10);\n const minutes = parseInt(minuteStr ?? '0', 10);\n const ampm = hours >= 12 ? 'PM' : 'AM';\n hours = hours % 12 || 12;\n this.timeControl.setValue(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`, { emitEvent: false });\n this.ampmControl.setValue(ampm, { emitEvent: false });\n }\n }\n }\n openDialog() {\n this.dialogVisible = true;\n }\n saveDialog() {\n this.updateModel();\n this.dialogVisible = false;\n }\n onDateChange() {\n this.updateModel();\n }\n onTimeInput(event) {\n if (this.mode === 'date')\n return;\n let input = event.target.value;\n input = input.replace(/\\D/g, '');\n if (input.length > 2)\n input = input.slice(0, 2) + ':' + input.slice(2, 4);\n input = input.slice(0, 5);\n this.timeControl.setValue(input, { emitEvent: false });\n }\n onTimeChange() {\n if (this.mode === 'date')\n return;\n const value = this.timeControl.value;\n if (!value)\n return;\n let [hourStr, minuteStr] = value.split(':');\n let hours = parseInt(hourStr ?? '12', 10);\n let minutes = parseInt(minuteStr ?? '0', 10);\n if (isNaN(hours) || hours < 1)\n hours = 1;\n if (hours > 12)\n hours = 12;\n if (isNaN(minutes) || minutes < 0)\n minutes = 0;\n if (minutes > 59)\n minutes = 59;\n this.timeControl.setValue(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`);\n this.updateModel();\n }\n toggleAmPm() {\n this.ampmControl.setValue(this.ampmControl.value === 'AM' ? 'PM' : 'AM');\n this.updateModel();\n }\n updateModel() {\n const dateVal = this.dateControl.value;\n const timeVal = this.timeControl.value;\n const ampm = this.ampmControl.value ?? 'AM';\n if (this.mode === 'date') {\n if (dateVal) {\n const val = `${dateVal.getFullYear()}-${(dateVal.getMonth() + 1).toString().padStart(2, '0')}-${dateVal.getDate().toString().padStart(2, '0')}`;\n this.formControl.setValue(val);\n }\n }\n else if (this.mode === 'time') {\n if (timeVal)\n this.formControl.setValue(`${timeVal} ${ampm}`);\n }\n else if (this.mode === 'datetime') {\n if (dateVal && timeVal) {\n let [hoursStr, minutesStr] = timeVal.split(':');\n let hours = parseInt(hoursStr ?? '12', 10);\n const minutes = parseInt(minutesStr ?? '0', 10);\n if (ampm === 'PM' && hours < 12)\n hours += 12;\n if (ampm === 'AM' && hours === 12)\n hours = 0;\n const dt = new Date(dateVal);\n dt.setHours(hours, minutes, 0, 0);\n const val = `${dt.getFullYear()}-${(dt.getMonth() + 1).toString().padStart(2, '0')}-${dt.getDate().toString().padStart(2, '0')}T${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:00`;\n this.formControl.setValue(val);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldDatepicker, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: FormlyFieldDatepicker, isStandalone: true, selector: \"formly-field-primeng-datepicker\", viewQueries: [{ propertyName: \"datepickerComp\", first: true, predicate: [\"datepickerComp\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n\n <p-inputGroup class=\"w-full\">\n <!-- [inputStyle]=\"{'border-left':'0'}\" -->\n @if (mode !== 'time') {\n <p-datepicker\n #datepickerComp\n [(ngModel)]=\"dateControl.value\"\n [formControl]=\"dateControl\"\n dateFormat=\"yy-mm-dd\"\n placeholder=\"YYYY-MM-DD\"\n [showIcon]=\"false\"\n inputId=\"buttondisplay\"\n [showOnFocus]=\"true\"\n appendTo=\"body\"\n class=\"w-full rounded-none\"\n inputStyleClass=\"rtl:border-r-0 ltr:border-l-0\"\n dropdownMode=\"current\"\n [formlyAttributes]=\"field\"\n [disabled]=\"!!props.disabled\"\n (onSelect)=\"onDateChange()\"\n ></p-datepicker>\n }\n\n @if (mode !== 'date') {\n <input\n pInputText\n type=\"text\"\n placeholder=\"00:00\"\n maxlength=\"5\"\n [formControl]=\"timeControl\"\n (input)=\"onTimeInput($event)\"\n (blur)=\"onTimeChange()\"\n class=\"w-20\"\n [ngStyle]=\"{\n 'border-radius': mode == 'time' ? '':'0px',\n 'width': '53px !important',\n 'padding-left': mode == 'time' ? '':'2px',\n 'padding-right': mode == 'time' ? '':'2px',\n 'border-left':mode == 'time' ? '': '0px',\n 'border-right': mode == 'time' ? '': '0px'\n }\"\n [classList]=\"mode == 'time' ? 'p-autocomplete-input p-component p-inputtext' : ''\"\n />\n\n <p-inputGroupAddon [style]=\"{'padding': 'initial'}\">\n <select\n (change)=\"toggleAmPm()\"\n [disabled]=\"!!props.disabled\"\n style=\" padding-top: 0.4rem;\n padding-bottom: 0.5rem; padding-left: 0.5rem;\n padding-right: 0.5rem;\n background: var(--p-button-secondary-background);\n \"\n class=\" pr-8 bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed appearance-none\"\n >\n <option value=\"AM\" [selected]=\"ampmControl.value === 'AM'\">{{'AM' | translate}}</option>\n <option value=\"PM\" [selected]=\"ampmControl.value === 'PM'\">{{'PM' | translate}}</option>\n </select>\n </p-inputGroupAddon>\n }\n @if (mode == 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-clock\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n @if (mode !== 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-calendar\"\n (click)=\"datepickerComp.toggle()\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n</p-inputGroup>\n\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i1.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: [\"maxlength\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DatePickerModule }, { kind: \"component\", type: i3.DatePicker, selector: \"p-datePicker, p-datepicker, p-date-picker\", inputs: [\"iconDisplay\", \"styleClass\", \"inputStyle\", \"inputId\", \"inputStyleClass\", \"placeholder\", \"ariaLabelledBy\", \"ariaLabel\", \"iconAriaLabel\", \"dateFormat\", \"multipleSeparator\", \"rangeSeparator\", \"inline\", \"showOtherMonths\", \"selectOtherMonths\", \"showIcon\", \"icon\", \"readonlyInput\", \"shortYearCutoff\", \"hourFormat\", \"timeOnly\", \"stepHour\", \"stepMinute\", \"stepSecond\", \"showSeconds\", \"showOnFocus\", \"showWeek\", \"startWeekFromFirstDayOfYear\", \"showClear\", \"dataType\", \"selectionMode\", \"maxDateCount\", \"showButtonBar\", \"todayButtonStyleClass\", \"clearButtonStyleClass\", \"autofocus\", \"autoZIndex\", \"baseZIndex\", \"panelStyleClass\", \"panelStyle\", \"keepInvalid\", \"hideOnDateTimeSelect\", \"touchUI\", \"timeSeparator\", \"focusTrap\", \"showTransitionOptions\", \"hideTransitionOptions\", \"tabindex\", \"minDate\", \"maxDate\", \"disabledDates\", \"disabledDays\", \"showTime\", \"responsiveOptions\", \"numberOfMonths\", \"firstDayOfWeek\", \"view\", \"defaultDate\", \"appendTo\"], outputs: [\"onFocus\", \"onBlur\", \"onClose\", \"onSelect\", \"onClear\", \"onInput\", \"onTodayClick\", \"onClearClick\", \"onMonthChange\", \"onYearChange\", \"onClickOutside\", \"onShow\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: InputTextModule }, { kind: \"directive\", type: i5.InputText, selector: \"[pInputText]\", inputs: [\"pSize\", \"variant\", \"fluid\", \"invalid\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: InputGroupModule }, { kind: \"component\", type: i6.InputGroup, selector: \"p-inputgroup, p-inputGroup, p-input-group\", inputs: [\"styleClass\"] }, { kind: \"ngmodule\", type: InputGroupAddonModule }, { kind: \"component\", type: i7.InputGroupAddon, selector: \"p-inputgroup-addon, p-inputGroupAddon\", inputs: [\"style\", \"styleClass\"] }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: SelectModule }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldDatepicker, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-primeng-datepicker',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n ButtonModule,\n InputTextModule,\n DialogModule,\n TranslateModule,\n InputGroupModule,\n InputGroupAddonModule,\n FormlyAttributes,\n SelectModule\n ],\n template: `\n\n <p-inputGroup class=\"w-full\">\n <!-- [inputStyle]=\"{'border-left':'0'}\" -->\n @if (mode !== 'time') {\n <p-datepicker\n #datepickerComp\n [(ngModel)]=\"dateControl.value\"\n [formControl]=\"dateControl\"\n dateFormat=\"yy-mm-dd\"\n placeholder=\"YYYY-MM-DD\"\n [showIcon]=\"false\"\n inputId=\"buttondisplay\"\n [showOnFocus]=\"true\"\n appendTo=\"body\"\n class=\"w-full rounded-none\"\n inputStyleClass=\"rtl:border-r-0 ltr:border-l-0\"\n dropdownMode=\"current\"\n [formlyAttributes]=\"field\"\n [disabled]=\"!!props.disabled\"\n (onSelect)=\"onDateChange()\"\n ></p-datepicker>\n }\n\n @if (mode !== 'date') {\n <input\n pInputText\n type=\"text\"\n placeholder=\"00:00\"\n maxlength=\"5\"\n [formControl]=\"timeControl\"\n (input)=\"onTimeInput($event)\"\n (blur)=\"onTimeChange()\"\n class=\"w-20\"\n [ngStyle]=\"{\n 'border-radius': mode == 'time' ? '':'0px',\n 'width': '53px !important',\n 'padding-left': mode == 'time' ? '':'2px',\n 'padding-right': mode == 'time' ? '':'2px',\n 'border-left':mode == 'time' ? '': '0px',\n 'border-right': mode == 'time' ? '': '0px'\n }\"\n [classList]=\"mode == 'time' ? 'p-autocomplete-input p-component p-inputtext' : ''\"\n />\n\n <p-inputGroupAddon [style]=\"{'padding': 'initial'}\">\n <select\n (change)=\"toggleAmPm()\"\n [disabled]=\"!!props.disabled\"\n style=\" padding-top: 0.4rem;\n padding-bottom: 0.5rem; padding-left: 0.5rem;\n padding-right: 0.5rem;\n background: var(--p-button-secondary-background);\n \"\n class=\" pr-8 bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed appearance-none\"\n >\n <option value=\"AM\" [selected]=\"ampmControl.value === 'AM'\">{{'AM' | translate}}</option>\n <option value=\"PM\" [selected]=\"ampmControl.value === 'PM'\">{{'PM' | translate}}</option>\n </select>\n </p-inputGroupAddon>\n }\n @if (mode == 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-clock\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n @if (mode !== 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-calendar\"\n (click)=\"datepickerComp.toggle()\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n</p-inputGroup>\n\n `,\n }]\n }], propDecorators: { datepickerComp: [{\n type: ViewChild,\n args: ['datepickerComp']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2RhdGVwaWNrZXIvc3JjL2xpYi9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBNEc5QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsU0FBUztJQUNwQixjQUFjLENBQWU7SUFDM0QsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUVyQixJQUFJLElBQUk7UUFDUCxPQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFrQyxJQUFJLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFjLElBQUksQ0FBQyxDQUFDO0lBQ2pELFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxDQUFDLENBQUM7SUFDbkQsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFjLElBQUksQ0FBQyxDQUFDO0lBRWpELElBQUksWUFBWTtRQUNkLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0YsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQzVDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3ZELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFVCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUFFLE9BQU8sUUFBUSxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVU7WUFBRSxPQUFPLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUVuSCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFvQjtRQUMxQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLGtCQUFrQjtZQUNsQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsa0JBQWtCO1lBQ2xCLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDbEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksS0FBSztvQkFBRSxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO1lBQ3RELENBQUM7WUFFRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLElBQUksR0FBZ0IsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BELEtBQUssR0FBRyxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQy9ILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVk7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU07WUFBRSxPQUFPO1FBQ2pDLElBQUksS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUNyRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQUUsT0FBTztRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxTQUFTLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDO1lBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQztZQUFFLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDL0MsSUFBSSxPQUFPLEdBQUcsRUFBRTtZQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFNUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osTUFBTSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNoSixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxJQUFJLE9BQU87Z0JBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3BDLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hELElBQUksS0FBSyxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFaEQsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFO29CQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzdDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtvQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUU3QyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFFbEMsTUFBTSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUNoTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7dUdBMUlVLHFCQUFxQjsyRkFBckIscUJBQXFCLG9PQXRGdEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9GVCwyREFqR0MsV0FBVyxzd0JBQ1gsWUFBWSxtSEFDWixtQkFBbUIsaU5BQ25CLGdCQUFnQiwydENBQ2hCLFlBQVksaWJBQ1osZUFBZSxxSkFDZixZQUFZLDhCQUNaLGVBQWUsOEJBQ2YsZ0JBQWdCLHlKQUNoQixxQkFBcUIsb0tBQ3JCLGdCQUFnQixrR0FDaEIsWUFBWTs7MkZBd0ZILHFCQUFxQjtrQkF2R2pDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztvQkFDM0MsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsWUFBWTtxQkFDZjtvQkFDQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9GVDtpQkFDRjs4QkFFK0IsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlBdHRyaWJ1dGVzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciwgRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElucHV0R3JvdXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0Z3JvdXAnO1xuaW1wb3J0IHsgSW5wdXRHcm91cEFkZG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dGdyb3VwYWRkb24nO1xuaW1wb3J0IHsgU2VsZWN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zZWxlY3QnO1xuXG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktZmllbGQtcHJpbWVuZy1kYXRlcGlja2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERhdGVQaWNrZXJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIElucHV0R3JvdXBNb2R1bGUsXG4gICAgSW5wdXRHcm91cEFkZG9uTW9kdWxlLFxuICAgIEZvcm1seUF0dHJpYnV0ZXMsXG4gICAgU2VsZWN0TW9kdWxlXG5dLFxuICB0ZW1wbGF0ZTogYFxuXG4gIDxwLWlucHV0R3JvdXAgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8IS0tIFtpbnB1dFN0eWxlXT1cInsnYm9yZGVyLWxlZnQnOicwJ31cIiAtLT5cbiAgICAgIEBpZiAobW9kZSAhPT0gJ3RpbWUnKSB7XG4gIDxwLWRhdGVwaWNrZXJcbiAgICAjZGF0ZXBpY2tlckNvbXBcbiAgICBbKG5nTW9kZWwpXT1cImRhdGVDb250cm9sLnZhbHVlXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZGF0ZUNvbnRyb2xcIlxuICAgIGRhdGVGb3JtYXQ9XCJ5eS1tbS1kZFwiXG4gICAgcGxhY2Vob2xkZXI9XCJZWVlZLU1NLUREXCJcbiAgICBbc2hvd0ljb25dPVwiZmFsc2VcIlxuICAgIGlucHV0SWQ9XCJidXR0b25kaXNwbGF5XCJcbiAgICBbc2hvd09uRm9jdXNdPVwidHJ1ZVwiXG4gICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICBjbGFzcz1cInctZnVsbCByb3VuZGVkLW5vbmVcIlxuICAgIGlucHV0U3R5bGVDbGFzcz1cInJ0bDpib3JkZXItci0wIGx0cjpib3JkZXItbC0wXCJcbiAgICBkcm9wZG93bk1vZGU9XCJjdXJyZW50XCJcbiAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgW2Rpc2FibGVkXT1cIiEhcHJvcHMuZGlzYWJsZWRcIlxuICAgIChvblNlbGVjdCk9XCJvbkRhdGVDaGFuZ2UoKVwiXG4gID48L3AtZGF0ZXBpY2tlcj5cbiAgICAgIH1cblxuICBAaWYgKG1vZGUgIT09ICdkYXRlJykge1xuICAgIDxpbnB1dFxuICAgICAgcElucHV0VGV4dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgcGxhY2Vob2xkZXI9XCIwMDowMFwiXG4gICAgICBtYXhsZW5ndGg9XCI1XCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJ0aW1lQ29udHJvbFwiXG4gICAgICAoaW5wdXQpPVwib25UaW1lSW5wdXQoJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJvblRpbWVDaGFuZ2UoKVwiXG4gICAgICBjbGFzcz1cInctMjBcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICdib3JkZXItcmFkaXVzJzogbW9kZSA9PSAndGltZScgPyAnJzonMHB4JyxcbiAgICAnd2lkdGgnOiAnNTNweCAhaW1wb3J0YW50JyxcbiAgICAncGFkZGluZy1sZWZ0JzogbW9kZSA9PSAndGltZScgPyAnJzonMnB4JyxcbiAgICAncGFkZGluZy1yaWdodCc6IG1vZGUgPT0gJ3RpbWUnID8gJyc6JzJweCcsXG4gICAgJ2JvcmRlci1sZWZ0Jzptb2RlID09ICd0aW1lJyA/ICcnOiAnMHB4JyxcbiAgICAnYm9yZGVyLXJpZ2h0JzogbW9kZSA9PSAndGltZScgPyAnJzogJzBweCdcbiAgfVwiXG4gIFtjbGFzc0xpc3RdPVwibW9kZSA9PSAndGltZScgPyAncC1hdXRvY29tcGxldGUtaW5wdXQgcC1jb21wb25lbnQgcC1pbnB1dHRleHQnIDogJydcIlxuICAgIC8+XG5cbiAgICA8cC1pbnB1dEdyb3VwQWRkb24gW3N0eWxlXT1cInsncGFkZGluZyc6ICdpbml0aWFsJ31cIj5cbiAgICAgPHNlbGVjdFxuICAgIChjaGFuZ2UpPVwidG9nZ2xlQW1QbSgpXCJcbiAgICBbZGlzYWJsZWRdPVwiISFwcm9wcy5kaXNhYmxlZFwiXG4gICAgc3R5bGU9XCIgICAgICAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXAtYnV0dG9uLXNlY29uZGFyeS1iYWNrZ3JvdW5kKTtcbiAgICBcIlxuICAgIGNsYXNzPVwiICBwci04ICBiZy13aGl0ZSB0ZXh0LWdyYXktNzAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1ibHVlLTUwMCBmb2N1czpib3JkZXItdHJhbnNwYXJlbnQgZGlzYWJsZWQ6b3BhY2l0eS01MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgYXBwZWFyYW5jZS1ub25lXCJcbiAgPlxuICAgIDxvcHRpb24gdmFsdWU9XCJBTVwiIFtzZWxlY3RlZF09XCJhbXBtQ29udHJvbC52YWx1ZSA9PT0gJ0FNJ1wiPnt7J0FNJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XG4gICAgPG9wdGlvbiB2YWx1ZT1cIlBNXCIgW3NlbGVjdGVkXT1cImFtcG1Db250cm9sLnZhbHVlID09PSAnUE0nXCI+e3snUE0nIHwgdHJhbnNsYXRlfX08L29wdGlvbj5cbiAgPC9zZWxlY3Q+XG4gICAgPC9wLWlucHV0R3JvdXBBZGRvbj5cbiAgfVxuICAgQGlmIChtb2RlID09ICd0aW1lJykge1xuICA8cC1pbnB1dEdyb3VwQWRkb24+XG4gICAgPHAtYnV0dG9uXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhIXByb3BzLmRpc2FibGVkXCJcbiAgICAgIGljb249XCJwaSBwaS1jbG9ja1wiXG4gICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxuICAgIC8+XG4gIDwvcC1pbnB1dEdyb3VwQWRkb24+XG59XG4gQGlmIChtb2RlICE9PSAndGltZScpIHtcbiAgPHAtaW5wdXRHcm91cEFkZG9uPlxuICAgIDxwLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbZGlzYWJsZWRdPVwiISFwcm9wcy5kaXNhYmxlZFwiXG4gICAgICBpY29uPVwicGkgcGktY2FsZW5kYXJcIlxuICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXJDb21wLnRvZ2dsZSgpXCJcbiAgICAgIHNldmVyaXR5PVwicHJpbWFyeVwiXG4gICAgLz5cbiAgPC9wLWlucHV0R3JvdXBBZGRvbj5cbn1cbjwvcC1pbnB1dEdyb3VwPlxuXG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkRGF0ZXBpY2tlciBleHRlbmRzIEZpZWxkVHlwZSB7XG4gICBAVmlld0NoaWxkKCdkYXRlcGlja2VyQ29tcCcpIGRhdGVwaWNrZXJDb21wITogRGF0ZVBpY2tlciA7XG4gIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcblxuICAgZ2V0IG1vZGUoKTogJ2RhdGUnIHwgJ3RpbWUnIHwgJ2RhdGV0aW1lJyB7XG4gICAgcmV0dXJuICh0aGlzLnByb3BzWydtb2RlJ10gYXMgJ2RhdGUnIHwgJ3RpbWUnIHwgJ2RhdGV0aW1lJykgfHwgJ2RhdGUnO1xuICB9XG5cbiAgZGF0ZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpO1xuICB0aW1lQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgYW1wbUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8J0FNJyB8ICdQTSc+KCdBTScpO1xuXG4gIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgY29uc3QgZGF0ZVBhcnQgPSB0aGlzLmRhdGVDb250cm9sLnZhbHVlID8gdGhpcy5kYXRlQ29udHJvbC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6ICcnO1xuICAgIGNvbnN0IHRpbWVQYXJ0ID1cbiAgICAgIHRoaXMudGltZUNvbnRyb2wudmFsdWUgJiYgdGhpcy5tb2RlICE9PSAnZGF0ZSdcbiAgICAgICAgPyBgJHt0aGlzLnRpbWVDb250cm9sLnZhbHVlfSAke3RoaXMuYW1wbUNvbnRyb2wudmFsdWV9YFxuICAgICAgICA6ICcnO1xuXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGUnKSByZXR1cm4gZGF0ZVBhcnQ7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3RpbWUnKSByZXR1cm4gdGltZVBhcnQ7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGV0aW1lJykgcmV0dXJuIGRhdGVQYXJ0ICYmIHRpbWVQYXJ0ID8gYCR7ZGF0ZVBhcnR9ICR7dGltZVBhcnR9YCA6IGRhdGVQYXJ0IHx8IHRpbWVQYXJ0IHx8ICcnO1xuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRJbml0aWFsVmFsdWUodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIGlmICh0aGlzLm1vZGUgIT09ICd0aW1lJykge1xuICAgICAgLy8gcGFyc2UgZGF0ZSBwYXJ0XG4gICAgICBjb25zdCBkYXRlU3RyID0gdmFsdWUuc3BsaXQoJ1QnKVswXTtcbiAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgICBpZiAoIWlzTmFOKGR0LmdldFRpbWUoKSkpIHRoaXMuZGF0ZUNvbnRyb2wuc2V0VmFsdWUoZHQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tb2RlICE9PSAnZGF0ZScpIHtcbiAgICAgIC8vIHBhcnNlIHRpbWUgcGFydFxuICAgICAgbGV0IHRpbWVTdHIgPSAnJztcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICd0aW1lJykge1xuICAgICAgICB0aW1lU3RyID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0UGFydCA9IHZhbHVlLnNwbGl0KCdUJylbMV07XG4gICAgICAgIGlmICh0UGFydCkgdGltZVN0ciA9IHRQYXJ0LnN1YnN0cmluZygwLCA1KTsgLy8gaGg6bW1cbiAgICAgIH1cblxuICAgICAgaWYgKHRpbWVTdHIpIHtcbiAgICAgICAgY29uc3QgW2hvdXJTdHIsIG1pbnV0ZVN0cl0gPSB0aW1lU3RyLnNwbGl0KCc6Jyk7XG4gICAgICAgIGxldCBob3VycyA9IHBhcnNlSW50KGhvdXJTdHIgPz8gJzEyJywgMTApO1xuICAgICAgICBjb25zdCBtaW51dGVzID0gcGFyc2VJbnQobWludXRlU3RyID8/ICcwJywgMTApO1xuICAgICAgICBjb25zdCBhbXBtOiAnQU0nIHwgJ1BNJyA9IGhvdXJzID49IDEyID8gJ1BNJyA6ICdBTSc7XG4gICAgICAgIGhvdXJzID0gaG91cnMgJSAxMiB8fCAxMjtcbiAgICAgICAgdGhpcy50aW1lQ29udHJvbC5zZXRWYWx1ZShgJHtob3Vycy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7bWludXRlcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmFtcG1Db250cm9sLnNldFZhbHVlKGFtcG0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvcGVuRGlhbG9nKCkge1xuICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBzYXZlRGlhbG9nKCkge1xuICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRGF0ZUNoYW5nZSgpIHtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gIH1cblxuICBvblRpbWVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZGF0ZScpIHJldHVybjtcbiAgICBsZXQgaW5wdXQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICBpZiAoaW5wdXQubGVuZ3RoID4gMikgaW5wdXQgPSBpbnB1dC5zbGljZSgwLCAyKSArICc6JyArIGlucHV0LnNsaWNlKDIsIDQpO1xuICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMCwgNSk7XG4gICAgdGhpcy50aW1lQ29udHJvbC5zZXRWYWx1ZShpbnB1dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdkYXRlJykgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50aW1lQ29udHJvbC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICBsZXQgW2hvdXJTdHIsIG1pbnV0ZVN0cl0gPSB2YWx1ZS5zcGxpdCgnOicpO1xuICAgIGxldCBob3VycyA9IHBhcnNlSW50KGhvdXJTdHIgPz8gJzEyJywgMTApO1xuICAgIGxldCBtaW51dGVzID0gcGFyc2VJbnQobWludXRlU3RyID8/ICcwJywgMTApO1xuICAgIGlmIChpc05hTihob3VycykgfHwgaG91cnMgPCAxKSBob3VycyA9IDE7XG4gICAgaWYgKGhvdXJzID4gMTIpIGhvdXJzID0gMTI7XG4gICAgaWYgKGlzTmFOKG1pbnV0ZXMpIHx8IG1pbnV0ZXMgPCAwKSBtaW51dGVzID0gMDtcbiAgICBpZiAobWludXRlcyA+IDU5KSBtaW51dGVzID0gNTk7XG5cbiAgICB0aGlzLnRpbWVDb250cm9sLnNldFZhbHVlKGAke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gKTtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gIH1cblxuICB0b2dnbGVBbVBtKCkge1xuICAgIHRoaXMuYW1wbUNvbnRyb2wuc2V0VmFsdWUodGhpcy5hbXBtQ29udHJvbC52YWx1ZSA9PT0gJ0FNJyA/ICdQTScgOiAnQU0nKTtcbiAgICAgIHRoaXMudXBkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTW9kZWwoKSB7XG4gICAgY29uc3QgZGF0ZVZhbCA9IHRoaXMuZGF0ZUNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgdGltZVZhbCA9IHRoaXMudGltZUNvbnRyb2wudmFsdWU7XG4gICAgY29uc3QgYW1wbSA9IHRoaXMuYW1wbUNvbnRyb2wudmFsdWUgPz8gJ0FNJztcblxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdkYXRlJykge1xuICAgICAgaWYgKGRhdGVWYWwpIHtcbiAgICAgICAgY29uc3QgdmFsID0gYCR7ZGF0ZVZhbC5nZXRGdWxsWWVhcigpfS0keyhkYXRlVmFsLmdldE1vbnRoKCkgKyAxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9LSR7ZGF0ZVZhbC5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWA7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ3RpbWUnKSB7XG4gICAgICBpZiAodGltZVZhbCkgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShgJHt0aW1lVmFsfSAke2FtcG19YCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdkYXRldGltZScpIHtcbiAgICAgIGlmIChkYXRlVmFsICYmIHRpbWVWYWwpIHtcbiAgICAgICAgbGV0IFtob3Vyc1N0ciwgbWludXRlc1N0cl0gPSB0aW1lVmFsLnNwbGl0KCc6Jyk7XG4gICAgICAgIGxldCBob3VycyA9IHBhcnNlSW50KGhvdXJzU3RyID8/ICcxMicsIDEwKTtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IHBhcnNlSW50KG1pbnV0ZXNTdHIgPz8gJzAnLCAxMCk7XG5cbiAgICAgICAgaWYgKGFtcG0gPT09ICdQTScgJiYgaG91cnMgPCAxMikgaG91cnMgKz0gMTI7XG4gICAgICAgIGlmIChhbXBtID09PSAnQU0nICYmIGhvdXJzID09PSAxMikgaG91cnMgPSAwO1xuXG4gICAgICAgIGNvbnN0IGR0ID0gbmV3IERhdGUoZGF0ZVZhbCk7XG4gICAgICAgIGR0LnNldEhvdXJzKGhvdXJzLCBtaW51dGVzLCAwLCAwKTtcblxuICAgICAgICBjb25zdCB2YWwgPSBgJHtkdC5nZXRGdWxsWWVhcigpfS0keyhkdC5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfS0ke2R0LmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9VCR7ZHQuZ2V0SG91cnMoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9OiR7ZHQuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06MDBgO1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=","import { FormlyFieldDatepicker } from './datepicker.type';\nexport function withFormlyFieldDatepicker() {\n return {\n types: [\n {\n name: 'datepicker',\n component: FormlyFieldDatepicker,\n wrappers: ['form-field'],\n },\n ],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixTQUFTLEVBQUUscUJBQXFCO2dCQUNoQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDekI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGREYXRlcGlja2VyIH0gZnJvbSAnLi9kYXRlcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgQ29uZmlnT3B0aW9uIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRm9ybWx5RmllbGREYXRlcGlja2VyKCk6IENvbmZpZ09wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkRGF0ZXBpY2tlcixcbiAgICAgICAgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuIl19","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { withFormlyFieldDatepicker } from './datepicker.config';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-formly/core\";\nexport class FormlyDatepickerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, imports: [CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule, i1.FormlyModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, imports: [CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldDatepicker())] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n // declarations: [FormlyFieldDatepicker],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldDatepicker()),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBWS9FLE1BQU0sT0FBTyxzQkFBc0I7dUdBQXRCLHNCQUFzQjt3R0FBdEIsc0JBQXNCLFlBUC9CLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjt3R0FJWixzQkFBc0IsWUFQL0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLFlBQVksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQzs7MkZBR3pDLHNCQUFzQjtrQkFWbEMsUUFBUTttQkFBQztvQkFDUix5Q0FBeUM7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLFlBQVksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQztxQkFDbkQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7ICBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IHdpdGhGb3JtbHlGaWVsZERhdGVwaWNrZXIgfSBmcm9tICcuL2RhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IEZvcm1seUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLWZpZWxkJztcblxuQE5nTW9kdWxlKHtcbiAgLy8gZGVjbGFyYXRpb25zOiBbRm9ybWx5RmllbGREYXRlcGlja2VyXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERhdGVQaWNrZXJNb2R1bGUsXG4gICAgRm9ybWx5Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh3aXRoRm9ybWx5RmllbGREYXRlcGlja2VyKCkpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlEYXRlcGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGF0ZXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kYXRlcGlja2VyL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kYXRlcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACzK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACpJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACpJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACQN,MAAM,qBAAqB,SAAS,SAAS,CAAC;AACrD,IAAI,cAAc;AAClB,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM;AAC3C;AACA,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AACvC,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AACvC,IAAI,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC;AACvC,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE;AAClG,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK;AACjE,cAAc,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAClE,cAAc,EAAE;AAChB,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;AAChC,YAAY,OAAO,QAAQ;AAC3B,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;AAChC,YAAY,OAAO,QAAQ;AAC3B,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;AACpC,YAAY,OAAO,QAAQ,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG,QAAQ,IAAI,QAAQ,IAAI,EAAE;AAChG,QAAQ,OAAO,EAAE;AACjB;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AAC3D,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AACvC,SAAS,CAAC;AACV;AACA,IAAI,eAAe,CAAC,KAAK,EAAE;AAC3B,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY;AACZ,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAClC;AACA,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/C,YAAY,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;AACxC,YAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;AACpC,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACnE;AACA,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAClC;AACA,YAAY,IAAI,OAAO,GAAG,EAAE;AAC5B,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACtC,gBAAgB,OAAO,GAAG,KAAK;AAC/B;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,gBAAgB,IAAI,KAAK;AACzB,oBAAoB,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpD;AACA,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/D,gBAAgB,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE,EAAE,CAAC;AACzD,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,IAAI,GAAG,EAAE,EAAE,CAAC;AAC9D,gBAAgB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;AACtD,gBAAgB,KAAK,GAAG,KAAK,GAAG,EAAE,IAAI,EAAE;AACxC,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9I,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACrE;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI;AACjC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK;AAClC;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;AAChC,YAAY;AACZ,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AACtC,QAAQ,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACxC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAC5B,YAAY,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/D,QAAQ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC9D;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;AAChC,YAAY;AACZ,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;AAC5C,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACnD,QAAQ,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE,EAAE,CAAC;AACjD,QAAQ,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,IAAI,GAAG,EAAE,EAAE,CAAC;AACpD,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;AACrC,YAAY,KAAK,GAAG,CAAC;AACrB,QAAQ,IAAI,KAAK,GAAG,EAAE;AACtB,YAAY,KAAK,GAAG,EAAE;AACtB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;AACzC,YAAY,OAAO,GAAG,CAAC;AACvB,QAAQ,IAAI,OAAO,GAAG,EAAE;AACxB,YAAY,OAAO,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChH,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAChF,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;AAC9C,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;AAC9C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI;AACnD,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AAClC,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC/J,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C;AACA;AACA,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;AACvC,YAAY,IAAI,OAAO;AACvB,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/D;AACA,aAAa,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE;AAC3C,YAAY,IAAI,OAAO,IAAI,OAAO,EAAE;AACpC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAC/D,gBAAgB,IAAI,KAAK,GAAG,QAAQ,CAAC,QAAQ,IAAI,IAAI,EAAE,EAAE,CAAC;AAC1D,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,GAAG,EAAE,EAAE,CAAC;AAC/D,gBAAgB,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,EAAE;AAC/C,oBAAoB,KAAK,IAAI,EAAE;AAC/B,gBAAgB,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;AACjD,oBAAoB,KAAK,GAAG,CAAC;AAC7B,gBAAgB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC;AAC5C,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACjD,gBAAgB,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;AAC/O,gBAAgB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;AAC9C;AACA;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACjL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;;AAEpV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,4EAA4E,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,2CAA2C,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,6BAA6B,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,2CAA2C,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,uCAAuC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACxnH;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,iCAAiC;AAC/D,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,gBAAgB;AACxC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,gBAAgB;AACxC,wBAAwB,qBAAqB;AAC7C,wBAAwB,gBAAgB;AACxC,wBAAwB;AACxB,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,CAAC;AACH,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC;AAC/C,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,gBAAgB;AACvC,aAAa,CAAC,EAAE,EAAE,CAAC;;AC7VZ,SAAS,yBAAyB,GAAG;AAC5C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE;AACf,YAAY;AACZ,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,SAAS,EAAE,qBAAqB;AAChD,gBAAgB,QAAQ,EAAE,CAAC,YAAY,CAAC;AACxC,aAAa;AACb,SAAS;AACT,KAAK;AACL;;ACFO,MAAM,sBAAsB,CAAC;AACpC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY;AACtJ,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,YAAY,qBAAqB,EAAEA,IAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtD,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY;AACtJ,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,YAAY,qBAAqB;AACjC,YAAY,YAAY,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC;AAClE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB;AACA,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,gBAAgB;AACxC,wBAAwB,qBAAqB;AAC7C,wBAAwB,YAAY,CAAC,QAAQ,CAAC,yBAAyB,EAAE,CAAC;AAC1E,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACjCb;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-datepicker.mjs","sources":["../tmp-esm2022/datepicker/lib/datepicker-module.js","../tmp-esm2022/datepicker/lib/datepicker.type.js","../tmp-esm2022/datepicker/lib/datepicker.config.js","../tmp-esm2022/datepicker/lib/datepicker.module.js","../tmp-esm2022/datepicker/elite.framework-ng.ui.core-datepicker.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DatepickerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixZQUZqQixZQUFZO3dHQUVYLGdCQUFnQixZQUZqQixZQUFZOzsyRkFFWCxnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlck1vZHVsZSB7fVxuIl19","import { ChangeDetectorRef, Component, inject, ViewChild } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DatePicker, DatePickerModule } from 'primeng/datepicker';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { InputGroupModule } from 'primeng/inputgroup';\nimport { InputGroupAddonModule } from 'primeng/inputgroupaddon';\nimport { SelectModule } from 'primeng/select';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"primeng/datepicker\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/inputtext\";\nimport * as i6 from \"primeng/inputgroup\";\nimport * as i7 from \"primeng/inputgroupaddon\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class FormlyFieldDatepicker extends FieldType {\n datepickerComp;\n dialogVisible = false;\n cdr = inject(ChangeDetectorRef);\n get mode() {\n return this.props['mode'] || 'date';\n }\n dateControl = new FormControl(null);\n timeControl = new FormControl(null);\n ampmControl = new FormControl('AM');\n get displayValue() {\n const datePart = this.dateControl.value ? this.dateControl.value.toLocaleDateString() : '';\n const timePart = this.timeControl.value && this.mode !== 'date'\n ? `${this.timeControl.value} ${this.ampmControl.value}`\n : '';\n if (this.mode === 'date')\n return datePart;\n if (this.mode === 'time')\n return timePart;\n if (this.mode === 'datetime')\n return datePart && timePart ? `${datePart} ${timePart}` : datePart || timePart || '';\n return '';\n }\n ngOnInit() {\n this.setInitialValue(this.formControl.value);\n this.formControl.valueChanges.subscribe((value) => {\n this.setInitialValue(value);\n });\n }\n setInitialValue(value) {\n if (!value)\n return;\n if (this.mode !== 'time') {\n // parse date part - handle both dd-MM-yyyy and yyyy-MM-dd formats\n const dateStr = value.split('T')[0];\n let dt;\n // Check the format of the date string\n if (dateStr.includes('-')) {\n const parts = dateStr.split('-');\n if (parts[0].length === 4) {\n // Format is yyyy-MM-dd (ISO format)\n dt = new Date(dateStr);\n }\n else {\n // Format is dd-MM-yyyy\n const [day, month, year] = parts;\n // Convert to ISO format (yyyy-MM-dd) for Date constructor\n dt = new Date(`${year}-${month}-${day}`);\n }\n }\n else {\n dt = new Date(dateStr);\n }\n if (!isNaN(dt.getTime())) {\n this.dateControl.setValue(dt, { emitEvent: false });\n }\n else {\n console.warn('Invalid date format:', dateStr);\n }\n }\n if (this.mode !== 'date') {\n // parse time part\n let timeStr = '';\n if (this.mode === 'time') {\n timeStr = value;\n }\n else {\n const tPart = value.split('T')[1];\n if (tPart)\n timeStr = tPart.substring(0, 5); // hh:mm\n }\n if (timeStr) {\n const [hourStr, minuteStr] = timeStr.split(':');\n let hours = parseInt(hourStr ?? '12', 10);\n const minutes = parseInt(minuteStr ?? '0', 10);\n const ampm = hours >= 12 ? 'PM' : 'AM';\n hours = hours % 12 || 12;\n this.timeControl.setValue(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`, { emitEvent: false });\n this.ampmControl.setValue(ampm, { emitEvent: false });\n }\n }\n }\n openDialog() {\n this.dialogVisible = true;\n }\n saveDialog() {\n this.updateModel(false);\n this.dialogVisible = false;\n }\n autoFixDate(e) {\n let v = e.target.value.replace(/\\D/g, '');\n if (v.length === 8) {\n const dd = v.substring(0, 2);\n const mm = v.substring(2, 4);\n const yyyy = v.substring(4, 8);\n const formatted = `${dd}-${mm}-${yyyy}`;\n this.dateControl.setValue(formatted, { emitEvent: true });\n }\n }\n onDateChange(UIInput) {\n this.updateModel(UIInput);\n }\n onTimeInput(event) {\n if (this.mode === 'date')\n return;\n let input = event.target.value;\n input = input.replace(/\\D/g, '');\n if (input.length > 2)\n input = input.slice(0, 2) + ':' + input.slice(2, 4);\n input = input.slice(0, 5);\n this.timeControl.setValue(input, { emitEvent: false });\n }\n onTimeChange() {\n if (this.mode === 'date')\n return;\n const value = this.timeControl.value;\n if (!value)\n return;\n let [hourStr, minuteStr] = value.split(':');\n let hours = parseInt(hourStr ?? '12', 10);\n let minutes = parseInt(minuteStr ?? '0', 10);\n if (isNaN(hours) || hours < 1)\n hours = 1;\n if (hours > 12)\n hours = 12;\n if (isNaN(minutes) || minutes < 0)\n minutes = 0;\n if (minutes > 59)\n minutes = 59;\n this.timeControl.setValue(`${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`);\n this.updateModel(false);\n }\n toggleAmPm() {\n this.ampmControl.setValue(this.ampmControl.value === 'AM' ? 'PM' : 'AM');\n this.updateModel(false);\n }\n updateModel(UIInput) {\n const dateVal = this.dateControl.value;\n const timeVal = this.timeControl.value;\n const ampm = this.ampmControl.value ?? 'AM';\n if (this.mode === 'date') {\n if (dateVal) {\n // Parse the date considering it might be in dd-mm-yy format\n let dt;\n if (typeof dateVal === 'string' && dateVal.includes('-')) {\n const [day, month, year] = dateVal.split('-');\n // Convert 2-digit year to 4-digit year\n const fullYear = year.length === 2 ? `20${year}` : year;\n dt = new Date(`${fullYear}-${month}-${day}`);\n }\n else {\n dt = new Date(dateVal);\n }\n // Double-check the final date is valid\n if (isNaN(dt.getTime())) {\n console.error('Invalid date created, using current date');\n dt = new Date(); // Fallback to current date\n }\n const val = `${dt.getDate().toString().padStart(2, '0')}-` +\n `${(dt.getMonth() + 1).toString().padStart(2, '0')}-` +\n `${dt.getFullYear()}`;\n this.formControl.setValue(val, { emitEvent: true });\n if (this.props.change) {\n this.props.change(this.field, { item: this.model });\n this.cdr.detectChanges();\n }\n }\n }\n else if (this.mode === 'time') {\n if (timeVal)\n this.formControl.setValue(`${timeVal} ${ampm}`, { emitEvent: true });\n if (this.props.change) {\n this.props.change(this.field, { item: this.model });\n this.cdr.detectChanges();\n }\n }\n else if (this.mode === 'datetime') {\n if (dateVal) {\n let hours = 0;\n let minutes = 0;\n if (timeVal && timeVal.trim() !== '') {\n const [h, m] = (timeVal ?? '').split(':');\n // Validate hours\n hours = parseInt(h, 10);\n if (isNaN(hours) || hours < 0 || hours > 12)\n hours = 0;\n // Validate minutes\n minutes = parseInt(m, 10);\n if (isNaN(minutes) || minutes < 0 || minutes > 59)\n minutes = 0;\n // Convert 12-hour format to 24-hour format\n if (ampm === 'PM' && hours < 12)\n hours += 12;\n if (ampm === 'AM' && hours === 12)\n hours = 0;\n }\n // Final safety check\n hours = isNaN(hours) ? 0 : Math.max(0, Math.min(23, hours));\n minutes = isNaN(minutes) ? 0 : Math.max(0, Math.min(59, minutes));\n // Parse the date considering it might be in dd-mm-yy format\n let dt;\n if (dateVal.includes('-')) {\n const [day, month, year] = dateVal.split('-');\n // Convert 2-digit year to 4-digit year\n const fullYear = year.length === 2 ? `20${year}` : year;\n dt = new Date(`${fullYear}-${month}-${day}`);\n }\n else {\n dt = new Date(dateVal);\n }\n dt.setHours(hours, minutes, 0, 0);\n // Double-check the final date is valid - if invalid, set to first hour of day\n if (isNaN(dt.getTime())) {\n console.error('Invalid date created, setting to first hour of day');\n // Create a new valid date with first hour of day\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n const val = `${now.getDate().toString().padStart(2, '0')}-` +\n `${(now.getMonth() + 1).toString().padStart(2, '0')}-` +\n `${now.getFullYear()}T` +\n `00:00:00`;\n this.formControl.setValue(val, { emitEvent: true });\n if (this.props.change) {\n this.props.change(this.field, { item: this.model });\n this.cdr.detectChanges();\n }\n return;\n }\n const val = `${dt.getDate().toString().padStart(2, '0')}-` +\n `${(dt.getMonth() + 1).toString().padStart(2, '0')}-` +\n `${dt.getFullYear()}T` +\n `${dt.getHours().toString().padStart(2, '0')}:` +\n `${dt.getMinutes().toString().padStart(2, '0')}:00`;\n this.formControl.setValue(val, { emitEvent: true });\n if (this.props.change) {\n this.props.change(this.field, { item: this.model });\n this.cdr.detectChanges();\n }\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldDatepicker, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: FormlyFieldDatepicker, isStandalone: true, selector: \"formly-field-primeng-datepicker\", viewQueries: [{ propertyName: \"datepickerComp\", first: true, predicate: [\"datepickerComp\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n\n <p-inputGroup class=\"w-full\">\n <!-- [inputStyle]=\"{'border-left':'0'}\" -->\n @if (mode !== 'time') {\n <!-- [(ngModel)]=\"dateControl.value\" -->\n <p-datepicker\n #datepickerComp\n [formControl]=\"dateControl\"\n dateFormat=\"dd-mm-yy\"\n dataType=\"string\"\n placeholder=\"DD-MM-YYYY\"\n [showIcon]=\"false\"\n inputId=\"buttondisplay\"\n [showOnFocus]=\"true\"\n appendTo=\"body\"\n class=\"w-full rounded-none\"\n inputStyleClass=\"rtl:border-r-0 ltr:border-l-0\"\n dropdownMode=\"current\"\n [formlyAttributes]=\"field\"\n [disabled]=\"!!props.disabled\"\n (onSelect)=\"onDateChange(true)\"\n (onInput)=\"onDateChange(true)\"\n ></p-datepicker>\n <!-- (onInput)=\"autoFixDate($event)\" -->\n\n }\n\n @if (mode !== 'date') {\n <input\n pInputText\n type=\"text\"\n placeholder=\"00:00\"\n maxlength=\"5\"\n [formControl]=\"timeControl\"\n (input)=\"onTimeInput($event)\"\n (blur)=\"onTimeChange()\"\n class=\"w-20\"\n [ngStyle]=\"{\n 'border-radius': mode == 'time' ? '':'0px',\n 'width': '53px !important',\n 'padding-left': mode == 'time' ? '':'2px',\n 'padding-right': mode == 'time' ? '':'2px',\n 'border-left':mode == 'time' ? '': '0px',\n 'border-right': mode == 'time' ? '': '0px'\n }\"\n [classList]=\"mode == 'time' ? 'p-autocomplete-input p-component p-inputtext' : ''\"\n />\n\n <p-inputGroupAddon [style]=\"{'padding': 'initial'}\">\n <select\n (change)=\"toggleAmPm()\"\n [disabled]=\"!!props.disabled\"\n style=\" padding-top: 0.4rem;\n padding-bottom: 0.5rem; padding-left: 0.5rem;\n padding-right: 0.5rem;\n background: var(--p-button-secondary-background);\n \"\n class=\" pr-8 bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed appearance-none\"\n >\n <option value=\"AM\" [selected]=\"ampmControl.value === 'AM'\">{{'AM' | translate}}</option>\n <option value=\"PM\" [selected]=\"ampmControl.value === 'PM'\">{{'PM' | translate}}</option>\n </select>\n </p-inputGroupAddon>\n }\n @if (mode == 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-clock\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n @if (mode !== 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-calendar\"\n (click)=\"datepickerComp.toggle()\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n</p-inputGroup>\n\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i1.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.MaxLengthValidator, selector: \"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\", inputs: [\"maxlength\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DatePickerModule }, { kind: \"component\", type: i3.DatePicker, selector: \"p-datePicker, p-datepicker, p-date-picker\", inputs: [\"iconDisplay\", \"styleClass\", \"inputStyle\", \"inputId\", \"inputStyleClass\", \"placeholder\", \"ariaLabelledBy\", \"ariaLabel\", \"iconAriaLabel\", \"dateFormat\", \"multipleSeparator\", \"rangeSeparator\", \"inline\", \"showOtherMonths\", \"selectOtherMonths\", \"showIcon\", \"icon\", \"readonlyInput\", \"shortYearCutoff\", \"hourFormat\", \"timeOnly\", \"stepHour\", \"stepMinute\", \"stepSecond\", \"showSeconds\", \"showOnFocus\", \"showWeek\", \"startWeekFromFirstDayOfYear\", \"showClear\", \"dataType\", \"selectionMode\", \"maxDateCount\", \"showButtonBar\", \"todayButtonStyleClass\", \"clearButtonStyleClass\", \"autofocus\", \"autoZIndex\", \"baseZIndex\", \"panelStyleClass\", \"panelStyle\", \"keepInvalid\", \"hideOnDateTimeSelect\", \"touchUI\", \"timeSeparator\", \"focusTrap\", \"showTransitionOptions\", \"hideTransitionOptions\", \"tabindex\", \"minDate\", \"maxDate\", \"disabledDates\", \"disabledDays\", \"showTime\", \"responsiveOptions\", \"numberOfMonths\", \"firstDayOfWeek\", \"view\", \"defaultDate\", \"appendTo\"], outputs: [\"onFocus\", \"onBlur\", \"onClose\", \"onSelect\", \"onClear\", \"onInput\", \"onTodayClick\", \"onClearClick\", \"onMonthChange\", \"onYearChange\", \"onClickOutside\", \"onShow\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: InputTextModule }, { kind: \"directive\", type: i5.InputText, selector: \"[pInputText]\", inputs: [\"pSize\", \"variant\", \"fluid\", \"invalid\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: InputGroupModule }, { kind: \"component\", type: i6.InputGroup, selector: \"p-inputgroup, p-inputGroup, p-input-group\", inputs: [\"styleClass\"] }, { kind: \"ngmodule\", type: InputGroupAddonModule }, { kind: \"component\", type: i7.InputGroupAddon, selector: \"p-inputgroup-addon, p-inputGroupAddon\", inputs: [\"style\", \"styleClass\"] }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: SelectModule }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldDatepicker, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-primeng-datepicker',\n standalone: true,\n imports: [\n FormsModule,\n CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n ButtonModule,\n InputTextModule,\n DialogModule,\n TranslateModule,\n InputGroupModule,\n InputGroupAddonModule,\n FormlyAttributes,\n SelectModule,\n ],\n template: `\n\n <p-inputGroup class=\"w-full\">\n <!-- [inputStyle]=\"{'border-left':'0'}\" -->\n @if (mode !== 'time') {\n <!-- [(ngModel)]=\"dateControl.value\" -->\n <p-datepicker\n #datepickerComp\n [formControl]=\"dateControl\"\n dateFormat=\"dd-mm-yy\"\n dataType=\"string\"\n placeholder=\"DD-MM-YYYY\"\n [showIcon]=\"false\"\n inputId=\"buttondisplay\"\n [showOnFocus]=\"true\"\n appendTo=\"body\"\n class=\"w-full rounded-none\"\n inputStyleClass=\"rtl:border-r-0 ltr:border-l-0\"\n dropdownMode=\"current\"\n [formlyAttributes]=\"field\"\n [disabled]=\"!!props.disabled\"\n (onSelect)=\"onDateChange(true)\"\n (onInput)=\"onDateChange(true)\"\n ></p-datepicker>\n <!-- (onInput)=\"autoFixDate($event)\" -->\n\n }\n\n @if (mode !== 'date') {\n <input\n pInputText\n type=\"text\"\n placeholder=\"00:00\"\n maxlength=\"5\"\n [formControl]=\"timeControl\"\n (input)=\"onTimeInput($event)\"\n (blur)=\"onTimeChange()\"\n class=\"w-20\"\n [ngStyle]=\"{\n 'border-radius': mode == 'time' ? '':'0px',\n 'width': '53px !important',\n 'padding-left': mode == 'time' ? '':'2px',\n 'padding-right': mode == 'time' ? '':'2px',\n 'border-left':mode == 'time' ? '': '0px',\n 'border-right': mode == 'time' ? '': '0px'\n }\"\n [classList]=\"mode == 'time' ? 'p-autocomplete-input p-component p-inputtext' : ''\"\n />\n\n <p-inputGroupAddon [style]=\"{'padding': 'initial'}\">\n <select\n (change)=\"toggleAmPm()\"\n [disabled]=\"!!props.disabled\"\n style=\" padding-top: 0.4rem;\n padding-bottom: 0.5rem; padding-left: 0.5rem;\n padding-right: 0.5rem;\n background: var(--p-button-secondary-background);\n \"\n class=\" pr-8 bg-white text-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent disabled:opacity-50 disabled:cursor-not-allowed appearance-none\"\n >\n <option value=\"AM\" [selected]=\"ampmControl.value === 'AM'\">{{'AM' | translate}}</option>\n <option value=\"PM\" [selected]=\"ampmControl.value === 'PM'\">{{'PM' | translate}}</option>\n </select>\n </p-inputGroupAddon>\n }\n @if (mode == 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-clock\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n @if (mode !== 'time') {\n <p-inputGroupAddon>\n <p-button\n tabindex=\"-1\"\n [disabled]=\"!!props.disabled\"\n icon=\"pi pi-calendar\"\n (click)=\"datepickerComp.toggle()\"\n severity=\"primary\"\n />\n </p-inputGroupAddon>\n}\n</p-inputGroup>\n\n `,\n }]\n }], propDecorators: { datepickerComp: [{\n type: ViewChild,\n args: ['datepickerComp']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2RhdGVwaWNrZXIvc3JjL2xpYi9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztBQWdIOUMsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQVM7SUFDcEIsY0FBYyxDQUFlO0lBQzNELGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDZCxHQUFHLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTFELElBQUks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UUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0ZUO2lCQUNGOzhCQUUrQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUF0dHJpYnV0ZXMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRlUGlja2VyLCBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IElucHV0VGV4dE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXR0ZXh0JztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXRHcm91cE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaW5wdXRncm91cCc7XG5pbXBvcnQgeyBJbnB1dEdyb3VwQWRkb25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0Z3JvdXBhZGRvbic7XG5pbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NlbGVjdCc7XG5cblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1maWVsZC1wcmltZW5nLWRhdGVwaWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGF0ZVBpY2tlck1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgSW5wdXRHcm91cE1vZHVsZSxcbiAgICBJbnB1dEdyb3VwQWRkb25Nb2R1bGUsXG4gICAgRm9ybWx5QXR0cmlidXRlcyxcbiAgICBTZWxlY3RNb2R1bGUsXG5dLFxuICB0ZW1wbGF0ZTogYFxuXG4gIDxwLWlucHV0R3JvdXAgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8IS0tIFtpbnB1dFN0eWxlXT1cInsnYm9yZGVyLWxlZnQnOicwJ31cIiAtLT5cbiAgICAgIEBpZiAobW9kZSAhPT0gJ3RpbWUnKSB7XG4gICAgICAgIDwhLS0gWyhuZ01vZGVsKV09XCJkYXRlQ29udHJvbC52YWx1ZVwiIC0tPlxuICA8cC1kYXRlcGlja2VyXG4gICAgI2RhdGVwaWNrZXJDb21wXG4gICAgW2Zvcm1Db250cm9sXT1cImRhdGVDb250cm9sXCJcbiAgICAgZGF0ZUZvcm1hdD1cImRkLW1tLXl5XCJcbiAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIlxuICAgIHBsYWNlaG9sZGVyPVwiREQtTU0tWVlZWVwiXG4gICAgW3Nob3dJY29uXT1cImZhbHNlXCJcbiAgICBpbnB1dElkPVwiYnV0dG9uZGlzcGxheVwiXG4gICAgW3Nob3dPbkZvY3VzXT1cInRydWVcIlxuICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgY2xhc3M9XCJ3LWZ1bGwgcm91bmRlZC1ub25lXCJcbiAgICBpbnB1dFN0eWxlQ2xhc3M9XCJydGw6Ym9yZGVyLXItMCBsdHI6Ym9yZGVyLWwtMFwiXG4gICAgZHJvcGRvd25Nb2RlPVwiY3VycmVudFwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkaXNhYmxlZF09XCIhIXByb3BzLmRpc2FibGVkXCJcbiAgICAob25TZWxlY3QpPVwib25EYXRlQ2hhbmdlKHRydWUpXCJcbiAgICAob25JbnB1dCk9XCJvbkRhdGVDaGFuZ2UodHJ1ZSlcIlxuICA+PC9wLWRhdGVwaWNrZXI+XG4gIDwhLS0gKG9uSW5wdXQpPVwiYXV0b0ZpeERhdGUoJGV2ZW50KVwiIC0tPlxuXG4gICAgICB9XG5cbiAgQGlmIChtb2RlICE9PSAnZGF0ZScpIHtcbiAgICA8aW5wdXRcbiAgICAgIHBJbnB1dFRleHRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIHBsYWNlaG9sZGVyPVwiMDA6MDBcIlxuICAgICAgbWF4bGVuZ3RoPVwiNVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwidGltZUNvbnRyb2xcIlxuICAgICAgKGlucHV0KT1cIm9uVGltZUlucHV0KCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25UaW1lQ2hhbmdlKClcIlxuICAgICAgY2xhc3M9XCJ3LTIwXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAnYm9yZGVyLXJhZGl1cyc6IG1vZGUgPT0gJ3RpbWUnID8gJyc6JzBweCcsXG4gICAgJ3dpZHRoJzogJzUzcHggIWltcG9ydGFudCcsXG4gICAgJ3BhZGRpbmctbGVmdCc6IG1vZGUgPT0gJ3RpbWUnID8gJyc6JzJweCcsXG4gICAgJ3BhZGRpbmctcmlnaHQnOiBtb2RlID09ICd0aW1lJyA/ICcnOicycHgnLFxuICAgICdib3JkZXItbGVmdCc6bW9kZSA9PSAndGltZScgPyAnJzogJzBweCcsXG4gICAgJ2JvcmRlci1yaWdodCc6IG1vZGUgPT0gJ3RpbWUnID8gJyc6ICcwcHgnXG4gIH1cIlxuICBbY2xhc3NMaXN0XT1cIm1vZGUgPT0gJ3RpbWUnID8gJ3AtYXV0b2NvbXBsZXRlLWlucHV0IHAtY29tcG9uZW50IHAtaW5wdXR0ZXh0JyA6ICcnXCJcbiAgICAvPlxuXG4gICAgPHAtaW5wdXRHcm91cEFkZG9uIFtzdHlsZV09XCJ7J3BhZGRpbmcnOiAnaW5pdGlhbCd9XCI+XG4gICAgIDxzZWxlY3RcbiAgICAoY2hhbmdlKT1cInRvZ2dsZUFtUG0oKVwiXG4gICAgW2Rpc2FibGVkXT1cIiEhcHJvcHMuZGlzYWJsZWRcIlxuICAgIHN0eWxlPVwiICAgICAgIHBhZGRpbmctdG9wOiAwLjRyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLWJ1dHRvbi1zZWNvbmRhcnktYmFja2dyb3VuZCk7XG4gICAgXCJcbiAgICBjbGFzcz1cIiAgcHItOCAgYmctd2hpdGUgdGV4dC1ncmF5LTcwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYmx1ZS01MDAgZm9jdXM6Ym9yZGVyLXRyYW5zcGFyZW50IGRpc2FibGVkOm9wYWNpdHktNTAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkIGFwcGVhcmFuY2Utbm9uZVwiXG4gID5cbiAgICA8b3B0aW9uIHZhbHVlPVwiQU1cIiBbc2VsZWN0ZWRdPVwiYW1wbUNvbnRyb2wudmFsdWUgPT09ICdBTSdcIj57eydBTScgfCB0cmFuc2xhdGV9fTwvb3B0aW9uPlxuICAgIDxvcHRpb24gdmFsdWU9XCJQTVwiIFtzZWxlY3RlZF09XCJhbXBtQ29udHJvbC52YWx1ZSA9PT0gJ1BNJ1wiPnt7J1BNJyB8IHRyYW5zbGF0ZX19PC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuICAgIDwvcC1pbnB1dEdyb3VwQWRkb24+XG4gIH1cbiAgIEBpZiAobW9kZSA9PSAndGltZScpIHtcbiAgPHAtaW5wdXRHcm91cEFkZG9uPlxuICAgIDxwLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbZGlzYWJsZWRdPVwiISFwcm9wcy5kaXNhYmxlZFwiXG4gICAgICBpY29uPVwicGkgcGktY2xvY2tcIlxuICAgICAgc2V2ZXJpdHk9XCJwcmltYXJ5XCJcbiAgICAvPlxuICA8L3AtaW5wdXRHcm91cEFkZG9uPlxufVxuIEBpZiAobW9kZSAhPT0gJ3RpbWUnKSB7XG4gIDxwLWlucHV0R3JvdXBBZGRvbj5cbiAgICA8cC1idXR0b25cbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2Rpc2FibGVkXT1cIiEhcHJvcHMuZGlzYWJsZWRcIlxuICAgICAgaWNvbj1cInBpIHBpLWNhbGVuZGFyXCJcbiAgICAgIChjbGljayk9XCJkYXRlcGlja2VyQ29tcC50b2dnbGUoKVwiXG4gICAgICBzZXZlcml0eT1cInByaW1hcnlcIlxuICAgIC8+XG4gIDwvcC1pbnB1dEdyb3VwQWRkb24+XG59XG48L3AtaW5wdXRHcm91cD5cblxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZERhdGVwaWNrZXIgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICAgQFZpZXdDaGlsZCgnZGF0ZXBpY2tlckNvbXAnKSBkYXRlcGlja2VyQ29tcCE6IERhdGVQaWNrZXIgO1xuICBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgIGdldCBtb2RlKCk6ICdkYXRlJyB8ICd0aW1lJyB8ICdkYXRldGltZScge1xuICAgIHJldHVybiAodGhpcy5wcm9wc1snbW9kZSddIGFzICdkYXRlJyB8ICd0aW1lJyB8ICdkYXRldGltZScpIHx8ICdkYXRlJztcbiAgfVxuXG4gIGRhdGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sPERhdGUgfCBhbnk+KG51bGwpO1xuICB0aW1lQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgYW1wbUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8J0FNJyB8ICdQTSc+KCdBTScpO1xuXG4gIGdldCBkaXNwbGF5VmFsdWUoKSB7XG4gICAgY29uc3QgZGF0ZVBhcnQgPSB0aGlzLmRhdGVDb250cm9sLnZhbHVlID8gdGhpcy5kYXRlQ29udHJvbC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6ICcnO1xuICAgIGNvbnN0IHRpbWVQYXJ0ID1cbiAgICAgIHRoaXMudGltZUNvbnRyb2wudmFsdWUgJiYgdGhpcy5tb2RlICE9PSAnZGF0ZSdcbiAgICAgICAgPyBgJHt0aGlzLnRpbWVDb250cm9sLnZhbHVlfSAke3RoaXMuYW1wbUNvbnRyb2wudmFsdWV9YFxuICAgICAgICA6ICcnO1xuXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGUnKSByZXR1cm4gZGF0ZVBhcnQ7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ3RpbWUnKSByZXR1cm4gdGltZVBhcnQ7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGV0aW1lJykgcmV0dXJuIGRhdGVQYXJ0ICYmIHRpbWVQYXJ0ID8gYCR7ZGF0ZVBhcnR9ICR7dGltZVBhcnR9YCA6IGRhdGVQYXJ0IHx8IHRpbWVQYXJ0IHx8ICcnO1xuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRJbml0aWFsVmFsdWUodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB7XG4gICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxucHJpdmF0ZSBzZXRJbml0aWFsVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuXG4gIGlmICh0aGlzLm1vZGUgIT09ICd0aW1lJykge1xuICAgIC8vIHBhcnNlIGRhdGUgcGFydCAtIGhhbmRsZSBib3RoIGRkLU1NLXl5eXkgYW5kIHl5eXktTU0tZGQgZm9ybWF0c1xuICAgIGNvbnN0IGRhdGVTdHIgPSB2YWx1ZS5zcGxpdCgnVCcpWzBdO1xuICAgIGxldCBkdDogRGF0ZTtcblxuICAgIC8vIENoZWNrIHRoZSBmb3JtYXQgb2YgdGhlIGRhdGUgc3RyaW5nXG4gICAgaWYgKGRhdGVTdHIuaW5jbHVkZXMoJy0nKSkge1xuICAgICAgY29uc3QgcGFydHMgPSBkYXRlU3RyLnNwbGl0KCctJyk7XG5cbiAgICAgIGlmIChwYXJ0c1swXS5sZW5ndGggPT09IDQpIHtcbiAgICAgICAgLy8gRm9ybWF0IGlzIHl5eXktTU0tZGQgKElTTyBmb3JtYXQpXG4gICAgICAgIGR0ID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3JtYXQgaXMgZGQtTU0teXl5eVxuICAgICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBwYXJ0cztcbiAgICAgICAgLy8gQ29udmVydCB0byBJU08gZm9ybWF0ICh5eXl5LU1NLWRkKSBmb3IgRGF0ZSBjb25zdHJ1Y3RvclxuICAgICAgICBkdCA9IG5ldyBEYXRlKGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkdCA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuICAgIH1cblxuICAgIGlmICghaXNOYU4oZHQuZ2V0VGltZSgpKSkge1xuICAgICAgdGhpcy5kYXRlQ29udHJvbC5zZXRWYWx1ZShkdCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgZGF0ZSBmb3JtYXQ6JywgZGF0ZVN0cik7XG4gICAgfVxuICB9XG5cbiAgaWYgKHRoaXMubW9kZSAhPT0gJ2RhdGUnKSB7XG4gICAgLy8gcGFyc2UgdGltZSBwYXJ0XG4gICAgbGV0IHRpbWVTdHIgPSAnJztcbiAgICBpZiAodGhpcy5tb2RlID09PSAndGltZScpIHtcbiAgICAgIHRpbWVTdHIgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdFBhcnQgPSB2YWx1ZS5zcGxpdCgnVCcpWzFdO1xuICAgICAgaWYgKHRQYXJ0KSB0aW1lU3RyID0gdFBhcnQuc3Vic3RyaW5nKDAsIDUpOyAvLyBoaDptbVxuICAgIH1cblxuICAgIGlmICh0aW1lU3RyKSB7XG4gICAgICBjb25zdCBbaG91clN0ciwgbWludXRlU3RyXSA9IHRpbWVTdHIuc3BsaXQoJzonKTtcbiAgICAgIGxldCBob3VycyA9IHBhcnNlSW50KGhvdXJTdHIgPz8gJzEyJywgMTApO1xuICAgICAgY29uc3QgbWludXRlcyA9IHBhcnNlSW50KG1pbnV0ZVN0ciA/PyAnMCcsIDEwKTtcbiAgICAgIGNvbnN0IGFtcG06ICdBTScgfCAnUE0nID0gaG91cnMgPj0gMTIgPyAnUE0nIDogJ0FNJztcbiAgICAgIGhvdXJzID0gaG91cnMgJSAxMiB8fCAxMjtcbiAgICAgIHRoaXMudGltZUNvbnRyb2wuc2V0VmFsdWUoYCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfToke21pbnV0ZXMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfWAsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuYW1wbUNvbnRyb2wuc2V0VmFsdWUoYW1wbSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH1cbiAgfVxufVxuXG4gIG9wZW5EaWFsb2coKSB7XG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTtcbiAgfVxuXG4gIHNhdmVEaWFsb2coKSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbChmYWxzZSk7XG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gIH1cblxuIGF1dG9GaXhEYXRlKGU6IGFueSkge1xuICBsZXQgdiA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG5cbiAgaWYgKHYubGVuZ3RoID09PSA4KSB7XG4gICAgY29uc3QgZGQgPSB2LnN1YnN0cmluZygwLCAyKTtcbiAgICBjb25zdCBtbSA9IHYuc3Vic3RyaW5nKDIsIDQpO1xuICAgIGNvbnN0IHl5eXkgPSB2LnN1YnN0cmluZyg0LCA4KTtcblxuICAgIGNvbnN0IGZvcm1hdHRlZCA9IGAke2RkfS0ke21tfS0ke3l5eXl9YDtcbiAgICB0aGlzLmRhdGVDb250cm9sLnNldFZhbHVlKGZvcm1hdHRlZCBhcyBhbnksIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xuICB9XG59XG5cblxuXG4gIG9uRGF0ZUNoYW5nZShVSUlucHV0OmJvb2xlYW4pIHtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKFVJSW5wdXQpO1xuXG4gIH1cblxuICBvblRpbWVJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnZGF0ZScpIHJldHVybjtcbiAgICBsZXQgaW5wdXQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICBpZiAoaW5wdXQubGVuZ3RoID4gMikgaW5wdXQgPSBpbnB1dC5zbGljZSgwLCAyKSArICc6JyArIGlucHV0LnNsaWNlKDIsIDQpO1xuICAgIGlucHV0ID0gaW5wdXQuc2xpY2UoMCwgNSk7XG4gICAgdGhpcy50aW1lQ29udHJvbC5zZXRWYWx1ZShpbnB1dCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdkYXRlJykgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy50aW1lQ29udHJvbC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICBsZXQgW2hvdXJTdHIsIG1pbnV0ZVN0cl0gPSB2YWx1ZS5zcGxpdCgnOicpO1xuICAgIGxldCBob3VycyA9IHBhcnNlSW50KGhvdXJTdHIgPz8gJzEyJywgMTApO1xuICAgIGxldCBtaW51dGVzID0gcGFyc2VJbnQobWludXRlU3RyID8/ICcwJywgMTApO1xuICAgIGlmIChpc05hTihob3VycykgfHwgaG91cnMgPCAxKSBob3VycyA9IDE7XG4gICAgaWYgKGhvdXJzID4gMTIpIGhvdXJzID0gMTI7XG4gICAgaWYgKGlzTmFOKG1pbnV0ZXMpIHx8IG1pbnV0ZXMgPCAwKSBtaW51dGVzID0gMDtcbiAgICBpZiAobWludXRlcyA+IDU5KSBtaW51dGVzID0gNTk7XG5cbiAgICB0aGlzLnRpbWVDb250cm9sLnNldFZhbHVlKGAke2hvdXJzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX06JHttaW51dGVzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKX1gKTtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKGZhbHNlKTtcbiAgfVxuXG4gIHRvZ2dsZUFtUG0oKSB7XG4gICAgdGhpcy5hbXBtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmFtcG1Db250cm9sLnZhbHVlID09PSAnQU0nID8gJ1BNJyA6ICdBTScpO1xuICAgICAgdGhpcy51cGRhdGVNb2RlbChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsKFVJSW5wdXQ6Ym9vbGVhbikge1xuICAgIGNvbnN0IGRhdGVWYWwgPSB0aGlzLmRhdGVDb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IHRpbWVWYWwgPSB0aGlzLnRpbWVDb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IGFtcG0gPSB0aGlzLmFtcG1Db250cm9sLnZhbHVlID8/ICdBTSc7XG5cbiAgaWYgKHRoaXMubW9kZSA9PT0gJ2RhdGUnKSB7XG4gIGlmIChkYXRlVmFsKSB7XG4gICAgLy8gUGFyc2UgdGhlIGRhdGUgY29uc2lkZXJpbmcgaXQgbWlnaHQgYmUgaW4gZGQtbW0teXkgZm9ybWF0XG4gICAgbGV0IGR0O1xuICAgIGlmICh0eXBlb2YgZGF0ZVZhbCA9PT0gJ3N0cmluZycgJiYgZGF0ZVZhbC5pbmNsdWRlcygnLScpKSB7XG4gICAgICBjb25zdCBbZGF5LCBtb250aCwgeWVhcl0gPSBkYXRlVmFsLnNwbGl0KCctJyk7XG4gICAgICAvLyBDb252ZXJ0IDItZGlnaXQgeWVhciB0byA0LWRpZ2l0IHllYXJcbiAgICAgIGNvbnN0IGZ1bGxZZWFyID0geWVhci5sZW5ndGggPT09IDIgPyBgMjAke3llYXJ9YCA6IHllYXI7XG4gICAgICBkdCA9IG5ldyBEYXRlKGAke2Z1bGxZZWFyfS0ke21vbnRofS0ke2RheX1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZHQgPSBuZXcgRGF0ZShkYXRlVmFsKTtcbiAgICB9XG5cbiAgICAvLyBEb3VibGUtY2hlY2sgdGhlIGZpbmFsIGRhdGUgaXMgdmFsaWRcbiAgICBpZiAoaXNOYU4oZHQuZ2V0VGltZSgpKSkge1xuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBkYXRlIGNyZWF0ZWQsIHVzaW5nIGN1cnJlbnQgZGF0ZScpO1xuICAgICAgZHQgPSBuZXcgRGF0ZSgpOyAvLyBGYWxsYmFjayB0byBjdXJyZW50IGRhdGVcbiAgICB9XG5cbiAgICBjb25zdCB2YWwgPVxuICAgICAgYCR7ZHQuZ2V0RGF0ZSgpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpfS1gICtcbiAgICAgIGAkeyhkdC5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpfS1gICtcbiAgICAgIGAke2R0LmdldEZ1bGxZZWFyKCl9YDtcblxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNoYW5nZSkge1xuICAgICAgdGhpcy5wcm9wcy5jaGFuZ2UodGhpcy5maWVsZCwgeyBpdGVtOiB0aGlzLm1vZGVsIH0pO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxufVxuZWxzZSBpZiAodGhpcy5tb2RlID09PSAndGltZScpIHtcbiAgICAgIGlmICh0aW1lVmFsKSB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGAke3RpbWVWYWx9ICR7YW1wbX1gLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcbiAgICAgaWYgKHRoaXMucHJvcHMuY2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLmNoYW5nZSh0aGlzLmZpZWxkLCB7IGl0ZW06IHRoaXMubW9kZWwgfSk7XG4gICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnZGF0ZXRpbWUnKSB7XG5pZiAoZGF0ZVZhbCkge1xuICBsZXQgaG91cnMgPSAwO1xuICBsZXQgbWludXRlcyA9IDA7XG5cbiAgaWYgKHRpbWVWYWwgJiYgdGltZVZhbC50cmltKCkgIT09ICcnKSB7XG4gICAgY29uc3QgW2gsIG1dID0gKHRpbWVWYWwgPz8gJycpLnNwbGl0KCc6Jyk7XG5cbiAgICAvLyBWYWxpZGF0ZSBob3Vyc1xuICAgIGhvdXJzID0gcGFyc2VJbnQoaCwgMTApO1xuICAgIGlmIChpc05hTihob3VycykgfHwgaG91cnMgPCAwIHx8IGhvdXJzID4gMTIpIGhvdXJzID0gMDtcblxuICAgIC8vIFZhbGlkYXRlIG1pbnV0ZXNcbiAgICBtaW51dGVzID0gcGFyc2VJbnQobSwgMTApO1xuICAgIGlmIChpc05hTihtaW51dGVzKSB8fCBtaW51dGVzIDwgMCB8fCBtaW51dGVzID4gNTkpIG1pbnV0ZXMgPSAwO1xuXG4gICAgLy8gQ29udmVydCAxMi1ob3VyIGZvcm1hdCB0byAyNC1ob3VyIGZvcm1hdFxuICAgIGlmIChhbXBtID09PSAnUE0nICYmIGhvdXJzIDwgMTIpIGhvdXJzICs9IDEyO1xuICAgIGlmIChhbXBtID09PSAnQU0nICYmIGhvdXJzID09PSAxMikgaG91cnMgPSAwO1xuICB9XG5cbiAgLy8gRmluYWwgc2FmZXR5IGNoZWNrXG4gIGhvdXJzID0gaXNOYU4oaG91cnMpID8gMCA6IE1hdGgubWF4KDAsIE1hdGgubWluKDIzLCBob3VycykpO1xuICBtaW51dGVzID0gaXNOYU4obWludXRlcykgPyAwIDogTWF0aC5tYXgoMCwgTWF0aC5taW4oNTksIG1pbnV0ZXMpKTtcblxuICAvLyBQYXJzZSB0aGUgZGF0ZSBjb25zaWRlcmluZyBpdCBtaWdodCBiZSBpbiBkZC1tbS15eSBmb3JtYXRcbiAgbGV0IGR0O1xuICBpZiAoZGF0ZVZhbC5pbmNsdWRlcygnLScpKSB7XG4gICAgY29uc3QgW2RheSwgbW9udGgsIHllYXJdID0gZGF0ZVZhbC5zcGxpdCgnLScpO1xuICAgIC8vIENvbnZlcnQgMi1kaWdpdCB5ZWFyIHRvIDQtZGlnaXQgeWVhclxuICAgIGNvbnN0IGZ1bGxZZWFyID0geWVhci5sZW5ndGggPT09IDIgPyBgMjAke3llYXJ9YCA6IHllYXI7XG4gICAgZHQgPSBuZXcgRGF0ZShgJHtmdWxsWWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gIH0gZWxzZSB7XG4gICAgZHQgPSBuZXcgRGF0ZShkYXRlVmFsKTtcbiAgfVxuXG4gIGR0LnNldEhvdXJzKGhvdXJzLCBtaW51dGVzLCAwLCAwKTtcblxuICAvLyBEb3VibGUtY2hlY2sgdGhlIGZpbmFsIGRhdGUgaXMgdmFsaWQgLSBpZiBpbnZhbGlkLCBzZXQgdG8gZmlyc3QgaG91ciBvZiBkYXlcbiAgaWYgKGlzTmFOKGR0LmdldFRpbWUoKSkpIHtcbiAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGRhdGUgY3JlYXRlZCwgc2V0dGluZyB0byBmaXJzdCBob3VyIG9mIGRheScpO1xuXG4gICAgLy8gQ3JlYXRlIGEgbmV3IHZhbGlkIGRhdGUgd2l0aCBmaXJzdCBob3VyIG9mIGRheVxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgbm93LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgY29uc3QgdmFsID1cbiAgICAgIGAke25vdy5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyl9LWAgK1xuICAgICAgYCR7KG5vdy5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpfS1gICtcbiAgICAgIGAke25vdy5nZXRGdWxsWWVhcigpfVRgICtcbiAgICAgIGAwMDowMDowMGA7XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMuY2hhbmdlKHRoaXMuZmllbGQsIHsgaXRlbTogdGhpcy5tb2RlbCB9KTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdmFsID1cbiAgICBgJHtkdC5nZXREYXRlKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyl9LWAgK1xuICAgIGAkeyhkdC5nZXRNb250aCgpKzEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpfS1gICtcbiAgICBgJHtkdC5nZXRGdWxsWWVhcigpfVRgICtcbiAgICBgJHtkdC5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwnMCcpfTpgICtcbiAgICBgJHtkdC5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCcwJyl9OjAwYDtcblxuICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbCwgeyBlbWl0RXZlbnQ6IHRydWUgfSk7XG5cbiAgaWYgKHRoaXMucHJvcHMuY2hhbmdlKSB7XG4gICAgdGhpcy5wcm9wcy5jaGFuZ2UodGhpcy5maWVsZCwgeyBpdGVtOiB0aGlzLm1vZGVsIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxufVxuXG4gIH1cbn1cbiJdfQ==","import { FormlyFieldDatepicker } from './datepicker.type';\nexport function withFormlyFieldDatepicker() {\n return {\n types: [\n {\n name: 'datepicker',\n component: FormlyFieldDatepicker,\n wrappers: ['form-field'],\n },\n ],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFELE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixTQUFTLEVBQUUscUJBQXFCO2dCQUNoQyxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDekI7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGREYXRlcGlja2VyIH0gZnJvbSAnLi9kYXRlcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgQ29uZmlnT3B0aW9uIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoRm9ybWx5RmllbGREYXRlcGlja2VyKCk6IENvbmZpZ09wdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkRGF0ZXBpY2tlcixcbiAgICAgICAgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddLFxuICAgICAgfSxcbiAgICBdLFxuICB9O1xufVxuIl19","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { withFormlyFieldDatepicker } from './datepicker.config';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-formly/core\";\nexport class FormlyDatepickerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, imports: [CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule, i1.FormlyModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, imports: [CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldDatepicker())] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyDatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n // declarations: [FormlyFieldDatepicker],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n DatePickerModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldDatepicker()),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGF0ZXBpY2tlci9zcmMvbGliL2RhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7O0FBWS9FLE1BQU0sT0FBTyxzQkFBc0I7dUdBQXRCLHNCQUFzQjt3R0FBdEIsc0JBQXNCLFlBUC9CLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLHFCQUFxQjt3R0FJWixzQkFBc0IsWUFQL0IsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIscUJBQXFCO1lBQ3JCLFlBQVksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQzs7MkZBR3pDLHNCQUFzQjtrQkFWbEMsUUFBUTttQkFBQztvQkFDUix5Q0FBeUM7b0JBQ3pDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLFlBQVksQ0FBQyxRQUFRLENBQUMseUJBQXlCLEVBQUUsQ0FBQztxQkFDbkQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7ICBGb3JtbHlNb2R1bGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IHdpdGhGb3JtbHlGaWVsZERhdGVwaWNrZXIgfSBmcm9tICcuL2RhdGVwaWNrZXIuY29uZmlnJztcbmltcG9ydCB7IEZvcm1seUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLWZpZWxkJztcblxuQE5nTW9kdWxlKHtcbiAgLy8gZGVjbGFyYXRpb25zOiBbRm9ybWx5RmllbGREYXRlcGlja2VyXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERhdGVQaWNrZXJNb2R1bGUsXG4gICAgRm9ybWx5Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh3aXRoRm9ybWx5RmllbGREYXRlcGlja2VyKCkpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlEYXRlcGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGF0ZXBpY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kYXRlcGlja2VyL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kYXRlcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
|