@dereekb/dbx-form 9.23.28 → 9.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +4 -1
  2. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +11 -4
  3. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +6 -1
  4. package/esm2020/calendar/lib/calendar.schedule.selection.days.component.mjs +1 -1
  5. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +5 -3
  6. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +22 -7
  7. package/esm2020/calendar/lib/calendar.schedule.selection.range.component.mjs +1 -1
  8. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +7 -4
  9. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +7 -4
  10. package/esm2020/lib/form/action/form.action.directive.mjs +11 -4
  11. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +18 -6
  12. package/esm2020/lib/formly/field/value/date/date.value.mjs +73 -0
  13. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +60 -106
  14. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +31 -4
  15. package/esm2020/lib/formly/field/value/date/datetime.field.service.mjs +31 -0
  16. package/esm2020/lib/formly/field/value/date/datetime.mjs +26 -0
  17. package/esm2020/lib/formly/field/value/date/datetime.preset.mjs +31 -0
  18. package/esm2020/lib/formly/field/value/date/fixeddaterange.field.component.mjs +451 -0
  19. package/esm2020/lib/formly/field/value/date/index.mjs +5 -1
  20. package/fesm2015/dereekb-dbx-form-calendar.mjs +39 -17
  21. package/fesm2015/dereekb-dbx-form-calendar.mjs.map +1 -1
  22. package/fesm2015/dereekb-dbx-form.mjs +647 -66
  23. package/fesm2015/dereekb-dbx-form.mjs.map +1 -1
  24. package/fesm2020/dereekb-dbx-form-calendar.mjs +39 -17
  25. package/fesm2020/dereekb-dbx-form-calendar.mjs.map +1 -1
  26. package/fesm2020/dereekb-dbx-form.mjs +643 -60
  27. package/fesm2020/dereekb-dbx-form.mjs.map +1 -1
  28. package/lib/form/action/form.action.directive.d.ts +13 -7
  29. package/lib/formly/field/value/date/_date.scss +29 -0
  30. package/lib/formly/field/value/date/date.field.module.d.ts +18 -17
  31. package/lib/formly/field/value/date/date.value.d.ts +20 -0
  32. package/lib/formly/field/value/date/datetime.d.ts +56 -0
  33. package/lib/formly/field/value/date/datetime.field.component.d.ts +31 -27
  34. package/lib/formly/field/value/date/datetime.field.d.ts +8 -4
  35. package/lib/formly/field/value/date/datetime.field.service.d.ts +15 -0
  36. package/lib/formly/field/value/date/datetime.preset.d.ts +2 -0
  37. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +154 -0
  38. package/lib/formly/field/value/date/index.d.ts +4 -0
  39. package/mapbox/package.json +4 -4
  40. package/package.json +4 -4
@@ -7,7 +7,7 @@ import { MatIconModule } from '@angular/material/icon';
7
7
  import { MatInputModule } from '@angular/material/input';
8
8
  import { FormlyModule } from '@ngx-formly/core';
9
9
  import { DbxDateTimeFieldComponent } from './datetime.field.component';
10
- import { DbxDatePipeModule } from '@dereekb/dbx-core';
10
+ import { DbxDatePipeModule, DbxValuePipeModule } from '@dereekb/dbx-core';
11
11
  import { MatDatepickerModule } from '@angular/material/datepicker';
12
12
  import { MatNativeDateModule } from '@angular/material/core';
13
13
  import { FlexLayoutModule } from '@angular/flex-layout';
@@ -16,12 +16,13 @@ import { MatMenuModule } from '@angular/material/menu';
16
16
  import { MatDividerModule } from '@angular/material/divider';
17
17
  import { DbxFormFormlyWrapperModule } from '../../wrapper/form.wrapper.module';
18
18
  import { DbxButtonModule } from '@dereekb/dbx-web';
19
+ import { DbxFixedDateRangeFieldComponent } from './fixeddaterange.field.component';
19
20
  import * as i0 from "@angular/core";
20
21
  import * as i1 from "@ngx-formly/core";
21
22
  export class DbxFormFormlyDateFieldModule {
22
23
  }
23
24
  DbxFormFormlyDateFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
- DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent], imports: [CommonModule,
25
+ DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent], imports: [CommonModule,
25
26
  FormsModule,
26
27
  MatInputModule,
27
28
  MatDividerModule,
@@ -33,6 +34,7 @@ DbxFormFormlyDateFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.
33
34
  MatMenuModule,
34
35
  ReactiveFormsModule,
35
36
  DbxDatePipeModule,
37
+ DbxValuePipeModule,
36
38
  MatChipsModule,
37
39
  MatIconModule,
38
40
  FlexLayoutModule, i1.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
@@ -48,11 +50,16 @@ DbxFormFormlyDateFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.
48
50
  MatMenuModule,
49
51
  ReactiveFormsModule,
50
52
  DbxDatePipeModule,
53
+ DbxValuePipeModule,
51
54
  MatChipsModule,
52
55
  MatIconModule,
53
56
  FlexLayoutModule,
54
57
  FormlyModule.forChild({
55
- types: [{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }]
58
+ types: [
59
+ //
60
+ { name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] },
61
+ { name: 'fixeddaterange', component: DbxFixedDateRangeFieldComponent, wrappers: ['style', 'form-field'] }
62
+ ]
56
63
  }), DbxFormFormlyWrapperModule] });
57
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
58
65
  type: NgModule,
@@ -70,15 +77,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
70
77
  MatMenuModule,
71
78
  ReactiveFormsModule,
72
79
  DbxDatePipeModule,
80
+ DbxValuePipeModule,
73
81
  MatChipsModule,
74
82
  MatIconModule,
75
83
  FlexLayoutModule,
76
84
  FormlyModule.forChild({
77
- types: [{ name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] }]
85
+ types: [
86
+ //
87
+ { name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] },
88
+ { name: 'fixeddaterange', component: DbxFixedDateRangeFieldComponent, wrappers: ['style', 'form-field'] }
89
+ ]
78
90
  })
79
91
  ],
80
- declarations: [DbxDateTimeFieldComponent],
92
+ declarations: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent],
81
93
  exports: [DbxFormFormlyWrapperModule]
82
94
  }]
83
95
  }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9kYXRlL2RhdGUuZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQTBCbkQsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQUh4Qix5QkFBeUIsYUFuQnRDLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCLDhCQU1SLDBCQUEwQjsySEFFekIsNEJBQTRCLFlBdEJyQyxZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixlQUFlO1FBQ2YsbUJBQW1CO1FBQ25CLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7U0FDdkcsQ0FBQyxFQUdNLDBCQUEwQjs0RkFFekIsNEJBQTRCO2tCQXhCeEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsWUFBWSxDQUFDLFFBQVEsQ0FBQzs0QkFDcEIsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQzt5QkFDdkcsQ0FBQztxQkFDSDtvQkFDRCxZQUFZLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRGJ4RGF0ZVRpbWVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUuZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERieERhdGVQaXBlTW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQgeyBEYnhGb3JtRm9ybWx5V3JhcHBlck1vZHVsZSB9IGZyb20gJy4uLy4uL3dyYXBwZXIvZm9ybS53cmFwcGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhCdXR0b25Nb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBEYnhCdXR0b25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGJ4RGF0ZVBpcGVNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW3sgbmFtZTogJ2RhdGV0aW1lJywgY29tcG9uZW50OiBEYnhEYXRlVGltZUZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydzdHlsZScsICdmb3JtLWZpZWxkJ10gfV1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhEYXRlVGltZUZpZWxkQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RieEZvcm1Gb3JtbHlXcmFwcGVyTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5RGF0ZUZpZWxkTW9kdWxlIHt9XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9kYXRlL2RhdGUuZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQStCbkYsTUFBTSxPQUFPLDRCQUE0Qjs7MEhBQTVCLDRCQUE0QjsySEFBNUIsNEJBQTRCLGlCQUh4Qix5QkFBeUIsRUFBRSwrQkFBK0IsYUF4QnZFLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGdCQUFnQiw4QkFVUiwwQkFBMEI7MkhBRXpCLDRCQUE0QixZQTNCckMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDcEIsS0FBSyxFQUFFO2dCQUNMLEVBQUU7Z0JBQ0YsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQzdGLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUU7YUFDMUc7U0FDRixDQUFDLEVBR00sMEJBQTBCOzRGQUV6Qiw0QkFBNEI7a0JBN0J4QyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRTtnQ0FDTCxFQUFFO2dDQUNGLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO2dDQUM3RixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFOzZCQUMxRzt5QkFDRixDQUFDO3FCQUNIO29CQUNELFlBQVksRUFBRSxDQUFDLHlCQUF5QixFQUFFLCtCQUErQixDQUFDO29CQUMxRSxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhEYXRlVGltZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZS5maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4RGF0ZVBpcGVNb2R1bGUsIERieFZhbHVlUGlwZU1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgRGJ4Rm9ybUZvcm1seVdyYXBwZXJNb2R1bGUgfSBmcm9tICcuLi8uLi93cmFwcGVyL2Zvcm0ud3JhcHBlci5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEYnhGaXhlZERhdGVSYW5nZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9maXhlZGRhdGVyYW5nZS5maWVsZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIERieEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNYXROYXRpdmVEYXRlTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEYnhEYXRlUGlwZU1vZHVsZSxcbiAgICBEYnhWYWx1ZVBpcGVNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW1xuICAgICAgICAvL1xuICAgICAgICB7IG5hbWU6ICdkYXRldGltZScsIGNvbXBvbmVudDogRGJ4RGF0ZVRpbWVGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnc3R5bGUnLCAnZm9ybS1maWVsZCddIH0sXG4gICAgICAgIHsgbmFtZTogJ2ZpeGVkZGF0ZXJhbmdlJywgY29tcG9uZW50OiBEYnhGaXhlZERhdGVSYW5nZUZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydzdHlsZScsICdmb3JtLWZpZWxkJ10gfVxuICAgICAgXVxuICAgIH0pXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0RieERhdGVUaW1lRmllbGRDb21wb25lbnQsIERieEZpeGVkRGF0ZVJhbmdlRmllbGRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbRGJ4Rm9ybUZvcm1seVdyYXBwZXJNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Gb3JtbHlEYXRlRmllbGRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,73 @@
1
+ import { parseISO8601DayStringToDate, toJsDate, formatToISO8601DayString, formatToISO8601DateString, isSameDateHoursAndMinutes } from '@dereekb/date';
2
+ export var DbxDateTimeValueMode;
3
+ (function (DbxDateTimeValueMode) {
4
+ /**
5
+ * Value is returned/parsed as a Date.
6
+ */
7
+ DbxDateTimeValueMode[DbxDateTimeValueMode["DATE"] = 0] = "DATE";
8
+ /**
9
+ * Value is returned/parsed as an ISO8601DateString
10
+ */
11
+ DbxDateTimeValueMode[DbxDateTimeValueMode["DATE_STRING"] = 1] = "DATE_STRING";
12
+ /**
13
+ * Value is returned/parsed as an ISO8601DayString, relative to the current timezone.
14
+ */
15
+ DbxDateTimeValueMode[DbxDateTimeValueMode["DAY_STRING"] = 2] = "DAY_STRING";
16
+ })(DbxDateTimeValueMode || (DbxDateTimeValueMode = {}));
17
+ export function dbxDateTimeInputValueParseFactory(mode, timezoneInstance) {
18
+ let factory;
19
+ let useTimezoneInstance = true;
20
+ switch (mode) {
21
+ case DbxDateTimeValueMode.DAY_STRING:
22
+ factory = (x) => (typeof x === 'string' ? parseISO8601DayStringToDate(x) : x);
23
+ useTimezoneInstance = false; // day strings do not use timezones
24
+ break;
25
+ case DbxDateTimeValueMode.DATE_STRING:
26
+ case DbxDateTimeValueMode.DATE:
27
+ default:
28
+ factory = (x) => (x != null ? toJsDate(x) : x);
29
+ break;
30
+ }
31
+ if (timezoneInstance && useTimezoneInstance) {
32
+ const originalFactory = factory;
33
+ factory = (input) => {
34
+ const date = originalFactory(input);
35
+ const result = date ? timezoneInstance.systemDateToTargetDate(date) : date;
36
+ return result;
37
+ };
38
+ }
39
+ return factory;
40
+ }
41
+ export function dbxDateTimeOutputValueFactory(mode, timezoneInstance) {
42
+ let factory;
43
+ let useTimezoneInstance = true;
44
+ switch (mode) {
45
+ case DbxDateTimeValueMode.DAY_STRING:
46
+ factory = (x) => (x != null ? formatToISO8601DayString(x) : x);
47
+ useTimezoneInstance = false; // day strings do not use timezones
48
+ break;
49
+ case DbxDateTimeValueMode.DATE_STRING:
50
+ factory = (x) => (x != null ? formatToISO8601DateString(x) : x);
51
+ break;
52
+ case DbxDateTimeValueMode.DATE:
53
+ default:
54
+ factory = (x) => x;
55
+ break;
56
+ }
57
+ if (timezoneInstance && useTimezoneInstance) {
58
+ const originalFactory = factory;
59
+ factory = (input) => {
60
+ const date = input ? timezoneInstance.targetDateToSystemDate(input) : input;
61
+ const result = originalFactory(date);
62
+ return result;
63
+ };
64
+ }
65
+ return factory;
66
+ }
67
+ export function dbxDateTimeIsSameDateTimeFieldValue(a, b) {
68
+ return a && b ? (typeof a === 'string' ? a === b : isSameDateHoursAndMinutes(a, b)) : a == b;
69
+ }
70
+ export function dbxDateRangeIsSameDateRangeFieldValue(a, b) {
71
+ return a && b ? dbxDateTimeIsSameDateTimeFieldValue(a.start, b.start) && dbxDateTimeIsSameDateTimeFieldValue(a.end, b.end) : a == b;
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS52YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3ZhbHVlL2RhdGUvZGF0ZS52YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLDJCQUEyQixFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUIsRUFBa0MsTUFBTSxlQUFlLENBQUM7QUFHck4sTUFBTSxDQUFOLElBQVksb0JBYVg7QUFiRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILCtEQUFRLENBQUE7SUFDUjs7T0FFRztJQUNILDZFQUFlLENBQUE7SUFDZjs7T0FFRztJQUNILDJFQUFjLENBQUE7QUFDaEIsQ0FBQyxFQWJXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFhL0I7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsSUFBMEIsRUFBRSxnQkFBc0Q7SUFDbEksSUFBSSxPQUFvRCxDQUFDO0lBQ3pELElBQUksbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRS9CLFFBQVEsSUFBSSxFQUFFO1FBQ1osS0FBSyxvQkFBb0IsQ0FBQyxVQUFVO1lBQ2xDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxtQ0FBbUM7WUFDaEUsTUFBTTtRQUNSLEtBQUssb0JBQW9CLENBQUMsV0FBVyxDQUFDO1FBQ3RDLEtBQUssb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQy9CO1lBQ0UsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJ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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVGltZXpvbmVVdGNOb3JtYWxJbnN0YW5jZSwgcGFyc2VJU084NjAxRGF5U3RyaW5nVG9EYXRlLCB0b0pzRGF0ZSwgZm9ybWF0VG9JU084NjAxRGF5U3RyaW5nLCBmb3JtYXRUb0lTTzg2MDFEYXRlU3RyaW5nLCBpc1NhbWVEYXRlSG91cnNBbmRNaW51dGVzLCBEYXRlUmFuZ2VXaXRoRGF0ZU9yU3RyaW5nVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IElTTzg2MDFEYXlTdHJpbmcsIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBlbnVtIERieERhdGVUaW1lVmFsdWVNb2RlIHtcbiAgLyoqXG4gICAqIFZhbHVlIGlzIHJldHVybmVkL3BhcnNlZCBhcyBhIERhdGUuXG4gICAqL1xuICBEQVRFID0gMCxcbiAgLyoqXG4gICAqIFZhbHVlIGlzIHJldHVybmVkL3BhcnNlZCBhcyBhbiBJU084NjAxRGF0ZVN0cmluZ1xuICAgKi9cbiAgREFURV9TVFJJTkcgPSAxLFxuICAvKipcbiAgICogVmFsdWUgaXMgcmV0dXJuZWQvcGFyc2VkIGFzIGFuIElTTzg2MDFEYXlTdHJpbmcsIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWV6b25lLlxuICAgKi9cbiAgREFZX1NUUklORyA9IDJcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieERhdGVUaW1lSW5wdXRWYWx1ZVBhcnNlRmFjdG9yeShtb2RlOiBEYnhEYXRlVGltZVZhbHVlTW9kZSwgdGltZXpvbmVJbnN0YW5jZTogTWF5YmU8RGF0ZVRpbWV6b25lVXRjTm9ybWFsSW5zdGFuY2U+KTogKGRhdGU6IE1heWJlPERhdGUgfCBzdHJpbmc+KSA9PiBNYXliZTxEYXRlPiB7XG4gIGxldCBmYWN0b3J5OiAoZGF0ZTogTWF5YmU8RGF0ZSB8IHN0cmluZz4pID0+IE1heWJlPERhdGU+O1xuICBsZXQgdXNlVGltZXpvbmVJbnN0YW5jZSA9IHRydWU7XG5cbiAgc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5EQVlfU1RSSU5HOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAodHlwZW9mIHggPT09ICdzdHJpbmcnID8gcGFyc2VJU084NjAxRGF5U3RyaW5nVG9EYXRlKHgpIDogeCk7XG4gICAgICB1c2VUaW1lem9uZUluc3RhbmNlID0gZmFsc2U7IC8vIGRheSBzdHJpbmdzIGRvIG5vdCB1c2UgdGltZXpvbmVzXG4gICAgICBicmVhaztcbiAgICBjYXNlIERieERhdGVUaW1lVmFsdWVNb2RlLkRBVEVfU1RSSU5HOlxuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuREFURTpcbiAgICBkZWZhdWx0OlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8gdG9Kc0RhdGUoeCkgOiB4KTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgaWYgKHRpbWV6b25lSW5zdGFuY2UgJiYgdXNlVGltZXpvbmVJbnN0YW5jZSkge1xuICAgIGNvbnN0IG9yaWdpbmFsRmFjdG9yeSA9IGZhY3Rvcnk7XG5cbiAgICBmYWN0b3J5ID0gKGlucHV0KSA9PiB7XG4gICAgICBjb25zdCBkYXRlID0gb3JpZ2luYWxGYWN0b3J5KGlucHV0KTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGRhdGUgPyB0aW1lem9uZUluc3RhbmNlLnN5c3RlbURhdGVUb1RhcmdldERhdGUoZGF0ZSkgOiBkYXRlO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZhY3Rvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhEYXRlVGltZU91dHB1dFZhbHVlRmFjdG9yeShtb2RlOiBEYnhEYXRlVGltZVZhbHVlTW9kZSwgdGltZXpvbmVJbnN0YW5jZTogTWF5YmU8RGF0ZVRpbWV6b25lVXRjTm9ybWFsSW5zdGFuY2U+KTogKGRhdGU6IE1heWJlPERhdGU+KSA9PiBNYXliZTxEYXRlIHwgc3RyaW5nPiB7XG4gIGxldCBmYWN0b3J5OiAoZGF0ZTogTWF5YmU8RGF0ZT4pID0+IE1heWJlPERhdGUgfCBzdHJpbmc+O1xuICBsZXQgdXNlVGltZXpvbmVJbnN0YW5jZSA9IHRydWU7XG5cbiAgc3dpdGNoIChtb2RlKSB7XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5EQVlfU1RSSU5HOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8gZm9ybWF0VG9JU084NjAxRGF5U3RyaW5nKHgpIDogeCk7XG4gICAgICB1c2VUaW1lem9uZUluc3RhbmNlID0gZmFsc2U7IC8vIGRheSBzdHJpbmdzIGRvIG5vdCB1c2UgdGltZXpvbmVzXG4gICAgICBicmVhaztcbiAgICBjYXNlIERieERhdGVUaW1lVmFsdWVNb2RlLkRBVEVfU1RSSU5HOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8gZm9ybWF0VG9JU084NjAxRGF0ZVN0cmluZyh4KSA6IHgpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5EQVRFOlxuICAgIGRlZmF1bHQ6XG4gICAgICBmYWN0b3J5ID0gKHgpID0+IHg7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGlmICh0aW1lem9uZUluc3RhbmNlICYmIHVzZVRpbWV6b25lSW5zdGFuY2UpIHtcbiAgICBjb25zdCBvcmlnaW5hbEZhY3RvcnkgPSBmYWN0b3J5O1xuXG4gICAgZmFjdG9yeSA9IChpbnB1dCkgPT4ge1xuICAgICAgY29uc3QgZGF0ZSA9IGlucHV0ID8gdGltZXpvbmVJbnN0YW5jZS50YXJnZXREYXRlVG9TeXN0ZW1EYXRlKGlucHV0KSA6IGlucHV0O1xuICAgICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxGYWN0b3J5KGRhdGUpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIGZhY3Rvcnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhEYXRlVGltZUlzU2FtZURhdGVUaW1lRmllbGRWYWx1ZShhOiBNYXliZTxEYXRlIHwgSVNPODYwMURheVN0cmluZz4sIGI6IE1heWJlPERhdGUgfCBJU084NjAxRGF5U3RyaW5nPikge1xuICByZXR1cm4gYSAmJiBiID8gKHR5cGVvZiBhID09PSAnc3RyaW5nJyA/IGEgPT09IGIgOiBpc1NhbWVEYXRlSG91cnNBbmRNaW51dGVzKGEsIGIgYXMgRGF0ZSkpIDogYSA9PSBiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RGF0ZVJhbmdlSXNTYW1lRGF0ZVJhbmdlRmllbGRWYWx1ZShhOiBNYXliZTxEYXRlUmFuZ2VXaXRoRGF0ZU9yU3RyaW5nVmFsdWU+LCBiOiBNYXliZTxEYXRlUmFuZ2VXaXRoRGF0ZU9yU3RyaW5nVmFsdWU+KSB7XG4gIHJldHVybiBhICYmIGIgPyBkYnhEYXRlVGltZUlzU2FtZURhdGVUaW1lRmllbGRWYWx1ZShhLnN0YXJ0LCBiLnN0YXJ0KSAmJiBkYnhEYXRlVGltZUlzU2FtZURhdGVUaW1lRmllbGRWYWx1ZShhLmVuZCwgYi5lbmQpIDogYSA9PSBiO1xufVxuIl19